クラカトアPFオペレータを使用してパーティクルファイルシーケンスをブレンドする

Blending Particle File Sequences Using Krakatoa Particle Flow Operators

 

イントロダクション

Krakatoa File BirthとFile Update Operatorsは、単一のPRTBIN CSVなどのファイルシーケンスをPFにリロードするだけでなく、1つまたは複数のパーティクルシーケンスの複数のチャンネルをブレンドすることにより、完全に新しいパーティクルシステムを作ることができます。

このチュートリアルではこれらのブレンドの基本的な特徴を紹介します。

 

パーティクルシーケンスのソースを作成する

テストのための簡単なシーンを作りましょう。

●ティーポットを作成します。

●PFSourceを作成します。

●パーティクルビューを開きます。

●ビューポートのマルチプライヤ量を100%にします。

●システムマネージメントのビューポートインテグレーションステップを1/2フレームにします。

●Birthオペレータで0~50フレームで20000パーティクルに設定してください。

PositionオペレータをPosition Objectで置き換え、ティーポットをピックしてください。

SpeedをSpeed By Surfaceで置き換え、速度と変動を30にしてください。

RotationとShapeオペレータを削除してください。

Forceオペレータを追加してください。

●重力スペースワープをシーンに追加し、強度を0.26にしてForceオペレータでピックしてください。

CacheオペレータをPF Sourceのグローバルイベントに追加してください。

krakatoa_pfops_blending_gravity_flow

この時点では重力の影響下で、ティーポットからパーティクルが流れ落ちることになります。

krakatoa_pfops_blending_gravity_viewport

 

パーティクルシーケンスを保存する

それではパーティクルをPRTファイルシーケンスに保存しましょう。

●クラカトアを現在のレンダラに設定し、GUIを開いてください。

もしアイコンを使用して最後にの設定をロードするか促されたら、Noにしてデフォルト設定をロードしてください。

●パーティクルレンダーモードをSave Particles To File Sequenceに切り替えてください。

Save Particlesロールアウトを開き、シーケンスの出力パスを指定してください。たとえば、c:tempKrakatoaPFoperators_BlendingGravitygravity_.prt“となります。

Channelsロールアウトをすべてデフォルト設定のままにしておいてください。

最も重要なチャンネルはPositionVelocity IDです。

SAVE PARTICLESボタンを右クリックし、Active Segment [0-100]を選択してください。

SAVE PARTICLESを押してパーティクルシーケンスをディスクに保存してください。

 

2つ目のパーティクルシーケンスを作成する

もう1つのファイルシーケンスを保存しましょう。ただ、今回は重力の代わりにタービュランスが有効の風を使用します。

●風ワープスペースを作成し、タービュランス0.1、周期とスケールを0.01にしてください。

Forceオペレータから重力をリムーブしてください。

Forceオペレータに風を追加してください。

krakatoa_pfops_blending_wind_flow

この時点では、エミッタからほうしゅつされたパーティクルはタービュランスの影響を受けてすべての方向に飛びます。

krakatoa_pfops_blending_wind_viewport

●”Saving the Particle Sequence“のステップを繰り返してください。シーケンス名とパーティクルファイル名は”Gravity“の代わりに”Turbulence“と付けてください。

 

重力シーケンスをロードする

では重力ファイルシーケンスを新しいPFにロードしましょう。

●1つめのPFをシーケンスを生成するために無効にしてください。

●新しいスタンダードフローを作成してください。

BirthオペレータをKrakatoa File Birthオペレータで置き換えてください。

●前にBirthオペレータで保存したgravity_.prt“ファイルシーケンスをロードしてください。

Position IconオペレータをKrakatoa File Updateオペレータで置き換えてください。

krakatoa_pfops_blending_loadinggravity_flow

この時点では、シーケンスはシーケンスはオリジナルの重力が働いたフローにほとんど同じ見栄えであるべきです。主な違いとしてはパーティクルがレンダーモードで保存されたことです。ゆえに、数は100%でインテグレーションは1/2フレームステップのパフォーマンスになります。

krakatoa_pfops_blending_loadinggravity_viewport

●Krakatoa File Updateオペレータを選択し、Channel Setupボタンを押してください。

●デフォルトでは、PositionとIDチャンネルのみがチェックされています。これはパーティクルの位置情報は絶対値としてロードされるが速度を持っていないことを意味します。これはシステムをリジッド、つまり他のフォースやスピードに関係するオペレータを追加しても各フレームの位置がパーティクルファイルシーケンスによって決定されるため、まったく効果がない状態にします。

krakatoa_pfops_blending_loadinggravity_defaultchannels

速度を動きにブレンドするには、Positionチャンネルのチェックを外し、Velocityチャンネルを有効にします。パーティクルシステムの見栄えが変化しないことに気づくでしょう。絶対位置をロードする代わりにそれらの位置に導いてくれる相対的な速こをロードしたのです。Krakatoa File Birthオペレータによって、パーティクル生成フレームのみに位置情報がロードされます。

