UDN
Search public documentation:

VFXOptimizationSplitScreenJP
English Translation
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 ホーム > パーティクルとエフェクト > パーティクルシステム > 「Unreal Engine 3」における VFX の最適化 > VFX の最適化 : 分割スクリーン
UE3 ホーム > FX アーティスト > 「Unreal Engine 3」における VFX の最適化 > VFX の最適化 : 分割スクリーン

VFX の最適化 : 分割スクリーン


詳細モードの概観


「Unreal Engine 3」では、3 つの詳細モード (detail modes) を切り替えることができます。モードは、Low (低)、Medium (中)、High (高) の 3 つです。エフェクトが関係する場合は、詳細モードが Medium または High となります。これが主に使用されるのは、描画コールがパフォーマンスを低下させるレベルに達する分割スクリーンの場合においてです。第一の目的は、カリングまたはエミッションレートを下げることによって、Medium 詳細モードで描画コールを減らすことにあります。

Cascade 内でエミッタ上の [Medium Detail Spawn Rate Scale] (Medium 詳細度スポーンレートスケール) 欄にある設定項目を変更することによって、エミッションレートを下げることができます (Medium 詳細モードでゲームが稼働している場合)。これらの設定項目を使用すると、必要に応じて、オーバードローと描画コールを減らすことができます。分割スクリーンの場合は、描画コールの削減が鍵となります。

描画コールはどのように測定するか?

[View] (ビュー) ドロップダウンメニューまたは cascadedetail.jpg のアイコンを使用することによって、Cascade 内で Medium 詳細モードを表示することができます。エディタ内でビューモードを設定するには、[View] メニュー /Detail mode (詳細モード) の設定項目を使用します。Medium に変更して Medium Detail Spawn Rate Scale (Medium 詳細度スポーンレートスケール) を見ると、現在アクティブになっている詳細モードが赤い文字で表示されているのが分かります。Medium 詳細モードは、このモードのためにエフェクトを調整しているときに限り使用することが非常に重要となります。プロジェクトのデフォルト値が Medium 詳細モードに設定されていない場合は、ゲーム内で変更をデフォルトで見ることはできません。

Medium Detail Spawn Rate Scale (Medium 詳細度スポーンレートスケール) は乗数です。0-1 の範囲にとどめることによって、適切な値が設定されます。基本的には、0.5 にセットすると、パーティクルエミッションの数が半分となり、値を 1 にすると、現在のエミッションレートが使われます。この値はクランプされているため、1 より大きくなることはありません。

アンビエントエフェクトを配置している場合は、分割スクリーンについて検討してみると良いでしょう。エフェクトが分割スクリーンに必要がなく、かつ、多数の描画コールをともなう場合は、エフェクトがメッシュエミッタからのみ構成されているのであれば、エミッションの数を減らすことから始めるのが良いかもしれません。

パーティクルのための描画コールは、マテリアルによって決まり、エミッションの数にかかわらず一定のコストがかかるということは覚えておくべきです。たとえば、エミッションレートが 30 であるエミッタ上に 1 パスのマテリアルがあるならば、コストは 1 描画コールにすぎません。

コマンド


描画コールのコストを判定するには、便利なコマンドがいくつかそろっています。

PIE またはゲーム内で SplitScreen (分割スクリーン) モードに切り替えるには、 debugCreatePlayer1 コマンドを使用します。

コントローラーが 1 つだけの場合は、 ssswapControllers コマンドを使用して、プレイヤー間をジャンプできます。

分割スクリーンのオーバーレイを有効にするには、 STAT SPLITSCREEN コマンドを使用します。

パーティクルエフェクトについては、[Particle Draw Calls] (パーティクル描画コール) のセクションを参照して、[MeshParticles] (メッシュパーティクル) のセクションに注意します。このセクションは、MediumDetailSpawnRateScale (Medium 詳細度スポーンレートスケール) を設定することによって素早く非常に役立つ部分です。

任意のエリアにおける描画コールを調べるには、 DumpParticleFrameRenderingStats (パーティクルフレームレンダリング統計をダンプする) コマンドを使用します。

このコマンドは、アクションが起こった部分のスクリーンショットとスプレッドシートをダンプします。 STAT SPLITSCREEN (統計分割スクリーン) コマンドが有効になっている場合は、スクリーンショットが撮られた際の描画コールの読み出し情報が表示されます。このスクリーンショットの中身は、データがダンプされた後で撮られているため、概算値であり、ビジュアル的参考資料と言うべきものです。

スプレッドシートの統計を見るのは簡単です。スプレッドシートの形式は、次のようになっています。

particlestats.jpg

上記の場合はかなり容易に修正ができます。それと言うのも、多数のメッシュを呼び出し、繰り返しスポーンしているに違いないエフェクトが 1 つあるからです。ただし、主要な原因となっているものが 1 つのエフェクトであり、そのエフェクトの現在のビジュアルを維持したい場合は、やっかいです。選択肢は 1 つしかありません。メッシュをスプライトに変えるのです。

ただし、エミッタが分割スクリーンにとって不要な場合は、 MediumDetailSpawn (Medium 詳細スポーン) レートを 0.00 にセットします。

以下に、適切な解説を付して、スプレッドシートの統計コラムを列挙します。

RenderTime ms
エフェクトをレンダリングするのに要する時間 (ms) を示します。
NumComponents
表示されていてアクティブなパーティクルシステムのインスタンスがいくつあるかを示します。
NumPasses
エミッタによって呼び出されているマテリアルの中にあるパスの数を示します。
NumEmitters
パーティクルシステム内にあるエミッタの数を示します。
NumDraws
パーティクルシステムの全インスタンスのために実行される描画コールの累計を示します。

「Unreal Engine 3」における VFX の最適化 に戻る。