JJ SHIMA Blog

二児のパパがゲーム開発アレコレを書いているブログ。Unity / UE / Scratch / プログラミングゼミ / プログラミング教育

[Unity] CinemachineでLive CameraがNoneになってしまう場合の対処 (忘れがち)

[動作環境] Unity 2019.3.7f1
Cinemachine

unity.com

Unityでカメラ表現をする時にお世話になるパッケージです。
スクリプトなどを書かなくても、魅力的なカメラワークがすぐにできます。

f:id:papa-sensei:20200620115747g:plain
(キャラクターの追従、敵の前でズームもCinemachineを使っています)

そんな便利なCinemachineですが、たまに忘れてハマってしまう
Live Cameraの設定がNoneになってしまう時の対処法の紹介です。
 

症状

Chinemachineはカメラを管理するChinemachineBrainと、
複数のVirtual Cameraを組み合わせて使うのが一般的です。

現在画面を映しているバーチャルカメラは、
ChinemachineBrainのLive Cameraのパラメータにセットされます。 f:id:papa-sensei:20200620115035p:plain

複数バーチャルカメラがある場合は、
プライオリティが一番高いものがセットされます。
f:id:papa-sensei:20200620115103p:plain

この時、バーチャルカメラが存在してもLive Cameraにセットされないことが稀にあります。 f:id:papa-sensei:20200620115348p:plain  

原因

原因はChinemachineBrainと一緒に付いているカメラのCulling Mask設定です。
f:id:papa-sensei:20200620115412p:plain

Culling Maskは、対象レイヤーのオブジェクトのみ映すというものですが、
この設定はバーチャルカメラにも働きます。

そのため、バーチャルカメラのオブジェクトレイヤーも、
Culling Maskの対象レイヤーに変えておく必要があります。 f:id:papa-sensei:20200620115453p:plain

レイヤーを正しく設定すると、
Live Cameraに自動でセットされるようになります。 f:id:papa-sensei:20200620120145g:plain

Culling Maskというと、モデルやエフェクトなどの描画対象を想像してしまい、
バーチャルカメラのレイヤーを忘れてしまいがちなので、備忘録に!