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

![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653855/e99856a8-2820-da98-9b78-0f4fa393203e.png)

##一、サイズが大きすぎるテクスチャ――97％

 
このルールは、指定された領域のすべてのテクスチャ、つまりすべての画像形式のアセットをスキャンします。
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653855/17d9f471-0398-b671-62c0-49087b90b3a4.png)


開発中によくあったテクスチャサイズの問題は、一般的に次のようなことがあります。
１、すごく大きなテクスチャでも、実際に使用され、再利用されたのはごく一部かもしれません。下図に示したような場合、キャラクターのみが必要となる場合、プロジェクトにとっては、メモリの無駄になってしまいます。
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653855/65b0ff55-8bb4-c84e-0889-747fc44184f0.png)


 
2、テクスチャの使用に関しては、実際の表示効果を配慮しません。1024＊1024テクスチャの表示効果は、512＊512よりあまり改善されない場合があります。いささか表示効果をあげるために、4倍ほどのメモリがかかるので、実際のニーズに合わせて慎重に検討する必要があります。
![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653855/a975e6b4-c1bf-07b2-e7c1-bd99cc3c44d1.png)


上図に示したように、視覚効果のわずかな違いを追求するだけであって、4倍ほどのメモリ使用量になってしまいます。
 
３、テクスチャサイズは、メモリ使用量だけでなく、ロード時間にも影響します。前の記事では、同じモデルで同じフォーマット・異なる解像度のテクスチャの読み込み効率を比較しました。詳細については、ここをクリックしてください。
![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653855/3aea2195-52d7-4da5-875e-ec9a87c82215.png)


結論：テクスチャアセットの解像度は、読み込みパフォーマンスに大きな影響を与えます。解像度が高いほど、読み込みに時間がかかります。デバイスのパフォーマンスが悪いほど、時間の違いがはっきりします。
 
プロジェクトにとっては、単一のテクスチャサイズの影響はわずかに見えるかもしれませんが、これらのメモリと読み込み時間が蓄積されると、最終的にプロジェクト全体のパフォーマンスに影響を与えます。
 
このルール検出は柔軟で変更可能であることに注意してください。より深刻なプロジェクトでは、画質の精度が確かに要求されるため、しきい値をカスタマイズしたり、ルールをカスタマイズして判断ルールを改善したりして、よりプロジェクトの実際のニーズに近づけることができます。ここをクリックして詳細をご覧ください。
 
##二、パッチ数が多すぎるメッシュ――95％

ここには、パッチ数とメッシュという2つの概念と関連しています。
 
Unityでは、オブジェクトは複数のメッシュ面で構成され、各メッシュ面はいくつかの三角形のパッチからなっています。三角形のパッチは、最も基本的な「点線面」で構成されます。
 
パッチ数は、主として、全体的な表示効果の品質を決定します。パッチ数が少ないメッシュでは「理解のみ」しか達成できない場合がありますが、パッチの数が多いメッシュでは「WYSIWYG」を達成できることがよくあります。
![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653855/d2b169d5-3040-62be-0a0a-f2c8d55998ba.png)


 
左は「トゥームレイダー1」ゲーム中のララで、右は「トゥームレイダー：シャドウ」の公式プロモーションビデオのイメージです。
 
これは、ララの初期・新三部作のイメージとの比較です。別の見方をすれば、キャラクターイメージの変化は、パッチ数が表示効果に与える影響を反映しています。
 
ただし、実際のプロジェクト開発では、三角形のパッチ数は実際には「両刃の剣」であることがわかります。三角形のパッチの数が多いと、非常に優れた表示効果が得られますが、三角形のパッチの数が多すぎると、プロジェクトのメモリ使用量と読み込み時間、およびレンダリングのパフォーマンスコストに無視できない圧力を与えてしまいます。
 
パッチ数に影響を与える多くの要因があります：
 
1、設計レベルによって引き起こされる冗長パッチの数が多すぎると、メモリの限られたスペースを継続的に占有し、ロード時間が長くなります。

![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653855/974875ba-b353-1710-1417-d77e18ee37db.png)

 
同じゲームのさまざまなステージ、または同じタイプのさまざまなゲームでは、同じ目的でメッシュを設計するときに、使用されるパッチ数の違いは桁レベルになるかもしれません。
 
2、プロジェクトでのオブジェクトの実際のアプリケーションは考慮されません。たとえば、離れた背景として使用されるオブジェクトは、近景デザインの要件に従ってメッシュ内で多数の三角形のパッチを使用すると、パッチの数が増え、メモリと読み込みにさらに圧力がかかります。
 
実際のプロジェクト開発では、より良い表示効果を追求するためにメッシュを設計するために多数のパッチが使用されることがありますが、結果として生じるメモリ、ロード、およびレンダリングのパフォーマンスの消費は、表示効果の改善をはるかに上回ります。これは損失になる可能性があります。
 
##三、無地のテクスチャ――92％
![8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653855/a3e2c2ca-bd4a-d176-3d47-3d753cf4bff4.png)



プロジェクトで単一の単色が必要な場合は、Shaderに直接設定して、欲しい効果を得ることができます。実際の運用では、無地のテクスチャが存在する必要はなく、この部分に属するメモリ使用量と計算時間を直接節約できます。
たとえば、オブジェクトに純粋な赤を追加するには、Shaderで次の設定を直接設定して、対応する効果を実現します。
![9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653855/f60e96e0-7f68-3371-d866-a06336c23369.png)

---
UWA Technologyは、モバイル/VRなど様々なゲーム開発者向け、**パフォーマンス分析**と**最適化ソリューション**及び**コンサルティングサービス**を提供している会社でございます。

今なら、UWA GOTローカルツールが**15日間に無償試用**できます！！
よければ、ぜひ！

UWA公式サイト：https://jp.uwa4d.com
UWA GOT OnlineレポートDemo：https://jp.uwa4d.com/u/got/demo.html
UWA公式ブログ：https://blog.jp.uwa4d.com