この記事ではUnityで制作するシーンの基本のライティング設定について説明します。
環境光を適切に設定することで、与える印象を演出できます。今回は、基本的にLightingウィンドウの設定を使用してできること+αの説明です。自然環境を想定したシーンを制作する場合におすすめです。
サンプル
この記事で説明した内容を反映して制作したサンプルになります。
STYLY STUDIOでは、UnityからプレハブやシーンをアップロードしてSTYLYシーンを作成することができます。Unityのシーンごとアップロードすることでシーン全体のライティングをSTYLYシーンとして使用することができ、より意図に沿った演出ができます。
オブジェクトを作成する
シーンの見栄えを確かめるために、簡単なオブジェクトを用意します。
すでにSTYLYにアップロードしたいオブジェクトなどがある場合はこの段落を飛ばしても構いません。
Hierarchyウィンドウ上で右クリック>3D Objectを選択して、PlaneとCubeを生成します。
広い地平線にCubeが置かれただけの簡単なものを作成します。
また、後ほど反射する設定を確認するためのマテリアルを作成します。プロジェクト上で右クリック > Create > Materialを選択します。
Metalicを1、Smoothnessを1に設定します。わかりやすいようにマテリアルの名前も変更します。今回はCubeに適用するので、cubeとします。
作成したマテリアルを、適用するオブジェクト(Cube)にドラッグします。これで後ほど、Cubeだけに反射を設定することができます。
Skyboxを設定する
STYLY STUDIOにもいくつかのSkyboxが用意されていますが、Unity上では豊富な種類のSkyboxから好みのものを設定できます。
Skyboxを変更するだけでもシーン全体の雰囲気が変わるほか、ライティングのソースにもなります。
Skyboxの設定方法
Skyboxは、Lightingウィンドウ上で設定することができます。Lightingウィンドウが画面上に出ていない場合は、ナビゲーションバーから「Window > Rendering > Lighting」を選択してウィンドウを出します。ウィンドウは任意の場所に配置して構いませんが、Inspectorウィンドウの隣にあると使いやすいです。
Environment配下のSkybox Materialに、任意のSkyboxをドラッグすることで設定できます。
Skyboxはアセットストアで入手するか自分で作成することも可能ですが、まずはアセットストアで探すのがおすすめです。無料のものもありますが、「All Sky」は10ドルで高品質なSkyboxが200種パッケージされているので便利です。
こちらの記事で、All Skyの解説をしているので、使用する場合はご一読ください。
また、All SkyにあるすべてのSkyboxには、名称そのままのものと、名称の後ろに「Equirect」と記されているものがあります。VRシーンに使用する場合はEquirectを選択してください。この記事ではAll Skyの「Epic_GloriousPink Equirect」を使用して進めますが、お好みのものを使用してください。ドラッグするだけで確認できるので、いろいろ試して見合ったSkyboxを見つけましょう。
(※ただし、All Skyはボリュームが重いアセットなので、使用するSkyboxがあらかじめ決まっている場合はそれだけをImportするのがおすすめです。)
Lightingの環境光に関する設定
Lighting設定のうち、環境光に関する設定を進めます。
LightingウィンドウではSkyboxのほかに、シーンのライティングに関する設定を行えます。
まずは、環境光の設定に使用する項目「Environment Lighting」「Environment Reflections」について説明します。
Environment Lighting
シーン全体のライティングの元となる設定です。「Source」で、元となる光源を選択し、「Intensity Multipiler」でどのくらい明るくするかを設定します。
Sourceは、Skybox、Gradient、Colorの3種類から選択します。
デフォルトで設定されているのがSkyboxです。Skyboxが環境光のソースになっているので自然な色味を表現できます。
Gradientは、空、大気、地面と3つの光源の色を指定してグラデーションで表現される環境光です。インパクトの強いシーンを作成できます。
Colorは単色で環境光を表現するので、かなりビビッドな印象になります。
Skyboxにするのが基本ですが、表現したいものによってはColorなどに設定することで、より特徴的なシーンを制作できます。
Intensity Multipilerではスライダーを増減することで、明るさの度合いを設定できます。数値が増えるほど明るくなります。
Environment Reflections
シーン全体の光の反射についての設定です。大まかには、「Source」で反射するエフェクトをSkyboxかCustomの2種類から選択し、「Intensity Multipiler」で反射光の明るさを設定します。
SourceをSkyboxに設定すると、Skyboxが反射します。PlaneにSkyboxの色味が淡く反映されているのと、Cubeに適用したマテリアルが反射するように設定されているので、Cubeの方がわかりやすく反映しています。
SourceをCustomに設定すると、Cubemapという設定項目が表示されます。ここに任意のCubemapをドラッグすることで、独自のエフェクトを反射させられます。
Intensity Multiplierのスライダーで数値を増減させることで、どの程度反射するかを設定できます。
Environment ReflectionsのIntensity Multipilerはデフォルトでは1に設定されています。Directional Lightを消してもシーンが完全に暗くならないのはこのためです。完全に暗くしたい場合には0に、通常は1にして問題ないです。上記のGIFでは、反映の度合いが分かりやすいようにDirectional Lightを消した状態でスライダーを動かしました。
Directional Lightを戻し、Environment Lightingの明るさを0.3に、Environment Reflectionsの明るさを1にしました。
Other Settingsの設定
Lightingの設定の内、その他に分類される「Fog」「Halo」「Flare」の設定です。
Fogのチェックボックスをオンにすると、Fogを設定する項目が表示されます。
ColorでFogの色味を設定できます。
ModeがFogの密度に関する設定です。Liner、Exponential、Exponential、Exponential Squaredの3つのモードが用意されています。
「Liner」は直線的に描画されるモードです。霧が発生する距離(Start)と、消える距離(End)の数値を入力することで設定できます。
Exponential、Exponential Squaredの2つは、Densityのスライダーで0~1の間で数値を増やすことで指数関数的に霧の密度を高くします。1にすると完全に霧に覆われます。
今回は、0.05に設定にしました。
「Halo」は太陽のまわりに見える暈の設定です。こちらを設定する場合は、まずLightのInspectorの「Dawn Halo」のチェックボックスにチェックを入れて適用してください。
「Halo Strengh」のスライダーで0~1の間で数値を増やすと、Lightの周りに描画されるHaloが大きくなります。
「Flare」は、レンズフレアの設定です。レンズフレアはフレアを発生させるためのGame Objectを生成し、Main Cameraにコンポーネントを追加することでシーンに描画できるので、使用する場合はまずそれの設定をします。
Hierarchyウィンドウ上で右クリック > Create Emptyを選択し、空のGame Objectを生成します。わかりやすいように、Game Objectの名称を「flare」に変更します。
Game ObjectのインスペクターからAdd Componentを選択し、Lens Flareコンポーネントを追加します。検索バーに「flare」と入力するとすぐ見つけられます。
Flareで、設定したいレンズフレアを選択できます。選択バーの横のボタンを押すと、設定できるFlareの一覧が表示されます。今回はStandard Assetsの「Sun」を選択しています。
FlareはそのままだとGameビューに描画されないので、CameraにFlare Layerコンポーネントを追加します。
Colorでフレアの色を変更できます。赤枠の部分をクリックするとカラーパレットが表示されるので、お好みで設定できます。
Brightnessで明るさを変更できます。デフォルトがかなり明るい状態なので、0.1くらいにするとよいでしょう。続く項目、Fade Speed、Ignore Layersはそのままで大丈夫です。
Directionalのチェックを外すと、レンズフレアのGame Objectがあるポイントから発生するようになります。
Directionalのチェックを入れるとレンズフレアの位置が無限遠になるので、自然に近い印象になります。この時にSkyboxとの位置がずれる場合は、SkyboxのインスペクターからRotationを変更してSkyboxに描画されている太陽の位置とレンズフレアを合わせることで、より自然になります。
今回の説明する項目は以上です。STYLYにアップロードして、確認しましょう。
STYLYへアップロード
実際にSTYLYへアップロードして使用しましょう。
今回はUnityのシーンをそのままSTYLYにアップロードするので、こちらをご参照ください。
また、関連記事でも述べている通り、Unityのシーンで使用したライトはWeb上では影が反映されません。VRビューのみ反映されます。
アカウント作成方法
NEWVIEW SCHOOL ONLINEの紹介
VR/ARコンテンツ制作に必要なUnity・PlayMakerを基礎から応用まで学べ、STYLYで配信されている魅力的なコンテンツの制作過程(制作技術も公開します)を学べるNEWVIEW SCHOOL ONLINEを開講中です。