上2018-08-31UnityでVJシステム作ってパフォーマンスしたこんにちはアマギです。Unity歴3ヶ月です。8/27、表参道のADIRECTORチャネルにてVJ出演しました。2018年8月28日ADIRECTORはavexによるテクノロジーとアートのイベントです。4階建てのビルをまるごと使って、FEMMによるパフォーマンスや、観客参加型のプロジェクションマッピングなどを楽しめました。CliqueがDJパフォーマンスを行っていました。Allenさん、rystyleeさんの3人で挑みました。他のVJもめちゃくちゃ高品質で最高だった、勉強になります!!全7回終了。雷雨の中、ADIRECTORチャネルご来場ありがとうございました。雷雨の中たくさんの方々に来ていただき、大いに盛り上がりました。ご来場いただいた皆さま、ありがとうございました!!めちゃくちゃ楽しかったです。同業のみなさまとも交流できて嬉しかったです。お誘い頂いたBRDGの方々、会場の方々、ありがとうございました......!さて、今回のVJでは、Unityでシステムを作ってパフォーマンスを行ないました。この記事では、このVJシステムについての紹介と反省を書きます。今回のイベントでは、DJを前後3枚ずつの透過スクリーンで囲んで投影した。そのため、フルHDを2画面出力できるツールを選ぶ必要があった。僕は普段のVJでは、自作のVJソフトVEDAか、TouchDesignerを使っていた。VEDAはGLSLのライブコーディングができるツールだ。VEDAは2画面出力に対応していない。実装するのは簡単なんだけど、商業イベントでいきなり使うのはちょっと怖い。あと、DJのサンプル音源を聞いてみて、今回はライブコーディングではないキャッチーな映像を出してみたいと思った。TouchDesignerの場合、無料版では1280x1280までしか出力できない。フルHDを2画面出力するためにはProライセンスへの課金が必要となる。他のツールとしては、Unityが選択肢に挙がる。最近はVJやジェネラティブアート界隈でUnityを使った作品をよく見るし、今回のイベントでもトップバッターのKeijiroさんが使っていた。僕は6月に転職してからUnityを触っており、UnityでVJシステムを作るのも良い経験になりそうだ。いうわけで、TouchDesignerにお金を払うか、UnityでVJシステムを自作するかの2択となった。新しい事に挑戦したいと思い、後者を選んだ。実行にはREADME.mdに書いたアセットをimportする必要があります。マルチシーン部分とか、エフェクト操作部分は参考にしていただければ。構成めちゃくちゃ詰め込んだシステムになった。前述の通り、今回は2画面出力する必要があった。加えて、映像ソースの切り替えや、実際にスクリーンを並べたときの状態をプレビューするため、操作用の画面を作成して、PCのディスプレイに表示した。Unityではカメラを複数用意することでマルチディスプレイ用のアプリを作成できる。映像ソース切り替えにも専用のカメラを配置したため、メインのシーンだけで7個のカメラを使うことになった。今回はリハの時間がとれなかったので、京都で何度も動作確認を行っていた。動作確認の様子:www.instagram.comゲーミングPCじゃないと動かないと思う😇Unityシーンの加算ロード映像ソースは、Unityでシーンを作り、メインのシーンから呼び出すようにした。現在のシーンに他のシーンを重ねて実行できる。各シーンのルートにSubSceneControllerを置き、単独で実行された場合は通常どおりに実行、他のシーンから呼び出された場合はRenderTextureに描画結果を書き出した。外部からのビデオ入力せっかくなのでVEDAも使いたいよね!という事で、キャプチャデバイスからビデオ入力を受け取って、映像ソースの一つとして利用できるようにした。Unityで映像入力を使うには、WebCamTextureを利用すると良い。実装にあたって以下の記事を参考にした。nn-hokuson.hatenablog.com映像入力には去年録画用に買ったキャプチャデバイスを使ったんだけど、結構ノイズが目立ってた。したらNDIとかのほうが画質キレイかもしれない。10回この商品を含むブログを見るいつものnanoKontrol2を使用。キーボードでシーン切り替えとエフェクトのON/OFF、nanoKontrolでレベルとエフェクトを操作している。エフェクトの強さちょっと複雑......。miniでシーンを切り替えたかったんだけど、工数が足りなかったのと、機器が増えるとトラブルの可能性も増えるので、今回は諦めた。Mini用の設定書いて、今後使えるようにしたいな〜......。いうことで今回もレイマーチングを使ったシーンを作ったよ。www.instagram.comhecomiさんのuRaymarchingを使うと、Unity上で簡単にレイマーチングできる。functionを書くだけ。functionは自分のShadertoyから持ってきた。封神演義の盤古幡をイメージしたやつ。レイマーチングのシーンは単体だとヌルヌル動くんだけど、マルチシーンで使った途端めちゃくちゃ重くなってしまう。使ってFPS計測用のスクリプトを書く必要がある。僕はこれコピペして使った。GitHub主なボトルネックはPostProcessingStackとレイマーチングだった。本番前の土日に、レイマーチングのループ減らしたり、PostProcessingのパラメータを色々調整して、ほぼ30FPS出るようになった。他のVJ2人がヌルヌルサクサクだったので、本番後に「次はもっとヌルヌル動くようにしてえな〜」という気持ちになった......!操作がわかりにくい本番中、どのシーンがONになってるか、どのエフェクトがどのくらいの強さになってるかがわからなくなることがあった。操作画面にどのエフェクトがONになってるか表示したいけど時間が足りなかったんだよな。難しくはないので、次回までには実装しておきたい!ブルームかけすぎたブルームかけすぎて画面全体がめちゃくちゃ明るくなる場面があった。今回の会場では黒バックでもキレイに移るので、もうちょっとシンプルなシーンを用意しても良かったかな。あとPostProcessingのブルームOFFにすれば負荷も減るし。いうわけでUnityでの初VJでした。Unityは手軽にキレイな画面を作れるし、アセットも使えるので、モーショングラフィックスにも向いてるナ〜という感想です。今回のシステムを作り込めば、複数人で別々のシーンを開発して統合、とかもできるしね。渋谷でVJやります1nfiniterave.peatix.comクリエイティブコーディング系の人たちが集まってDJ/VJするイベントです。僕は今回VEDAでGLSLライブコーディングする予定です(たぶん)。OSAKAでTOKiMONSTAのVJを担当しました...2019-03-26DOMMUNEでライブコーディングVJした3/21(木)、DOMMUNEでVJしました。僕は自作のVJシステムVEDAを...2019-01-07やりたいことをやるために、やりたいことをブログに書く今年の抱負です。Infinit...こんにちは天城です。法然院でVJした過去記事スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。