パフォーマンスに影響を与えるポイントについて【TOP10】

七、精度が高すぎるアニメーションクリップ――86%

Unityのアニメーションクリップには、各フレームにある各アニメーション曲線の重要な情報が含まれていることがわかっています。多くのアニメーションアセットでは、重要な情報が浮動小数点数で高精度に記録されることがよくあります。

 

アニメーションファイルの浮動小数点精度が高い場合、アニメーションクリップのパフォーマンスは一般により良く、より詳細になりますが、メモリに追加のコストが発生します。適切に精度を圧縮したら、表示効果は少し悪くなりますが、アニメーションクリップ数とフレーム数を考慮すると、結果としてメモリは非常に大きく節約できます。

 

精度を3〜4ビットに下げることをお勧めします。UWAの長年の実務経験に基づいて、アニメーションクリップの精度が3〜4ビットの場合、パフォーマンスへの影響を少なくして、メモリコストを効果的に減らすことができます。

 

したがって、UWAはこのルールを使用して、アニメーションの精度が高過ぎるアニメーションクリップを除外し、開発チームが効果とメモリのバランスを検討した後、ターゲットを絞った方法で精度を圧縮または保持します。 UWA Q&Aの記事「アニメーションファイルの浮動小数点精度を下げる方法」を参照してください。

 

八、役に立たないテクスチャサンプルを含むマテリアル――79%

 

開発中に、開発チームは、実際に欲しい表示効果に応じて、マテリアル球に対しShaderの選択や交換を行います。Unity独自のメカニズム設定により、マテリアル球の使用Shaderを切り替えると、前のShaderのテクスチャサンプリング情報が自動的に保存されます。

 

このような処理が無視されると、パッケージが最終的にエクスポートするときに、実際には必要のないテクスチャがパッケージに取り込まれ、メモリの浪費を引き起こします。

 

この検出ルールにより、開発チームは、不要なテクスチャサンプリングを含むすべてのマテリアルを検索し、関連するテクスチャサンプリング情報を削除して、パッケージサイズを縮小し、スペースを節約できます。

 

九、粒子数の上限が30を超えるパーティクルシステムーー79%

パーティクルシステムはUnityプロジェクトで非常に一般的であり、雨、雪、火などのさまざまな動的効果を生成するために使用できます。次の図は、Unityで「生まれた」ばかりのパーティクルシステムです。

 

ルールに示されているパーティクル数の上限は、コンポーネントが同時に持つことができるパーティクルの最大数を指します。

 

パーティクルシステムでは、適切な粒子数は、炎や落ち葉などの特殊効果の表現効果とつながります。パーティクルの数が多すぎると、大量のメモリが使用されるだけでなく、実際の操作中にCPUとGPUの計算にさらに圧力がかかります。

 

UWAエンジニアの経験と業界のビッグデータの統計分析に基づいて、一般には、パーティクルシステムの粒子数の上限は30を超えないと、良い表示効果が得られます

 

このルールにより、開発チームは実際の表示に基づいてパーティクルシステムのパーティクル数に妥当な上限を設定し、特殊効果のレベルを維持することを前提としてメモリとコンピューティングのコストを最適化できます。

 

十、参照テクスチャサイズが256を超えるパーティクルシステム

――78%

 

パーティクルシステムでは、さまざまな特殊効果をあわせルために、テクスチャを参照してパーティクルを「ドレスアップ」します。

単一の粒子の場合、テクスチャサイズの増加は、パーティクル全体のパフォーマンスの向上にとってそれほど顕著ではない場合があります。業界のビッグデータの分析を通じて、UWAは、ほとんどのパーティクルシステムを使用する場合、256×256のテクスチャサイズでほとんどのパフォーマンス要件を満たすことができることを発見しました。

 

このルールにより、「大きな」テクスチャサイズを参照するパーティクルシステムを除外し、表示効果が大幅に変化しないパーティクルシステムを「スリム化」することができます。メモリと計算へのプレッシャーを軽減するだけでなく、これらのより重要なパーティクルシステムのために貴重なパフォーマンススペースを解放することもできます。


UWA公式サイト:https://jp.uwa4d.com

UWA公式ブログ:https://blog.jp.uwa4d.com

UWA公式Q&Aコミュニティ(中国語注意):https://answer.uwa4d.com