Water システム には、デバッグ目的やビジュアライゼーションの提供、プロジェクトのスケーラビリティ オプションの設定のための関連情報をレベル ビューポートに表示するのに役立つ独自のコマンドが含まれます。
Water レベルの統計情報
エディタでの作業中、バッククォート (`) キーを使用して コンソール を開き、いずれかの統計コマンドを入力すると、現在ロードしているレベルの Water システムに関する情報を表示することができます。
Stat Water
コマンド「stat water
」を使用して、現在のシーンで使用されている水に関連する関数について CPU 統計の表示を切り替えます。

統計情報名 | 説明 |
---|---|
IsUnderwater Test | 関数のコスト。フレームごとに呼ばれる回数とコスト (最大 / 平均) をテストします。このテスト関数は、水中のポスト プロセスをアクティブにするかどうかを検出するために使用されます。 |
WaterBody_ComputeWaterInfo | 水に関連する情報を計算するためにエンジン全体で使用される関数のコスト。ゲームプレイ システム、物理、その他のシステムによって多くのクエリが実行される場合、フレームに非常に多くの時間が追加される可能性があるため、フレーム時間をチェックするのに役立ちます。 |
WaterBody_ComputeWaterDepth | 水深に関するデータを計算する WaterBody_ComputeWaterInfo 関数の一部として実行されます。 |
WaterBody_ComputeWaveHeight | 水位に関するデータを計算する WaterBody_ComputeWaterInfo 関数の一部として実行されます。 |
WaterBody_ComputeLandscapeDepth | ランドスケープの深さに関するデータを計算する WaterBody_ComputeWaterInfo 関数の一部として実行されます。 |
WaterBody_ComputeWaterDepth
、WaterBody_ComputeWaterHeight
、および WaterBody_ComputeLandscapeDepth
の統計は実行できる情報を提供しません。これらは WaterBody_ComputeWaterInfo
統計の一部であり、いくつかはその機能で最もコストのかかる部分になります。代わりに、Unreal Insights を使用してシーンをプロファイルすると、何が起きているのかをより理解することができます。
Stat WaterMesh
コマンド「stat watermesh
」は、ウォーター メッシュと水面のレンダリング に関する情報を表示します。レベルで使用されている水のさまざまな部分について設定や割り当てを調整することにより、この表示の統計に従って実行することができます。

統計情報名 | 説明 |
---|---|
Vertices Drawn | 現在のビューのすべての Water Body に描画されている頂点の数を表示します。 |
Tiles Drawn | 現在のウォーター メッシュのタイル サイズ、タイル エクステント、カメラがどれほど近づいているかに基づいて、表示されているタイルの総数を表示します。r.Water.WaterMesh.ShowTileBounds 1 」をこの統計と併用して使用すると、どのようにメッシュがタイルに分割され、どのようにこの統計と関連しているかを理解することができます。 |
Draw Calls | このフレームで水を描画するためのドローコールの総数。この数が少ないほど、CPU の負荷が少なくなります。 |
Number of Drawn Materials | このフレームに描画されている異なる水のマテリアルの数。たとえば、異なる水のマテリアルを持つさまざまな Water Body を使用している場合、フレームごとに描画されるマテリアルの数が多くなります。対象的に、すべての Water Body が同じマテリアルを共有している場合、描画されるマテリアルが少なくなるため、フレームごとのドローコールの数が減少します。 |
デバッグ コンソール コマンド
次のコンソール コマンドは、レベルにある Water システムをデバッグする際に役立ちます。
変数名 | 説明 | デフォルト値 |
---|---|---|
r.Water.WaterMesh.ShowTileGenerationGeometry |
Water グリッドの交差と Water メッシュ タイルの生成に使用されるジオメトリを表示します。 | 0 |
r.Water.WaterMesh.ForceRebuildMeshPerFrame |
すべてのフレームで Water タイル メッシュ全体を強制的にリビルドします。 | 0 |
r.Water.WaterMesh.Enabled |
Water メッシュをレンダリングするかしないかを設定します。これはレンダリングと Water メッシュ タイル生成の両方に影響します。 | 0 |
r.Water.WaterMesh.ShowWireframeAtBaseHeight |
ワイヤーフレームのレンダリング時に、Water タイル メッシュをディスプレイスメントなしに表示します。 | 0 |
r.Water.WaterMesh.EnableRendering |
シーン プロキシ内からのすべての水のレンダリングをオフにするかどうかを設定します。 | 1 |
r.Water.WaterMesh.ShowLODLevels |
レベルの高さが 0 のカメラ位置の周囲に、同心円状に詳細度を表示します。 | 0 |
r.Water.WaterMesh.ShowTileBounds |
Water メッシュ タイルのタイル境界を デフォルトでは、タイルは Water Body タイプまたはトランジション タイプによって色付けされます。
|
0 |
r.Water.WaterMesh.TileBoundsColor |
r.Water.ShowTileBounds を使用して視覚化する場合に、Water メッシュ タイルの境界の色を設定します。「0」に設定すると、色は詳細度 (LOD) のトランジションを表します。「1」に設定すると、色は Water Body のタイプを表します。 |
1 |
r.Water.WaterMesh.ShowWireframe |
水のワイヤーフレーム レンダリングを強制します。 | 0 |
r.Water.VisualizeActiveUnderwaterPostProcess |
「1」に設定すると、水中のポスト プロセスでどの Water Body が現在選択されているかを示します。「2」に設定すると、カメラ位置で実行される Water Data Query に関する追加情報が提供されます。これは、Water Data Query のデバッグに役立ちます。 | 0 |
r.Water.OverrideWavesTime |
値が「0」以上の場合、波に使用される時間を強制します。 | -1 |
r.Water.FreezeWaves |
波の時間を停止します。 | 0 |
r.Water.OceanFallbackDepth |
クエリ位置の下にテレインが見つからない場合に報告する海の深さ。この深度値は、「0」以下に設定されていると使用されません。 | 3000 |
r.Water.DebugBuoyancy |
水の相互作用のデバッグ描画を有効にします。 | 0 |
r.Water.WaterInfo.ForceUpdateWaterInfoNextFrames |
次の 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 システムのスケーラビリティ オプションの設定に役立ちます。
変数名 | 説明 | デフォルト値 |
---|---|---|
r.Water.WaterMesh.LODCountBias |
値を各 Water メッシュ コンポーネントの LOD 数に追加します。マイナスの値にすると品質が低下し (Water メッシュの密度が下がります)、値を大きくするほど品質が向上します (Water メッシュの密度が上がります)。 | 0 |
r.Water.WaterMesh.TessFactorBias |
値を各 Water メッシュ コンポーネントのテッセレーション係数に追加します。値をマイナスにすると、全体的な密度 (解像度) または頂点グリッドが低下します。値を大きくするほど、Water メッシュ コンポーネントの密度 (解像度) が高くなります。 | 0 |
r.Water.WaterMesh.LODMorphEnabled |
異なる詳細度間のトランジションでスムーズな LOD モーフィングを使用するかどうかを設定します。これを無効にすると LOD レベル間でポッピングが発生することがありますが、頂点シェーダーの計算がスキップされ、シーン内の水による負荷が小さくなります。 | 1 |
r.Water.WaterMesh.LODScaleBias |
値を各 Water メッシュ コンポーネントの LOD スケールに追加します。値をマイナスにすると全体的な密度 (解像度) または頂点グリッドが低下し、LOD が小さくなります。値を大きくするほど Water メッシュ コンポーネントの密度 (解像度) が高くなり、LOD は大きくなります。許可されている最小値は「-0.5」です。これにより、可能な限り内部 LOD を小さく最適化することができます。 | 0 |
r.Water.WaterMesh.PreAllocStagingInstanceMemory |
過去の最大値に合わせてステージング インスタンス データ メモリを事前にアロケートします。 | |
これにより、配列を大きくする必要がある場合のオーバーヘッドを削減できますが、使用するメモリは増える可能性があります。 | 0 | |
r.Water.EnableUnderwaterPostProcess |
水中のポスト プロセスを有効にするかどうかを制御します。カメラがサーフェスの下に行かないようにする場合、これを無効にする必要があります。 | 1 |
r.Water.EnableShallowWaterSimulation |
浅瀬の流体シミュレーションを有効にするかどうかを制御します。 | 1 |
r.Water.ShallowWaterMaxDynamicForces |
一度に流体シミュレーションに登録する動的な力の最大数。 | 6 |
r.Water.ShallowWaterMaxImpulseForces |
一度に流体シミュレーションに登録する衝撃力の最大数。 | 3 |
r.Water.ShallowWaterRenderTargetSize |
矩形の浅瀬の流体シミュレーション レンダー ターゲットのサイズ。有効なディメンションは「サイズ x サイズ」です。 | 1024 |
r.RayTracing.Geometry.Water |
レイ トレーシング エフェクトに水を含めます。 | 0 |
r.Water.WaterSplineResampleMaxDistance |
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 cm」(デフォルト) の最大距離は、中間の適切な数値です。 | 最大距離が「400 cm」になると、頂点が少なくなります。 | 「10 cm」の最大距離は、頂点の数が大きく増加します。 |
画像をクリックすると拡大表示されます。
フォートナイトを開発し、水のある大きなワールドを使用した経験から、通常サイズの湖を正しく近似する中間の適切な数値として「50」を推奨します。距離をあまりにも短く設定すると、物理形状が十分に一致せず、これにより一部の Water タイルが失われることがあります。
このコンソール変数を調整すると、結果を確認するには、スプライン ポイントを少し動かすなど、Water スプラインに何か変更を加える必要があります。