Unityで嵐の海を表現してみた
今更ですが、Unity 2022.2でHDRPのWater Systemが実装され、すごく簡単に海を表現できるようになったので、これを使って嵐の海を表現してみたいと思います。
Unityとは(簡単に)
Unityは、ゲーム開発や仮想現実、拡張現実などのインタラクティブなコンテンツを作成するための統合開発環境です。使いやすさとクロスプラットフォーム対応が特徴で、多くのプラットフォームで動作します。また、初心者からプロまで幅広い開発者に使用されています。
プログラミング言語C#を使用することで、より柔軟な開発を行えます。
最近では、自動車産業や建築業界などゲーム開発以外の幅広い分野で使用されてきています。
実施環境
MacBook Pro
Chip: Apple M1 Pro
Memory: 16GB
macOS Ventura 13.3.1
実際に作ってみる
プロジェクトの作成
Water Systemを使用するために、HDRPテンプレートを使用する必要があります。
3D (HDRP)を選択し、プロジェクトを作成してください。
※初めて3D(HDRP)を使用する方は、テンプレートのダウンロードが必要になります。画面右側にダウンロードボタンが表示されるので、ダウンロードしてください。
プロジェクトの設定
Water Systemを使用するためには、いくつかの設定が必要となります。
まずは、EditタブからProject Settingsを開きます。
Project Settingsで「Quality」>「HDRP」>「Water」を選択し、Enableをチェックします。
次に、「Graphics」>「HDRP Global Settings」>「Frame Settings」>「Camera」>「Rendering」の「Water」をチェックします。
これで海を作る準備は整いました。
また、今回、嵐のような空模様にするためにVolumetric Cloudsを使用するので、Volumetric Cloudsの設定も行なっておきます。
これは「Quality」>「HDRP」>「Lightning」>「Volumetrics」>「Volumetric Clouds」を有効にするだけでOKです。
※Volumetric CloudsはUnity 2021.2から実装されています。
次は実際に海を配置していきます。
海の配置
Hierarchyウィンドウで「Sky and Fog Volume」を選択し、Inspectorウィンドウから「Add Override」ボタンをクリックして「WaterRendering」を追加します。
「Water Rendering」が追加できたら、「Water Rendering」を有効にします。「General」>「State」を有効にして、Enabledに設定してください。
最後に、Hierarchyウィンドウから「右クリック」「Water Surface」「Ocean Sea or Lake」を選択します。これでようやく海が出現します。
下記のように海が表示されれば、成功です。
(少し設定が必要ですが、これだけで海が作れてしまうなんて、すごいですね!)
しかし、まだ凪ですね。今回は嵐の海を表現したいので、海のプロパティを少しいじって波を高くしてみます。
Hierarchyウィンドウで「Ocean」を選択し、Inspectorウィンドウの「Simulation」>「Swell」>「Distant Wind Speed」の値を上げてみます。
私は、130に設定しました。
波が激しくなったと思います。
しっかり白波も表現されていると思います。(すごい..!)
次は嵐っぽさを出すために、雲を作っていきます。
雲の配置
海の配置で行った手順とほぼ同様の手順で、雲を配置できます。
Inspectorウィンドウから「Add Override」ボタンをクリックして「Volumetric Clouds」を追加します。追加できたら、「General」>「State」を有効にし、Enabledに設定してください。
すると、下記画面のように雲が出現したと思います。
雲を配置できたので、雲のプロパティをいじって嵐っぽさを出していきます。これもすごく簡単で、Inspectorウィンドウから「Volumetric Clouds」の「Shape」>「Cloud Preset」を有効にし、プリセットをデフォルトのCloudyからStormyに変更することで、嵐の空模様に設定できます。
Shape Factorを0.6くらいに設定すると、より嵐っぽさが増す気がします。
まだまだ改善の余地はあると思いますが、これで完成とします!
(Particle Systemを使った雨の表現の追加や、海の色の変更など…)
まとめ
以上、Unityを使用して嵐の海を表現できました。
ざっと手順をまとめると。
Water systemを使用するための設定
Volumetric cloudsを使用するための設定
海の追加
海のプロパティをいくつか設定
雲の追加
雲のプロパティをいくつか設定
となります。このようにUnityを使用することで、かなりクオリティの高いシーンを数個の簡単な手順で作成することができてしまいます。非常に強力なツールであることがわかりますね。他にもUnityには素晴らしい機能がたくさんあるので、ぜひいろいろと試してみてください。
また、今後もいろいろな素晴らしい機能がアップデートで追加されていくと思うので、Unityから目が離せません!