Unity

【Unity】CinemachineTrackでRenderTexture用のカメラが表示されてしまう原因と対処法は何?

どうも、コニーです

 

この記事ではCinemachineでディゾルブを実装したときに

RenderTexture用のカメラが表示されるエラーについて解説していきます

 

※下の記事の追加解説になりますので、まだ読んでいないという方は先にご覧ください

【Unity】Cinemachineでディゾルブ(dissolve)を実装する方法!!Timelineで簡単制御UnityのCinemachineでディゾルブ(Dissolve)を実装する方法を紹介します。Timelineで簡単に制御でき、コード編集も一切しません!!画像付きで丁寧に解説します。...

 

Cinemachineでディゾルブをやろうという人が少ないので、その過程のエラーについても記事がなかなかないんですよね…

同じ現象で困っている方の助けになればなと思い、

この記事ではRenderTexture用のカメラが表示される原因と対処法を紹介します

エラー状況

まずエラーの状況です

本来MainCamera(以下MC)のバーチャルカメラが表示されてほしいという状況にもかかわらず、なぜかRenderTexture用のカメラ(以下RC)が表示されてしまう

というエラーを今回解決していきます

原因

このエラーの原因は

RCにもCinemachineBrainをつけているからです

これによってカメラの優先度(Priority)がMCよりRCが高いという状況になっています

優先度ってなに?

そもそもバーチャルカメラ含め、Unityのカメラには優先度というものがあります

そしてその値が大きい順に表示される仕組みです

 

優先度についてはTimelineに入れたものは優先度の対称から外れるなど、まぁいろんな規則があってごちゃごちゃしてます

今回はTimelineを使ってカメラを制御するという場合について考えていきます

実際に表示されるカメラはどれ?

Timelineを使ってカメラを制御する際は2段階の審査で表示されるカメラが決まります

 

①一番優先度が強いリアルカメラ

②①についているバーチャルカメラ

という流れです

 

①と②それぞれで表示される強さランキングがあるのでそれを見ていきましょう

①リアルカメラの強さランキング

1位

Brainが付いていて優先度が一番高いもの

2位

Brainが付いていて優先度が低いもの

3位

Brainが付いていないもの

 

今回のエラーはここが原因です!!

RCはMCよりも後に追加したものなので、デフォルトの状態だとMCより優先度が高くなります

追加したままなら問題ないですが、Brainを追加したら3位から1位に順位が上がり表示されてしまうんですね~

 

②バーチャルカメラの強さランキング

つぎにバーチャルカメラの強さ順です

1位

Timelineに入っているもの

2位

Timelineに入っておらず優先度が高いもの

3位

優先度が低いもの

 

基本的には1位の場合しかありませんが、「ある条件を満たしたらTimelineがアクティブになる」という場合にはこの順位が大事です

対処法

対処法としては

・RCのCinemachineBrainを外す
・RCの優先度(Priority)をMCより小さくする

の2つですね

ただディゾルブを実装するという際はRCにバーチャルカメラを付けると別のエラーが発生します

なのでここでは前者の方法をおすすめします

まとめ

 

今回のまとめ

一番強いリアルカメラについている一番強いバーチャルカメラが優勝

普段Timelineを使っている方は優先度とか気にしないですよね~

しかし複数のカメラを扱う場合には必ず必要な概念なので、これを機に勉強してみて下さい!

 

ではまた!