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

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

【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で波を発生させる簡単な説明は完了になります。

V4.62.2で白波が発生しない件について

ブログを見て試していただいた方がいらっしゃいまして、

その方が白波が発生しないということで調査しました。
私の方でも実際に最初白波が発生していませんでした・・・

※まだExperimentalなので今後も変更が必ずあると思います!!

調べたところ下のyoutubeでフォーラムに投稿してくださった方が、

すでに対応しているWaterプラグインを動画の概要欄においてくれています。

www.youtube.com

白波を出すまでの流れも紹介しておきます。

上記youtubeの概要欄のプラグインデータをダウンロードして、

Engineのフォルダ(/Epic Games\UE_4.26\Engine\Plugins\Experimental)に配置します。

※Waterというフォルダが既にあると思いますので削除して置き換えてください。

フォルダの場所

配置したら右下のコンテンツブラウザの「表示オプション」を選択して、

エンジンのコンテンツを表示とプラグインコンテンツの表示をオンにして、

検索してWaterコンテンツ→「FluidSimulation」のフォルダを開きます。

Fluidsim_Terrainというサンプルマップがありますのでこれを開きます。

Exampleとなるマップの表示

サンプルとなるレベルを開いたら、

アウトライナから「BP_Dynamic_Force_SkelMesh」を選択します。

詳細のデフォルト項目に、Fluid Force Dynamic Settings という項目があります。
Force Radius(波の範囲)を1000に設定して、

Force Strength(波の強さ)を1に設定します。

キャラクターが発生させる波の設定

これで設定は完了になります。

あとはキャラクターを動かせば下のように白波が発生します!!

UE5で白波を発生させる方法について

白波を発生させる場合についてですが下のリンクで、

細かく紹介されていますのでこちらもぜひチェックしてみてください。

※こちらを見てUE5でも問題なく白波を発生させられました。

キャラクターの動きに合わせた波の発生方法について

今までの説明でキャラクターの動きに合わせた白波の発生方法について、

記載がなかったので追記させていただきます。

※上記で記載したリンクの白波発生の設定を行った後で設定しています。

※今回はサードパーソンテンプレートのグレイマンを使用した説明になります。

波を発生させる位置をソケットで指定するのでボーン設定でソケットを追加します。

波発生用のソケットを追加

次にThirdPersonCharacterにWaterPlugin関連の変数の追加と、

BeginPlay時に波しぶきの設定をします。

プログラムの内容としては以下の2点になります。

1.BPFluidSim(波を発生させるための設定があるBP)を探して変数指定

2.FluidForceDynamicに変数で設定した内容を登録

FluidForceDynamicをThirdPersonCharacterに登録

あとはFluidForceDynamicSettings変数に先ほど設定したソケット情報などを、

紐づけてあげることで波を発生させることが可能です。

FluidForceDynamicSettingsの設定

実際に白波を歩いた位置に合わせて表示したのがこちらになります。

以上で説明は終了です。

まだまだWaterプラグインは更新されていくので、

やり方等も変化すると思いますので更新していけたらと思います。

【UE4】4.26でVolumetricCloudsを触ってみた。

UE4の4.26previewでてます!

今回は4.26で追加される、

VolumetricCloudsActorをさわってみました。

下のサンプルを参考にしながらやってみました。

※4.26追加されているのはVolumetricCloudsとマテリアルになります。

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

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

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

VolumetricCloudsを追加する準備

早速ですが実際にVolumetricCloudsの設定をしていきます。

まずは何もないプロジェクトを作成します。

新規プロジェクトの追加

新規プロジェクト追加

新規でプロジェクトを作成が完了したら、

新規レベルで新しいレベルのTimeOfDayを作成します。

新規レベルの作成

新規レベルの作成

作成が完了したらレベル内の画面が出来上がるのでこのレベル上で設定していきます。

新規レベル画面

新規レベル画面

レベルの作成が完了したらアクタを配置タブからビジュアルエフェクトの、

VolumetricCloudをレベル上に配置します。

VolumetricCloudの配置

VolumetricCloudの配置

配置が完了したらCloudMaterialをエンジンコンテンツのデフォルトにある、

m_SimpleVolumetricCloudを選択します。

※エンジンコンテンツなので表示オプションから

 エンジンのコンテンツを表示にチェックを入れて検索してください。

※/Enigne/EngineSky/VolumetricCloudsフォルダ内にあります。

検索の設定

検索の設定

マテリアルを配置して雲が表示されるようになれば完了です。

マテリアル適応後の表示

マテリアル適応後の表示

これでVolumetricCloudsの設定は完了になります。

これから雲の設定を変更していきます。

雲の設定変更について

まずVolumetricCloudsで設定を説明していきます。

レイヤー項目にある下記の4つで雲の位置や大きさなどを変更します。

レイヤー内のパラメータ

レイヤー内でのパラメータ

LayerBottomAltitude → 雲を表示する高さ位置(数値が高いほど上になる)

LayerHeight → 雲の高さ(数値が高いほど1つの雲が大きくなる)

TracingStartMaxDistance → 雲をどの範囲から表示させるかの距離

TracingMaxDistance → どこの距離まで雲を表示するかの最大値

※設定値の変化は静止画だとわかりにくかったため動画にしました。

youtu.be

それ以外にも雲のTrackingの設定はまだまだあります。

雲の影の表示や雲単体の大きさ・反射などの設定もあります。

CloudTracking設定

CloudTracking設定

VolumetricCloudsActor以外でも、

DirectionalLightの方にも設定があります。

雲の影をメインとした設定はDirectionalLight側で行えます。

※その際はCast Cloud ShadowsをONに設定しからほかのパラメータを、

 設定してあげてください。

DirectionalLight内のCloudやAtmosphereの設定

DirectionalLight内のCloudやAtmosphereの設定

VolumetricCloudsはSkyAtomosphereの設定も、

関係するのでこちらも参考にしてみてください。

argonauts.hatenablog.jp

実際に設定を変更したりして動作させているものは下記になります。

またDirectionalLightの角度と雲のパラメータを一部変更して、

それっぽい画面を作ってみました。(語彙力が無くて申し訳ない。。。)

パラメータ変更例

パラメータ変更例

以上で説明は終わりです。

空の表示とかを凝ったものにしたい場合にとても便利かつ、

デフォルト機能で相当なカスタマイズができますのでぜひ使ってみてください。