ドローコールバッチング
レンダリング統計ウィンドウ

最適なパフォーマンスのためのキャラクターモデリング

最適なレンダリングスピードが出るキャラクターモデルの設計を行うテクニックを以下で示します。

スキンメッシュレンダラーはひとつ

各キャラクターで スキンメッシュレンダラー はひとつとすべきです。Unity は表示カリングおよび境界ボリュームの更新をしようしてアニメーションを最適化し、これらの最適化はひとつの アニメーション およびひとつのスキンメッシュレンダラーを使用した場合のみ有効化されます。モデルのレンダリング時間はふたつのスキンメッシュ をひとつのスキンメッシュレンダラーの代わりに使用することでおおよそ 2 倍となる場合があり、複数のメッシュを使用する実用的なメリットがあることは稀です。

できるかぎりマテリアルを少なくする

各メッシュの マテリアル の数は、できるかぎり少なくするべきです。例えば、複数のマテリアルをキャラクターで使用するのは、身体の部分に合わせたシェーダーを利用しなければいけません(目の部分は特殊なシェーダーなど)が、ほぼすべてのケースにおいて、マテリアルが 2 ~ 3 つであれば気にする必要はありません。

できる限りボーンを少なくする

典型的なデスクトップゲームのボーン階層は 15 個から 60 個の数のボーンを使用します。ボーンの数が少ないほど、パフォーマンスが良くなります。デスクトッププラットフォームでは、30 個ぐらいのボーンでだと非常によいパフォーマンス結果が得られ、モバイルプラットフォームでも比較的よいパフォーマンス結果が得られます。理想的には、モバイルデバイスでは 30 個以下に抑えて、デスクトップゲームでも 30 個を大きく超えないようにします。

ポリゴンのカウント数

ポリゴン数は必要な品質およびターゲットするプラットフォームに依存します。モバイルデバイスでは、メッシュあたり 300 から 1500 ポリゴンでよいパフォーマンス結果が得られ、デスクトッププラットフォームでは理想的な範囲として 1500 から 4000 ぐらいです。ゲームにたくさんのキャラクターを登場させる必要があるときには、メッシュあたりのポリゴン数を減らす必要があるかもしれません。例として、Half Life 2 はキャラクターに 2500 〜 5000 三角形数でした。現在 PS3 や XBox 360 の最高ランクのゲームでは通常キャラクターに 5000 から 7000 三角形数です。

フォワードおよびインバースキネマティクスを分ける

アニメーションがインポートされるとき、モデルの IK ノードはフォワードキネマティクス( FK )に焼き込みされ、結果として Unity は IK ノードがまったく必要ありません。しかしモデルに残ったままであるとアニメーションに影響しないにも関わらず CPU オーバーヘッドが生じます。好みに応じて Unity またはモデリングツールのどちらでも冗長な IK ノードを削除することができます。理想的には、IK および FK 階層はモデリングの際に別に保持して、必要なときに IK ノードを容易に削除できるようにすべきです。

ドローコールバッチング
レンダリング統計ウィンドウ