【Unity】Fogの色を場所によって変化させる

投稿者: | 2020-09-19

Volumeを使ってFog等を場所によって変えてみます。

まずヒエラルキーでScene SettingsやBox Volume等のVolumeコンポーネントの付いたオブジェクトを新規作成します。

Box VolumeにはIs Triggerにチェックの入ったボックスコライダーが付いています。コライダーがなければ追加します。VolumeのModeはLocalになっています。

シーンビューを見ながらボックスコライダーを大きくしました。

これを複製しました。

両方ともNewボタンを押して、Add OverrideからFogを追加します。

Fogの全てのチェックを入れて、それぞれ設定を変更してみます。

右のVolumeのFogは赤色、左は緑にしてみました。FPSコントローラーで歩くと、コライダーに入ったときにそれぞれのFogがカメラに反映されます。その間では中間の色になっています。

新しくオブジェクトを作ってVolumeコンポーネントをGlobalモードにし、同様に別の設定のFogを追加します。

すると、全体のFogが変わりましたが、コライダーに入ってもFogが切り替わらなくなりました。

変更前
変更後

2つのLocalなボリュームのPriorityをGlobalのものより上げると、これらのVolumeがカメラに影響するようになりました。

これで全体のFogと局所的なFogを別々に設定できました。さらに、VolumeコンポーネントのWeightを変えると、そのVolumeの影響具合を変えられます。

右のVolumeのウェイトを下げると、赤いFogの影響が抑えられました。

Blend Distanceは、Volumeの効果が始まる距離です。0だとコライダーにした瞬間にFogが切り替わります。

値を上げると、コライダーの外側でも距離に応じて徐々に影響を受けるようになります。

コメントを残す

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