【Unity】ランタン自体に当たる光をエミッションマップで作る

投稿者: | 2023-12-12

ライトクッキー用のCubeマップを作るでは、ランタン自身に光がほとんど当たらなくなりました。

ライトクッキーがない場合、ランタンの金具などにライトがあたります。

ポイントライトを複製して、ライトクッキーを取り除きます。ランタンだけに影響するようにライトレイヤーを「1」に変更しました。

ライトクッキーのついたライトはデフォルトレイヤーのままです。

ランタンのメッシュレンダラーの「Rendering Layer Mask」では、ライトクッキーの付いていないライトと同じライトレイヤーだけを選択します。

これで、ライトクッキーの付いたライトがランタンに当たらなくなりました。

ポイントライトを増やさないために、Blenderでエミッションマップをベイクして同様の見た目にしてみます。

エミッションマップを作る

ライトクッキーを作ったblendファイルを開きました。Cubeは削除しています。

ランタンにはテクスチャが設定されています。ノーマルやDisplacementもベイク結果に影響します。

ガラス部分のアルファが低いので、ライトが通り抜けます。

ガラス部分とそれ以外で別のオブジェクトになっているので、ガラス以外の部分のオブジェクトを選択し、ShaderエディタでImage Textureノードに新しい画像を追加します。元のエミッションマップと同じサイズにします。

Image Textureノードが選択されて、白い枠が表示されている状態にします。

プロパティでBake Typeを「Diffuse」にし、「Contributions」のチェックをすべて入れてベイクします。

「Color」をベイクしない場合、エミッションマップが白黒になります。

発光した部分がのっぺりした感じになります。

マテリアルに設定

画像を保存してUnityにインポートします。マテリアルのEmissive Mapにアタッチして、明るさや色を調節します。ライトクッキー無しのポイントライトは非表示にします。

クッキー無しのポイントライトを使ったものは、ランタン自体に遮られる部分に光が当たっていて不自然です。

コメントを残す

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