Version: 2020.2
言語: 日本語
Unity の外部でアセットを作成
ヒューマノイドアセットのエクスポートの準備

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

最適なレンダリングとアニメーションスピードのためにキャラクターモデルを設計するには以下を行います。

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

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

各キャラクターに 1 つの スキンメッシュレンダラー を使用します。 Unity は、可視性のカリングとバウンディングボリュームの更新を使ってアニメーションを最適化し、そして 1 つの Animation コンポーネント と 、 1 つの スキンメッシュレンダラーを合わせて使用する場合にのみ、これらの最適化をアクティブにします。 1 つのメッシュの代わりに 2 つのスキンメッシュを使用すると、モデルのレンダリング時間がおよそ 2 倍になる可能性があります。また、複数のメッシュを使用しても、実用上の利点はほとんどありません。

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

各メッシュの マテリアル 数をできるだけ少なくします。目のための特別なシェーダーなど、異なるパーツに異なるシェーダーを使用する必要がある場合にのみ、キャラクターに複数のマテリアルを設定します。ただし、大抵の場合、キャラクターごとに 2 つまたは 3 つのマテリアルで十分です。

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

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

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

パフォーマンス上の理由から、頂点ごとに最大 4 つの影響を持つリニアブレンドの スキニング を使用します。ただし、一部の 3D モデリングアプリケーションでは、4 つを超えるボーンが頂点に影響を与えることができるため、パフォーマンスコストとより高度な制御を比較検討する必要があります。詳細は、スキンメッシュのインポート を参照してください。

ポリゴン数を最小にする

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

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

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

デスクトッププラットフォームは、一般的にモバイルプラットフォームよりも多くの複雑さを処理することができますが、モバイルプラットフォーム上でのパフォーマンスは、デバイス自体の品質と能力に応じてかなり異なります。

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

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

Unity の外部でアセットを作成
ヒューマノイドアセットのエクスポートの準備