krakatoa_pfops_blending_loadinggravity_velocitychannel

●速度チャンネルのブレンドモードがBlend、 Amountが100.0に設定されていることに気づくでしょう。これはで100%のチャンネル値をロードしVelocityチャンネルの既存のデータと0%ミックスさせる、つまりVelocityチャンネルデータを置き換えるということを意味しています。

Amountスピナーに10.0と入力してみましょう。これは10%のVelocityチャンネルが90%の既存のチャンネル値とミックスされるということです。1つ前のフレームの速度が似通っているため、最終結果にそんなにおおきく違いが現れません。しかしそのちょっとした違いは見ることができます。

krakatoa_pfops_blending_loadinggravity_velocitychannelblend10_viewport

Blend ModeをAdd“に切り替え、Amount 1.0にしてください。これで1%の速度チャンネルがPFの速度チャンネルが減らされることなく追加され、速度は時間を超えて積み重なります。

krakatoa_pfops_blending_loadinggravity_velocitychanneladd1_viewport

●Amountを100.0にしてください。これで100%の速度チャンネルがPFの速度チャンネルが減らされることなく追加されます。結果として速度は時間を超えて多く積み重なります。

krakatoa_pfops_blending_loadinggravity_velocitychanneladd100_viewport

 

2つのパーティクルシーケンスから速度をブレンドする

これで単一のシーケンスがそれ自身と速度をブレンドできることがわかりました。それでは、いくらかのタービュランスと重力をミックスしてみましょう。

●VelocityチャンネルのブレンドモードをBlendに切り替え、Amountスピナーを100.0にセットしてください。

新しいKrakatoa File Updateオペレータを1つめの後ろに追加し、ファイルシーケンス”turbulence_.prt“をピックしてください。

Channel Setupボタンを押し、Positionチャンネルを無効にしVelocityチャンネルを有効にしてください。

この時点では、2つのオペレータが100%のブレンドモードに設定されているため、2つ目のオペレータのVelocityチャンネル内のデータが優先され、重力の効果は完全に無くなります。

krakatoa_pfops_blending_loadingturbulence_viewport

●Amountを50.0に変更しましょう。これで重力がはじめにロードされ、それから50%のロードされた重力が2つめのオペレータの50%のタービュランスとミックスされます。

krakatoa_pfops_blending_loadingturbulence_blend50_viewport

●それではBlend ModeをAddに変更し、Amountを100.0にセットしてください。これによりはじめに重力シーケンスの速度が100%ロードされそれ以前のフレームの速度を上書きします。、それからタービュランスファイルシーケンスの速度がそれぞれのフレームに追加されます。結果として両方の速度が同時に使用されます。

krakatoa_pfops_blending_loadingturbulence_add100_viewport

●オペレータの順番を変えることは、ブレンドモードによって効果があるかないかが決まります。例えば、タービュランスを100% Blendでロードし、そのあと100% 重力を上に追加すると、結果は前の例と同じ結果となります。なぜならA+B = B+Aだからです。

●しかし、もし少ない量のフォースをミックスすれば、オペレータの順序は異なる結果をもたらします。たとえば、タービュランスを100% Blendで最初にロードし、50%の重力を追加すれば、タービュランスの動きをしつつわずかに下向きの動きが加わります。

krakatoa_pfops_blending_loadingturbulence_addg50_viewport

 

フォースオペレータを伴うパーティクルシーケンスから速度をブレンドする

2つかそれ以上のファイルシーケンスをブレンドするのと同様に、パーティクルに通常のForceオペレータを追加することができます。それはブレンドモードがBlend 100%に設定されていないと仮定して各フレームでForce値を上書きします。

重力シーケンスをロードしているKrakatoa File Updateオペレータを無効にします。

タービュランスシーケンスをロードしているKrakatoa File UpdateオペレータのAmount50.0のBlendモードに設定します。

Forceオペレータをその下に追加し、影響を10000に増やします。(50%の速度結果がKrakatoa File Updateオペレータによって各フレームでリムーブされ、重力フォースはシーケンスの間十分な速度を蓄えるため、大きく高めることを要求するからです。)

krakatoa_pfops_blending_windwithforce_viewport

●始めにForce、次にタービュランスシーケンスが来るように順序を入れ替えます。すると異なる結果になります。

krakatoa_pfops_blending_forcewithwind_viewport

Bounceモードの場合、パーティクルの速度を構成するCollision Testオペレータにも、同じことを適用します。

●次の例ではタービュランスがブレンドモードで50.0の量でロードされ、重力は50.0の量で追加されます。

Collisionオペレータは2つのKrakatoa File Updateオペレータの後に位置し、球状ディフレクタに貫通するのを防ぎます。

krakatoa_pfops_blending_loadingturbulence_addg50_collision_viewport