パーティクルの例
ドキュメントの概要:UE3 におけるパーティクルの使用法の概要。
ドキュメントの変更ログ: Alan Willard により追加。
概要
このページは、UnrealEd のパーティクルエディタで、マテリアルを用いて多彩なパーティクルエフェクトを実装する際のクイックリファレンスとなることを目的としています。包括的なリファレンスについては、 パーティクルおよびエミッタのリファレンス ページを参照してください。パーティクルに関する作業の詳細は Cascade ユーザーガイド を参照してください。
Unlit(アンリット) パーティクル
UnlitOpaqueExample によって、アンリットマテリアル (Mat_UnlitParticleExample_Opaque)を使用してパーティクルシステムを作成する方法が実証されます。
UnlitAdditiveExample は、パーティクルシステムで正にブレンドされたマテリアル(Mat_UnlitParticleExample_Additive)を使用する例です。これによって、多数のブレンドされたパーティクルが、それ自体およびシーンと正確にレンダリングされることを覚えておくことは大切です。
UnlitTranslucentExample は、相互に正確にレンダリングし、シーンと正確にレンダリングするアルファブレンドされたパーティクルを作成するために、半透明マテリアル(Mat_UnlitParticleExample_Translucent)をパーティクルとともに使用する例です。シングル
パーティクル システム内の異なるエミッタ間でパーティクルをソーティングするために、エミッタの順序によりソートの順番が決定されます。
UnlitMaskedExample によって、シーンとブレンドした不透明マスクのパーティクルが実証されます。アンリットバージョンと同様に、マテリアル (Mat_UnlitParticleExample_Masked)では、OpacityMask チャンネルのテクスチャが使用されます。
頂点色
カスケードのパーティクルの色を変更する鍵は、パーティクルに適用されるマテリアルです。VertexColor モジュールを利用して、ユーザーは、カスケードのカラー モジュール(initial color, color over life, scale color over life)を使用して、マテリアルに値を渡すことによってマテリアルのプロパティを修正できます。
パーティクルのカラーリングについては、Mat_UnlitParticleExample_VertexColorおよび UnlitVertexColor を参照してください。
マテリアルでは、拡散テクスチャが、頂点色モジュールのRGB で増加されることが分かります。カスケードのカラーモジュールと結合して、テクスチャの色が割り当てられた色と調整され、UnlitVertexColor の結果になります。ColorOverLife モジュールをパーティクルシステムに追加することにより、カーブのタイムラインに基づいてパーティクルに継承して欲しい色の値を定義できます。名前の中に「OverLife」があるモジュールはすべて、相対的なライフタイムモジュールで、時間が、パーティクルのライフタイムに対して0-1 のスケールの値を取り、0 を誕生、1 を死をとすることを意味します。時間 0で黒色でスタートし、時間 .2 で白色に増加し、時間 .8 までその値を維持し、次に時間 1 で再び黒色に戻るカラーカーブをセットすることによって、ライフの最初の 20 %でフェードインし、次の 60 % フルカラーでライフタイムを過ごし、ライフタイムの最後の20%でフェードアウトするパーティクルシステムを得ることができます。
VertexColor(頂点色)の上級者向きの使用法は、色の変化を補完するマテリアルの別の値に影響を与えるために、VertexColor モジュールのアルファチャンネルを使用することです。Mat_UnlitParticleExample_VertexColor_OpacityAlpha およびそのパーティクル システム UnlitVertexColor_Alpha を見ると、VertexColor モジュールが、拡散テクスチャのアルファ
チャンネルで増加され、マテリアルの不透明チャンネルに接続されていることが分かります。このことは、ColorOverLife(ライフ上のカラー)の
AlphaOverLife(ライフ上のアルファ)部分へのディストリビューションを変化することによって、ライフタイムでのパーティクルの不透明さにコントロールが得られることを意味します。
これに対して、マテリアルシステムのその他の値を調整するために VertexColor モジュールのアルファチャンネルを使用できます。例えば、UnlitVertexColor_AlphaEmissive, およびそのマテリアルMat_UnlitParticleExample_VertexColor_EmissiveAlpha では、VertexColor のアルファチャンネルが大きな値で増加されます。この場合 200のコンスタント値で増加され、次に拡散 RGB および
VertexColor の RGB カラーの結果で再び増加されます。この結果、AlphaOverLife を使用して放射強度をコントロールできます。
Sub UV
マテリアルの ParticleSubUV モジュールを使用することによって、パーティクルエミッタのSub UV 設定を使用してパーティクル上のシングル イメージの複数の「フレーム」間でブレンドしたり切り替えたりできるようになります。SpriteSubUVExample のパーティクル エミッタに適用される Mat_ParticleSubUVExample マテリアルによってこのことは実証されます。マテリアルを作成すると、それをエミッタに適用し、水平および垂直なサブイメージの数に加えて、エミッタのInterpolationMode(ベース エミッタプロパティにあります)を設定することによって、SubImage Index モジュールを使用してサブイメージ間のブレンドを決定することができます。SubImageIndex をカーブ エディタに追加し、その配分を ConstantCurve に変更することによって、時間の経過とともに使用されるサブイメージに対するコントロールが得られます。値は 0 からスタートし、最後のイメージはいつも、イメージの数 -1になり、例のカーブは、0 から 3 になります。
詳細については パーティクルSubUVチュートリアル ページをご覧ください。
Event Generator (イベントジェネレーター)
レベルに雨を降らせるというエフェクトが必要な場合、キャラクターはもちろん、メッシュやマテリアルの上にも雨のしぶき (スプラッシュ) エフェクトを与えることができます。
キャラクター Pawn 上の雨しぶきを生み出すには、モデルの上にパーティクル システムを配置し、それを Pawn とリンクしてキャラクターと一緒に移動するようにします。パーティクル システム内に 2 つのエミッタを設けます。最初のエミッタは、非常に小さなパーティクル (スケールがあまりにも小さいので見えません) をパーティクル システムからメッシュ方向に送ります。移動速度が速く、存続期間が短いパーティクルで、衝突を有効に設定し、衝突を感知するとパーティクルを「抹消 (kill)」します。この最初のエミッタに Event Generator (Event サブメニューにあります) という名前のモジュールも含めます。これを collision に設定し、一意の名前を与えています。これは、パーティクルの 1 つが何かと衝突するたびにイベントを生成します。
パーティクル システムの2 番目のエミッタは小さな水しぶきで、スプライトまたは小さなメッシュのいずれでも構いません。このパーティクル システム内には Event Receiver Spawn モジュール (Cascade の Event サブメニューにもあります) を含めてます。これは Event Generator モジュールをリッスンし、衝突イベントを検知するたびに、その位置でパーティクルをスポーンするよう指示します。
出来上がりは、目には見えない個々のパーティクルの流れがメッシュと衝突し、その衝撃地点で小さなしぶきをスポーンする、というものです。
Anim Trails
詳細については Anim Traills ページをご覧ください。
Important!
You are viewing documentation for the Unreal Development Kit (UDK).
If you are looking for the Unreal Engine 4 documentation, please visit the Unreal Engine 4 Documentation site.