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

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

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

これらの技法を使用すると、モデルのアニメーションやレンダリングを高速化できる可能性がありますが、実現しようとしている視覚的な忠実度やリアルな効果が低下する可能性があることに注意してください。パフォーマンスの向上と視覚的なリアリズムの最適なバランスを生み出すことができるすべての状況に対する単一の答えはありません。キャラクターやシーンの複雑さと、必要とする全体的な見た目やリアリズムに応じて最適なバランスを見つけなければなりません。

ポリゴン数を最小にする

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

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

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

通常、グラフィックハードウェアが処理する必要がある実際の頂点数は、モデリングアプリケーションで表示される頂点数とは一致しないことに注意してください。モデリングアプリケーションは通常、モデルを構成する角の数 (ジオメトリ頂点数) を表示します。ただし、グラフィックスカードでは、レンダリングのためにいくつかの幾何学的頂点を 2 つ以上の論理頂点に分割する必要があります。例えば、複数の法線、UV 座標または頂点色を持つ場合は頂点を分割する必要があります。結果的に、Unity でカウントされる頂点数は 3D アプリケーションで表示される数よりも、常に大きくなります。

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

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

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

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

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

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

一般的に、使用するボーンの数が少ないほど、パフォーマンスが良くなります。ただし、多数のボーンを持つキャラクターモデルを作成することが必要な場合があります。例えば、カスタマイズ可能なアタッチメントが多数必要な場合が該当します。これらの余剰なボーンはビルドのサイズを増加させ、個々の余剰なボーンに関連する処理コストが発生する可能性があります。例えば、すでに 30 個のボーンがあるリグに 15 個のボーンを追加すると、Generic モードで解決するために Unity が実施するオペレーションが 50% 増加するため、解決にかかる時間に影響する可能性があります。

Generic タイプおよび Humanoid タイプには追加のボーンを使用できます。追加のボーンを使用してアニメーションを再生しない場合は、処理コストはごくわずかです。アタッチメントが存在しないか非表示の場合、このコストはさらに低くなります。

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

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

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

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