Unreal Engine のライティング システムは、光がシーン内のオブジェクトとどのようにインタラクトするかをシミュレートします。 これらは、サーフェス、ジオメトリのシャドウイング、反射、大気と雲、フォグなどに応用されるマテリアルです。 これらの要素を全て組み合わせることで、ゲームのムード、読みやすさ、ビジュアル品質を作り出すためのリアルでスタイライズされたビジュアルを作成できます。
このガイドでは、まず次の項目を紹介します。
選択可能なライト アクタの種類。
シーン内での配置方法と使用方法。
ライトの共通の特性。
開始する前に
必ず、「新規ユーザー向け Unreal Engine」ドキュメントで取り上げられている次のトピックを予め理解しておいてください。
Unreal Editor の基本 (アクターのトランスフォームやビューポートの使用など)。
ブループリント コンポーネントの追加と編集。
サンプル プロジェクト ファイルに含まれる次のアセットを扱います。
BP_TrapSpikesブループリント
ライトのタイプと動作
Unreal Engine には、シーンのライティングとシャドウイングに使用できる 5 タイプのライトが含まれています。 大小さまざまな光源を使用することで、現実のライティングをレプリケートしたさまざまなルックを作り出すことができます。
シーンのライティングに使用できる配置可能なライト アクターは、以下の 2 つのカテゴリに分類できます。
環境ライティングには、レベルの全体的な雰囲気、時間帯、イルミネーションを設定するシーン全体にわたる自然光源が含まれます。
ディレクショナルライトは、主に屋外用のライトであり、非常に遠い (または果てしなく遠い) 距離から光を投げかけているように見えます。 このライトは太陽や月として使用されることが多いです。
スカイ ライトは、環境光をキャプチャしてシーンに適用します。これによって、暗い場所を効率的かつ自然にライティングしやすくなります。 このライトは環境の背景をキャプチャし、レベル ジオメトリに適用します。
ローカライズされたライティングには、ワールド内の実際のオブジェクトを表現するターゲット光源が含まれ、多くの場合、プレイヤーの視線を誘導したり、リアリズムを強化したりする目的で配置されます。
ポイント ライトは、電球のように、単一の点から全ての方向に光を放つ全方向ライトです。
スポット ライトは、単一の点から、光源の周りの円錐形に制限された方向に光を放つ、方向制限のあるライトです。 これらのライトは、懐中電灯と同じように機能します。
矩形ライト (エリア ライトとも呼ばれる) は、矩形の表面から一方向に光を放ちます。 また、ライトの全ての側面で仮想シャッターを調整し、表面に投影される光の形状を柔らかくしたり、鋭くしたりすることができるプロパティもあります。 これらのライトは、一般的に矩形の窓や天井灯に使用されますが、広いエリアにソフトなバウンス ライトを提供するためにも使用できます。
一般的なライト アクタの調整には、ライト強度、色、光源のサイズ、温度 (暖色または寒色のライト) があります。 さらに、各ライト タイプには、その機能に固有のプロパティがあります。 たとえば、スポット ライトのコーン角や矩形ライトのサイズと角度を制御できます。
Lumen グローバル イルミネーションを使用すると、サポートされている場合は、光源の一種としてエミッシブ マテリアルを使用できます。
ゲームプレイのためのライティング
シーンのライティングは、プレイヤーの視界を確保するだけでなく、プレイヤーとコミュニケーションを取るためにも使用できます。 注目領域や経路に光を追加することで、コントラストと可視性を生み出し、プレイヤーをその方向に導きます。 アイテム ピックアップを光らせることで、それが重要であり、確認する価値があることをプレイヤーに示します。 ライティングを使用してゲーム内で言語を作成することもできます。たとえば、緑色のライトに照らされたオブジェクトは常にヘルス ピックアップを示し、オレンジ色に照らされた出入口は常に出口を示します。
また、ライトはプレイヤーにムードやストーリーテリングを伝えることもできます。 ライトの強度、色、フォグへの影響、ボリュメトリック シャドウイング (光線) を調整することで、シーン ジオメトリを変更することなく、空間の雰囲気を穏やかなものから刺激的なもの、さらには恐ろしいものへと変えることができます。
ワールド ライティングを設定する
まず、追加する局所的なライティングが見えるようにするため、レベルの環境ライティングを調整します。
作業中にレベル エディタでブロッキング ボリュームを非表示にするには、ビューポート ツールバーの目ボタン (フラグ表示) をクリックし、[Volumes (ボリューム)] を選択して [Blocking (ブロッキング)] を無効にしてください。
レベルを暗くして局所的なライティングの準備をするには、次の手順に従ってください。
ポストプロセス ボリュームの追加:
[Create (作成)] ドロップダウン メニューを使用して、シーンに ポストプロセス ボリューム を追加します。
詳細パネルの [Post Process Volume Settings (ポストプロセス ボリューム設定)] カテゴリで [Infinite Extent (Unbound) (無制限に適用 (境界なし))] を有効にします。
[Lens (レンズ)] > [Exposure (露出)] カテゴリで、[Min EV100 (最小 EV100)] と [Max EV100 (最大 EV100)] を
「1.0」に設定します。任意:他のレベル オブジェクトで作業している際に誤ってボリュームが選択されないように、ボリュームを邪魔にならない位置に移動してください。 このボリュームはレベル全体に適用されるため、どこに配置しても問題ありません。
ディレクショナルライトの調整:
[Outliner (アウトライナー)] で DirectionalLight を検索して選択します。
このアクタを検索するには、アウトライナー検索ボックスを使用します。 また、レベル内の全ての環境ライティング アクタを表示するには、アウトライナーの右上隅にある [Settings (設定)] (歯車のアイコン) をクリックし、[Collapse All (全て折りたたむ)] を選択し、「Level」フォルダーを展開してます。
シーン内の他のライティング エフェクトと連携しやすくするため、[Intensity (強度)] を
0.75に下げます。 強度は、光を放たれる光の強さを設定します。
ボリュメトリックフォグの有効化:
[Outliner (アウトライナー)] で ExponentialHeightFog を検索して選択します。
詳細パネルの Volumetric Fog カテゴリで、Volumetric Fog を有効にします。 これによってシーンの外観が変わることはありませんが、環境を設定することで、空気中に光を散乱させ、光のビームや柔らかな大気の輝きを作り出すことができます。
ポストプロセス ボリュームは、シーンのレンダリングを調整し、他の全てのライティングとマテリアルが描画された後にカメラに表示されます。 露出の最小しきい値と最大露出しきい値を同じ値に設定すると、ライティングが安定し、エンジンの自動露出調整によって、その範囲内でシーンが明るくなったり暗くなったりしないようにします。
ボリュメトリック フォグ、環境ライティング、およびポストプロセス エフェクトついては、このチュートリアル シリーズの後半でさらに詳しく学びます。
次に、スタート ルームに 3 種類のライトを追加して、それらを使用してそれぞれ異なる結果を得る方法を探ります。 3 つの異なるライトと動作を使用したこれら 3 つの例はあくまで参考であり、このシーンで使用できるのはこれら 3 つのライトだけではありません。 自分の判断で、この部屋や他の部屋に複数のライトを配置できます。
このチュートリアルでは、指示に従ったり、各ライトの設定を調整したりすることで、プロジェクトに適した外観を実現できます。
キーの上にスポット ライトを追加する
スポット ライトは、単一の点から光を放射し、コーン形状でディレクショナルライトを照射します。 以下に、スポット ライトのプロパティを変更するデモンストレーションを示します。
プレイヤーの注意を鍵に向け、その重要性を強調するために、スタート ルームにある鍵の上にスポット ライトを追加します。
ライトのプロパティについて詳しくは、詳細パネルでプロパティ名にカーソルを合わせて確認してください。 そのプロパティに関する情報を含むツールチップが表示されます。
レベルにスポット ライトを追加するには、次の手順を実行します。
レベル エディタのツールバーで、[Create (作成)] > [Lights (ライト)] メニューを使用して、スポット ライトをシーンに追加します。
これを、最初のキーがあるカラムの上に配置します。 柱の上で中央に配置し、真上に上げます
正投影の上面ビューをオブジェクトの配置に利用できます。また、BP_Key ブループリントを選択し、詳細パネルでその [Location (位置)] を [Light’s Location (ライトの位置)] にコピーすることもできます。
ライトの設定を構成するには、次の手順に従います。
スポット ライトを選択した状態で詳細パネルで以下の設定を変更します。
強度:100
減衰半径:500
これはライトが届く範囲を制御します。 柱の頂上に達する、または鍵の位置を少し超える程度の大きさに調整しますが、柱の下の床に達さない程度の大きさとします。 ライトの明るさを変えて、キーへのライトの当たり方を調整します。
外側コーン:20
光源の半径:50
これは光源自体のサイズを設定します。 そこからキャストされるライトとシャドウのソフトさまたはシャープさを変更できます。 光源のサイズを大きくすると、キーの周りの光がよりし、キーの影にソフトさが加わります。 サーフェスの上にあるオブジェクトと影がある場所との距離も、影のソフトさに影響を与えます。
ボリュメトリック散乱強度:15~50
この値を、任意の値に設定します。
ポイント ライトをスパイク トラップ ブループリントに追加する
ポイント ライトは全方向に光を放射します。 以下に、ポイント ライトのプロパティを変更するデモンストレーションを示します。
ポイント ライトを使用して、スパイク トラップに炎の輝きのようなエフェクトを追加します。 これをブループリントに追加すると、レベル内にある全てのスパイク トラップ アクタにライトが自動的に適用されます。
ポイント ライトをスパイク トラップ ブループリントに追加するには、次の手順を実行してください。
スタート ルームで、穴の中にある BP_TrapSpikes インスタンスの 1 つを選択します。 [Outliner (アウトライナー)] で Edit BP_TrapSpikes を選択し、ブループリント エディタで
BP_TrapSpikesブループリントを開きます。[Viewport (ビューポート)] タブを選択して、ブループリントのコンポーネントを確認します。
[Components (コンポーネント)] パネルで、[Add (追加)] をクリックし、リストから [Point Light (ポイント ライト)] を選択します。 ビューポートの中心点 (またはワールド 0 の位置) にポイント ライトが追加されます。
ポイント ライトを選択した状態で、ライトを上方向 (Z 軸) に 30 単位移動し、ビューポート内のスパイク メッシュの上部近くに配置します。
レベル エディタに戻り、シーン内のエフェクトを確認します。
次に、ライトのプロパティを編集して雰囲気を変え、独自の外観を作り出します。
スパイク トラップの発光を調整するには、次の手順を実行します。
BP_SpikeTrapにて、PointLight コンポーネントが選択された状態で、詳細パネルで次のプロパティを変更します。強度:40
減衰半径:300
光源の半径:5
温度を使用:有効
温度:1700
これにより、ライトの色 (暖色または寒色) がケルビン色温度スケールに基づいて変化します。
ボリュメトリック散乱強度:40
このプロパティは、先ほど有効にしたボリュメトリック フォグとインタラクトします。
強度の単位:Lumen - 光束 (正規化)
スパイク ピットをより不気味に見せるには、全てのコーン メッシュ コンポーネントを選択し、スケール ギズモをクリックして、Z (青色) 軸でスパイクをスケール アップします。 スパイクがより鋭くなることで、このエリアに危険や害があることを伝える、より状況に応じた影が生成されます。
InvisFloor メッシュ コンポーネントを選択し、スパイクの高さに合わせて上に移動します。 この非表示のプラットフォームにより、プレイヤーのメッシュがスパイクの間にはまり込んでしまうことを防止します。
ビューポートにフロアを表示するには、詳細パネルで、[Rendering (レンダリング)] セクションの [Visible (表示)] をオンにします。 ブループリントの編集が完了したら、忘れずにこれを無効にしてください。
TrapTrigger コンポーネントを選択し、そのサイズと位置を調整して、スパイクの先端を超えるように拡張します。 これにより、トラップの上に着地すると、プレイヤーが必ずスパイクのダメージ エフェクトをトリガーするようになります。
ブループリントをコンパイルして保存します。
ゲームをプレイして新しいスパイクをテストします。 以下の作業が正しく完了していることを確認してください。
プレイヤーがスパイクに引っかからないように非表示の床を配置した。
プレイヤーがトラップの上に立っている際にもダメージを受けるように、TrapTrigger コリジョン ボックスのサイズを調整した。
出入口にスポットライトを追加する
次に、色付きの出入口を照らします。 スポット ライトおよびポイント ライトですでに使用したプロパティとボリュメトリック フォグを組み合わせて、ドアに対する興味深いライティング エフェクトを作成します。
出入口を照らすには、次の手順を実行してください。
黄色の出入口には、スポット ライトを追加し、出入口の上または突き出た部分のすぐ下に移動し、ドアフレームにスポット ライトが取り付けられているように見えるようにします。 ドアから数メートル離れた位置を指すように回転させます。
スポット ライトを選択した状態で、Alt キーを押しながら、X 軸と Y 軸 (赤と緑のハンドル) にドラッグして複製します。 そのコピーを青いドアの前に移動してから、もう一度複製して、コピーを赤いドアの前に移動します。
詳細パネルで、ライトに以下のプロパティを設定します。
光源の半径:5
ボリュメトリック散乱強度:50
このプロパティは、先ほど有効にしたボリュメトリック フォグとインタラクトします。
ライトは次のようになります。
強度:100
黄色いドアの前にあるライトを選択します。 詳細パネルで、[Light Color (ライトの色)] 色見本をクリックします。 [Color Picker (カラーピッカー)] ウィンドウで、色を黄色に変更します。 サンプル レベルと同じ色を使用するには、Hex sRGB プロパティに
FFFF89FFと入力します。 [OK] をクリックして、色の変更を承認します。他の 2 つのスポット ライトの [Light Color (ライトの色)] プロパティを、それぞれのドアに合わせて変更します。 サンプル レベルに合わせる場合、次の Hex sRGB 値を使用できます。
赤いドア ライト:FF8989FF
青いドア ライト:8989FFFF
各出入口の上に色付きのライトがあり、どのキーによって解錠されるかが示されているシーンになります。
ウィンドウに矩形ライトを追加する
矩形ライトは、矩形サーフェスからディレクショナルライトを放射します。 以下に、矩形ライトのプロパティを変更するデモンストレーションを示します。
優れたエフェクトを作成するとともに、最初のキーに到達できるようにジャンプできるプラットフォームにプレイヤーの注意を誘導するため、近くのウィンドウに矩形ライトを追加します。
窓から光が入るようにするには、次の手順を実行します。
レベル エディタのツールバーで、[Create (作成)] > [Lights (ライト)] メニューを使用して、矩形ライトをシーンに追加します。
ライトの黄色い長方形のワイヤーフレームは、ライトの寸法と、[Barn Door Angle (バーン ドアの角度)] および [Barn Door Length (バーン ドアの長さ)] を表しており、これらは矩形ライトのビームの形状と投影方法を制御します。
矩形ライトを窓の外に配置します。 壁の開口部から光を放ち、部屋に光と影を加えるようにライトを回転させて配置します。
詳細パネルで、[Intensity (強度)] を
200に変更します。[Source Width (ソースの幅)] と [Source Height (ソースの高さ)] をウィンドウのサイズにほぼ一致するように変更します。 サンプル レベルでは、スタート ルームの矩形ライトの幅は
400、高さは200に設定されています。室内に生じる光と影の角度と強度を適切になるまで、ライトの位置を調整してください。
これで、次のようになっているはずです。
矩形ライトによって、ソース テクスチャ を割り当てて、ライトに色を付け、シーンに独自の外観を追加できます。 光がサーフェスに近づくほど、割り当てられたソース テクスチャのディフューズが小さくなります。
矩形ライトにソース テクスチャを追加するには、以下の手順を実行してください。
[Rect Light (矩形ライト)] を選択します。 詳細パネルの [Light (ライト)] カテゴリで、[Source Texture (ソース テクスチャ)] アセット割り当てスロットに移動します。
ドロップダウン メニューをクリックし、ColorGradingWheelGradient テクスチャを検索して選択します。
このテクスチャはエンジン コンテンツに含まれているため、ドロップダウン リストに自動的に表示されます。
色とりどりの光がルームに差し込んでいます。
エミッシブ マテリアルを光源として使用する
最後に、Lumen グローバル イルミネーション システムを使用して光を放つマテリアルを作成します。 このマテリアルにはお好みの色を使用できます。
エミッシブ マテリアルを作成するには、次の手順を実行します。
コンテンツ ブラウザで、[Content (コンテンツ)] > [AdventureGame] > [Artist (アーティスト)] フォルダーに移動します。
[Artist (アーティスト)] フォルダー内に「
Materials」という名前の新しいフォルダーを作成します。コンテンツ ブラウザの[AdventureGame] > [Artist (アーティスト)] > [Materials (マテリアル)] フォルダーを選択し、フォルダー内の空白の領域を右クリックするか、[Add (追加)]ボタンをクリックして、[Material (マテリアル)]を選択します。
このチュートリアルは、チュートリアルのサンプル レベルおよび「パズル アドベンチャーの設計する」で使用されたアセット ディレクトリ構造を使用していることを前提としています。
マテリアル アセットの名前を
「M_Emissive」にし、ダブルクリックして開きます。一目でアセットを特定できるように、アセットにプレフィックスを付けることをお勧めします。 たとえば、チュートリアルのサンプル プロジェクトでは、命名規則としてマテリアル名と共に
M_を使用しています。[Material Graph (マテリアル グラフ)] の M_Emissive マテリアル ノードで、[Emissive Color (エミッシブ カラー)] 入力の横にある色見本をクリックして、色を設定します。 サンプル レベルに従って進めるには、 Hex sRGB を
00FF0000に変更します。[OK] をクリックして新しい色を適用し、[Color Picker (カラーピッカー)] ウィンドウを閉じます。
[Material (マテリアル)] で [Apply (適用)] と [Save (保存)] をクリックします
次に、シーンにジオメトリを追加し、マテリアルをこのジオメトリに適用します。
レベルでエミッシブ マテリアルを使用するには、次の手順を実行します。
コンテンツ ブラウザから、[Content (コンテンツ)] > [LevelPrototyping] > [Meshes (メッシュ)] を選択し、作業中のルームに 2 つの
SM_Cylinderメッシュを追加します。 それらのサイズを変更し、ルームの残りの暗い隅で細いカラムになるように配置します。サンプル レベルを使用している場合、黄色と青のドアの横にある 2 つのカラムを複製し、部屋の正面の隅に移動します。コンテンツ ブラウザを開き、
M_Emissiveを 2 つのカラムにドラッグして、そのマテリアルをメッシュ形状に適用します。 変更のロードに数秒かかる場合があります。
マテリアルを光源として使用するには、プロジェクトで Lumen を有効にしておく必要があります。 また、光源としてエミッシブ マテリアルを使用すると、ゴースト エフェクトが増し、小さくて明るい光源には適さなくなります。 これらの制限を念頭に、エミッシブ マテリアルの使用は控えめにすることをお勧めします。
ルームは次のようになっているはずです。
次の内容
次のセクションでは、インスタンス化を使用して、実行時に色や明るさを動的に変更できる柔軟なマテリアルを作成する方法など、マテリアルの操作について詳しく学びます。それによって、より効果的にシーンに変更を加えることができるようになります。