Waterプラグインを使ってみます(・ω・)
今回は4.26で追加される。
WaterプラグインのFluid(流体シミュレーション)を使って、
波や流体の揺れなどを表現していきたいと思います。
下の公式の動画を参考に行いました!!
※UE4の4.26Preview7を使用しています(^ω^)
※サードパートンブループリントのプロジェクトから作成しています。
※まだ試験的な運用となっています。
※間違った説明などをしていたらコメント欄に記載してください。
- ■目次
- ・Waterプラグインの有効化
- ・地形の設定と波を発生させる場所の準備
- ・実際に波を表示させる。
- ・V4.62.2で白波が発生しない件について
- ・UE5で白波を発生させる方法について
- ・キャラクターの動きに合わせた波の発生方法について
Waterプラグインの有効化
まずWaterプラグインを有効化しないことには始まらないので、
Waterプラグインとそれに必要なLandmassプラグインを有効化します。
※landで検索するとどちらも表示されます。
地形の設定と波を発生させる場所の準備
まずは波を発生させるにも、
それを表現する場所がなければいけないので、
landscapeで地面を作成します。
エディタ上部のツールバーのモードを選択してランドスケープを選択します。
「編集レイヤーを有効化」にチェックを入れてから作成ボタンを押してください。
※マテリアルはスターターコンテンツありの場合に追加される、
M_Ground_Grassを使用しています。
設定が完了したら右下の作成ボタンを押して地形を作成します。
作成が完了したらツールバーのモードを「選択」にして、
アクタの配置タブからを選択し「Water」と検索します。
するといくつかのアクタ情報が表示されます。
今回使用するのはWaterBodyLakeを使用してみます。
ドラッグアンドドロップでレベル上に配置しましょう。
配置してビルドすると下のようになるかと思います。
※Waterプラグインの使い方は他の方が紹介していますので、
説明を省略させていただきます。
地形の設定と波を発生させる場所の準備は完了になります。
実際に波を表示させる。
それでは実際に波を発生させていきます。
波を発生させるにはWaterプラグインの中にある、
流体シミュレーションの制御をメインに行うBP_FluidSim_01と、
波を実際に発生させるサンプル用のBPを使います。
表示オプションでプラグインの表示ができるようにします。
上の画像のように設定するとWaterコンテンツという
フォルダを選択できるようになります。
波の設定はFluidSimulationフォルダ内に格納されています。
それ以外にもNiagara やマテリアルなど必要なファイルはこちらに格納されています。
FluidSimulationのBluePrintsフォルダにある、BP_FluidSim_01をレベルに配置します。
BP_FluidSim_01を配置して波のシミュレーションが
適応される広さや高さを指定します。
ブループリント詳細のシミュレーション項目にShow Simulation Meshがあるので、
チェックを入れてどれぐらい必要か自身の環境に合わせてください。
広さを変更するにはシミュレーション項目のSimulation World sizeで設定します。
次にどのアクタを対象にシミュレーションを実行するのか指定します。
Wave Simlation項目の「Simulate Wave Foam」のチェックを入れて、
「Water body」で先ほどの湖を指定してあげます。
シミュレーター側であるBP_FluidSim_01の設定は以上です。
実際に波を発生させる設定を行う前に、
Rakeの波を消したほうが分かりやすいので抑えるようにします。
追加した湖のアクタを選択してWaveの設定を表示します。
WavesSourceをNoneにすればOKです。
それから流体シミュレーションの表現をシミュレーションの項目があります。
こちらを「Shallow Water」に変更します。
※Shallow Waterとは浅瀬の波しぶきを表現するようなもの
これで地形と波を発生させるシミュレーションの設定は完了です。
続いて波を発生させるためのブループリントを配置します。
FluidSimulationのBlueprintsのExample内に波の衝撃を発生させるための、
アクタ情報がいくつか用意されています。
今回はBP_Dynamic_Force_skelMeshとBP_Fluid_Impulse_Repeatingを使います。
まずはBP_Fluid_Impulse_Repeatingを設定して配置してみます。
波を発生させたい箇所に配置して下の画像の設定箇所を変更します。
簡単な設定は下記になります。
※細かい設定はブループリント内で編集できます。
Impulse Every N Secound:波を発生させる間隔
Force Radius:波の広がりの広さ
Force Strength:波しぶきの強さ
実際にStrengthを変更すると見た目がだいぶ変化します。
Strengthを100にすると波紋やしぶきの表現もだいぶ変化します。
今度はBP_Dynamic_Force_skelMeshを試してみます。
こちらはスケルタルメッシュのソケットの位置と
キャラの動きに応じて波を発生させています。
設定の箇所についてはBP_Fluid_Impulse_Repeatingとほぼ同様ですが、
スケルタルメッシュの情報やソケットの情報などを渡しています。
実際に動かすと下のTwitterのような形になります。
UE4の4.26で追加されるWaterプラグインのFluidの実験!
— よしかた@準備中 (@yoshikata_game) 2020年11月15日
波紋とか一瞬出る水しぶきがすごくよくできていて素晴らしい!! #UE4 #Fluid pic.twitter.com/OnYAerMDPn
以上でWaterのFluidSimulationで波を発生させる簡単な説明は完了になります。
V4.62.2で白波が発生しない件について
ブログを見て試していただいた方がいらっしゃいまして、
その方が白波が発生しないということで調査しました。
私の方でも実際に最初白波が発生していませんでした・・・
※まだExperimentalなので今後も変更が必ずあると思います!!
はじめまして。
— よしかた@準備中 (@yoshikata_game) 2021年5月11日
以前WaterSystemで白波の発生を試していたものです。
以前のように白波は立たないようになっていますね・・・
Water_Material__LakeのFoam関連のパラメータを上げたりキャラクターのForceStrengthを上げると若干ではありますが水しぶきが表現されます。 pic.twitter.com/c0gukdScsq
調べたところ下のyoutubeでフォーラムに投稿してくださった方が、
すでに対応しているWaterプラグインを動画の概要欄においてくれています。
白波を出すまでの流れも紹介しておきます。
上記youtubeの概要欄のプラグインデータをダウンロードして、
Engineのフォルダ(/Epic Games\UE_4.26\Engine\Plugins\Experimental)に配置します。
※Waterというフォルダが既にあると思いますので削除して置き換えてください。
配置したら右下のコンテンツブラウザの「表示オプション」を選択して、
エンジンのコンテンツを表示とプラグインコンテンツの表示をオンにして、
検索してWaterコンテンツ→「FluidSimulation」のフォルダを開きます。
Fluidsim_Terrainというサンプルマップがありますのでこれを開きます。
サンプルとなるレベルを開いたら、
アウトライナから「BP_Dynamic_Force_SkelMesh」を選択します。
詳細のデフォルト項目に、Fluid Force Dynamic Settings という項目があります。
Force Radius(波の範囲)を1000に設定して、
Force Strength(波の強さ)を1に設定します。
これで設定は完了になります。
あとはキャラクターを動かせば下のように白波が発生します!!
ちょっと前にUE4のWaterシステムの白波が出ないというのがあったので調べてたけど、Preview7までは出てたのか。とりあえず4.62.2でも白波を出せました。
— よしかた@準備中 (@yoshikata_game) 2021年5月14日
続きは返信の方に書いていきます#UE4Study #WaterFluid pic.twitter.com/yURGK9E1NL
UE5で白波を発生させる方法について
白波を発生させる場合についてですが下のリンクで、
細かく紹介されていますのでこちらもぜひチェックしてみてください。
※こちらを見てUE5でも問題なく白波を発生させられました。
キャラクターの動きに合わせた波の発生方法について
今までの説明でキャラクターの動きに合わせた白波の発生方法について、
記載がなかったので追記させていただきます。
※上記で記載したリンクの白波発生の設定を行った後で設定しています。
※今回はサードパーソンテンプレートのグレイマンを使用した説明になります。
波を発生させる位置をソケットで指定するのでボーン設定でソケットを追加します。
次にThirdPersonCharacterにWaterPlugin関連の変数の追加と、
BeginPlay時に波しぶきの設定をします。
プログラムの内容としては以下の2点になります。
1.BPFluidSim(波を発生させるための設定があるBP)を探して変数指定
2.FluidForceDynamicに変数で設定した内容を登録
あとはFluidForceDynamicSettings変数に先ほど設定したソケット情報などを、
紐づけてあげることで波を発生させることが可能です。
実際に白波を歩いた位置に合わせて表示したのがこちらになります。
いやー2022年も始まりましたね!
— よしかた@何もしてない (@yoshikata_game) 2022年1月2日
トラ柄のグレイマンで2022年波立たせて行きましょう!
※UE5のWaterプラグインの改良を試してました😉 pic.twitter.com/vIFPfKJ6X3
以上で説明は終了です。
まだまだWaterプラグインは更新されていくので、
やり方等も変化すると思いますので更新していけたらと思います。