本日は Unity の技術調査枠です。
前回、別のプロジェクトから別のプロジェクトへゲームオブジェクトをコピーする術を学びました。
bluebirdofoz.hatenablog.com
しかし、実際に動かしてみると微妙に3Dモデルの色の見え方が違いました。
原因を調べてみると二つのプロジェクトで Standard シェーダの色が違うことが分かりました。
・元プロジェクトの Standard シェーダ
・コピー先プロジェクトの Standard シェーダ
Standard シェーダは Unity の共通シェーダなのでコピーに関わらず、同じ発色になるはずです。
それにも関わらず、同じ色になっていないということはマテリアルやシェーダ以外に色を決定する要素があるということです。
(シェーダを直接見ているのでこの場合シーン内のライト設定は関係ありません)
調べてみた結果、Unity にはライティングの設定があるらしいことが分かりました。
noshipu.hateblo.jp
プロジェクト間で調べてみたところ、この設定が異なりました。早速コピー先のライティング設定を修正します。
メニューから Window -> Lighting -> Setting で Lighting ウィンドウが開きます。
コピー元のライティング設定と見比べて、設定を合わせてみます。
GrobalMaps の AutoGenerate にチェックをしました。
Standard シェーダが元プロジェクトの Standard シェーダと同じ色になりました。
グローバルマップの設定の正体は軽く調べただけではよく分からず……。
以下のグローバルイルミネーションがその正体でしょうか。
docs.unity3d.com
またライティングに拘るときが来たら調べます。