Unityで外からの光の影響を受けない真っ暗な部屋を作ってみよう!
はじめに
今回はUnityで外からの光の影響を受けない閉鎖的な真っ暗な部屋を作ってみたいと思います。
最終的に部屋の中にはライトを配置して部屋の中の一部だけ光があたる状態にしたいと思います。
環境
Unity 2020.3.12f1を使います。
unity3d.com
まずは部屋を作ってみる
まずMainCameraとDirectional Lightを画像の赤枠の内容で設定します。
次にRoomをCreate Emptyから作成し、
その子として3D Object > CubeでRight/Left/Top/bottom/Front/Backの6つ分作成します。
各オブジェクトは以下の画像の赤枠の内容で設定します。
部屋の中に配置するオブジェクトとして3D Object > Sphereを作成します。
各オブジェクトは以下の画像の赤枠の内容で設定します。
最後にSpot LightとしてLight > Spotlightを作成します。
この状態で実行してみましょう。
ライトついたままなので明るいままですね。
各種ライトを消してみましょう。
Directional LightとSpopt Lightを非アクティブにしてから再度実行します。
どうなるでしょうか?
うーん、Spot Lightの明かりは消えたみたいですが、部屋全体は暗くならないですね・・・
これは環境光が影響しているためです。
環境光を消してみる
環境光はメニューのWindow > Rendering > Lightingで設定できます。
EnvironmentタブからEnvironment LightingとEnvironment ReflectionsのIntensity Multiplerを0にします。
※設定後はそのままウィンドウを閉じても大丈夫です。
実行してみましょう。
真っ暗になりましたね^^
Spot Lightが消えたままなのでSpot Lightを再度アクティブにしてみましょう。
実行すると、上からのSpot Lightを浴びたSphereが映し出されましたね^^
おわりに
今回は環境光に影響されずCubeで囲われた仮想的な部屋を作りました。
部屋をランダムに組み合わせてキャラクタにたいまつなどの明かりを持たせたり壁に明かりを付けたりすると、地下ダンジョンっぽいのが作れそうですね^^
今回作成したUnityプロジェクトは以下の場所から取得できます。
しょぼいですが、宜しければご自由にご利用下さい。
github.com