![]()
![]() |
1)ICE Particle の作成
ICE Tree の設定まずは、ICEを使ってパーティクルを作成しましょう。 また、後で色々と調整がきくようにも作っているので、ここでの手順でパーティクルの作り方が理解できると、 色々な種類のパーティクルを自分で作っていけるようになると思います。 それではスタート!! ポリゴンの円盤を取り出し、少し湾曲させておきます。 ここが少しポイントで、この法線方向でパーティクルを発生させておけば、 円盤の形状を変えることによってもパーティクルの発生アニメーションが変更出来るようになります。面白いでしょ。 ![]() ![]() Emit form Surface ノードをダブルクリックして設定画面を表示させると、発生方向と速度の項目に法線を使うになっています。 まずは、Rateを約1.7、Speedを0.6位にして量と速度を減らします。 ![]() ICEでは、2つの設定をします。 パーティクルの生まれてからの時間を制限と、その時間が来たら消すという設定をします。 検索機能を使うと簡単に目的のノードを探せますが、 Particlesのタスクにし、Setters > SetParticleAgeLimitとDeletingParticles > DeleteParticles at Age Limit を取り出します。 赤いノードは設定がうまくいってない時の表示です。 ここでは、AgeLimitが設定されていない状態なので、そのAgeLimitの時に動作するDeleteが出来ないと表示しています。 ![]() 赤色が緑色になったDeleteParticles at Age Limit をICETreeのPort2に接続します。 ※SimulateParticlesノードはいつもICETreeの一番最後のPortに接続します。 ![]() 色変化の設定 発生してから消えるまでの色の変化を付けます。 Modifiers > Modify Particle Colorノードを使用します。ICETreeのPort3につなぎます。 ソースパラメーターをAgePercentageにして寿命全体のパーセンテージに対して色が変化するにします。 左側が発生した時の色なので白色でアルファー値1にし、序々に黄色から赤色そして右側を黒色の0,0,0,0にします。 ![]() リアルタイムのシェーダーに接続しても、ここの色設定で変化するので、簡単で解り易いですね。
これでここはおしまいなんです。追加的な値の設定 ここからは、幾つか値の設定を追加させていきます。
まずは、パーティクル毎にランダムな大きさ、回転値(方向)を設定させます。 ここはコンパウンドを用意してしまいました。 > AssignRandomIDSizeOrientation_xsicompound.zip 中身はパーティクル毎の設定をPoinCloudのID値を得ることで設定出来、そこにランダムな値を設定しています。 それをICETreeのPort4につなぎます。 ![]() 上記回転値(方向)を設定するのにshaderdataというパラメーター値を設定しています。
ここにはベクトル値になっているのですが、そこに追加的な値を差し込めるようにして大きさを任意に変えられるようにしています。 GetDataからこのshaderdataを再度取得し、 3DVector to Scalarとその逆のScalar to 3DVectorの間に数値の追加できるAddノードを差込んでいます。 Addには0.321という値が入っています。 SetData でshaderdataに設定して、それをICETreeのPort5につないでいます。 (後に出て来るリアルタイムシェーダーのGLSL_Uniformにて大きさ設定が出来るようにしています。) お次のrotもコンパウンドを用意しました。> rot_xsicompound.zip これもまた位置と回転値から回転値(方向)を追加設定していますが、そのままお使いください。 それをSetData でOrientationに設定し、ICETreeのPort6につないでいます。 ![]() フォースの設定 風と乱流をフォースとして追加します。 フォース > 風を実行し、windが出来たら、ドラッグ&ドロップでICETree 上に持って来て、 風速を1.8 ,サイズを使用 のチェックを外します。ParticleタスクにあるForces > Add Forces ノードを取り出してForce1に接続し、 それをICETreeのPort7につなぎます。複数のフォースを接続する時も、必ずこのAdd Forces を経由してください。 ![]() 振幅を0.602 減衰を1.73周波数10時間周波数を44.604とします。 Add Forces ノードのForce2に接続します。これで両方のフォースが反映されます。 ![]() |
2)リアルタイムシェーダーの作成
GLSL_Shader、GLSL_Uniform の設定ExplorerでPoinCloudを選択し、マテリアル > Phongと取りあえず独自のマテリアルを設定しておきます。 7キーで RenderTreeを表示させ、リアルタイム > OpenGLの項目から、GLSL_Shader を取り出します。 それを Material の RealTimeに接続します。 ![]() 上部頂点プログラムにこのテキストの内容を記述します > VertexProgram.txt 下部フラグメントプログラムにこのテキストの内容を記述します > FragmentProgram.txt ここは、テキスチャが縦横4分割しているものをタイレリングして取り出せるようにUV値を取得し、 テキスチャーの色情報をパーティクル毎に追加設定しています。 つまり、テキスチャーの模様をICEで設定した色情報と合わせて表示するのに使われている部分です。 ![]() ブレンド使用にチェックを入れ、 ブレンドソースをGL_ONE_MINUS_DST_COLOR に ブレンドデスティネーションをGL_DST_ALPHAに設定します。 そして、下のパーティクルクラウドの使用にチェックを入れます。 ![]() Color をcolor0.rgba shaderdata をcolor1.rgb に設定します。これでICEで設定しているパラメータにデータが行き渡るようになります。 ![]() リアルタイム > OpenGLの項目から、OGL Texture を取り出し、GLSL_Shader2個目のprevious に接続します。 ![]() テキスチャーとしてこれfig6.zipを貼ります。 テキスチャー空間はPoinCloudなので設定出来ないです、多分、 ![]() リアルタイム > OpenGLの項目から、GLSL_Uniform を取り出し、GLSL_Shader1個目のprevious に接続します。 ![]() 下の浮動少数に1を入れておきます。 ![]() SoftimageのView画面をOpenGLに切り替えて、パーティクスを生成してみてください。うまくできましたら、こんな感じになります。 グルグルとカメラを回しながらパーティクルの動きが見れるので、色や動きを調整していける便利さが実感できるはずです。 ![]() |
3)RTShaderパーティクルのループの作成
キャッシュマネージャーある程度の長さを持ったパーティクルのアニメーションをループするような映像を作成したい場合、 パーティクルの発生した動きをキャッシュという形で書き出し、それをアニメーションミキサー上で組み合わせることで 簡単に作成することが出来ます。 つまり動きを書き出すという機能において、プロットと同じなのですが、 Softimage2011 ではキャッシュマネージャーというものが用意されています。 では、まずは例えば1000フレームで発生して消えるまでのアニメーションになるように発生レートにアニメーションを設定します。 ![]() アニメートモジュールのルーツ > プロット > Cache Manager... を起動させます。 ![]() ![]() オブジェクトの名前とバージョン名が書き出されるファイル名になるのですが、最後の_[frame] はこのまま残しておいてください。 フレーム数が代入されて、フレーム数分のキャッシュファイルが出来るのに必要です。 ![]() 現在のフレームを一番最初の1にして、繰り返し再生になっていない事を確認して、 再生へキャッシュのチェックを入れて、最後のフレームまで1回だけ再生させます。 ![]() ミキサに格納設定画面が表示されるので、ミキサにクリップを追加にチェックを入れて[OK]を押します。 すると、シミュレーション(ICE)があるが削除して良いかというので[はい]を押します。 ![]() フレームを前後するとキャッシュされたパーティクルが再生されます。 ![]() PointCloudを選択して、Ctrl+dキーで複製します。 自動的に下にClipが追加されます。が、パーティクルが表示されない時があるので、 その時はClipを一旦削除して、Ctrl+zで元に戻すと再生されるようです。(???) ![]() 501から1000フレームのリピート再生をするとうまくつながって、 下のムービーのように、ずーーーとパーティクルが生まれ続ける映像になります。 |
4)RTShaderICE Particle
シーンデータという訳で、途中で解んなくなってしまったりするので、シーンデータも提供します。 尚、ICEのパーティクル機能自体はSoftimageV7.5から既に実装されている機能なので 今回V7.5用のシーンも作成してみました。(少し色がピンク色なのは気のせいか??) Softimage V7.5 とSoftimage2011用シーンデータ >> RT-ICE_Particle.zip |
という訳で、あとは各自の環境に合わせてカスタマイズすれば、色々と便利なのではと・・・
また次のネタを、乞う、ご期待!! |