HIKI Tech Blog

yhikishimaのブログ。ゆるくUE4やUnity、web開発の記事を書いてます。

【UE4】UE4 デフォルトのアクタを調べてみた

UE4でゲームを作成する際、ブランクを選択してもデフォルトでいくつかアクタが設置されている。 デフォルトのアクタが何なのか調べてみた。

f:id:yhikishima:20200801143424p:plain

Atmospheric Fog

  • 大気フォグ は、惑星大気を通過する光の散乱を表現します。このアクタは、屋外のレベルをより現実味のある外観に仕上げます。以下のような総合効果をもたらします。
    • レベル内のメイン指向性ライトは、太陽のエフェクトを空で受けます。ライトから逆方向にはるか遠くに配置されます。
    • 変化する空の色は太陽の高度に依存します (言い換えれば、メイン指向性ライトのベクターが地面とどれくらい平行に近くなるか) 。
    • スキャッタリングと減衰の設定を制御します。大気密度の完全制御が可能になります。
プロパティ 説明
Sun Multiplier 指向性ライトの輝度の全般的な乗数です。空と霧の両カラーを明るくします。
Fog Multiplier この乗数は霧のカラーのみに影響し、指向性ライトには作用しません。
Density Multiplier この制御係数は霧の密度のみに影響し、指向性ライトには作用しません。
Distance Scale 距離係数を制御します。デフォルト値 1 は、アンリアル単位とセンチ単位を 1:1 の割合でスケーリングします。非常に小さなワールドの作成に役立ちます。ワールドのサイズが拡大するに応じてこの値を増加させます。大きい値は霧の減衰の変化がより迅速に発生します。
Altitude Scale Z 軸に沿ったスケールを制御します。デフォルト値は 1 です。
Ground Color Additive 現在、放射カラーはシーンカラーに基づいています。そのため、シャドウがかかった領域が黒くなります。これに対処するためにこのパラメータを使用すると、暗い領域の放射カラーをはっきりと表示させるために多少明るくなります (例 0.05 程度)。
Z Offset 海面のオフセットです。 Atmospheric Fog アクタの位置から km 単位で計算されています。システムは 0 (海水位) 以下の領域で機能しません。全テレインがこの値以上になるようにしてください。これはスキャッタリングとフォグ カラーの変化が生じる高さの調整に使用することができます。
Start Distance 霧が開始するカメラからの距離です。
Default Brightness レベルに太陽光がない場合に使用するデフォルトのライトの輝度です。このプロパティは、ルーメン単位で表されます。
Default Light Color レベルに太陽光が配置されていない場合に使用します。
Disable Sun Disk チェックを入れると、Sun Disk のレンダリングが無効になります。
Disable Ground Scattering チェックを入れると、グラウンドからのカラーのスキャッタリングが無効になります。
Precompute Params このグループに含まれるプロパティは事前計算されたテクスチャ データの再計算が必要になります。
Visible 霧のエフェクトを表示または非表示にします。
Hidden in Game チェックを入れると、エフェクトはゲーム中は表示されません。

f:id:yhikishima:20200801144941p:plain

Floor

Cubeのアクタにスタティックメッシュとマテリアルを設定したもの

  • スタティックメッシュ
    • SM_Template_Map_Floor
  • マテリアル
    • DefaultMaterial

Light Source

DirectionalLight (指向性ライト) は、はるか遠くにある光源から放出される光をシミュレートします。つまりこの光から投影されるシャドウは全て平行になるため、太陽光のシミュレーションに理想的な選択肢です。指向性ライトを配置する場合、以下の 3 つの可動設定のいずれかを設定できます。

  • Static (静的) - (左の画像) ゲーム中はライトを変更できません。これは、最速のレンダリング方法であり、焼き付けたライティングを可能にします。

  • Stationary (固定) - (同じく左の画像) ライトは Lightmass で焼き付けられた静的ジオメトリからのシャドウイングと反射光のみを持ちます。この設定では、ゲーム中にライトのカラーと強度の変更はできますが、移動および部分的なライトの焼付けはできません。

  • Moveable (可動) - (左の図) 完全に動的なライトで、動的シャドウイングが可能です。レンダリングは最も遅くなりますが、ゲームプレイ中は最も柔軟性があります。

※ プロパティは省略

Player Start

プレイヤーをワールドの任意の場所にスポーンする機能は、あらゆるゲームで非常に役立つ機能です。UE4 には、これを行う Player Start という特殊なアクタがあります。Player Start は、ゲーム ワールド内のプレイヤーの開始位置です。

  • Player Start なし: Player Start をワールドに追加せずにゲームをプレイしようとすると、プレイヤーはワールドの 0,0,0 から開始します。従って、必ずワールドに Player Start を配置するようにします。

  • Play From Here: Player Start からではなく任意の場所からプレイしたい場合もあることでしょう。これは、エディタ ビューポートで 右クリック して利用可能な Play From Here オプションを選択し、右クリック して行います。

Sky Sphere

  • 時間帯設定

    • BP_SkySphereを選択し、Detailsウィンドウから「Default -> Light Source」の項目を選択。定されたLight Sourceが、太陽の向きを現します。BP_SkySphereの設定は、エディタ画面上では即座には反映されません。「Default -> Refresh Material」のチェックボックスを叩くか、SimulateやPlayでシーンを動かす必要があります。

    • Light Sourceと連動させない場合は、「Default -> Light Source」を「None」に設定し、「Override Settings -> Sun Height」に -1.0~1.0 の値を設定することでも、時間帯を指定することが出来ます。

  • 雲と星

    • 雲については、流れるスピードと濃さを変更できます。
    • Detailsウィンドウの「Default -> Cloud Speed」が雲の流れるスピード、「Default -> Cloud Opacity」が雲の濃さです。Light Sourceを下方向に向けて夜にすると、星が見えるようになります。「Default -> Stars Brightness」で、この星の光の強さを設定することが出来ます。

SkyLight

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

シーンをキャプチャする
  • Static (静的) Sky Lights は、ライティングのビルド時に自動的に更新されます
  • Stationary (固定) Sky Light あるいは Movable (ムーバブル) Sky Light の場合、ロード時に 1 度更新され、あとは Recapture Sky の呼び出し時に更新されます。これは [Details] パネルまたはインゲームでのブループリントの呼び出しで行われます。
可動性
可動性の状態 説明
Static (静的) ゲーム中はライティングの変更はできません。これは、最速のレンダリング方法であり、焼き付けたライティングを可能にします。
Stationary (固定) ライティングのビルド中に、シャドウイングとライト バウンスが静的なジオメトリからキャプチャのみされます。すべての他のライティングは動的です。この設定により、ゲーム中にライトのカラー、強度、キューブマップを変更することが可能となりますが、移動および部分的なライトのベイクはできません。
Movable (ムーバブル) 必要に応じてインゲームでの移動および変更が可能です。
固定スカイライト

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

ムーバブル スカイライト

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

プロパティ

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

f:id:yhikishima:20200801154257j:plain

Lightの設定
プロパティ 説明
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 値よりも遠方にある対象がすべて含まれます。
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 に設定されると、シーンを照らすためにスカイサイトが使用している画像を再キャプチャします。

SphereReflectionCapture

Reflection Environment (反射環境) は、レベルのあらゆる領域に効率的な反射を作成する機能です。メタルなど 重要なマテリアルの多くは、光を全方向へ反射させる必要がありますが、 それを行うのが反射環境です。対象デバイスがコンソールと中間スペック PC なので、高速処理が要求されます。動的オブジェクトの反射あるいは鋭い反射をサポートする代わりに、 メモリ オーバーヘッドが発生します。

[参考]

Atmospheric Fog に関するユーザーガイド | Unreal Engine Documentation

指向性ライト | Unreal Engine Documentation

Player Start | Unreal Engine Documentation

スカイライト | Unreal Engine Documentation

[UE4] 天球の設定方法|株式会社ヒストリア

スカイライト | Unreal Engine Documentation

Reflection Environment (反射環境) | Unreal Engine Documentation