動的オブジェクトと静的オブジェクトでライティングが異なる

投稿者: | 2019-03-25

真っ暗にする


真っ暗にしたいとき、床や壁などの静的なオブジェクトはライトマップを切り替えればいいですが、動的オブジェクトにライトマップは使えないので色がちぐはぐです。(真っ暗にしたいのにうっすらと扉が見えています。)


近くでみても色が違います。上は動かす扉で、下は動かない床です。

雰囲気がでないので扉の色を黒くしてみました。

真っ暗で良い感じですが、近くで見ると違和感があります。


床は白いのがライトが消えて暗くなっているのですが、扉はもともとの色が黒い感じで変です。
扉も、もともとは白だけどライトがあたってなくて暗いんだという感じの色にしたいですね。

動的なオブジェクト(扉)のライトの色は何によるかというと一つはゲームの世界全体の光の色みたいです。
Window->Renderer->Lighting Settings から環境光などの変更ができるウィンドウが出ます。

ここを真っ黒にするとドアも暗くなりました。

この色はドアにあたるライトの色なのでドアの本来の色が変わるわけではありません。

真っ暗にするとわかります。ドアはもともとは壁などと同じ色ですが、そこに当たる光によって色が違って見えていたんです。


オレンジにするとこうなります。


静的な壁や天井にもオレンジの光が差します。

スクリプトで変える

RnderSettings.ambientLight = new Color(0f, 0f, 0f, 0f);

こう書くと真っ暗になります。()の中はRGBAです。0~255でなく 0~1の値です。
「ambientLight」でなくほかのものも操作できます。Unityマニュアルに一覧があります。

コメントを残す

メールアドレスが公開されることはありません。