モバイル、コンソール、PCゲームを最適化するための 2022 LTS ベストプラクティスガイドを入手する

時とともに、スマホがより大きく(あるいは小さく)なったり、パソコンがよりパワフルになったり、さまざまなビジュアルスタイルが流行ったり廃れたりすることがあります。しかし、ゲーム開発においていつまでも変わらないことが一つあります。ターゲットハードウェアに合わせてゲームを最適化する必要があるということです。
嬉しいことに、Unity の最適化ガイドの最新版が公開されました。「Optimize your game performance for mobile」と「Optimize your game performance for consoles and PC」には Unity 2022 LTS の最新情報が含まれており、プロジェクトを最適化するための有用なヒント、戦略、回避策が記載されています。

これらのガイドは、Accelerate Solutions チームの深い知識に基づいて作成されています。Unity のもっとも経験豊富なソフトウェアエンジニアで構成されるこのチームは、ゲームプロジェクトを深く掘り下げ、スピード、安定性、効率性を高めるためにパフォーマンスを最適化できるポイントを特定して、Unity の多くの顧客をサポートしています。
注意:Unity 2020 LTS で開発を行っている場合は、引き続き該当エンジン向けのガイドをご利用いただけます。技術およびクリエイティブの分野におけるすべての上級者向け e ブックおよび記事は、Unity ベストプラクティスハブからご覧いただけます。

各ガイドには、プロファイリングツール、プログラミングおよびコードアーキテクチャ、アセットの扱い方、レンダーパイプライン、UI などにおける、実用的なヒントが盛り込まれています。追加ドキュメントやその他のリソースへのリンクも多く追加または更新されているため、さらに知見を深めることもできます。
ここでは、ガイドで取り扱っているトピックの一部を紹介します。
ボトルネックの特定:パフォーマンス最適化の基本的な手法を理解し、Unity Profiler と Profile Analyzer を使用する方法。モバイルデバイスの温度を考慮し、特定のフレームバジェット内で作業を行い、プロジェクトが CPU バウンドか GPU バウンドかどうかを確認する方法。
メモリ管理:Memory Profiler を使い、ガベージコレクションの労力を減らし、インクリメンタルガベージコレクターを使う方法。
プログラミングおよびコードアーキテクチャ:高コストのコードを最小化する方法、文字列パラメーターの代わりにハッシュ値を使うべき理由、適切なデータ構造の選択、パフォーマンス改善のための ScriptableObject の使い方など。

プロジェクトの構成:不要なプレイヤー設定や品質設定、物理演算を無効化する方法。大きなヒエラルキーを避け、Vsync を活用する方法。
アセット:テクスチャを正しくインポートして圧縮する方法、ポリゴン数を確認する方法、AssetPostprocessor や Unity DataTools を使用してインポート設定を自動化する方法、Addressable Asset System を活用する方法。
グラフィックスと GPU の最適化(モバイル):ドローコールバッチ処理を使用するタイミング、ダイナミックライト多用の回避、ライトレイヤーの効果的な使い方、オクルージョンカリングを使用して隠れたオブジェクトを除去する方法、モバイルネイティブ解像度の回避、オーバードローとアルファブレンディングの最小化、ポストプロセスエフェクトへの対処など。
グラフィックス(コンソール/ PC):レンダーパイプラインと Shader Graph の最適化、ビルトインシェーダー設定の削除、シェーダーバリアントのストリッピング、リフレクションプローブ、シャドウ、シェーダーエフェクトの扱い方。
GPU 最適化(コンソール/ PC):GPU のベンチマーク、フィルレートの最適化とオーバードローの削減、描画順とレンダーキューの確認、バッチ数の削減、グラフィックスジョブの有効化、テッセレーションシェーダーの使用の回避、ジオメトリシェーダーのコンピュートシェーダーへの置き換えの方法。

ユーザーインターフェイス:UGUI と UI Toolkit の違いについて。キャンバスの分割、見えない UI 要素の非表示、GraphicRaycaster の制限、Raycast Target の無効化の方法。レイアウトグループ、大きなリストビューやグリッドビュー、複数のオーバーレイ要素を避けるべき理由について。
物理演算:コライダーの簡略化、シミュレーション頻度の調整、MeshColliders の CookingOptions の変更、大規模なシーンでのボックスプルーニングの使用、ソルバーのイテレーションの変更、自動トランスフォーム同期の無効化、衝突コールバックの再利用、静的コライダーの移動、非割り当てクエリの使用、レイキャスティングのバッチクエリ、Physics Debuggerでの視覚化。
オーディオ:モノラルとステレオの比較、圧縮のテクニック、ロードタイプおよびミュートされた AudioSource をメモリからアンロードする技術、ロスレスファイルをソースとして使用する方法、AudioClips を減らして AudioMixer を最適化する方法。


モバイル、PC、コンソールゲームの最適化は、ゲーム開発サイクル全体を支えるプロセスです。前述のセクションの多くのポイントが示すように、これらの e ブックは、スクリプティング、レンダリング、グラフィックス、プロファイリングなど、ゲームのあらゆる部分に関する幅広いヒントを提供しています。
これらの関連トピックに関する e ブックと並行して、最適化ガイドも是非ご参照ください。
- Ultimate guide to profiling Unity games
- 上級 Unity クリエイター向けのユニバーサルレンダーパイプライン(URP)
- Version control and project organization best practices for game developers
- Level up your programming with game programming patterns
- HD レンダーパイプラインにおけるライティングと環境
- Create modular game architecture in Unity with ScriptableObjects
モバイルおよびコンソール/ PC ゲーム用の、最新の最適化ガイドをどうぞお楽しみください。
すべての e ブック(および多くのハウツー記事)は、Unity ベストプラクティスハブまたは Unity ドキュメントの高度なベストプラクティスガイドからアクセスできます。