2011年11月24日木曜日

TPのデータの流れを見てみた!(パーティクルでshockwaveの動きを元に)

まずデータの流れを見る前に、パーティクルを中心からランダム水平に円状に飛ばすということをTPでセットアップしてみました。


このセットアップは一例です。もっとお手軽な方法があるかも。。
------------------------------------
追記
一番お手軽な方法として、forceノードでプロパティのcylinderを使用する方法を発見した。
ちなみに、下記のshockwaveの作り方は、あんまりスマートじゃないのであしからず。。
-------------------------------------


このTPでのセットアップはPF使っている方からすると、めんどくさいと思うかもしれません。なぜなら、パーティクルの方向を得るためにちょっとシンキングしなければならないからです。PFだとそういう命令があらかじめ用意されています。確かスピードオペレーターの「水平方向にランダム」という命令でしたね。

では、TPで用意されているPosition Bornノードを使い見ていきたいと思います。ちなみにFrictionを使用し、スピードを減衰させるようにしています。


画像



ついでに、
方向を決めるDirectionは(x,y,z)の値です。ベクトル値と呼びます。ここでは、xとyに-1から1の値をランダムに割り当て、高さはいらないので0にしています。PFでいうDivergence(分散)がやりたいときは、direction variatioで出来ます。

ボクは最近TPに出会ってからベクトルというものは何なのかと色々勉強し始めました(汗)
ですのであまり詳しいことは書けません{%がっかり(orZ)webry%}










2011年11月20日日曜日

TPショートカットについて

デフォルトのショートカットですけど、ほんとに必要なショートカットだと思う!
デバック機能なんて絶対ショートカット使わなきゃ{%万歳webry%}

画像



2011年11月19日土曜日

Fumefxのパラメーターにアクセスする!~Outputパス編~

メモするの忘れてた~
tweetでゲットした情報はすぐメモする癖つけないと、探すのが面倒だし削除されるから気をつけないとな。。

fumeのヘルプ観たのですがではよく分からなかったので助けを求めたところ、
kobataro101さんがフォーラムで見つけて教えてくれました~感謝です{%笑いwebry%}
フォーラムの存在も知らず、なんかすいません{%がっかり(orZ)webry%}

とりあえずこれでいけました↓

-----------------------------------------------------------------
$FumeFX01.setPath "f:\\temp\\ffxSim_0000.fxd" #(#default ,#match)

-----------------------------------------------------------------

#以降がよく分かりませんでした。ですがこれないと駄目なようです。
まあグリッドサイズを合わせるかなんかでしょうということでスル~。。



2011年11月18日金曜日

ダイナミクスシュミレーションの開始フレームの指定

アニメーションのStart timeが101フレーム(レンダリング開始位置)で、ダイナミクスのシュミレーションはそれ以前のフレームから開始させたいと思いました。
そこでC Time Intervalとかのノードでダイナミクスシュミレーションの開始位置(パーティクルの発生やフォースの影響など)を変えようとしていましたが、Start timeの設定を変えないと上記のようなことは出来ませんでした。

ん~と悩みつつ翌日、
パーティクルのサブサンプリングのとこ触っていると発見しました!

Simulation Startのとこです。

画像



2011年11月17日木曜日

PPassについて (Distanceノードを用いて)

AグループのパーティクルとBグループのパーティクルがある距離に近づいたら、新規パーティクルの発生という一見簡単そうなシステムなのだが。。思わぬとこでつまづいた。


Distanceノードに、パーティクルが発生する二つのグループをつなげた際に、particle値が取れなかったので、ちょこっと検証してみた。
複数のグループから値を流すには、グループのONがいるということかな~。。(一塊につき)
つまり、最初にいっぺんに流せと。。


一番初めに理解しなきゃと思うのですが、データの流れ的なものがまだあまりつかめません。
まあ触っていくうちにつかめたらなと思いまする。

追記
こんなのなんかスマートやないからPPassABというものがある。

画像



2011年11月14日月曜日

TPで竜巻のセットアップをやってみた~

■参考チュートリアル
こちら

はじめ、このチュートリアル観たときは心折れそうになったけど、やってみるものですね。
学べるものも多く、楽しかったです。


では、動画見ながら、順追ってメモっていきたいと思います。
又、後半につれちょっとメモするのつらくなってきたのもあり、雑ですがお許しを。。


ガイドの作成

①竜巻のくねくねしたアニメーションをスプラインで用意します。
動画ではSplineSelectモディファイヤとLinkedXformの組み合わせでスプラインのアニメーションをつけているようです。
絶対にこの方法をとる必要がありませんが、お手軽ですね。ボクにはこれも勉強になりました^^




②ガイドとなるパーティクルを作成します。

これらを作成する理由は進めていくうちに分かると思いますので、とりあえず省きます。
TPでスピード0のパーティクルを100個作り、スプラインにパーティクルを沿わせます。
パスに沿わせるにはH Path Positionノードを使用します。
この100個のパーティクルを均一にパスに沿わせるためにadd&Multiplyを使用しています
100を分母にパーティクルのID値を分子にし、パスに相対的に配置します。

画像





③②で配置した最後のパーティクルをジオメトリエミッターとします。

Pselectionで最後のパーティクルをピックし、Startグループに登録します
そのスタートグループを、Geom Instanceでシェイプ化します。

これがbodyのエミッターとなります。





ボディの作成



④③で作成したシェイプをエミッターとしてパーティクルを作成します。
パーティクルの量、方向、スピード等をPosition Bornで調整します。(下にパーティクルが降り落ちるような感じです)
どの道、方向とスピードはvelocityノードで調整していくのですが、イメージをつかむためにスピードと方向まで設定しておくと良いと思います。


⑤パーティクルの動きをパスに沿わせます。
それには②でguideに作成した各パーティクルのZ方向を取得します。


毎フレ放出される各ボディのパーティクルのZ方向は、そのパーティクルから一番近いGuideのパーティクルのZ方向を取得すればパスにそっての方向が定まります。

PPassABを使用し、BにGuideのパーティクルを割り当て、一番近いパーティクルの方向を取得するように設定します。


画像



⑥竜巻による軌道を作成します
基本⑤のような進め方で、ここでは軌道の方向を取得するのに、外積を使います。

⑤の動きに追加するようにスピードと方向を設定してやります。それにはvelocityのプロパティにあるreplaceをaddに変更します。

画像



⑦下部からのパーティクルを吸引する設定をします

画像


⑧パーティクルをデリートする設定をします

画像