Unreal Enigne の メッシュ ディスタンス フィールド システムは、さまざまなな他のシステムを有効/無効にして併用することができます。これらの設定およびプロパティを使って、プロジェクトに特定のスタイルを取得したり、それらを最適化の目的で使うことができます。
以下は、使用可能なメッシュ ディスタンス フィールド固有のメニュー システムとオプションの詳細です。
プロジェクト設定
[Project Settings (プロジェクト設定)] パネルには、プロジェクトのアセット用にメッシュ ディスタンス フィールドを生成したり、それらを時にはより効率的にするための最適化オプションの設定が含まれています。
メイン メニューの [Edit] をクリックしてして [Project Settings] を選択して開きます。
これらの設定は [Project Settings] > [Rendering] > [Lighting] にあります。以下の表が使用可能な設定の詳細です。
プロパティ | 説明 |
---|---|
Generate Mesh Distance Fields (メッシュ距離フィールドの生成) | ディスタンス フィールド シャドウとディスタンス フィールド アンビエント オクルージョンと一緒に使用できるスタティックメッシュのディスタンス フィールドをビルトするかどうかを設定します。有効にするとメッシュ ビルド回数およびメモリ使用が増加します。また実行するには Unreal Editor を再起動する必要があります。 | プロジェクトで [Generate Mesh Distance Fields (メッシュ ディスタンス フィールドを生成)] を有効に設定すると、アクタでディスタンス フィールド レンダリングを使用していない場合でもメモリ消費が増えます。この設定を無効にして Unreal Editor を再起動すると、メッシュ ディスタンス フィールドがロードされなくなるのでメモリ使用量が少なくなります。 |
Distance Field Voxel Density | メッシュのデフォルト スケールをディスタンス フィールドのボクセル サイズに変換する方法を決定します。これを変更すると、すべてのディスタンス フィールドで再ビルドが必要になります。値が大きいと、メモリがすぐに消費されます。この設定を変更した場合はエディタを再起動する必要があります。 |
Light コンポーネント
以下は メッシュ フィールド ディスタンス の設定とプロパティです。これらは ライトタイプ ごとに設定することができます。
Directional Light
以下は レイトレース ディスタンス フィールド シャドウイング を調整する ディレクショナルライト の設定です。
プロパティ | 説明 |
---|---|
Light | |
Light Source Angle | 光源の角度です。ディスタンス フィールドあるいはカプセル シャドウを使った動的シャドウイング メソッドでソフトエリア シャドウをサポートするために使用します。 |
Distance Field Shadows | |
DistanceField Shadow Distance | Distance Field Shadowing が可能な最長距離です。Distance Field Shadows は、この値と CMS シャドウ用 Dynamic Shadow Distance Movable Light の間の距離もカバーします。 |
RayTraced DistanceField Shadows | 光源の Distance Field Shadows をオンにします。 |
Advanced Properties | |
Distance Field Trace Distance | シャドウがシャドウ キャスターからキャスト可能な距離をワールド単位で設定します。値が大きいほどシーンに対するシャドウ負荷が高くなります。 |
Ray Start Offset Depth Scale | カメラが遠ざかるにつれて受影面からオフセットするレイトレース シャドウの大きさを調節します。非常に大きなスタティック メッシュ上で低解像ディスタンス フィールドからのセルフ シャドウのアーティファクトを隠すのに便利です。 |
Light Source Angle
Light Source Angle は、ライトの回転角と入力値に基づいてシャドウをシャープあるいはソフトにします。そのため、受影面から離れているメッシュのポイントにソフトなシャドウを作成することができます。シャドウは、メッシュと受影面に近くなるほどシャープになります。
シャドウはメッシュから長くなるほど、または受影面から遠くなるほど、ソフトになります。
カスケード シャドウ マップとディスタンス フィールド シャドウの比較
カスケード シャドウ マップ は高品質である代わりに広大なビュー ディスタンスには使用することができません。ディスタンス フィールド シャドウ はシャドウをより遠くへ効率的に投じることができますが、品質に関してはメッシュ ディスタンス フィールド用に生成されたボリューム テクスチャの解像度に大きく依存します。メッシュ ディスタンス フィールドの品質 に関しては、通常シャドウ マッピングで表示される重要な詳細をキャプチャするために高解像度を必要とする場合があります。このため、カメラに近い場所ではカスケード シャドウ マップ、カメラから離れた場所ではディスタンス フィールド シャドウを組み合わせて使用することを推奨します。
地面から浮かんだすべてのポイントの距離に関係なくカスケード シャドウ マッピングを使用するとシャドウはすべて鮮明で詳細に表示されます。ディスタンス フィールド シャドウは、ライトソース半径 とサーフェスからキャストされているシャドウの距離に基づいてシャドウを柔らかくすることができるため、自然な外観を作ります。
レイトレース ディスタンス フィールド シャドウ
ディスタンス フィールド トレース ディスタンス は、シャドウ キャスティング メッシュに対してシャドウイングのレイキャスト距離が伸ばせる距離を調整します。シャドウは、受影面に沿ってかなり長く伸ばすことができるので、高密度なエントリのシーンの場合、シャドウを付けると負荷が高くなります。トレース ディスタンスを縮めると、短い ディスタンス フィールド シャドウ ディスタンス を使用せずに特定のメッシュからディスタンス フィールド シャドウの 1 点をキャストできる距離が制限されます。
この例では、とても高い木にディレクショナルライトを浅い角度で照らした例です (日の出や夕日のように)。ディスタンス フィールド トレース ディスタンスを縮めると、木の頂点からのキャストが永久に制限されます。
ポイント / スポットライト
以下は レイトレース ディスタンス フィールド シャドウイング を調整する ポイント ライト および スポット ライト です。
プロパティ | 説明 |
---|---|
Light | |
Source Radius | 光源の球体のサイズとして使います。値が大きくなると、半暗部が大きくなりますが、パフォーマンスの負荷も高くなります。 |
Distance Field Shadows | |
Distance Field Shadows | RayTraced DistanceField Shadows の使用を設定します。 |
Ray Start Offset Depth Scale | カメラが遠ざかるにつれて、受影面からオフセットするレイトレース シャドウの大きさを調節します。非常に大きなスタティック メッシュ上で低解像ディスタンス フィールドからのセルフ シャドウのアーティファクトを隠すのに便利です。 |
Source Radius (ソース半径)
ライトの Source Radius は、光源そのものの大きさを調節することで影になった領域をソフトにしたりシャープにするために使用します。ディレクショナルライトの Light Source Angle と同じく、受影面からシャドウ ポイントが遠くなるほど、シャドウはソフトになります。
このデモでは、デフォルト値 0 にハードコー化したソース半径 20 を使用して、自動的にソフトエリア シャドウイングを提供します。ライトソース半径が 50 の場合、シャドウはさらにソフトになります。
ソース半径のデフォルト値 0 にはハードコードした値 20 を設定します。0 より大きく 20 未満の値を使用すると、エリア シャドウはそれに応じてシャープになります。
従来のシャドウ マップとディスタンス フィールド シャドウの比較
ポイント ライトとスポット ライトのシャドウ マップは、ディレクショナルライトのカスケード シャドウ マップのように非常に詳細で鮮明です。レイトレース ディスタンス フィールドの品質は、メッシュ ディスタンス フィールドに対して生成されたボリューム テクスチャの解像度に大きく依存します。メッシュ ディスタンス フィールドの品質 に関しては、通常シャドウ マッピングで表示される重要な詳細をキャプチャするために高解像度を必要とする場合があります。
地面から浮かんだすべてのポイントの距離に関係なくシャドウ マッピングを使用するとシャドウはすべて鮮明で詳細に表示されます。ディスタンス フィールド シャドウは、Source Radius とサーフェスからキャストされているシャドウの距離に基づいてシャドウを柔らかくすることができるため、自然な外観を作ります。
Ray Start Offset Depth Scale
Ray Start Offset Depth Scale は、カメラが遠ざかるにつれて、受け面に対するディスタンス フィールド ディスタンスの光線開始点を調節します。こうすることで、低解像度のメッシュ ディスタンス フィールドや ボリューム テクスチャでうまくキャプチャできない複雑なジオメトリをもつメッシから発生するセルフ シャドウイング アーティファクトを防ぎます。
ケースによっては、メッシュ ディスタンス フィールドの品質 を調整すると、光の開始位置を調節しなくても、これらのアーティファクトを削減あるいは除去することができます。生成されたボリューム テクスチャが必要とする負荷は高くしない方が良いこと、Ray Start Offset Depth Scale はこのライトの負荷をために役立つことを覚えておいてください。
セルフ シャドウイング アーティファクトの中には隙間のある岩の表面に存在し、ディスタンス フィールドの解像度は詳細をキャプチャしないものがあります。Ray Start Offset Depth Scale を最小値にすると、シャドウ トレースの開始位置が内側に移動します。
この設定は値が小さい場合のみ調整可能で、この設定を変更したライトソースからシャドウをキャストしているすべてのメッシュに対してシャドウイングを変更します。この設定を調整するときには注意してください。そして、特に、ビジュアル品質に大きな影響を与えるディレクショナルライトと遠くのオブジェクトに使用する場合は、レベルで違うエリアを確認してください。
スカイライト
以下は ディスタンス フィールド アンビエント オクルージョン (DFAO) を調整する スカイライト の設定です。これらの設定を使って、レベルの DFAO を最も芸術的に調整することができます。
プロパティ | 説明 | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Occlusion Max Distance | オクルージョンを計算するための、オクルーダからの最長距離です。この値を上げるとディスタンス フィールド AO の負荷が増えますが、遠くまでオクルージョンが可能になります。 | ||||||||||||||||||||||||||||||||
Occlusion Max Contrast | 計算されたオクルージョンのコントラストを高くするために使います。 | ||||||||||||||||||||||||||||||||
Occlusion Exponent | AO に適用する指数です。値が 1 未満の場合、コンタクト シャドウがついたままオクルージョンを明るくします。 | ||||||||||||||||||||||||||||||||
Min Occlusion | オクルージョンの黒潰れを防ぐので便利です。ライトを複数回バウンスさせるシミュレーションの際に、実際の状況での黒潰れを防ぐので便利です。 | ||||||||||||||||||||||||||||||||
Occlusion Tint | オクルージョンに色を付けるための定数カラーです。物理的に正しくするには黒にします。その他の値だと、芸術的な様式が提供されます。 | ||||||||||||||||||||||||||||||||
Occlusion Combine Mode | ディスタンス フィールド アンビエント オクルージョンからのオクルージョンをどのようにスクリーン スペース アンビエント オクルージョンと組みあわせるかを調節します。
Occlusion Max DistanceOcclusion Max Distance は、オクルージョンの 1 つのポイントがもう 1 つのポイントに影響を与えることができる最大距離を調節します。Occlusion Max Distance を調節すると、DFAO がシーンでその他のオブジェクトに与える正確さも調節します。つまり、それらのパフォーマンス負荷も高くしていることになります。 これらのポイント間の距離は他方を影響させないので、Occlusion Max Distance の最大値を下げればシャドウイングの詳細は遮蔽されたキャプチャできなくなります。 Occlusion Max Distance の最大値を上げるとオクルージョンの精度も増加します。シャドウイングにさらに多くのポイントを考慮できますが、負荷も高くなります。 Occlusion Max ContrastOcclusion Max Contrast は DFAO で影響を受けるオブジェクト間の差を調節します。 コントラストの値を上げると、このシーンにある数々の隙間およびオクルードが強いエリアが暗くなります。 Occlusion ExponentOcclusion Exponent はアンビエント オクルージョンに適用している値の累乗を調整します。低めの値は、サーフェス近くのコンタクト シャドウ位イングのディテールを失うことなくオクルージョン シャドウを明るくします。 Occlusion Exponent は、ほとんどのシーンによく合うデフォルトの中間の値を使用します。以下は、低めと高めの値を使用した場合の比較です。 シーンのオクルージョンは DFAO を使ってシャドウイングした場所より明るくなります。 シーンのオクルージョンは DFAO を使ってシャドウイングした場所より暗くなります Min OcclusionMin Occlusion は、レベル内で完全にオクルードされた領域の暗さ加減を調節します。この設定を使うと、アーティストはさらに、オクルードされた領域の DFAO を明るくすることができます。Occlusion Max Contrast でオクルードされた領域が暗くなりすぎてしまった後に、Min Occlusion でシャドウイングを少し明るくする場合にとても便利です。 ここでは、Min Occlusion がシーンで DFAO オクルードされた領域を明るくします。 Occlusion TintOcclusion Tint は、オクルードされた領域のティントカラーを有効にすることで、アーティストが DFAO の外見を最大限に調整できるようにします。 DFAO でシャドーをかけたオクルード領域のみ、使用するカラー値に基づいてティントされます。 Occlusion Combine ModeOcclusion Combine Mode を使って、Screen Space Ambient Occlusion と Distance Field Ambient Occlusion をシーンで組み合わせるように選択できるようになります。 スタティックメッシュ エディタスタティックメッシュ エディタ には、レベル内に置かれた特定のアクタのインスタンスを変更するためのアクタ専用の設定があります。アクタ固有の設定は、スタティクメッシュ エディタの [Details (詳細)] パネルの [Build Settings (ビルド設定)] セクションおよび [General Settings] セクションにあります。 ビルド設定[Build Settings] を使ってメッシュ ディスタンス フィールドの品質調節ができます。フォリッジなどのオブジェクトを両面で生成したり、別のメッシュのディスタンス フィールドを現在のものとして割り当てることができます。
設定全般[General Settings] では品質関連以外のオプションを有効にすることができます。プロジェクト全体で有効にする必要がない特定のメッシュにメッシュ ディスタンス フィールドを生成するオプション機能もあります。アニメートされているスタティックメッシュに発生する、またはディスタンスフィールドの内部の頂点を移動するセルフ シャドウイングの調節も可能です。
Actor コンポーネントレベル内に配置された個々のアクタに対して切り替え、またはオーバーライドが可能なディスタンス フィールド設定は以下の通りです。
Distance Field Indirect Shadow Min VisibilityDistance Field Indirect Shadows を使うと、[Distance Field Indirect Shadow Min Visibility] 設定を使ってシャドウのトーンが調整可能になります。これにより、アーティストはシャドウの暗さを調整し、周囲の静的なシャドウイングとブレンドすることが可能になります。 |
Occlusion Max Distance
Occlusion Max Distance は、オクルージョンの 1 つのポイントがもう 1 つのポイントに影響を与えることができる最大距離を調節します。Occlusion Max Distance を調節すると、DFAO がシーンでその他のオブジェクトに与える正確さも調節します。つまり、それらのパフォーマンス負荷も高くしていることになります。
これらのポイント間の距離は他方を影響させないので、Occlusion Max Distance の最大値を下げればシャドウイングの詳細は遮蔽されたキャプチャできなくなります。
Occlusion Max Distance の最大値を上げるとオクルージョンの精度も増加します。シャドウイングにさらに多くのポイントを考慮できますが、負荷も高くなります。
Occlusion Max Contrast
Occlusion Max Contrast は DFAO で影響を受けるオブジェクト間の差を調節します。
コントラストの値を上げると、このシーンにある数々の隙間およびオクルードが強いエリアが暗くなります。
Occlusion Exponent
Occlusion Exponent はアンビエント オクルージョンに適用している値の累乗を調整します。低めの値は、サーフェス近くのコンタクト シャドウ位イングのディテールを失うことなくオクルージョン シャドウを明るくします。
Occlusion Exponent は、ほとんどのシーンによく合うデフォルトの中間の値を使用します。以下は、低めと高めの値を使用した場合の比較です。
シーンのオクルージョンは DFAO を使ってシャドウイングした場所より明るくなります。
シーンのオクルージョンは DFAO を使ってシャドウイングした場所より暗くなります
Min Occlusion
Min Occlusion は、レベル内で完全にオクルードされた領域の暗さ加減を調節します。この設定を使うと、アーティストはさらに、オクルードされた領域の DFAO を明るくすることができます。Occlusion Max Contrast でオクルードされた領域が暗くなりすぎてしまった後に、Min Occlusion でシャドウイングを少し明るくする場合にとても便利です。
ここでは、Min Occlusion がシーンで DFAO オクルードされた領域を明るくします。
Occlusion Tint
Occlusion Tint は、オクルードされた領域のティントカラーを有効にすることで、アーティストが DFAO の外見を最大限に調整できるようにします。
DFAO でシャドーをかけたオクルード領域のみ、使用するカラー値に基づいてティントされます。
Occlusion Combine Mode
Occlusion Combine Mode を使って、Screen Space Ambient Occlusion と Distance Field Ambient Occlusion をシーンで組み合わせるように選択できるようになります。
スタティックメッシュ エディタ
スタティックメッシュ エディタ には、レベル内に置かれた特定のアクタのインスタンスを変更するためのアクタ専用の設定があります。アクタ固有の設定は、スタティクメッシュ エディタの [Details (詳細)] パネルの [Build Settings (ビルド設定)] セクションおよび [General Settings] セクションにあります。
ビルド設定
[Build Settings] を使ってメッシュ ディスタンス フィールドの品質調節ができます。フォリッジなどのオブジェクトを両面で生成したり、別のメッシュのディスタンス フィールドを現在のものとして割り当てることができます。
プロパティ | 説明 |
---|---|
Distance Field Resolution Scale | 特定のアクタに生成したメッシュ ディスタンス フィールドの品質を調節することができます。生成されたボリューム テクスチャのサイズを変更することができます。 |
Two-Sided Distance Field Generation | 生成されたメッシュ ディスタンス ディスタンス フィールドを両面にすることができます。複数の平面がオーバーラップしてパフォーマンス負荷が高いインスタンスのソフトシャドウを可能にします。 |
Distance Field Replacement Mesh | 現在のアクタ独自のメッシュ ディスタンス フィールドの代わりに別のスタティックメッシュのディスタンス フィールドを選択して使用することができます。 |
設定全般
[General Settings] では品質関連以外のオプションを有効にすることができます。プロジェクト全体で有効にする必要がない特定のメッシュにメッシュ ディスタンス フィールドを生成するオプション機能もあります。アニメートされているスタティックメッシュに発生する、またはディスタンスフィールドの内部の頂点を移動するセルフ シャドウイングの調節も可能です。
プロパティ | 説明 |
---|---|
Generate Mesh Distance Field | そのメッシュに対して、Distance Field Indirect Shasows と一緒に使用することができるディスタンス フィールドを生成するかどうかを設定します。[Generate Mesh Distance Fields] の [Project Seting] が有効の場合は無視されます。 |
Distance Field Self Shadow Bias | World Position Offset を使ってメッシュ頂点をアニメートする場合に、ディスタンス フィールド メソッドからのセルフ シャドウイングを減らすために使用します。 |
Actor コンポーネント
レベル内に配置された個々のアクタに対して切り替え、またはオーバーライドが可能なディスタンス フィールド設定は以下の通りです。
プロパティ | 説明 |
---|---|
Distance Field Indirect Shadow | Movable コンポーネント上に間接ライティングを (ライトマップまたはスカイライトから) シャドウイングするためにメッシュ ディスタンス フィールド表現を使用するかどうかを設定します。これは、メッシュ ディスタンス フィールドを使用する点以外は、スケルタルメッシュの Capsule Shadows と同じように機能するため、物理アセットは必要ありません。この機能を使うには、スタティックメッシュの [Build Settins] で [Generate Mesh Distance Field] を有効する、あるいはプロジェクトの [Generate Mesh Distance Fields] を有効にする必要があります。 |
Distance Field Indirect Shadow Min Visibility | Distance Field Indirect Shadow の影の濃さを調節します。 |
Override Distance Field Self Shadow Bias | スタティックメッシュ アセットの Distance Field Self Shadow Bias 設定をこのコンポーネントの Distance Field Shadow Bias でオーバーライドするかどうかを設定します。 |
Distance Field Self Shadow Bias | World Position Offset を使ってメッシュ頂点をアニメートする場合に、ディスタンス フィールド メソッドからのセルフ シャドウイングを減らすために使用します。 |
Affect Distance Field Lighting | プリミティブが動的ディスタンス フィールド ライティング メソッドに影響を与えるかどうかを制御します。このフラグは Cast Shadow も有効にする必要があります。 |
Distance Field Indirect Shadow Min Visibility
Distance Field Indirect Shadows を使うと、[Distance Field Indirect Shadow Min Visibility] 設定を使ってシャドウのトーンが調整可能になります。これにより、アーティストはシャドウの暗さを調整し、周囲の静的なシャドウイングとブレンドすることが可能になります。