ウォーター サンプル

パーティクル エフェクト サンプルの一部として UE4 に同梱されている Water (水) エフェクトの概要

Choose your operating system:

Windows

macOS

Linux

バージョン 4.25 では、パーティクル エフェクトのサンプル プロジェクトは非推奨です。Unreal Engine 4.24 以前のバージョンをインストールして使用するか、ご自身で最新バージョンにアップデートする必要があります。

title_Water.png

以下のパーティクルシステムはこのサンプルのために作成した水のエフェクトです。各エフェクトがどのように作成されているかを理解するために、これらのエフェクトをカスケードで開くことを推奨します。

Cascade およびパーティクル システムに関する詳細は「 パーティクル システム 」のドキュメントを参照してください。

Waterfall エフェクト

WaterfallSection.png

コンテンツブラウザの場所: Game/Effects/Particles/Water/P_WaterFall

Waterfall エフェクトは、岩群を滝のように流れる水のエフェクトをシミュレートする複数のマテリアルとパーティクルシステム設定の組み合わせです。このエフェクトで特に重要なのは、カメラのアライメントが重要な役割を持つということです。プレイヤーが真っ直ぐ水方向へ近づくのではなく、わずかに離れた距離から眺める設定になっています。

これらのパーティクルは透過マテリアルを使用しているため、オーバードローの負荷が発生します。つまり水の落下を処理するには一枚一枚レンダリングを重ねなくてはいけません。しかしこれらは GPU スプライトであり GPU へ渡されるため、実際のシミュレーション (ティック) は低負荷になります。この手法を用いることにより、マテリアルやスタティックメッシュのみで作成するエフェクトよりも、より複雑でインタラクティブな動作を実現することができます。エフェクトにさらに変化をもたらすために、この 2 つの技術を結合することができます。

Collision

CollisionWithRocks.png ModuleStack.png

岩肌を水が流れ落ちる時、水がしぶきをあげて表面と衝突している様子がわかります。この効果には GPU スプライトのみで利用可能な Collision (シーンの深度) オペレータを使用しています。コリジョン サーフェスの演算に Scene Depth G-Buffer を使用し、最低限のパフォーマンス負荷しか生じません。

ParticleColor ノード

GPU スプライト パーティクルが動的パラメータをサポート しない ことを覚えておくことは大変重要です。これは通常、パーティクルシステムからマテリアルへデータを送信するために使用します。これに対応するためにマテリアル内の ParticleColor ノードを使用したトリックが用いられています。通常このノードは、パーティクルの存続期間にわたって色とアルファ値をアニメートして、落下しながらパーティクルの色を変更します。ここで、赤、緑、青そしてアルファ (RGBA) データを使用してそれ以外の動作をお見せします。水は実際に色を変更する必要はないため (水は結局のところ無色なため)、パーティクル カラー データを以下のように使用します。

  • - 水の屈折率またはライトを屈折させる変化量を操作します。

  • - 実際の色を操作します。緑チャンネルは、グレースケールの結果をもたらす、色の全 RGB データを操作することになります。

  • アルファ - 水のオパシティを操作します。

マテリアル ( M_WaterDrop_SubUV ) を調べると、上記のように、これらの値が ParticleColor ノードで操作されているのが分かります。

クリックして拡大表示

Cascade で P_Waterfall パーティクルシステムを開いた際は、Scale Color / Life モジュールに特に留意してください。存続期間の前半は非常に明るく (1.0 以上) をアニメートし、アルファが黒から白へ切り替わり、徐々に黒へ戻ります。結果は以下のようなきれいなフェードイン、そしてまた色が薄れていきます。

ColorAlphaAnimated.png

Splash エフェクトと Ripple エフェクト

SplashRipple.png

コンテンツブラウザの場所: /Game/Effects/Particles/Water/P_Drips_Splash_Ripples

このパーティクル エフェクトは水滴が水面へ落下時の滴たる水とスプラッシュ / リップル効果の両方を処理しています。パーティクルシステム内でさまざまな一連のエミッタを使用しました。一連のエミッタが落下する水のエフェクトを処理し、その他は水滴が水面に衝突した際の水の跳ね返りを処理しています。残りのエミッタは水面に広がる波紋を処理しています。残りのエミッタは水面に広がる波紋を処理しています。つまりこのエフェクトは不動の水面へ配置して現実的なエフェクトをもたらす準備が整っています。

パーティクル システムは、ParticleColor ノードを利用してオパシティを操作する Lit Translucency Material も使用します。これによりパーティクル システムは、Scale Color/Life モジュールを利用してオパシティを操作することができます。このケースでは、アルファはパーティクルの寿命初期ではほぼ不透明にアニメートされています。つまりライトの影響をたいへん受けやすくなっています。

FallingWaterDrops.png

上記のスクリーン ショットは、落下するパーティクルのほとんどが画像の上部付近では鮮やかな白であることに注目してください。初めは、鮮やかな白がパーティクル周りをハイライトするため自然現象のような表示になります。ただし、これが可能な理由は、この瞬間のパーティクルに文字どおり透過を増やすように指示が出されているため、レベルのライティングがより多く使用されるためです。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる