シャドウ キャスティング

シャドウの概説

Choose your operating system:

Windows

macOS

Linux

lighting_overview_banner_001.png

シャドウはオブジェクトがワールドの地面に接しているようにし、奥行と空間の感覚を見ている人に与えます。静的シャドウのレンダリングに関しては実質的に負荷はかかりませんが、動的シャドウはパフォーマンスの負荷が最大になります。このドキュメントでは Unreal Engine 4 の 4 種類のシャドウキャスティングの基礎について説明します。

Static Lights (静的ライト)

Static Lights (静的ライト) は完全に静的なシャドウとライトをキャストします。つまり、以下のブロンズのキャラクターのような動的オブジェクトに対し 直接的な 効果はもたらしません (Static Lights (静的ライト) は Indirect Lighting Cache (間接光キャッシュ) へベイクされる為、 ある程度 の効果をもたらします)。

LI_StaticMeansStatic.png

Stationary Lights (固定ライト) に照らされた右のキャラクターには腿の辺りと体の後方にシャドウが作成されているのに対し、Static Lights (静的ライト) に照らされた左のブロンズのキャラクターは何も (ライティングまたはシャドウ) 変化がありません

指向性ライトのカスケーディング シャドウ マップ (シーン全域のシャドウ)

指向性固定ライト は、静的シャドウイングと同時に カスケード シャドウマップ を通じてシーン全体のシャドウをサポートする 特別なライトです。アニメートされたフォリッジがたくさんレベルに存在する時など便利な機能です。 広範囲に渡る複数のカスケードに負荷をかけずに プレイヤーの周辺に動くシャドウを付けたい場合などです。変遷の様子が分からないように、 動的シャドウは距離を移動するにつれ静的シャドウへフェードインします。この設定は、 DirectionalLightStationary Dynamic Shadow Distance StationaryLight をフェードを発生させたい範囲に変更するだけです。

Stationary Light (固定ライト) Shadows

(可動性を [Movable (ムーバブル)] に設定した StaticMeshComponents SkeletalMeshComponents などの) 動的オブジェクトは、ディスタンス フィールド シャドウマップから ワールドの静的シャドウイングへ統合しなくてはいけません。これは Per Object シャドウと一緒に行います。可動なオブジェクトはそれぞれ、Stationary light (固定ライト) から 2 つの動的シャドウを作成します。 オブジェクト上に静的ワールドキャストを処理するシャドウと ワールド上にオブジェクトキャストを処理するシャドウです。この設定にすると、Stationary light (固定ライト) に対するシャドウイングの負荷は、 影響を及ぼす動的オブジェクトのみとなります。つまり、動的オブジェクトの数によって、 負荷は最小から膨大な範囲で変動します。動的オブジェクトがある程度存在する場合、 Moveble Light (可動ライト) を代用するとより効果的です。

以下のシーンの球はすべて可動です。これらは静的ワールドからシャドウを受け取り、独自のシャドウをキャストします。 後にディスタンス フィールド シャドウと融合します。それぞれの可動コンポーネントに対する Per Object の シャドウ視錘台も表示されます。

DynamicObjectShadowFrustums.png

可動コンポーネントで使用される Per Object シャドウは、シャドウマップをオブジェクトの結合に適用するので、結合が正確になります。スケルタルメッシュの場合、物理アセットが必要ということになります。パーティクル システムの場合、バウンディング ボックスはすべてのプロパティが含める大きさでなくてはなりません。

動的シャドウ

可動ライトはあらゆるものに完全な動的シャドウ (およびライト) をキャストします。ライトマップへライトデータを何もベイクせずに、あらゆるものに対し動的シャドウを自由にキャストすることができます。スタティック メッシュ、スケルタル メッシュ、エフェクトなどは可動ライトから動的シャドウを全てキャストし、受け取ります。

平均すると可動の動的シャドウ キャスティング ライトは最も負荷がかかります。

Preview Shadows

ライティングをアンビルドするような方法で Static Lithg (静的ライト) やStationary Light (固定ライト) を編集する場合、 [Preview Shadowing (シャドウイングをプレビュー)] を有効にして、ライティングを再ビルドした場合にシャドウがどのように見えるかを把握することができます。

こうしたシャドウは事前に存在していたシャドウと区別するために、以下のようにエディタで「Preview」というテキスト付きで表示されます。

UnbuiltShadows.png

ライティングを再ビルドする前にエディタでゲームをテストした場合、プレビューのシャドウは消えます。プレビューはエディタ内のみに存在し、エディタで再生する(PIE) 間は存在しないためです。

UnbuiltShadowsPIE.png

プレビュー シャドウからシャドウを生成するためには、メイン エディタのツールバーの [Build (ビルド)] オプションから [Build Lighting (ライトのビルド)] を選択する必要があります。

BuiltShadows.png

ビューポートの [Show/Visualize] メニューで [Preview Shadows Indicator (シャドウ インジケータのプレビュー)] オプションのチェックを外すことでプレビュー シャドウを無効にすることができます。

このテキストを投影するためのライト関数マテリアルの調整方法については、 Engine/EditorMaterials/PreviewShadowIndicator をご覧ください。

全シャドウの融合

全てのシャドウを同時に使用すると、それぞれのシャドウの長所がお互いの弱点を補い、急速にレンダリングされる印象的なビジュアルが実現します。

LO_Shadows_Footer.png

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる