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