スカイライト

Unreal Engine 4 のスカイライトの概要

Windows
MacOS
Linux

Skylight_Header.png

スカイライトは、レベルの遠い部分 (SkyDistanceThreshold 以遠全て) をキャプチャし、それをライトとしてシーンに適用します。空が大気圏または、スカイボックスの一番上にレイヤーされた雲、あるいは遠くの山々とつながっていても、 空の外観とライティング / 反射が一致します。キューブマップの使用を手動で指定することもできます。

シーンをキャプチャする

スカイライトはシーンの再キャプチャのみ行います。

  • Static (静的) Sky Lights は、ライティングのビルド時に自動的に更新されます

  • Stationary (固定) Sky Light あるいは Movable (ムーバブル) Sky Light の場合、ロード時に 1 度更新され、あとは Recapture Sky の呼び出し時に更新されます。これは [Details] パネルまたはインゲームでのブループリントの呼び出しで行われます。

スカイボックスで使用されているテクスチャを変更した場合、変更は自動認識されません。更新には上記の手順のいずれかを使用しなけばなりません。

スカイライトは室内エリアのぼやけを防ぐローカル空間のシャドウイングをサポートしているので、空のライトを表現するにはアンビエント キューブマップではなくスカイライトを使用すべきです。

可動性

他の ライトのタイプ と同様に、スカイライトの 可動性 は以下のいずれかに設定することができます。

skylightIcon.png

可動性の状態

説明

Static (静的)

ゲーム中はライティングの変更はできません。これは、最速のレンダリング方法であり、焼き付けたライティングを可能にします。

Stationary (固定)

ライティングのビルド中に、シャドウイングとライト バウンスが静的なジオメトリからキャプチャのみされます。すべての他のライティングは動的です。この設定により、ゲーム中にライトのカラー、強度、キューブマップを変更することが可能となりますが、移動および部分的なライトのベイクはできません。

Movable (ムーバブル)

必要に応じてインゲームでの移動および変更が可能です。

静的スカイライト

スカイライトに Static (静的) を設定した場合、静的オブジェクト用のライトマップが完全にベイクされるため負荷は全くかかりません。ライトのプロパティを編集した場合、 レベルに対してライティングが再びビルドされるまで、変更は反映されません。

モバイル向け開発で唯一サポートされているスカイライトになります。

Static Sky Light を使う場合、Static Mobility (静的可動性) または Stationary Mobility (固定可動性) のあるコンポーネントとライトのみがキャプチャされ、静的スカイライトのライティングに使用されます。さらに、 マテリアルのエミッシブ効果のみが Static Sky Light (静的スカイライト) でキャプチャされます。これはフィードバックループを避けるためです。この理由から、すべてのスカイボックスのマテリアルには必ず [Unlit] を設定してください。

固定スカイライト

[Stationary (固定)] を設定したスカイライトは、[Static (静的)] に設定した場合と同様に、Lightmass からシャドウイングをベイクされます。レベル内に Stationary Sky (固定スカイライト)を配置したら、 焼き付けられらシャドウイングを取得するために再度ライティングをリビルドする必要があります。

他のStationary Lights と同じ要領で、ランタイム時に ブループリント または シーケンサー で変更可能なプロパティもあります。つまり、 レベル全体を再ビルドしなくても、スカイライトの 強度 または カラー を変更することができるのです。ただし、間接ライティングはライトマップ上に焼き付けられ、実行時での変更はできません。間接ライティングの量は、 [Indirect Lighting Intensity (間接ライトの強度)] で調節することができます。

Stationary Sky Light (固定スカイライト) を使う場合、レベル内でモビリティが [Static] または [Stationary] に設定されたしたのあるコンポーネントとライトのみがキャプチャされ、静的スカイライトのライティングに使用されます。さらに、 マテリアルのエミッシブ効果のみが Stationary Sky Light でキャプチャされます。これはフィードバックループを避けるためです。この理由から、すべてのスカイボックスのマテリアルには必ず [Unlit (ライトなし)] を設定してください。

ムーバブル スカイライト

Movable に設定されたスカイライトは事前計算は一切使用しません。シーンをキャプチャする設定にされると、コンポーネントとライトの可動性をキャプチャします。

ディスタンス フィールド アンビエント オクルージョン

この機能はデフォルトではオンにはなっていません。ディスタンス フィールド 機能を使って有効にします。

Movable Sky Light のシャドウイングには、剛体オブジェクトをそれぞれ事前計算した Signed Distance Field Volumes から ディスタンス フィールド アンビエント オクルージョンを作成する機能があります。ディスタンス フィールド アンビエント オクルージョンは動的シーンの変更に対応しているので、剛体メッシュの移動あるいは非表示が可能となり、オクルージョンにも影響を与えることが可能です。

クリックしてフルサイズ表示

事前計算されたスカイライト

ベイクされたライティングを Static または Stationary Sky Light で使う場合、ライティングとシャドウイングのデータはライトマップに格納されます。このセクションでは、 Lightmass がサポートするこれらの機能について説明します。

静的なスカイライトの指向性の改善

4.18 より前の Unreal Engine では、スカイライトは三次の球面調和関数 (Spherical Harmonic) でライトマスに表現されていましたが、日の出や日没のディテールはキャプチャしていませんでした。 フィルタリングされたキューブマップを使って、デフォルト設定でより高い解像度が得られるようになりました。さらにライトマスは、エイリアシングを避けるために、 Final Gather のレイの大きさに応じて適切な キューブマップ テクスチャの MIP を選択します。

[Engine Content] > [MapTemplates] > [Sky] から [SunsetAmbientCubemap] では、この種類のインタラクションの素晴らしいサンプルを見ることができます。

3次元球面調和関数 | (前)

フィルタリングされたキューブマップ | (After)

基本レベルを使って改善したサンプルです (Epic Games の Robo Recall より)。

明るさと色のバリエーションが多いスカイライトのキューブマップで遮蔽度がかなり高いシーンの場合にこの違いが顕著になります。

Camera Obscura

Static Sky Light の方向性が向上すると、開口部を十分に小さくすることでピンホール カメラ エフェクト (Camera Obscura ) を再現することができます。 開口部が小さくなるほど、スカイライトの指向性は高まります。

スカイライトのソース キューブマップ

結果のライトビルド

画像をクリックしてフルサイズ表示

画像をクリックしてフルサイズ表示

Stationary Sky Light のベント法線

ライティングとは別にライトマスが焼き付けたスカイライトのシャドウイングは、Bent Normal と呼ばれる指向性オクルージョン情報を格納しています。Aftermath は現在 Unreal Engine Editor において、 テクセルから最もオクルードされたいない方向への方向です。ほぼオクルードされたエリアは、サーフェス法線ではな Sky Light に対してこの方向を使います。それによりクラックの質が改善されます。

静的スカイライトのアンビエントオクルージョンのみ

ベント法線のある固定スカイライト

詳細は「Bent Normal Map 」をご覧ください。

複数のバウンスを設定する

スカイライトの間接光を複数回バウンスさせる設定は、[World Settings] > [Lightmass][Num Sky Lighting Bounces] で行います。

LightmassSettings.png

使用するスカイライトのバウンス回数の設定

バウンス数: 1

バウンス数: 10

スカイライトを複数回バウンスさせた効果を出すには、ほとんどの場合においてマテリアルのディフューズの値を高くする必要があります。例えば、ディフューズが .18 (18% グレイ) の場合、2 回目のスカイライトのバウンスはライトが放射するエネルギーの .18^3 = .006 であり、 効果はごくわずかです。例えば、ディフューズが 0.5 の場合、2 回目のスカイライトのバウンスはライトが放射するエネルギーの 0.125 となり、効果が顕著になります。

バウンスを追加する毎に分散されないビルドの時間が増えるため、注意深く使用してください。

プロパティ

Sky Light コンポーネントのプロパティは、ライトとスカイライトの 2 つに大きく分類されます。これらはアクタの [Details] パネルからアクセスすることができます。

SkyLightSettings.png

Light

以下の設定はすべての [ライト タイプ]Light Types で共通です。

プロパティ

説明

Intensity

ライトが放出するエネルギーの合計です。

Light Color

ライトが放つ色を指定します。

Affects World

ライトがワールドに影響を及ぼせるのか、あるいは無効なのかを設定します。

Cast Shadows

ライトにシャドウを投影させるかを設定します。

Casts Static Shadows

静的オブジェクトからライトにシャドウを投影させるかを設定します。 また、Cast Shadows を True に設定することが要求されます。

Casts Dynamic Shadows

動的オブジェクトからライトにシャドウを投影させるかを設定します。 また、Cast Shadows を True に設定することを要求します。

Indirect Lighting Intensity

ライトからの間接光の効果をスケーリングします。0 にするとこのライトのグローバル イルミネーション (GI) を無効にします。

Volumetric Scattering Intensity

このライトからのボリュメトリック スキャタリングの強度です。Intensity と Light Color を調節します。

Cast Volumetric Shadow

ライトが Volumetric Fog を投影するかどうか設定します。

スカイライト

以下は、スカイライトに特有の設定です。

プロパティ

説明

Source Type

遠くのシーンをキャプチャし光源として使用するか、あるいは特定のキューブマップを使用するかを設定します。シーンをキャプチャすると、スカイライト位置から SkyDistanceThreshold 値よりも遠方にある対象がすべて含まれます。

SLS Captured Scene

キャプチャしたシーンからスカイライトを構築します。スカイライト位置から SkyDistanceThreshold 値よりも遠方にある対象がすべて含まれます。

SLS Specified Cubemap

指定したキューブマップからスカイライトを構築します。

Cubemap

Source Type が SLS_SpecifiedCubemap に設定されている場合、天空光を使用するようにキューブマップを指定します。

Source Cubemap Angle

Source Type を SLS Specified Cubemap に設定した場合にソース キューブマップを回転させる角度です。

Cubemap Resolution

処理された最上部のキューブマップ MIP の最大解像度です。サイズは 2 の累乗にしなければいけません。

Sky Distance Threshold

そこからはどのジオメトリも空の一部として見なされるスカイライトからの距離です (反射キャプチャ でも使用されます)。

Capture Emissive Only

エミッシブ マテリアルのみをキャプチャします。すべてのライティングをスキップするため、キャプチャが軽くなります。Capture Every Frame の使用時に推奨します。

Lower Hemisphere is Solid Color

下半球から放たれる全てのライトをゼロに設定するかどうかを決めます。下半球からの光の漏れを防ぐのに便利なプロパティです。

Recapture Scene

Sky Light アクタが SLS_CapturedScene に設定されると、シーンを照らすためにスカイサイトが使用している画像を再キャプチャします。

ムーバブル オブジェクトからのシャドウイング

ムーバブル オブジェクトから背景へのソフト シャドウイングは、スケルタル メッシュへの Capsule Shadows の使用、または 剛体メッシュへの Distance Field Indirect Shadowing の使用によって実現できます。そのためには、正しく機能するように別途設定が必要です。

制限事項

以下は、スカイライトと併用すると便利ですが、まだ実装されていない機能です。

  • Stationary (固定) および Movable (可動) バージョン向けのシーンの動的再キャプチャSkyLightComponent 上の RecaptureSky() と呼ばれるブループリント機能は使用可能ですが、処理落ちが発生します。

    RecaptureSkyLightBP.png

Static Sky Light (静的スカイライト)

Static Mobility (静的可動性) が設定されている Sky Light (スカイライト) は、静的オブジェクト用のライトマップに完全に焼き付けられるので、負荷は全くかかりません。モバイル上で唯一サポートされている種類のスカイライトになります。ライティングが再びビルドされるまで、ライトのプロパティの編集は表示されません。

注意:Static Mobility (静的可動性) または Stationary Mobility (固定可動性) のあるコンポーネントとライトのみがキャプチャされ、静的スカイライトのライティングに使用されます。さらに、マテリアルのエミッシブ効果のみが Static Sky Light (静的スカイライト) でキャプチャされます。これはフィードバックループを避けるためです。スカイボックスには unlit マテリアルがあるようにしてください。

Stationary Skylight (固定スカイライト)

