UnityでSceneを離れるとオブジェクトの色が変化【HDRP/ポストプロセス】

※ Qiita から移行した記事となりますので、情報が古い可能性があります。

Scene(シーン)を離れるとオブジェクトの色が変わるという事象

例えばオブジェクトにカラーを適用した時、オブジェクトと近付いた状態であれば適用した色と変わり無いにも関わらず、オブジェクトから離れると色が変化することがあります。

実際に事象を再現してみると、下記のようになります。

近くにある場合

遠くにある場合

意図してこれをやっているのなら何も問題が無いのですが、時にはプロジェクト開始時のデフォルトとしてこのような事象が発生することがあります。
私自身もこの問題が発生し、原因について分からないまま頭を悩ませました……。

オブジェクトの色が変わる原因について

これは Unity に標準で備わっている “Fog” という機能によるものです。

Fog とは日本語に直すと “霧” という意味になり、文字通り距離が離れれば離れるほど奥に存在するオブジェクトがボヤけて見えなります。
普通は霧といったら白いものなので、画像で挙げた例は赤い霧ですね。

Fog に関する設定は Unity の新規プロジェクト作成でポストプロセス関連の機能が標準で備わっているものを選択すると、追加で設定しなくても機能がオンになっていることがあります。

Fog の解決方法

① Windows の選択。

② Rendering から Lighting Settings へ

③下の方にある Other Settings の Density を 0 にする

以上の設定を行っていただくことで、Fog が消えたかと思います。

Fog に関する備考

とはいえ、こちらの機能自体は消して悪いものではなく、上手く使えばゲーム開発の幅が広がる画期的な機能となりますので、そこはご理解ください。

例えば、ゲームに次のような演出を加えたい時には、とても便利です。

・森をより鬱蒼とした表現にする。
・早朝の靄が出ている状態を再現する。

もっと詳しく表現方法や利用場面について知りたい方は、Youtube の Unity Japan 公式チャンネルが公開している下記動画がとても参考になるので、ご参照いただければと思います。

お時間ある時に軽くご視聴いただくだけでも、Unity に限らず今後のゲーム開発において様々な場面で使える知見を得ることが出来るので、私としては非常に推奨しています。

SNS もやってるよ!