Unity Visual Compositer を導入し操作する
Unityでコンポジットしたい欲があり、良い感じに使えるアセットが公式にあるので利用します。とはいえ情報があまりない上に利用できるノードも少ないので最低限、という感じですが。
導入
配置
空のゲームオブジェクトを作成し、適当な名前をつける。今回はわかりやすく「Visual Compositor」とする。
ゲームオブジェクトにAdd Componentから「Visual Compositor」スクリプト検索しアタッチする。そうすると自動でカメラとか色々と導入される。
Compositor Graphが空なのでまだ何も作られていない。横のNewをクリックすると、コンポジットを開始できるようになる。
コンポジット画面は独自のウインドウが開き開始される。閉じてしまった場合は「Open Window」で開き直しができる。
デフォルトではDisplay 8にコンポジット後の画面が出力されるようになる。
トラブル:カメラの情報が取得できない
デフォルトではMainCameraを使い映像を出力するはずが、情報が取得できるグレーになっている。色々と試していると、どうやらポストプロセスが悪さをしているらしい。コンソールにもエラーが表示されていた。
[VisualCompositor] VisualCompositor must not have PostProcessLayer component. Deleting
VisualCompositorはポストプロセスレイヤーを持つべきではない、と書かれているのだが、そのまま素直にVisualCompositorオブジェクトを見てもポストプロセスレイヤーなんてアタッチされていない。
MainCameraにはアタッチされているので、これを無効化したら正常に動作した。
VisualCompositorはそれ自身がポストプロセスを取り込む仕組みを持っているので、他のオブジェクトについていると競合するためそこで動作が止まる、という感じなのかもしれない。
トラブル:そもそもポストプロセスが使えない
この状況でポストプロセスを使おうと思ってもエラーが出て使えない。どうやら自分でポストプロセスを追加しておいて、それを制御できずにエラーを起こしているらしい。
とりあえず時間が解決してくれると信じてバージョンを下げるのが無難。
unityのバージョンを2020.3.48f1に下げてとりあえず問題を回避した。