鳩の溜まり場

猫か鳩になりたい

同一のVirtual Cameraを複数のCinemachine Brainで参照する【Unity】

Cinemachine Brainをそれぞれにアタッチした複数のカメラで同じVirtual Cameraを参照したいけど、参照してくれないカメラがある。という現象でハマったのでまとめておきます。

本記事は標準のカメラシステムで説明していますが、URPのカメラでも同様の現象が起きており、同様の対処法で動きました。(Cinemachineの仕様なので当たり前のことではあるのですが一応・・・。)

経緯

同一座標に存在するものを描画したときに見た目がガビってしまっていたため、カメラを分けてCullingMaskで描画するオブジェクトのレイヤーを分け、カメラのDepthで明示的に描画順を区別しました。

すると、Cinemachine BrainをつけてもカメラがVirtual Cameraの情報を取得してこない・・・。

対処法

結論から言うと、Virtual Cameraに設定しているレイヤーをカメラのCullingMaskで選択されていなければ参照しないということでした。

結論を言ってしまうとそれ以上もそれ以下もないんですが、より具体的にはVirtual CameraのレイヤーがDefaultであれば、参照したいカメラのCullingMaskはDefaultも選択していないとVirtual Cameraを参照できないということです。

ただ、注意点として、CullingMaskで対象のレイヤーを選択していなくても、Virtual CameraのSoloボタンを押してLiveにするとCinemachine BrainがVirtual Cameraの参照を何故か持ってくるので、注意が必要です。

あとがき

本記事ではBrainがVirtual Cameraの参照を取得〜〜と言ってきましたが参照を取得してくるではなく参照を渡される・・・?内部的なことはわかりませんがCinemachineのマニュアルを見ると渡されてる気がしなくもない・・・。

docs.unity3d.com