マイ備忘録

あくまで個人の意見、メモです。

UnityでVJ用のテンプレートプロジェクト作った

@amagitakayosiさんが公開してくれていたUnityプロジェクトを参考に(すごく参考になりました)、自分が使いやすいように修正を加えてテンプレートプロジェクト作りました。

github.com

以下は自分用のメモです。多分すぐ忘れるので。

ざっくり構成

f:id:takata3:20210614181657p:plain

Layer的なものを2つ用意し、どちらかを出力するという形にしています。 個別のサブシーンをレンダリングしたTextureをMixCameraでMixし、続いてEffectCameraでPostEffectをかけ、OutputのところでどちらかのLayerをDisplayに表示するというフローになります。

以下細かい補足

Camera

MixCamera

  • Layer0, Layer1用に2つカメラを用意
  • 各サブシーンの表示非表示やMix関連の処理を行う

EffectCamera

  • Mix処理が終わったテクスチャに対してPostEffectをかける

OutputCamera

  • 最終的なOutput用のカメラ
  • Layer0 or Layer1のどちらを表示するかを決める

Input

  • キーボード、音声、Midiの入力ができる
  • このあたりの入力値はグローバルにアクセスできたほうがいいので、安直にシングルトンインスタンに保存
    • 入力値自体はMainシーンで受け取って、パラメータインスタンスに保存するようにしている
  • 音声入力はLaspを利用
  • Midi入力はMinisを利用
  • ボタンはtoggle的な動作をさせたかったので、個別スクリプトを作ってcolorを変更するようにしている

SubScene

  • ParameterInitializerの中でシーンをロードするようにしている
  • アンロードの機能は実装していないので、重たいシーンが増えてきたりすると辛いかもしれない...
  • ControlParameterはサブシーンからでも使えるので、Midiや音声入力もつかえるはず...

おわりに

Unity初学者なので色々と突っ込みどころはあると思いますが、勉強も兼ねて素材作りがんばろう