アルゴンUE4&アプリ開発日記

UE4の機能やプラグインを紹介します。初心者や中級者向けになってます!!

【UE4】UE4のWaterプラグインで波を表現してみる。

Waterプラグインを使ってみます(・ω・)

今回は4.26で追加される。

WaterプラグインのFluid(流体シミュレーション)を使って、

波や流体の揺れなどを表現していきたいと思います。

下の公式の動画を参考に行いました!!

www.youtube.com

UE4の4.26Preview7を使用しています(^ω^)

※サードパートンブループリントのプロジェクトから作成しています。

※まだ試験的な運用となっています。

※間違った説明などをしていたらコメント欄に記載してください。

Waterプラグインの有効化

まずWaterプラグインを有効化しないことには始まらないので、

Waterプラグインとそれに必要なLandmassプラグインを有効化します。

※landで検索するとどちらも表示されます。

Waterのプラグイン設定

Waterのプラグイン設定

地形の設定と波を発生させる場所の準備

まずは波を発生させるにも、

それを表現する場所がなければいけないので、

landscapeで地面を作成します。

エディタ上部のツールバーのモードを選択してランドスケープを選択します。

「編集レイヤーを有効化」にチェックを入れてから作成ボタンを押してください。

※マテリアルはスターターコンテンツありの場合に追加される、

    M_Ground_Grassを使用しています。

ランドスケープの作成

ランドスケープの作成

設定が完了したら右下の作成ボタンを押して地形を作成します。

作成が完了したらツールバーのモードを「選択」にして、

アクタの配置タブからを選択し「Water」と検索します。

するといくつかのアクタ情報が表示されます。

Water関連のアクタ

Water関連のアクタ

今回使用するのはWaterBodyLakeを使用してみます。

ドラッグアンドドロップでレベル上に配置しましょう。

配置してビルドすると下のようになるかと思います。

※Waterプラグインの使い方は他の方が紹介していますので、

 説明を省略させていただきます。

WaterBodyLakeをレベルに配置してビルド後の表示

WaterBodyLakeをレベルに配置してビルド後の表示

地形の設定と波を発生させる場所の準備は完了になります。

実際に波を表示させる。

それでは実際に波を発生させていきます。

波を発生させるにはWaterプラグインの中にある、

流体シミュレーションの制御をメインに行うBP_FluidSim_01と、

波を実際に発生させるサンプル用のBPを使います。

表示オプションでプラグインの表示ができるようにします。

表示オプションの設定

表示オプションの設定

上の画像のように設定するとWaterコンテンツという

フォルダを選択できるようになります。

波の設定はFluidSimulationフォルダ内に格納されています。

Waterコンテンツのフォルダ

Waterコンテンツのフォルダ

それ以外にもNiagara やマテリアルなど必要なファイルはこちらに格納されています。

FluidSimulationのBluePrintsフォルダにある、BP_FluidSim_01をレベルに配置します。

BP_FluidSim_01を配置して波のシミュレーションが

適応される広さや高さを指定します。
ブループリント詳細のシミュレーション項目にShow Simulation Meshがあるので、

チェックを入れてどれぐらい必要か自身の環境に合わせてください。

広さを変更するにはシミュレーション項目のSimulation World sizeで設定します。

シミュレーション項目の設定

シミュレーション項目の設定

波のシミュレーション範囲設定

波のシミュレーション範囲設定

次にどのアクタを対象にシミュレーションを実行するのか指定します。

Wave Simlation項目の「Simulate Wave Foam」のチェックを入れて、

「Water body」で先ほどの湖を指定してあげます。

WaveSimulationの適応先設定

WaveSimulationの適応先設定

シミュレーター側であるBP_FluidSim_01の設定は以上です。

実際に波を発生させる設定を行う前に、

Rakeの波を消したほうが分かりやすいので抑えるようにします。

追加した湖のアクタを選択してWaveの設定を表示します。

WavesSourceをNoneにすればOKです。

f:id:yoshikata1990:20201115172331p:plain

Lake側のWave動作のOFF

それから流体シミュレーションの表現をシミュレーションの項目があります。

こちらを「Shallow Water」に変更します。

※Shallow Waterとは浅瀬の波しぶきを表現するようなもの

Solverの設定

Solverの設定

これで地形と波を発生させるシミュレーションの設定は完了です。

続いて波を発生させるためのブループリントを配置します。

FluidSimulationのBlueprintsのExample内に波の衝撃を発生させるための、

アクタ情報がいくつか用意されています。

波の衝撃を発生させるサンプル

波の衝撃を発生させるサンプル

今回はBP_Dynamic_Force_skelMeshとBP_Fluid_Impulse_Repeatingを使います。

まずはBP_Fluid_Impulse_Repeatingを設定して配置してみます。

波を発生させたい箇所に配置して下の画像の設定箇所を変更します。

Fluid_Impulseの設定

Fluid_Impulseの設定

簡単な設定は下記になります。

※細かい設定はブループリント内で編集できます。

Impulse Every N Secound:波を発生させる間隔

Force Radius:波の広がりの広さ

Force Strength:波しぶきの強さ

実際にStrengthを変更すると見た目がだいぶ変化します。

Radiusが100でStrengthが40の場合

Radiusが100でStrengthが40の場合

Strengthを100にすると波紋やしぶきの表現もだいぶ変化します。

Radiusが100でStrengthが100の場合

Radiusが100でStrengthが100の場合

今度はBP_Dynamic_Force_skelMeshを試してみます。

こちらはスケルタルメッシュのソケットの位置と

キャラの動きに応じて波を発生させています。

SkelMeshの設定項目

SkelMeshの設定項目

設定の箇所についてはBP_Fluid_Impulse_Repeatingとほぼ同様ですが、

スケルタルメッシュの情報やソケットの情報などを渡しています。

実際に動かすと下のTwitterのような形になります。

以上でWaterのFluidSimulationで波を発生させる簡単な説明は完了になります。

ブループリントや細かい解説はUE4の4.26リリース後に行いたいと思います。