Unityで手軽にProcessingっぽく図形を描いて遊べるアセット Unicessing を作ったの巻
Unityで手軽にProcessingっぽく図形を描いて遊べるアセットとしてUnicessingというものを作りました。
ProcessingやりたきゃProcessingやればいいじゃん、と思うかもですが、UnityならProcessingだけで作るよりも簡単に画面エフェクトをかけられたり、3Dキャラと組み合わせて動かしたり、最新のVR HMDに対応したりするのが楽なので。あとUnityなのにProcessing的にさささっとプロトタイピングする変態感を味わえます(使う用途には各自ご注意ください)。
α版を見た皆さまの感想
もともと個人的な趣味のような形で作っていたものなのですが、ちょっとしたものを軽く試すには結構面白いかも、と思ってJapan VR Fest.にてα版を公開したところ、さすがVR界隈の方というか、何事も手が速いノリよく遊んでいただいたり、コメントもいただけまして…
.@n_ryota さんのUnicessingすごく簡単に動的生成がしやすくて、高レベルAPIも整備されてて楽しい!おすすめです。https://t.co/R70MMfnblZ pic.twitter.com/r4ewGkJhJW
— 絵麻さんを養って幸せな家庭を築く (@izm) 2016年10月29日
Unicessingしゅごい Proce55ingっぽく書けたらめっちゃ楽しそう
— るめらやき (@noume_ri) 2016年10月29日
@n_ryota Unicessing便利ですね! Script Inspector 3とセットで使っていますが、もう本家Processingいらないやと思うレベルで使い勝手がいいです。VectorやCameraはUnityのままなのもいい感じです。
— Takashi Kitao (@kitao) 2016年10月31日
おおーこれを使うとアニプレックスとかソニーミュージックとかオシャレーな映像演出がお手元のUnityで…!?
— はいぬっか (@hinzka) 2016年10月29日
レイマーチというのはまた違うのかな?あとでしらべるーhttps://t.co/VQqzPCg2Sf pic.twitter.com/350v4dnb2o
期間限定公開のUnicessingをUnityにインポートしてサンプルシーン見てみました。曲線を簡単に引けるのが面白いですね
— 海行プログラム (@kaigyoPG) 2016年10月31日
Processingは教育用言語として良く使われるけど、Unicessingも教育向けに役に立ちそう。簡単に絵が作れるからね。
— やのせん (@yanosen_jp) 2016年10月31日
※他にもコメントや修正のアドバイスなどいろいろいただけました! ありがたや
Unicessing正式リリース
そして、つい最近正式版としてリリースできました。みなさまありがとうございます! 下に紹介動画もありますので、ひとまずどうぞ。
Unity Asset Store で Unicessing を見る
α版との主な違いは、README_jp.txtの更新履歴にありますが、概要としてはこんな感じです。
- stroke()でrect()、ellipse()のエッジや、box()、sphere()、mesh()のワイヤーフレームを描ける、noStroke()で線を描かなくできる
- noFill()で塗りつぶしをOFFにできる
- rectMode()、ellipseMode()、imageMode()で矩形、円、画像の基準点を変えられる
- USubGraphicsを使ったときの処理が速くなった
- 迷路作成してカーソルキーで進めるMazeサンプルを追加
- キャラを操作してランニングアクションができるRunnerサンプルを追加
Mazeサンプルはこれで、
ワイヤーフレーム出したらやりたくなって誰得なサンプルを作ってしまった…。Unicessingで迷路。これは迷路生成と操作あわせて150行くらい。 #unicessing #unity #processing #vr #screenshotsaturday #oculus pic.twitter.com/18fg8dPTkG
— n_ryota (@n_ryota) 2016年11月5日
Runnerはこれです。
Unicessingでランニングアクションを作ろうとして、まったくUnityらしくないコードに。これも150行。(ムービー作ったらAssetStoreに申請する予定です) #unicessing #unity #vr #processing #screenshotsaturday pic.twitter.com/5TuqziLjVm
— n_ryota (@n_ryota) 2016年11月9日
…アクションサンプルは1ファイルで完結させようと、興味本位の作り方で不必要に変態的なのでサンプルとして適切ではない気も(汗
— n_ryota (@n_ryota) 2016年11月13日
このあたり、ノリで作ってる感丸出しであります。
あとオンラインから画像読み込んで並べるフライングカタログというサンプルも作ったのですが、 Amazonの画像を直接参照していたので、ひとまずカットしております。無念。
Unicessingでフライングカタログ。シーンのソースは100行ちょっと。しかし、これ書いててloadImageでネットからダウンロードする部分がバグってたのに気付いて修正(汗) #unicessing #unity #vr #screenshotsaturday pic.twitter.com/zPJ3UuDge8
— n_ryota (@n_ryota) 2016年10月29日
それと……
サンプル実行前にインポートしてほしいパッケージ
ストアの申請時に「AssetStoreのパッケージにはStandardAssetsを直接含めないでインポート手順を指示するだけにして」といった趣旨のリテイクがあったので、サンプルを確認する場合はお手数ですが下記のパッケージを手動でインポートしておいてください。
上記アセットをAsset Storeから入手してください。 カメラのImageEffectとしてBloomとTonemappingColorGradingだけを使用しています。
※Unityも5.5もリリースされましたし、今後はPostProcessingStackを使うのも良さそうですね。
2. Third Person Character(Ethan)
Runnnerサンプルでキャラクターとして使用しています。 Unityのメニューから Assets -> Import Package -> Character を選び Third Person Characterにチェックを入れてImportしてください。
Processingについて
Processingというのは、もともとMITのメディアラボで作られたビジュアルデザイン、アート系のコードをシンプルに書けるプログラミング言語で、教育やメディアアート、プロトタイピングなどの分野でよく使われたりしています。最近はp5.jsというJavaScriptライブラリとしても似たコードを動かせます。
現代のBASICというか、line(0, 0, 100, 100)と書くだけで線を描けるという単純明快さがとてもシンプルでよいと思っています。
ドットインストールにProcessing入門があったり、P5 Code Schoolというサイトにまとまった解説があったり、東京工科大学の資料もよい感じです。応用的なデモはFladdictさんのサイトなど気持ち良いです。
私自身も、Processingに関する本を(あまりProcessingらしくない使い方で)2冊書いているくらい、大好きなプログラミング言語です。
遊んで学ぶ はじめてのプログラミング ~Processingの魔法学校~
↑の本のヘルプやチートシートをオンラインでも公開中なので、それも参考になるかもです。 書籍自体は、プログラムを魔法にみたてて、はじめてのところからお絵かきツールやアクションゲームを作るところまで、キャラクターたちと一緒に遊んで学ぶ、みたいな感じで解説しています。
遊んで作るスマホゲームプログラミング for Android
↑の本はゲーム作りに特化してるので、プログラミングだけでなく、企画のアイデアづくりから解説してたりします。あとfor Androidとか書いてるのに、Androidネイティブ版以外にもHTML5でiOS/Android両方動かしてるサンプルも結構あったり、Kinect使ったものがあったり、ハチャメチャです。
そういえば、本とは別に、自分のWebで動かしているちょっとしたデモなどもあります。Processing.jsというJavaScriptライブラリ(を自分で高速化したやつ)を使ったソースも見れます。
※ただし、UnicessingはProcessingとの互換性を維持するよりも、Unity上での使い勝手を重視して作っています。座標系などもUnity準拠ですし、独自拡張もいろいろあります。
※よりProcessingとの互換性を意識したAssetはuProcessingとしてGitHubで公開しています(描画の仕組みが異なるため、Unicessingよりは遅いのと、他と組み合わせた使い方をしにくいのと、最近さわってないので機能実装度合に差があったりはします。でも無償!)。
次回予告?
とはいえ、
んと、簡単に言うと、世間一般て公開されているProcessingプログラムを移植する時のポイントが纏まっているといいなぁって思いました
— ザバ(ザバイオーネ) (@z_zabaglione) 2016年12月4日
という意見をいただいてナルホド! と思いましたので、次回ブログ記事でそのあたりのコツを書く予定です!(今回じゃなくてごめんなさい!)
Advent Calendar
そして、この記事はProcessing Advent Calendar 2016の12/4の記事でもあります。毎年面白い投稿があって完走してるのですが、今年は場所も移って常連さんの参加が少ないので、軽い気持ちで参戦していただけると嬉しいです。Unicessingもありだと思います!! ヘルプ…