このページでは アニメーションシステム概要 で最高のパフォーマンスを得るための Tips を提供し、キャラクターのセットアップ、アニメーションシステムおよび、実行時の最適化がカバーしています。
多くのボーンを使用してキャラクターを作成しないといけない場合があります。例えばカスタマイズ可能なアタッチメントが必要なケースです。この時に必要となる追加のボーンの数によりビルドサイズは大きくなり、追加のボーン数に比例して処理コストが増えると考えるべきです。例えば、Generic モードですでに 30 のボーンがあるリグに 15 のボーンを追加すると 50% 多く時間がかかります。Mecanim におけるジェネリックアニメーション および ヒューマノイドアニメーションでの作業 のいずれでも追加のボーンを持つことができることに注意してください。追加のボーンを使用していても再生するアニメーションがない場合は、処理コストの増加は無視できる程度です。アタッチメントが存在しない場合や隠れている場合はさらに処理コストは低くなります。
スキンメッシュは可能なかぎりまとめてください。パフォーマンスの観点から言うと、キャラクターを 2 つの スキンメッシュレンダラー に分けるのは良くありません。マテリアルは 1 キャラクターで 1 つのみがベストですが、どうしても複数のマテリアルが必要になる場面もあるかと思います。
Animator コンポーネント は アニメーターコントローラー がセットされていなければ処理時間は増加しません。
ブレンディングのないひとつの アニメーションクリップ を再生することで Mecanim が 旧アニメーションシステム / Legacy animation system より遅くなる場合があります。古いシステムは直接的なものであり、カーブをサンプリングして Transform に書き込みを行っています。Mecanim はブレンディングに使用するテンポラリバッファがあり、サンプリングされたカーブおよび他のデータの複製が発生します。Mecanim のレイアウトはアニメーションブレンディングに最適化されていて、より複雑なセットアップがあります。
スケールカーブのアニメーションは、移動や回転のアニメーションよりも非常に高価(処理コストが高い)です。パフォーマンスを改善する場合は、スケールアニメーションを避けます。
注意: これは一定の曲線( [アニメーションクリップ] (クラス AnimationClip )の長さの値が同じ曲線)には適用されません。一定の曲線は最適化され、通常の曲線よりも軽い(コストのかからない)です。
Mecanim の処理時間の多くはアニメーションの評価に使用されているため、アニメーションレイヤー および アニメーションステートマシン のオーバーヘッドは最小限に抑えられています。アニメーターに追加するレイヤーのコストは同期化されているかどうかに関わらず、どの アニメーション および ブレンドツリー がレイヤーによって再生されているかどうかに依存しています。レイヤーのウェイトが 0 である場合、レイヤーの更新はスキップされます。
次の Tips がモードを決定するための参考になります:
最適化できる要素は豊富にあり、いくつかの便利な Tips としては以下があります。:
アニメーターの Culling Mode を Based on Renderers にセットして、スキンメッシュレンダラーの Update When Offscreen プロパティーを無効にすることでアニメーションを常に最適化できます。これによりキャラクターが非表示のとき、アニメーションは Update されません。詳細については スキンメッシュレンダラー を参照してください。