このページでは メカニム で最高のパフォーマンスを得るための Tips を提供し,キャラクターのセットアップ,アニメーションシステムおよび,実行時の最適化がカバーされています。
多くのボーンを使用してキャラクターを作成しないといけない場合があり,例えばカスタマイズ可能なアタッチメントが準備されているようなケースです。この場合に必要とされる追加のボーンの数によりビルドサイズは大きくなり,追加のボーン数に比例して処理コストが増えると考えるべきです。例えば, Generic モードで既に 30 のボーンがあるリグに 15 のボーンを追加すると 50% 余分に時間がかかります。 Generic および Humanoid のいずれでも追加のボーンを持つことが出来ることに留意して下さい。追加のボーンを使用していても再生するアニメーションがない場合は,処理コストの増加は無視できる程度です。アタッチメントが存在しない場合や隠れている場合はさらに処理コストは低くなります。
可能なかぎりスキンメッシュはまとめて下さい。キャラクターを 2 つの スキンメッシュ レンダラ に分けることはパフォーマンス観点では良いことではありません。キャラクターにひとつのマテリアルのみの場合はさらに良いですが,実際には複数のマテリアルが必要であるケースは存在します。
アニメータ は コントローラ がセットされていなければ処理時間が増加しません。
ブレンディングのないひとつの アニメーションクリップ を再生することで メカニム が 旧アニメーションシステム より遅くなる場合があります。古いシステムは直接的なものであり,カーブをサンプリングして Transform に直接書き込みを行っています。 メカニム はブレンディングに使用するテンポラリバッファがあり,サンプリングされたカーブおよび他のデータの複製が発生します。 メカニム のレイアウトはアニメーション ブレンディングに最適化されていて,より複雑なセットアップがあります。
全てのアニメーション クリップ で スケール カーブ がないことを確認します。アセットのポストプロセッサにより,自動的に削除または警告することが出来るため,詳細は AssetPostprocessor を参照して下さい。
メカニム の処理時間の多くはアニメーションの評価に使用されているため, AnimationLayers および AnimationStateMachines のオーバーヘッドは最小限に抑えられています。追加のレイヤーをアニメータに追加するコストは同期化されているかどうかに関わらずどの アニメーション および ブレンドツリー がレイヤーにより再生されているかに依存しています。レイヤーのウェイトがゼロである場合,レイヤーの更新はスキップされます。
Humanoid vs Generic モード 次の Tips がモードを決定するための参考になります:
最適化できる要素は多く,いくつかの便利な Tips としては:
アニメータの Culling Mode を Based on Renderers にセットして,スキンメッシュ レンダラの Update When Offscreen プロパティを無効にすることでアニメーションを常に最適化できます。これによりアニメーションはキャラクターが非表示のときは Update されません。詳細については スキンメッシュ レンダラ を参照して下さい。