
Lesson 6.2 - 追加のライティングテクニック
Tutorial
Beginner
+0XP
35 mins
(29)
Unity Technologies

この Unit では、プレハブを使った街灯の追加、Light Explorer (ライトエクスプローラー) の操作、アクティベーショントラックを使ったライティングの制御、フォグの追加など、シーンの視覚的な忠実度を向上させていきます。
1. 授業の概要
2. 街灯の追加とプレハブの作成
今回の授業では、引き続き、街路灯の灯りを使って、Unit6 にライティングを追加していきます。また、プレハブの作成についても学びます。プレハブは、特別にカスタマイズされたゲームオブジェクトを保存する際に非常に便利です。街灯のような繰り返し要素をシーン全体で複数の場所で使用する場合は、プレハブを使用するのが最善の方法と考えられます。街灯とスポットライトのようなアセットを組み合わせて、プレハブにするのが有利です。これにより、繰り返しの要素を冗長に組み立てる手間が省けます。
1. Assets フォルダー(SyntyStudios_3DAssets > Prefabs > Props の順に選択)に含まれる SM_Prop_Streetlight_01 という名前の Project ウィンドウで街灯(Streetlight)アセットを探します。Scene または Hierarchy ウィンドウに選択してドラッグすることで、この街灯のプロップをシーンに追加します。StreetLighting ゲームオブジェクト内に子として配置されるように、Streetlight の階層を整理します。Streetlight の Position の座標を X=-4.5、Y=-0.25、Z=-3 に設定します。Streetlight の Y Rotation を Y=90 に設定します(画像 01)。
2. 街灯のプロップにはまだ光源がアタッチされていないので、トップメニューのドロップダウンからGameObject > Light > Spotlight の順に選択して Spotlight ゲームオブジェクトを選択し追加します。Hierarchy の Streetlight プロップの上に Spotlight をドラッグして、Streetlight の子オブジェクトにします。Spotlight の Position の座標を X=0、Y=5、Z=2 に設定します。Sporlight の X の Rotation 軸を X=90 に設定します。Inspector ウィンドウの lighting プロパティを、以下の例に合わせて調整します(画像 02)。
これで、Streetlight を右クリックして、Duplicate を選択するだけで、シーン内の街灯ゲームオブジェクトを複製することができます。ただし、ゲームオブジェクトの複製は、多数の複製があると管理が難しくなったり、ライティングのインスタンスごとに特定のプロパティを調整する必要がある場合に面倒になったりします。代わりに、Streetlight をプレハブとして保存し、将来の調整をシーン全体で均一に行えるようにします。
3. 特別に用意された Streetlight をカスタムのプレハブとして保存するには、まず、Hierarchy ウィンドウで Streetlight GameObject をクリックしたまま選択し、Project ウィンドウの Props フォルダーにドラッグします。ダイアログボックスが表示され、Prefab Variant を作成するか、Original Prefab を作成するかを尋ねてきます。Original Prefab を選択します。Project ウィンドウで Prefab の名前を Streetlight_with_Spotlight に変更します(画像 03)。
4. SM_Prop_Streetlight_With_Spotlight というタイトルの新しく作成されたプレハブを Project ウィンドウからシーンにドラッグします。Streetlight の Position 座標を X=4.5、Y=0.25、Z=6.5 に設定します。Y Rotation が Y=-90 のままであることを確認します(画像 04)。
それでは、新しく作成したプレハブを修正して、ライティングのプロパティを一括調整してみましょう。
5. プレハブの内容を変更するには、まず Project ウィンドウでプレハブを選択し、Inspector ウィンドウで Open Prefab ボタンを選択します。 または、Hierarchy ウィンドウで Prefab の右側にある the > marker を選択します(画像 05)。
6. Prefab エディター画面で、Spotlightを調整します。例えば、Spotlight の強度を 100 にします。
7. Hierarchy ウィンドウの Prefab タイトルの左にある the < marker を選択して、プレハブに変更を適用します (画像 06)。シーン内の街灯の両方のインスタンスで、街灯への変更が自動的に起こるのがわかります(画像 07)。
シーンのライティングは、より高い輝度の設定で「改善」されているように見える場合とそうでない場合があります。次の Unit (Unit 6) で後述するポストプロセッシングエフェクトにより、ライティングが劇的に改善されることを覚えておいてください。この段階で、輝度(intensity)を低く設定してもライトが暗くなったり、フラットに見えたりする場合は、ライトの輝度を上げすぎないようにしてください。
8. Prefabエディターを開き、Spotlight の Intensity を 60 に設定して、Prefab の照度を元の設定に戻します。Hierarchy ウィンドウの Prefab タイトルの左にある the < marker を選択して、変更をプレハブに適用します。シーン内の街灯の両方の照度が低下します。
9. 最後に、トップメニューのドロップダウンか GameObject > Light > Spotlight の順に選択して、ビルボードサインを照らすための新しいスポットライトを追加します。この名前を Billboard_Light_01 に変更し、Hierarchy 内の StreetLighting ゲームオブジェクトの中に配置します。Sporlight の position と angle を設定するには、まずビルボードをズームインして、Scene ウィンドウでビューを確立します。次に、Hierarchy で Billboard_Light_01 を選択した状態で、トップメニューのドロップダウンからGameObject > Align With View の順に選択します。これでスポットライトが看板の画像に光を投影するようになります。この場合、影をつける必要はないので、Shadow Type を No Shadows に設定します。Range(範囲)を 4 に下げ、Intensity(輝度)の値を 9 に設定します(画像 08)。
3. ライトエクスプローラーを使った作業
Light Explorer ウィンドウを使用すると、シーンに配置されているライトのリストを見ることができます。
1. Light Explorer ウィンドウを開くには、トップメニューのドロップダウンから Window > Rendering > Light Explorer の順に選択します(画像 09)。
複数の列を表示するには、このウィンドウを広げる必要があるかもしれません。Light Explorer ウィンドウでは、ライトのタイプやパラメーターを一目で変更したり、Enabled 列のチェックボックスを選択して、シーン内で選択したライトを有効または無効にしたりすることができます。
2. Light Explorer と Scene ウィンドウの両方が表示されている状態で、特定のライトを無効にするチェックボックスを選択します。ここでは、赤、ピンク、紫の色のライトが無効化されています(画像 10)。
3. すべてのチェックボックスが有効になったので、次はライトの種類を変更してみましょう。Type の列で Shop の Spot Light を Spotlight から Point Light に直接変更し、変更をプレビューします(画像 11)。必ず Spotlight に戻してください。
4. アクティベーショントラックを使ったライトの制御
このステップでは、タイムラインのアクティベーショントラックを使って、Cinemachine Camera の特定のアングルの特定のライトを点灯(アクティベート)し、Cinemachine Camera の視野に入らないライトはすべて消灯します。これは芸術的なシネマトグラフィーのために行うことがあります。例えば、あるシーンの中で種々の感覚で特定のライトが点灯したり消灯したりすることがあります。
1. Hierarchy ウィンドウで Master Timeline が選択されている場合、Timeline ウィンドウが表示されていることを確認してください。表示されていない場合は、トップメニューのドロップダウンから Window > Sequencing > Timeline の順に選択して、Timeline ウインドウを開きます。
アクティベーショントラックの使い方を学ぶために、前回の Unit の Master Timeline を基に、キャラクターグループとカメラグループの 2 つのトラックグループを作成します。次に、個々のライティングアクティベーションスキームを使って Lighting Group を作成する練習をします。
2. + ボタンを選択し、Track Group を選択します(画像 12)。新しい Track Group の名前を Lighting Group に変更します。
3. 新しい Lighting Group の右側で、もう一度 + ボタンを選択してから Track Sub-Group を選択します(画像 13)。新しい Track Sub-Group の名前を Alley に変更します。このプロセスを繰り返して、さらに 2 つの Sub-Groups を Lighting Group に追加し、それらを Street と Shop に名前を変更します(画像 14)。
4. Timeline のフレームの再生ヘッドを 0 に設定します。 Alley Sub-Group の右側で、+ ボタンを選択してから Activation Track を選択します(画像 15)。
5. + ボタンを選択して、さらに 6 つのアクティベーショントラックを Alley Subgroup に追加すると、Timeline 上に合計 7 つの空のアクティベーショントラックが追加されます(画像 16)。
6. 7 つの路地のライトを「None (Game Object)」と書かれたアクティベーショントラックのプレースホルダーフィールドにリンクしますが、まず、Timeline ウィンドウの右上隅にある鍵アイコンを選択して Timeline をロックし、表示中にフリーズさせます。次に、Hierarchy ウィンドウで最初の Door_Blue_Light を選択し、Timeline の最初の空のプレースホルダーにドラッグします(画像 17)。これを各ライトごとに繰り返し、残りのプレースホルダーにドラッグします(画像 18)。
タイムラインに沿って、路地のライトを点灯させてアクティブの状態にするところから始めます。タイムラインが特定のフレーム番号に到達したら、ライトを無効にします(または消します)。
7. タイムラインのフレームの再生ヘッドを、Cinemachine のカメラの角度が変わるところを見える位置に配置します。この例のシーンでは、Frame 358 付近でカメラが変化しています。ここでは、Frame 358 でライトを無効にするように設定してみましょう。
8. カーソルを Door_Blue_Light のアクティベーショントラックの右側に置き、右端を選択してクリックしたままにしてから、再生ヘッドのフレーム位置 358 にスナップするまで右にドラッグしてアクティベーショントラックを長くします(画像 19)。または、Inspector ウィンドウの Clip Trimming セクションにこれらの値を入力して、アクティベーショントラックの Starting (開始点)、Ending (終了点)、Duration (継続時間)を指定することもできます。
9. Door_White_Light と Secondary_Door_White_Light の次の 2 つのアクティベーショントラックを Frame 358 に伸ばします。
10. 紫と赤のライトをもう少しだけ点灯させておきましょう。Timeline の Frame Playhead を Frame 415 に進めます。Alley_Purple_Light と Alley_Red_Light のアクティベーショントラックを長くして、Frame 415 にスナップします。これで、最初の 5 つの路地のライトのために調整されたアクティベーショントラックが表示されます(画像 20)。
11. Timeline に沿って少し後ろにスクラブしてください。これまでのライトのアクティベーショントラックの範囲内にフレームの再生ヘッドカーソルを配置すると、Scene ウィンドウと Game ウィンドウの両方にライトが表示されていることがわかります。前方にスクラブして、フレームの再生ヘッドカーソルを各ライトのアクティベーショントラックの範囲外に配置すると、ライトは消灯して非アクティブになります。もちろん、アクティベーショントラックに割り当てられていないライトは、シーン中ずっと点灯し、アクティブの状態のままです。
12. Top_Tower_Light を点滅させてみましょう。ライトのアクティベートトラックを短くした状態で、トラックを選択してハイライトし、右クリックで Copy を選択します。Frame Playhead カーソルを Timeline の後のフレームに移動し、右クリックで Paste を選択(またはキーボードショートカットを使ってコピーして貼り付け)します。 ライトの点滅は、以下の例のようになります(画像 21)。
13. 楽しいチャレンジとして、画像 22 に示す例の条件に近づけるために、サブグループの Street と Shop のライトをアクティブにしたり、非アクティブにしたりする練習をしてみてください。ここでも、最初に + ボタンを選択して、適切な Lighting Subgroups に個々のアクティベーショントラックを追加します。次に、Timeline ウィンドウがロックされたままの状態で、 Hierarchy から各ライトをそれぞれのアクティベーショントラックのプレースホルダーにドラッグアンドドロップします。最後に、ライトのトラックを短くしたり長くしたり、繰り返したり、Timeline に沿って位置を設定したりして、ライトのトラックの境界を移動する練習をします。
結果を見てみましょう!アクティベーショントラックは上記の例に似ているかもしれません。街灯のライトには、ライトではなく親のゲームオブジェクトを使用していることに注意してください。Unity の任意のゲームオブジェクトをアクティベーショントラックに配置することができます。 シーンのライトのトラックを設定した後、Timeline をスクラブして結果をプレビューしてみましょう。例えば、Timeline の再生ヘッドが Frame 305 に進むと、特定のライトが表示されてアクティブになり、他のライトは非アクティブになります。Scene および Game ウィンドウの両方でライティングをプレビューしたり、Hierarchy ウィンドウでライトがアクティブかグレー表示しているかどうかを確認することができます(画像 23)。 Timeline の再生ヘッドを Frame 380 に進めるとき、通りとショップのライトはアクティブになっていますが、路地の他のライトは非アクティブになっていることにご注意ください(画像 24)。
5. 霧の追加
次のステップでは、霧/もやを追加してシーンに雰囲気を付加します。シーン中の霧は、カメラの位置から遠くのオブジェクトが見えにくくなるまでの自然な雰囲気で徐々に消えていく様子をシミュレートします。fog を有効にすると、シーンの雰囲気の質が大幅に向上します。
1. トップメニューのドロップダウンから選択して、Lighting Settings の設定ウィンドウを開きます。Window > Rendering > Lighting Settings の順に選択します。Lighting Settings ウィンドウの Other Settings フィールドまで下にスクロールすると、Fog プロパティが表示されます(画像 25)。
2. Fog の横にあるチェックボックスをチェックして Fog を有効にし、Density の値を .1 以上に変更して Fog の Density を増やします。出来上がった霧の濃度をプレビューし、Density の値を .055 に戻します。
Color や Mode、Density を変更することで、シーン内の霧の値や特性を調整することができます。例えば、Mode を Exponential Squared に設定すると、カメラからの距離に応じて霧が指数関数的に蓄積する方法を決定する数学関数が制御されます。次に、Density 設定をコントロールして、霧の濃さを増減します。
3. 視認性が減衰する特定の長さまたは距離を設定するには、Mode を Exponential Squared から Linear に変更します (画像 26)。
4. 最初に霧の Linear End 設定 25 と増加した Linear End 設定 75 を比較して、シーン内の視認距離を調整します。Linear End の値を高くすると、霧レベルが下がり、視認距離が増加します (画像 27)。
6. まとめ
Unity を使用すると、シーンのライティングを微妙にコントロールすることができます。この Unit では、プレハブを使った街灯の追加、Light Explorer(ライトエクスプローラー)での作業、ライトをアクティブにするためのアクティベーショントラックの使用、シーンに霧/もやを追加することについて説明しました。次の授業では、ポストプロセッシングでライティングをさらに洗練させる方法を紹介します。