Stationary Mobility が設定されている Sky Light (スカイライト) は、ライトマス から焼き付けられたシャドウイングを取得します。レベル内に Stationary Sky (固定スカイライト)を配置したら、焼き付けられらシャドウイングを取得するために再度ライティングをリビルドする必要があります。スカイライトはリビルドせずに好きなだけ変更することができます。

ライトマス が焼き付けた Sky Light のシャドウイングは、ベント法制 と呼ばれる指向性オクルージョン情報を格納しています。テクセルから最もオクルードされたいない方向への方向です。ほぼオクルードされたエリアは、サーフェス法線ではな Sky Light に対してこの方向を使います。それによりクラックの質がかなり良くなります。

AO のみのスカイライト

ベント法線オクルージョンのあるスカイライト

1 枚目の画像は AO のみを適用したスカイライトです。2 枚目の画像はベント法線オクルージョンを使用したスカイライトです。ライティングが差し込む場所でクラックの表面がどのように一致しているかに注目してください。

注意:Static (静的) または Stationary Mobility (固定可動性) のあるコンポーネントとライトのみがキャプチャされ、Stationary Sky Light のあるライティングに使用されます。

すべての種類の Stationary Light (固定ライト) のように、直接ライティングの色は ブループリント あるいは マチネ の実行時に変更することができます。ただし、間接ライティングはライトマップ上に焼き付けられ、実行時での変更はできません。間接ライティングの量は IndirectLightingIntensity で制御ができます。

直接ライティングのみ

直接ライティングと固定スカイライト用に計算したディフューズ GI

Movable Skylight (可動スカイライト)

Movable Skylight は事前計算を一切使用しません。シーンを天空光源としてキャプチャする設定にされると、コンポーネントとライトの可動性をキャプチャします。

ディスタンス フィールド アンビエント オクルージョン

Movable Skylight (可動スカイライト) のシャドウイングには ディスタンス フィールド アンビエント オクルージョン と呼ばれる新機能が備わっています。これは、剛体オブジェクトをそれぞれ事前計算した Signed Distance Field Volumes からアンビエント オクルージョンを作成する機能です。動的シーンの変更に対応しているので、剛体メッシュの移動あるいは非表示が可能となり、オクルージョンにも影響を与えます。この機能はデフォルトではオンにはなっていないので、幾つか設定をしなければなりません。

制限事項

以下は、Sky Light (スカイライト) と併用すると便利ですが、まだ実装されていない機能です。

  • 可動オブジェクト (キャラクタ) から環境へのソフト シャドウイング。

  • Stationary (固定) および Movable (可動) バージョン向けのシーンの動的再キャプチャSkyLightComponent 上にある RecaptureSky() と呼ばれるブループリント機能は使用可能ですが、処理落ちが発生します。

スカイライトのプロパティ

Sky Light のプロパティは、Light と Sky Light の 2 つに大きく分類されます。

Light

プロパティ

説明

Intensity

ライトが放出するエネルギーの合計です。

Light Color

ライトが放つ色を指定します。

Affects World

ライトがワールドに影響を及ぼせるのか、あるいは無効なのかを設定します。

Casts Shadows

ライトにシャドウを投影させるかを設定します。

スカイライト

プロパティ

説明

Source Type

遠くのシーンをキャプチャし光源として使用するか、あるいは特定のキューブマップを使用するかを設定します。シーンをキャプチャすると、スカイライト位置から SkyDistanceThreshold 値よりも遠方にある対象がすべて含まれます。

Cubemap

Source Type が SLS_SpecifiedCubemap に設定されている場合、天空光を使用するようにキューブマップを指定します。

Sky Distance Threshold

そこからはどのジオメトリも空の一部として見なされるスカイライトからの距離です (反射キャプチャ でも使用されます)。

Lower Hemisphere is Black

下半球から放たれる全てのライトをゼロに設定するかどうかを決めます。下半球からの光の漏れを防ぐのに便利なプロパティです。

Recapture Scene

Sky Light アクタが `SLS_CapturedScene`に設定されると、シーンを照らすためにスカイサイトが使用している画像を再キャプチャします。

Tags
Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback