Live2D(UnitySDK版)はOnRenderObject( )を使ってモデルの描画していますが、
このOnRenderObject()はScene上にカメラが複数台あるとその分処理が実行されてしまいます。
Model数 x カメラ数でCPU負荷が結構かかります。
Culling Mask等の設定をしていても、UI用のカメラ等でも実行されてしまうので、OnRenderObject()内に処理を加える必要があります。
これにより、Live2Dのモデル更新、描画を1カメラに特定させることができます。
実際に処理を入れるのは下記のコードです。
void OnRenderObject () { // メインカメラ以外は処理を実行しない if (Camera.current.tag != "MainCamera") { return; } // ....以下、描画処理やら
「Camera.current」で実行しているカメラの取得をしているので、
実際にLive2Dを描画しているカメラ以外はreturnさせちゃえ〜っていう感じです。
tagチェックじゃなくても、オブジェクト名チェック等でも問題ないです。
実際にScene上にカメラを3つ置いているプロジェクトにこのコードを適用したら、
下記のような感じで負荷軽減できているみたいです。
Before
After