これはUnityアセット冬のアドベントカレンダー 2019 Winter!7日目の記事です。
昨日は和辛子びびびさんの「【Unityアセット】GameCreatorで4足歩行の動物を動かしたい」でした。
今回はアセットの紹介をしていきます。
紹介するのはWeather Maker - Unity Weather System, Sky, Water, Volumetric Clouds and Light*1です。
天気など自然環境を構築できるアセットです。
前回から
前回のUnity アセット真夏のアドベントカレンダー 2019 Summer!の記事では、
基本的な概要とセットアップ、天気のコントロールをメインでやりました。
↓初めてWeather Makerを触る方はこちらからどうぞ。
今回は冬ということで、地面や建築物に雪を積もらせるスノーオーバーレイをやってみます。
0.開発環境
Unity2019.3.0f
Weather Maker var5.9.4
Weather Makerはアップデート頻度が非常に多いアセットです。
使用するバージョンによって、やり方やUIが異なる場合があります。
1.初期セットアップ
基本的な初期セットアップは前回の記事を見てください。
シーンの用意
新しくシーンを作ります。
今回はせっかくなので、こちらのアセットを導入します。
非常に高品質な寺院の無料アセットです。その分描画負荷が高いですが。
こちらにあるDemoSceneを使います。
Sun_Temple\Scenes\DemoScene.unityを開きます。
シーンにWeather Makerプレハブを配置
UnityEditorのWindow/Weather Maker/Add Weather Maker to SceneでWeatherMakerPrefabを配置します。
DirectionalLightの削除
シーンに最初から含まれているライトは削除しておきましょう。
太陽にすでにライトがあります。
LightingSettings
Window/Rendering/LightSetting/EnvironmentのSkybox MaterialとSun Sourceを変更します。
SkyboxにはWeatherMakerに含まれているSkybox用のマテリアルWeatherMakerSkyBoxMaterialを、
SunSourceにはシーン内に配置したWeatherMakerPrefab内にあるSunを追加する。
Environment LightingをGradientかColorに変更
Environment ReflectionsをCustomに変更
MainCameraの編集
Cameraパラメータの設定
・Clear FlagをSolidColor
・Backgroundを全て0(真っ黒)
・Far Planesを2000以上
・Rendering PathをDeferred
・Allow MSAAを無効化
Rendering PathはDeferredにした方がよりよく見えるようになるそうです。
Tagの設定
シーン内のMainCameraのTagがMainCameraになっていることを確認しましょう。
通常はデフォルトで大丈夫のはず。
PostProcessingの設定
必須ではありませんが、見栄えがよくなるため設定しておきます。
PackageManagerからインストールしておきましょう。
Window/Weather Maker/Setup Post Processingで、シーン内にあるカメラにPost Processing Stackが自動で設定されます。
2.実際にオーバーレイしてみる
それでは雪を積もらせてみます。
設定するのはこちら、WeatherMakerPrefab/FullScreenEffects/Snowです。
Watherの時と同じように、実際に触るのはプロファイルとなります。
プロファイルのインスペクター
雪をオーバーレイ
雪を地表のテクスチャの上にオーバーレイ(上書き)します。
パラメータはOverlay Intensityです。これはオーバーレイの強度を表します。
値が高ければ高いほど雪が積もるイメージです。
最大値の1まで上げると真っ白ですが、0.5くらいだと良い感じになります。
雪がオーバーレイされる範囲を調整する
パラメータはOverlay Normal Reducerです。これは雪の粘着性です。
y法線が1から遠ざかるときのオーバーレイオーバーレイの強度。値が小さいと、y値が小さい法線でオーバーレイがより多く表示されます
つまり負の値になるほど、斜面に関係なく雪がつくようになります。
この値を調整することで、屋根や地面など水平な箇所には雪が積もり、
壁など斜面がある箇所は積もらないといったことができます。
天気が雪の時に自動でオーバーレイする
手動で調整するのではなく、天気が雪の時に自動でオーバーレイされるようにします。
パラメータはAuto Intensity Multiplierです。
この値が正の値になるほど、早くオーバーレイされます。
注意点として、この値が0以外の時、Overlay Intensityを手動で設定できなくなります。
雪の降らし方は前回を見てね。
天気が晴れた時に自動でオーバーレイを解除する
パラメータはAuto Intensity Multiplierです。
これが負の値になるほど、早くオーバーレイが解除されます。
ちなみにこれ、どういうわけなのか雪が降っててもオーバーレイが解除されます。
オーバーレイが解除される時、最低値を設定する
手動にしろ自動にしろ、オーバーレイの最低値を設定します。
パラメータはOverlay Minimum Intensityです。
これはオーバーレイの最小強度で、オーバーレイは他の要因に関係なくこの値を下回ることはありません。
Overlay Intensityのパラメータは一応Overlay Minimum Intensityより小さくはなりますが、
雪が止んでも積もったままの状態にすることができます。
↓の例の場合、Overlay Intensityが0.4以下にはならない。
雪の色味や反射色を変える
Colorから色を変えることができます。
また太陽からの反射光も調整できます。
ノイズマスクを使いまばらにオーバーレイさせる
今までは地表全体に均等にオーバーレイしていましたが、
ノイズマスクを使うことで、まばらに雪が積もるような演出をすることができます。
ノイズ用のテクスチャは初めからいくつか用意されています。
こちらのノイズマスクはオフセットのUVスクロールやスケール変更も可能です。
注目すべきパラメータは複数あります。
Overlay Noise Multiplierはオーバーレイノイズの乗数を表し、
Overlay Noise Powerはノイズパワーを表します。
下の例を見ると、
Multiplierはノイズの強さで高ければ全体を覆うほどノイズが大きくなり、
Powerはノイズの濃さで高ければノイズとそれ以外がくっきり描画されます。
オフセットや移動させたい場合の速度も設定できます。
特定の高さ以上のみオーバーレイさせる
オーバーレイの最小の高さを設定することができます。
パラメータは複数あります。
Overlay Min Heightはオーバーレイを表示する最小の高さを設定します。
Overlay Min Height Noise Multiplierは、オーバーレイノイズ乗数。
値が高いとオーバーレイの境界がくっきりとなります。
逆に低いと境界が荒くなります。
Overlay Min Height Falloff Powerでも同じようなことができます、
どういう使い分けをすればいいのかはよくわかりませんでした。
まとめ
・Weather Makerのスノーオーバーレイを使えば、簡単に雪を積もらせることができる。
・積もらせ方にノイズをつけたり、一部分だけつけたりと応用ができる。
Weather Makerをお持ちで雪の降るステージなどを作りたい方はぜひお試しください。
今回紹介したスノーオーバーレイとは別に、地面の濡れを表すオーバーレイもあります。
参考文献
その他のチュートリアルビデオ -------------------------------------------------- 最新のWeather Makerビデオ... -Open Weather Map API:https://youtu.be/7_r7oibCM68 -uMMORPG / Mirrorチュートリアル:https://youtu.be/BIFQqmG2Gws -体積雲: -美しい空のセットアップ:https://youtu.be/1Xk2z858T1U -完全な概要(40分以上):https://youtu.be/ZoULn0mYbt8 -レイマーチの最適化:https://youtu.be/Dwk4vF_6ogs -クラウドノイズエディター:https://youtu.be/NxuJ5H2mZwY -オーロラ/オーロラ:https://youtu.be/J9QSebVLEO8 -時間的再投影:https://youtu.be/JCzE7JfFPU8 -パフォーマンスプロファイル:https://youtu.be/-Yoj_OjJL4g -完全なセットアップガイド:https://youtu.be/DHNnS6f85rM -クイックスタートガイド:https://youtu.be/5IACGZULiDw -新しいプレハブの概要:https://youtu.be/hWJF5v0s4gc -天気ゾーン:https://youtu.be/11QoMD_qhHw -ヌルゾーン:https://youtu.be/ZPBum2YcgB8
明日のアドベントカレンダーはVR発掘隊さんによる
「とても簡単にUIシステムを作れるアセット Doozy UIの解説 」です。
乞うご期待。
他間違っている箇所、わかりにくい所がありましたらコメントにお願いします。
*1:名前が長いので記事内では「Weather Maker」と表記します