ウォーター サンプル

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

Windows
MacOS
Linux

title_Water.png

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

カスケードやパーティクル システムに関する詳細は パーティクル システム のドキュメントを参照してください。

ウォーターフォール

WaterfallSection.png

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

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

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

コリジョン

CollisionWithRocks.png ModuleStack.png

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

パーティクル カラー

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

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

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

  • Alpha - 水のオパシティを操作します。

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

ここをクリックしてフルサイズ表示にする

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

ColorAlphaAnimated.png

Splash と Ripple Effects

SplashRipple.png

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

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

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

FallingWaterDrops.png

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

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback