Raspberlyのブログ

Raspberlyのブログ

Unityネタをメインとした技術系ブログです。にゃんこ大戦争や日常なども。そろそろブログタイトル決めたい

【アセット紹介】Enviro Lite - Sky and Weather で天気を操作する【Unity】

今回はアセットの紹介をしていきます。
紹介するのはEnviro Lite - Sky and Weather
空と天気を構築するアセットです。

f:id:Raspberly:20210824010554p:plain

f:id:Raspberly:20210824021825p:plain

 

 

お得なセール情報(終了しました)

現在アセットストアでは、プロトタイピング向けアセットのバンドルを発売中!
今回紹介する「Enviro Lite - Sky and Weather」もバンドルに含まれています。

f:id:Raspberly:20210823232118p:plain

金額に応じてアセットが異なりますが、オススメは全てのアセットが含まれた$21.99コースです。
通常の50%OFFセールで購入するよりも遥かに安く購入できるので、
気になるアセットがある場合は買っちゃいましょう!

f:id:Raspberly:20210823205628p:plain

 

f:id:Raspberly:20210823205647p:plain

f:id:Raspberly:20210823205732p:plain

 

どんなアセット?

動的で軽量な空と天気を構築できるアセットです。

非常に簡単なセットアップ:

新しいマネージャーコンポーネントを使用すると、シーンにEnviroLiteを簡単にセットアップできます。

 

プロファイルシステム

EnviroのLiteプロファイルシステムを使用すると、空をできるだけ簡単に調整できます。実行時に設定を微調整し、プロファイルに保存します。設計および実行時にプロファイルをロードします。シーンごとに異なるプロファイルを作成するか、構成を他のユーザーと共有します。

 

昼夜サイクル:

Enviro Liteは、現実的な昼夜サイクルをサポートします。緯度と経度による完全な位置サポートを備えた正しい太陽と月の位置。システム時刻を使用するか、リアルタイムの分に基づいてenviroに時刻を更新させるかを選択できます。

 

スカイボックス:

Enviro Liteには、見栄えのするダイナミックな空を実現するためのライトスカイボックスシェーダーが含まれています。地平線用と上空用の2つのグラデーションしかないため、簡単に調整できます。いくつかのミー散乱と一緒に、すべてのプラットフォームでサポートされ、非常に軽量なリアルな空を手に入れることができます。

 

点灯:

Enviro Liteは、太陽の高度に基づいてシーンをリアルに照らします。エディターでカーブとグラデーションを変更することで、光の強度と色を完全に制御できます。もちろん、さまざまな環境光モードから選択することもできます。

 

季節:

Enviro Liteは季節を変更し、Unity地形のゲームオブジェクト、マテリアル、テクスチャを交換するためのコンポーネントを取得します。あなたは現実的な設定に制限されていません!各シーズンの開始日と終了日を設定できます。Enviroは、季節、時刻、現在の天気に基づいた温度シミュレーションもサポートしています。

 

雲:

ダイナミックな空のための美しいパーティクルベースのスカイボックスクラウド。これらの雲は速く、見栄えがします。Enviro Liteは、スカイボックスで直接レンダリングされた巻雲もサポートしています。3層の雲を使用すると、プロジェクトに驚くほどダイナミックな空を見ることができます。

 

霧:

見事な霧が必要ですか?Enviro Liteには、距離、高さ、スカイフォグをサポートする高度な光散乱フォグイメージエフェクトが含まれています。透明な素材に霧が必要ですか?問題ありません。数行のコードで、独自の透明シェーダーを変更して正しく曇らせることができます。そして、あなたが始めるために、いくつかのパーティクルシェーダーと透明シェーダーがすでに含まれています!ただし、パフォーマンス上の理由から、特にモバイルでは、Unityフォワードフォグを使用することもできます。霧の色は空の地平線に一致し、リアルでダイナミックな外観になります。

 

天気:

Enviro Liteには、非常に強力な気象システムが含まれています。独自の天気タイプを作成して、光、空、霧、雲を運転することができます。Enviroは、あらゆる種類の統一手裏剣パーティクルエフェクトをサポートしており、考えられるあらゆる天候効果を自由に作成できます。これには、晴天、曇り、雨、嵐、雪、霧の天気など、11種類の既成の天気が含まれます。雷雨を有効にし、スムーズな遷移で天気ごとに異なる周囲音と天気音を選択できます。

 

ネットワーキング:

Enviro Liteは、すぐに使用できるUNet、Mirror、およびPhotonをサポートします。それはあなたのすべてのプレーヤーと時間と天気を同期させます。Enviro Liteには、ヘッドレスサーバーが時間と天気のみを計算し、それ以上は計算しない最小モードもあります。

 

バーチャルリアリティ

Enviro Liteは、マルチパスおよびシングルパス/インスタンス化された立体視レンダリングをサポートします。OculusRiftでテスト済み。

多数のサードパーティアセットとの連携機能があるのも大きな特徴ですね。 

 

 

Enviroには通常版Lite版の2バージョンが存在します。今回紹介するのはLite版です。
通常版はPC・コンソール向け、Lite版はモバイル向けになっています。

通常版にはLite版が含まれているので、持っている方はLite版を購入する必要はありません

 

 

 

 

 

開発環境

Unity2020.3.14f1

Universal RP ver 10.5.1

Enviro Lite - Sky and Weather ver2.3.3

 

今回はURPプロジェクトで使用しますが、Built-inでも同じ手順で動作確認済みです。

 

 

インポートの確認

アセットインポート完了時はこんな感じです。

f:id:Raspberly:20210813010614p:plain

 

サンプルシーンの確認

Assets/Enviro - Sky and Weather/Samples/Sceneにサンプルシーンがあります。
一人称視点で動き回れるTerrainのあるシーンです。

f:id:Raspberly:20210822234558p:plain

右側のUIから、時間・天気・ビジュアルの品質を設定できます

f:id:Raspberly:20210822235509p:plain


デフォルトで用意されている天気のプリセットは10種類。
雨音や風の音など環境音もあります。

f:id:Raspberly:20210823003832g:plain

 

f:id:Raspberly:20210823003941g:plain

 

 

 

実際に試してみる

一から始めて実際に雨を降らせてみます。

初期設定

シーンに「Enviro Sky Manager」を配置します。
UnityメニューバーのAssets/Create/Enviro/Enviro Sky Managerから、
EnviroSkyMgrコンポーネントがアタッチされたゲームオブジェクトが生成されます。

f:id:Raspberly:20210813011439p:plain

f:id:Raspberly:20210813011633p:plain

 

これは、Enviroインスタンス(以下インスタンス)の管理、レンダリングパイプラインの切り替え、サードパーティのサポートを行うマネージャークラスです。

f:id:Raspberly:20210823012500p:plain

 

URPの設定

※URPプロジェクトのみ

Enviro Sky MgrのActivate URP Supportボタンを押します。

f:id:Raspberly:20210823010251p:plain

Scriptのコンパイル後、Enviro Sky MgrのCurrent Render PipelineがURPになっていれば完了です。

f:id:Raspberly:20210823010438p:plain

ドキュメントではURP Assetの設定など書いてありますが必要なさそう(そもそもURP Assetsがない)

 

 

雨を降らせる

インスタンスの作成

Enviro Sky MgrのCreate Lite Instanceからインスタンスを作成します。
インスタンスはビジュアルの構成、時間や天気の制御、各機能のオンオフを設定できます

f:id:Raspberly:20210823012702p:plain

インスタンスはEnviro Sky Mgrの子オブジェクトに作成されます。
f:id:Raspberly:20210823233753p:plain
作成後は非アクティブ状態になっているので、Enviro Sky MgrからActiveボタンを押します。

f:id:Raspberly:20210823234750p:plain

 

この時、PlayerかCameraの設定がされていないと警告がでます、
Auto Assignを押すと自動で設定してくれるます。

f:id:Raspberly:20210823161003p:plain

これで空が表示され太陽も動いているのが確認できます。

f:id:Raspberly:20210823235207p:plain

 

天気の設定

インスタンスのShowから、インスタンスオブジェクトのInspectorを開きます。

f:id:Raspberly:20210823235832p:plain

Enviro Sky LiteのWeather Controls/Weather/Start Weather Presetで最初の天気を設定できます。

f:id:Raspberly:20210823235938p:plain

天気はプリセットとして設定でき最初からいくつか用意されています。(自作も可能)
今回は雨を降らせたいのでHeavy Rainを設定します。

f:id:Raspberly:20210824000024p:plain

これで雨が降るようになりました。

f:id:Raspberly:20210824002912g:plain

 

 

天気プリセットを自作してみる

プリセットの作成

最初から用意されている天気プリセットを使いましたが、これを自作してみます。
今回は「天気雨」を作ってみます。

Projectビューで右クリックからCreate/Enviro/WeatherPresetを選択、新しいプリセットが作成されます。

f:id:Raspberly:20210824000735p:plain

 

名前を「Sun Shower」に変更。
名前はインスタンス側から識別するのに使われます。

f:id:Raspberly:20210824001532p:plain

 

雨のエフェクト

雨が降るようにします。雨のエフェクトはEnviroに含まれているものをそのまま使います。
個別に雨用エフェクトを持っている場合はそれを設定してもいいですね。


General Config/Paricle EffectsAddを押し、「Medium Rain HQ」をアサイン。
上から降るようにしたいので、PositionとRotaionをそれぞれ設定

f:id:Raspberly:20210823204152p:plain

 

雲の設定

天気雨なので雲は出さないようにしますが、デフォルトで快晴状態なのでそのままでOK。
設定自体はプリセットのClouds Configsから行えます。

f:id:Raspberly:20210824003928p:plain

 

雨音の設定

プリセットのAudio Configsから音の設定ができます。
Weather Soundeffectに「sfx_enviro_heavyrain」を設定。

f:id:Raspberly:20210824005536p:plain



プリセットの設定

作成したプリセットをインスタンスに設定します。
インスタンスオブジェクトにあるWeather ZoneコンポーネントWeather Configs/Weather PresetsにSun Showerを追加します。

f:id:Raspberly:20210824004249p:plain

 

最後にEnviro Sky LiteのWeather Controls/Weather/Start Weather PresetにSun Showerを設定します。

f:id:Raspberly:20210824005157p:plain



これで完成。
実行してみると雲がない快晴状態で雨が降っているのが確認できます。
(晴れているとわかりにくいので夕方にしています)

f:id:Raspberly:20210824003020g:plain

 

パラメータに関しては既存の天気プリセットを参考にするとよさそうです。
プリセットはAssets/Enviro - Sky and Weather/Core/Profiles/Weather Presetsにあります。

f:id:Raspberly:20210824005709p:plain

 

 

時間を調整する

インスタンスEnviro Sky Lite/Time and Location Controlsから時間を設定できます。

f:id:Raspberly:20210824005804p:plain

Progress TimeをNoneにすると時間の流れが止まり、System Timeにすると現実の時間が反映されます。

 

 

 

 

 

まとめ

・Enviro Lite - Sky and Weatherは空と天気を構築できるアセット
インスタンスのパラメータとプリセットの設定でノーコーディングで環境を構築できる

 

 

以上です。
 

 

 

参考資料

forum.unity.com

 

 

 

他のアセットの紹介記事はこちら↓

raspberly.hateblo.jp

 

同じ天候操作系アセット「Weather Maker」も解説しています(やや古い) 

raspberly.hateblo.jp

raspberly.hateblo.jp

 

 

 

 

※本記事にはAssetStoreアフィリエイトリンクが含まれています。

他、間違っている箇所、わかりにくい所がありましたらコメントにお願いします。