ゲームの最適化

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。


ゲームの最適化は、メモリとグラフィックス処理ユニット(GPU)の制限があるデバイスでフレームレートとパフォーマンスレベルを高く保つために、アセットとスタジオ設定を構成するプロセスです。このプロセスにより、ほぼすべてのユーザーが環境を表示しているときに同じゲームプレイと視覚体験を得ることができます。

環境アート - 最適化 .rbxlファイルを参照として、この環境アートカリキュラムのセクションでは、最適なグラフィックスのためにプレースファイルをレビューし構成する方法を示します。具体的には、以下のガイダンスが含まれます。

  • 各アセットの物理およびレンダリングパラメータをレビューして、メモリとエンジンのパフォーマンスを維持していることを確認します。
  • Robloxエンジンがアセットをレンダリングするために実行しなければならない計算量を不必要に増加させる余分なテクスチャ、ジオメトリ、または透明度をカリングします。

Robloxエンジンはほとんどの最適化作業を自動的に処理しますが、マイクロプロファイラーを利用して、特定のフレームをレンダリングするのにどれだけ時間がかかるかを確認することで、これらの最適化作業を支援できます。この情報を使用して、パラメータや余分なコンテンツに関して注意が必要なアセットについて情報に基づいた決定を下すことができます。シーン分析は、リソース使用状況を確認するためのもう一つの強力なツールです。

物理およびレンダーパラメータのレビュー

アセットライブラリの構築では、物理およびレンダリングパラメータを設定することが、メモリとGPUの制限があるデバイスでアセットの高い視覚品質を維持するためにどれほど重要であるかを学びました。しかし、環境を構築する際には、ゲーム内でのアセットの文脈的な位置や目的に応じてこれらのパラメータを調整することが一般的です。たとえば、最終サンプルのレーザータグ環境の多くの植生は、パフォーマンスコストにもかかわらず影を落としますが、これは環境のリアリズムを高めるためです。

物理およびレンダリングパラメータを変更する際には、開発プロセスの終わり近くにすべてのパラメータをレビューして、審美的目標とゲームプレイ要件を維持しながら最適化できるパラメータを確認することが有用です。たとえば、ゲームプレイエリアの端に近い植生に対してBasePart.CastShadowプロパティを無効にすることで、パフォーマンスを節約し、ユーザーのゲームプレイや視覚体験に干渉しないようにできます。

不要なコンテンツのカリング

物理およびレンダリングパラメータをレビューした後、ゲームプレイに影響を与えない不要なコンテンツをゲームからカリングできるかどうか、アセット自体をレビューできます。たとえば、異なるアセットIDを持つ同一のテクスチャ、頂点が多い複雑なジオメトリ、またはカメラビューに応じて重なり合う透明度などです。以下のセクションでは、このコンテンツをレビューする方法と、それが最適化作業にどのように役立つかを詳述します。

重複テクスチャの削除

アセットの開発と環境の構築を進める中で、審美的目標やゲームプレイ要件に必要なものを見つけるためにメッシュやテクスチャを反復することは一般的です。アセットをパッケージに変換しない場合、これらの反復をスタジオにインポートすると、Robloxエンジンが環境内でアセットをレンダリングするために参照する必要があるユニークなアセットIDが作成されます。

たとえば、以下の2つの消火栓メッシュをスタジオに別々にインポートすると、見た目が全く同じであっても、RobloxエンジンはそれらをユニークなアセットIDを持つ2つのオブジェクトとして扱います。エンジンが必要とするユニークな呼び出しが多いほど、メモリとパフォーマンスに与える影響が大きくなります。このため、アセットを複数回再利用する場合は、各インスタンスが同じアセットIDを使用することを確認することが重要です。そうすれば、エンジンはそれを繰り返しレンダリングするために単一の呼び出しを行うだけで済みます。

ユニークなアセットIDを持つ全く同じ消火栓が2つ。視覚的な違いはありませんが、重複したアセットIDはパフォーマンスに悪影響を与えます。

ジオメトリの最適化

デバイス全体でフレームレートを向上させるためにさらに調整が必要な場合は、ジオメトリを最適化できる場所を確認することが有用です。具体的には、以下の方法があります。

  • メッシュのグループを単一のアセットに統合する。
  • ジオメトリの複雑さを持つアセットのポリゴン数を減少させる。

最初の技術を拡張すると、ゲーム内のすべてのユニークなアセットは、Robloxエンジンがアセットを正しくレンダリングするためにGPUに情報を呼び出す信号を送るドローコールを表します。ユニークなアセットが多いほど、システムが行う必要のあるドローコールが増えます。このため、ゲーム内の大きなコンポーネントを構成するメッシュのグループがある場合は、サードパーティのモデリングツールでそれらをまとめて、複数のドローコールの必要性を減らすことができます。

この点を示すために、最終サンプルのレーザータグ環境では、建物の外にある大きなタワーを作成するために複数のパーツとメッシュを親子関係にしています。これらの個々のコンポーネントをすべて統合すると、単一のアセットにしてアセットIDを1つに減らし、ドローコールの数を8から1に減少させることができます。ただし、この技術を使用すると、各コンポーネントの視覚的および物理的特性(位置や素材など)を自由に変更する能力が失われることに注意が必要です。

たとえば、以下の画像では、左側のタワーはModelオブジェクトの下に複数のアセットを含んでおり、右側のタワーは単一のアセットです。左側のタワーの各コンポーネントを個別に変更できますが、右側のタワーを変更すると、たとえば色を黒に変更すると、オブジェクト全体に影響します。このため、視覚的目標に影響を与えずにパフォーマンスを向上させる場所がわかっている開発の終わり近くにのみ、この技術を考慮することが重要です。

2つのタワーの正面ビュー。左側のタワーは単一のモデルの下に複数のアセットを含んでおり、右側のタワーはすべてのテクスチャオブジェクトを削除することでアセットの数を減少させています。

2つ目の技術を拡張すると、ジオメトリの複雑さを持つアセットはポリゴンが多く、エンジンがその視覚的外観をレンダリングする際に計算する必要がある頂点が多くなります。これは、複雑さと忠実度が低いアセットはレンダリングコストが低く、パフォーマンスとメモリの両方が改善されることを意味します。

レイヤー透明度の削除

環境にリアリズムを提供するために、最終サンプルのレーザータグ環境には、屋外スペースの植生や未来的な看板やプランターの手すりのガラスなど、さまざまな透明度のメッシュが含まれています。カメラが前後にある複数の半透明オブジェクトを表示すると、Robloxエンジンは透明な領域を考慮して重なり合うピクセルを複数回レンダリングする必要があります。このプロセスは高透明度オーバードローと呼ばれ、パフォーマンスに大きな影響を与えます。

たとえば、サンプル環境のプランターの次のビューを考えてみてください。エンジンは、カメラに最も近い植物から屋外エリアに最も近い植物までの葉の透明な領域を層状にレンダリングする必要があり、数十万のオーバードローされたピクセルに相当します。この影響を軽減するために、環境内のすべての半透明オブジェクトのレイアウトをレビューし、特に画面の大きな領域で重なり合う層が多すぎないことを確認することが重要です。

複数の植物が葉の間に透明度を持つプランターに向かうRthroアバター。
複数の植物が葉の間に透明度を持つプランターに向かうRthroアバターの側面ビュー。オーバードローの例が強調表示され、環境内のオーバードローの場所が示されています。

すべてのコンテンツをレビューして、デバイス全体で最適化されていることを確認したら、ゲームは公開の準備が整いました!

©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。