いやーサバティカらないとやはり時間がない。1日はプログラムして、次の日はブログ書いて、というような感じである。
というわけでまずクロスフェーダーから作る。2つの映像を徐々に切り替えることができれば原理的には無限にパフォーマンスが続けられる。
別に4チャンネルでも8チャンネルでも作れはするが、そんなにあっても使い切れないし、パク…参考にしているVDMXというVJソフトウェアでもLeftとRightの2チャンネルしかないので、まずは最低限動く形で作っていく。
2つの映像を用意するということで、Cameraを2つ用意する。それをそのまま画面に出力するわけにはいかないので、RenderTextureを使う。
RenderTextureを使えばCameraの映像をテクスチャとして扱えるのである。
実際に表示する時に二つのテクスチャを適宜ブレンドすることになる。
ちぃ知ってる、こういうのはシェーダーでやる。
幸いイメージエフェクト的なシェーダーはこんなやつを前に作ったことがあったので、ちゃっちゃっと作れた。
https://github.com/tnayuki/Unity-LGBTPride
シェーダーのコア部分はこんな感じ。
return lerp(tex2D(_MainTex, i.uv), tex2D(_SubTex, i.uv), _Slider);
0〜1.0のプロパティを変更することで、徐々に映像を切り替えられる。
スライダーと切り替わりの速さを調整(リニアでなく)したいところだが、どうせあとでMIDIコントローラーから制御できるようにするので、その時考えることにする。
ここから左右のチャンネルで流すエフェクトや、動かすオブジェクトを作っていこう。