Version: 2020.3
言語: 日本語
エクスポート用モデルファイルの準備
アニメーション用モデルの作成

最適なパフォーマンスのためのモデル作成

ここでは、最適なパフォーマンスを実現するためのモデルを作成するためのヒントをいくつか紹介します。これらのヒントは、すべてのモデルに適用されるものもあれば、アニメーション化されたモデルにのみ適用されるものもあります。

これらのテクニックを使用すると、モデルのアニメーションとレンダリングのスピードを上げるのに役立ちますが、視覚的な忠実度と達成しようとしているリアルな効果が低下する可能性があります。すべての状況に対して、パフォーマンスの向上と視覚的なリアリズムの完璧なバランスを生み出すことができる 1 つの答えはありません。キャラクターやシーンの複雑さと必要とする全体的な見た目やリアリズムに応じて、完璧なバランスを見つける必要があります。

ポリゴン数を最小にする

使用するポリゴンの数は、必要なビジュアル品質とターゲットとするプラットフォームによって異なります。以下 2 つの競合する事実は等しく当てはまります。

  • メッシュで使用するポリゴンが少ないほど、アプリケーションの実行が速くなります。これは、すべての頂点、エッジ、面が計算リソースを必要とするためです。
  • メッシュのポリゴン数が多いほど、より細かく有機的なゲームオブジェクトの外観が得られます。なぜなら、ポリゴンが小さいほど形状をより良く制御できるためです。

また、リソースのレンダリングに関して他に何が競合しているかを検討してみましょう。画面に同時に多くのゲームオブジェクトや Terrain (地形) オブジェクトがある場合は、メッシュごとのポリゴン数を減らすことを検討してください。

マテリアルの数をできるだけ少なくする

各モデルに使用する マテリアル の数は、できるだけ少なくしてください。1 つのキャラクターに複数のマテリアルを使用するのは、さまざまなパーツに異なるシェーダーを使用する必要がある場合のみにしてください。例えば、キャラクターモデルの目に特殊なシェーダーを使用する場合などです。

1 つのスキンメッシュレンダラーを使用する

アニメーション化されたキャラクターモデルについては、キャラクターごとに Skinned Mesh Renderer を 1 つ使用します。Unity のアニメーションシステムは、可視性のカリングとバウンディングボリュームの更新を使ってアニメーションを最適化します。これらの最適化は、1 つのモデルに Animation コンポーネント と Skinned Mesh Renderer を 1 つずつ使う場合にのみ有効になります。

1 つのメッシュの代わりに 2 つのスキンメッシュを使用すると、モデルのレンダリング時間が約 2 倍になり、複数のメッシュを使用することに実用的なメリットはほとんどありません。

ボーンの数をできるだけ少なくする

一般に、使用するボーンの数が少ないほど、パフォーマンスは向上します。ただし、多くのボーンを持つキャラクターモデルを作成する必要がある場合があります。例えば、多くのカスタマイズ可能なアタッチメントが必要な場合などです。これらの余分のボーンはビルドのサイズを増加させ、余分のボーンが増えるごとに関連する処理コストを発生させる可能性があります。例えば、すでに 30 のボーンがあるリグに 15 の追加ボーンを加えると、Generic モードで解決するのに 50% より多くの操作が必要になります。それにより、解決に必要な時間に影響が出ます。

GenericHumanoid タイプには追加のボーンがあることに注意してください。追加ボーンを使用してアニメーションを再生しない場合、処理コストはごくわずかです。添付ファイルが存在しないか非表示の場合、このコストはさらに低くなります。

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

Unity がアニメーションをインポートするとき、モデルのインバースキネマティクス (IK) ノードをフォワードキネマティクス (FK) にベイクするため、Unity は IK ノードをまったく必要としません。ただし、それらがモデルに残っている場合は、アニメーションには影響しませんが計算には加えられます。Unity または 3D モデリングアプリケーションで、重複する IK ノードを削除できます。IK ノードの削除を容易にするために、モデリング中は IK と FK の階層を分けておきます。

エクスポート用モデルファイルの準備
アニメーション用モデルの作成