Water システム には、デバッグ目的やビジュアライゼーションの提供、プロジェクトのスケーラビリティ オプションの設定のための関連情報をレベル ビューポートに表示するのに役立つ独自のコマンドが含まれます。
Water レベルの統計情報
エディタでの作業中、バッククォート (`) キーを使用して **コンソール** を開き、いずれかの統計コマンドを入力すると、現在ロードしているレベルの Water システムに関する情報を表示することができます。
Stat Water
コマンド「stat water
」を使用して、現在のシーンで使用されている水に関連する関数について CPU 統計の表示を切り替えます。
統計情報名 |
説明 |
---|---|
IsUnderwater Test |
関数のコスト。フレームごとに呼ばれる回数とコスト (最大 / 平均) をテストします。このテスト関数は、水中のポスト プロセスをアクティブにするかどうかを検出するために使用されます。 |
WaterBody_ComputeWaterInfo |
水に関連する情報を計算するためにエンジン全体で使用される関数のコスト。ゲームプレイ システム、物理、その他のシステムによって多くのクエリが実行される場合、フレームに非常に多くの時間が追加される可能性があるため、フレーム時間をチェックするのに役立ちます。 |
WaterBody_ComputeWaterDepth |
水深に関するデータを計算する |
WaterBody_ComputeWaveHeight |
水位に関するデータを計算する |
WaterBody_ComputeLandscapeDepth |
ランドスケープの深さに関するデータを計算する |
WaterBody_ComputeWaterDepth
、WaterBody_ComputeWaterHeight
、および WaterBody_ComputeLandscapeDepth
の統計は実行できる情報を提供しません。これらは WaterBody_ComputeWaterInfo
統計の一部であり、いくつかはその機能で最もコストのかかる部分になります。代わりに、Unreal Insights を使用してシーンをプロファイルすると、何が起きているのかをより理解することができます。
Stat WaterMesh
コマンド「stat watermesh
」は、ウォーター メッシュと水面のレンダリング に関する情報を表示します。レベルで使用されている水のさまざまな部分について設定や割り当てを調整することにより、この表示の統計に従って実行することができます。
統計情報名 |
説明 |
---|---|
Vertices Drawn |
現在のビューのすべての Water Body に描画されている頂点の数を表示します。 |
Tiles Drawn |
|
Draw Calls |
Number of Drawn Materials の数値は Tiles Drawn |
Number of Drawn Materials |
このフレームに描画されている異なる水のマテリアルの数。たとえば、異なる水のマテリアルを持つさまざまな Water Body を使用している場合、フレームごとに描画されるマテリアルの数が多くなります。対象的に、すべての Water Body が同じマテリアルを共有している場合、描画されるマテリアルが少なくなるため、フレームごとのドローコールの数が減少します。 |
デバッグ コンソール コマンド
次のコンソール コマンドは、レベルにある Water システムをデバッグする際に役立ちます。
変数名 |
説明 |
デフォルト値 |
---|---|---|
|
Water グリッドの交差と Water メッシュ タイルの生成に使用されるジオメトリを表示します。 |
0 |
|
すべてのフレームで Water タイル メッシュ全体を強制的にリビルドします。 |
0 |
|
Water メッシュをレンダリングするかしないかを設定します。これはレンダリングと Water メッシュ タイル生成の両方に影響します。 |
0 |
|
ワイヤーフレームのレンダリング時に、Water タイル メッシュをディスプレイスメントなしに表示します。 |
0 |
|
シーン プロキシ内からのすべての水のレンダリングをオフにするかどうかを設定します。 |
1 |
|
レベルの高さが 0 のカメラ位置の周囲に、同心円状に詳細度を表示します。 |
0 |
|
Water メッシュ タイルのタイル境界を デフォルトでは、タイルは Water Body タイプまたはトランジション タイプによって色付けされます。
|
0 |
|
|
1 |
|
水のワイヤーフレーム レンダリングを強制します。 |
0 |
|
「1」に設定すると、水中のポスト プロセスでどの Water Body が現在選択されているかを示します。「2」に設定すると、カメラ位置で実行される Water Data Query に関する追加情報が提供されます。これは、Water Data Query のデバッグに役立ちます。 |
0 |
|
値が「0」以上の場合、波に使用される時間を強制します。 |
-1 |
|
波の時間を停止します。 |
0 |
|
クエリ位置の下にテレインが見つからない場合に報告する海の深さ。この深度値は、「0」以下に設定されていると使用されません。 |
3000 |
|
水の相互作用のデバッグ描画を有効にします。 |
0 |
|
次の N フレームでの水の情報テクスチャの再生成を強制します。マイナスの値は、フレームごとの更新を強制します。 |
0 |
タイル境界と色
コンソール コマンド「r.Water.WaterMesh.ShowTileBounds 1
」を使用して、現在レベルで使用されているさまざまなタイプの Water メッシュ タイルの色付けされたボックスを表示します。
タイル境界の表示方法に、次のいずれかを選択します。
「0」は無効です。
「1」は Water Body タイプによって決まります。
「2」は詳細度によって決まります。
「3」は密度インデックスによって決まります。
Water Body およびトランジション タイプによって色付けされている Water タイル境界を表示しているサンプル シーン。
デフォルトでは、タイルは Water Body タイプと他の Water Body 間でのトランジションによって色付けされます。
赤: 川
緑:** 湖
青:** 海
黄色:** 川から湖へのトランジション
紫: 川から海へのトランジション
アクティブな水中のポストプロセスを視覚化する
コンソール コマンド「r.Water.VisualizeActiveUnderwaterPostProcess
」を使用して、現在カメラによってオーバーラップしている水中のポスト プロセスに関する情報をレベル ビューポートに表示します。
「1」に設定すると、現在使用されている水中のポスト プロセスに関する基本のデバッグ情報が提供されます。
「2」に設定すると、カメラ位置で実行される Water Data Query に関する追加情報が表示されます。
スケーラビリティ コンソール コマンド
次のコンソール コマンドは、レベルとプロジェクトにある Water システムのスケーラビリティ オプションの設定に役立ちます。
変数名 |
説明 |
デフォルト値 |
---|---|---|
|
値を各 Water メッシュ コンポーネントの LOD 数に追加します。マイナスの値にすると品質が低下し (Water メッシュの密度が下がります)、値を大きくするほど品質が向上します (Water メッシュの密度が上がります)。 |
0 |
|
値を各 Water メッシュ コンポーネントのテッセレーション係数に追加します。値をマイナスにすると、全体的な密度 (解像度) または頂点グリッドが低下します。値を大きくするほど、Water メッシュ コンポーネントの密度 (解像度) が高くなります。 |
0 |
|
異なる詳細度間のトランジションでスムーズな LOD モーフィングを使用するかどうかを設定します。これを無効にすると LOD レベル間でポッピングが発生することがありますが、頂点シェーダーの計算がスキップされ、シーン内の水による負荷が小さくなります。 |
1 |
|
値を各 Water メッシュ コンポーネントの LOD スケールに追加します。値をマイナスにすると全体的な密度 (解像度) または頂点グリッドが低下し、LOD が小さくなります。値を大きくするほど Water メッシュ コンポーネントの密度 (解像度) が高くなり、LOD は大きくなります。許可されている最小値は「-0.5」です。これにより、可能な限り内部 LOD を小さく最適化することができます。 |
0 |
|
過去の最大値に合わせてステージング インスタンス データ メモリを事前にアロケートします。 |
|
これにより、配列を大きくする必要がある場合のオーバーヘッドを削減できますが、使用するメモリは増える可能性があります。 |
0 |
|
|
水中のポスト プロセスを有効にするかどうかを制御します。カメラがサーフェスの下に行かないようにする場合、これを無効にする必要があります。 |
1 |
|
浅瀬の流体シミュレーションを有効にするかどうかを制御します。 |
1 |
|
一度に流体シミュレーションに登録する動的な力の最大数。 |
6 |
|
一度に流体シミュレーションに登録する衝撃力の最大数。 |
3 |
|
矩形の浅瀬の流体シミュレーション レンダー ターゲットのサイズ。有効なディメンションは「サイズ x サイズ」です。 |
1024 |
|
レイ トレーシング エフェクトに水を含めます。 |
0 |
|
Water スプライン形状をポリゴンに変換するときのサンプル セグメントとスプライン間の最大距離。距離が短くなると、頂点数が増加して物理形状はより正確になり、Water メッシュ タイルはより一致するようになりますが、計算コストも増加します。 |
50 |
Water Body Spline Resampling Max Distance
Lake Water Body コリジョン コンポーネント (および Water メッシュ タイルの生成) は、スプライン評価に基づいています。Lake と Ocean の両方の Water Body スプラインは、変換プロセスによってポリゴンに変換され、どの Water メッシュタイルをカバーするのか確認するために処理されます。ポリゴン化は、サンプリングされたスプライン セグメント間の距離が元のスプラインから離れすぎている場合、スプラインが再サンプリングされるイテレートなプロセスです。これにより、曲率の高いセクションのポイント数が多くなり、より直線的なセクションのポイント数は少なくなります。
コンソール変数 r.Water.WaterSplineResampleMaxDistance
を使用して距離を調整します。デフォルトでは、「50 cm」が使用されます。値が大きいほど頂点は少なくなり、Lake の スプラインの形状に一致するコリジョン コンポーネントが少なくなります。小さな値を使用する場合、より多くの頂点が作成されます。
生成されたタイル ジオメトリを表示するように「r.Water.WaterMesh.ShowTileGenerationGeometry 1
」を設定します。
画像をクリックすると拡大表示されます。
フォートナイトを開発し、水のある大きなワールドを使用した経験から、通常サイズの湖を正しく近似する中間の適切な数値として「50」を推奨します。距離をあまりにも短く設定すると、物理形状が十分に一致せず、これにより一部の Water タイルが失われることがあります。
このコンソール変数を調整すると、結果を確認するには、スプライン ポイントを少し動かすなど、Water スプラインに何か変更を加える必要があります。