ウォータータイト ジオメトリの場合、プロキシ ジオメトリ ツールは、内壁、家具、閉じた構造内のものなど、アクセスできない構造を自動的に破棄します。目的の結果を得るには、これを念頭に置いてソース ジオメトリをビルドまたは変更する必要がありますが、ゲーム制作に制約があることから、必ずしも利用できるわけではありません。ウォータータイトに近いソース ジオメトリから効率的にプロキシ LOD を生成するため、ProxyLOD ツールには、レベル セットベースの膨張および侵食などの手法を使用してギャップを埋めるオプションがあります。予想されるユースケースは、主に離れた場所にある建物のドアと窓です。以下の手順では、生成されたジオメトリに生じる可能性のあるギャップを自動的に埋めるためのプロキシ ジオメトリ ツールの設定方法について説明します。

手順
以下のセクションでは、プロキシ ジオメトリ ツールによって生成されたスタティック メッシュ上で、オープン ジオメトリが閉じていることを確認する方法について説明します。
-
まず、閉じたい開口部がある構造体またはオブジェクトを見つけます。この例では、スターター コンテンツに含まれるスタティック メッシュのみを使用して以下の小さな家を作成しました。
-
次に、[Window (ウィンドウ)] > [Developer Tools (デベロッパーツール)] > [Merge Actors (アクタをマージ)] を選択して、[Merge Actors (アクタをマージ)] ツールを開きます。
-
レベル内で、新しいジオメトリを生成したいオブジェクトを構成しているスタティック メッシュ アクタをすべて選択します。
-
Merge Actors (アクタをマージ) ツールで、2 番目のアイコン をクリックしてプロキシ ジオメトリ ツールにアクセスし、[Proxy Settings (プロキシ設定)] を展開します。
-
[Proxy Settings] で、[Merge Distance (マージ距離)] の値を 120 に設定します。
マージ距離パラメータで、ギャップを埋める距離をプロキシ ジオメトリ ツールに指定します。数値が小さいほど埋められる間隔が狭くなり、数値が大きいほど広くなります。
-
次に、[Merge Actors (アクタをマージ)] ボタンをクリックして、[コンテンツ ブラウザ] に新しく作成されたスタティック メッシュの名前と場所を入力します。次に、[Save (保存)] ボタンをクリックして、マージ処理を開始します。
-
マージが完了したら、コンテンツ ブラウザで新しく作成されたスタティック メッシュを探し、それをダブルクリックして [Static Mesh Editor (スタティックメッシュ エディタ)] で開きます。
-
選択したオブジェクトによっては、(以下の図に示すように) プロキシ ジオメトリ ツールが、必要以上に膨張した新しいジオメトリを作成してしまう問題が発生することがあります。
-
このような問題を解決するには、まずオブジェクトを構成するすべてのスタティック メッシュを再選択します。次に、[Merge Actors (アクタをマージ)] ツールで、[Merge Distance] を 175. に増やします。次に、[Transfer Distance Override] を有効にして、値を 100 に設定します。
どのような値を使用すればよいかを知るには、[Output Log (アウトプット ログ)] を確認してください。[Output Log (アウトプット ログ)] には、Spatial Sampling Distance (再メッシュ化用のボクセル サイズ) と Transfer Distance Override (Material Distance) に使用されている値が表示されます。どの値が使用されているかがわかったら、目的の結果に応じてこれらの値を増減できます。
-
完了したら、[Merge Actors (アクタをマージ)] ボタンをクリックしてプロセスを再開します。プロキシ ジオメトリの生成が完了すると、オブジェクトはこのようになります。
ジオメトリの設定方法によっては、満足のいく結果が得られるまで、[Merge Distance] と [Transfer Distance Override] の値を変更し、上記のプロセスを数回繰り返す必要があります。
最終結果
プロキシ ジオメトリを生成する各オブジェクトには、[Merge Distance] と [Transfer Distance Override] の両方でわずかに異なる値が必要なため、最良の結果を得るにはある程度の時間とイテレーションが必要です。以下の画像では、 [Merge Distance] と [Transfer Distance Override] が 0、100、200、300 の値に設定されたときの結果を比較しています。




Merge Distance と Transfer Distance Override が 0、100、200、300 の値に設定されたときの結果を比較。