ドローコールについて

ドローコールが増える原因は二つ考えられます。

一つは、モデルの描画の仕様で起こります。
ドローコールは、テクスチャを切り替えるごとに一つ増えます。
Live2Dは、モデルの各描画オブジェクトを背面から順に描画していきます。
その際、パーツによっては一つ前に描画したものとその次に描画するもののテクスチャが違う場合があり、その場合はドローコールをまとめることができません。
この切り替えが多くなりすぎてドローコールが膨大になってしまうこともあります。
対処法としては、例えばテクスチャの枚数を一枚にすると、テクスチャの切り替えがなくなるため、一度のドローコールに抑えることができます。

二つ目として、シーン内に複数のカメラが配置されていることでも発生します。
SDKでは、描画部分をOnRenderObject()から呼んでいます。
OnRenderObjectは、カメラがシーンをレンダリングした後に呼び出される関数ですが、配置したカメラの数だけ呼び出されてしまいます。
そのため、カメラの数だけモデルの描画命令が呼び出され、ドローコールが膨大になってしまいます。

この場合の対策は二つあります。

一つ目の対策は、モデルの描画方式をデフォルトから変更し、モデルにレイヤーを指定し、カリングマスクを設定する方法です。
描画方式の切り替え方、レイヤーの設定の方法は、本ページ上部を参照してください。
モデルに設定したレイヤーの値で、カメラのカリングマスクを設定してください。

二つ目の対策は、OnRenderObject()とほぼ同じタイミングで呼び出される、OnPostRender()から描画をする方法です。
OnRenderObject()と違い、OnPostRender()は、Cameraにセットされたスクリプトでのみ呼び出されるオーバーライド関数です。
この関数を記述したスクリプトを、モデルを描画したいカメラにセットし、そこからモデルの描画を行ってください。
この方法では、UnityエディターのSceneビューにも表示されなくなります。