まるコットでメモ的な何か

複数カメラを同時に表示するとUIシェーダーがバグる

症状

とあるシーンで敵キャラの表情が見えるように、画面の左上あたりにメインカメラとは異なるサブカメラを設置した。

カメラの設定はこんな感じで、Cinemachine用にメインカメラとは別のレイヤーに設定したり、Viewport Rectをいじって画面左上あたりにそのまま表示していた。

メニューを開くとUIイメージに設定したシェーダーによってゲーム画面に全体的にブラーが掛かるようになっているが、

サブカメラがONの時にメニューを開くとサブカメラの画面が大きく引き伸ばされてブラーが掛かってしまう。

原因

UIブラーのシェーダーはネットで引っ張ってきたものなのでよくわからないけど、複数カメラを同じディスプレイに描画していることでシェーダーが良くない順で処理してしまっているのかも。

対策

シェーダー側で対策することは諦めて、サブカメラの映像をそのまま描画しないようにする。

具体的には、レンダーテクスチャを作成して、

敵キャラ用のサブカメラ映像をレンダーテクスチャに書き込むように設定して、

RawImageオブジェクトにレンダーテクスチャを設定してサブカメラの表示を実現する。

これでサブカメラが表示されているときも正常にUIブラーが掛かるようになった。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です