_581x100.png CGsyomei_583x102.gif 訪問者 無料カウンター ページビュー 無料カウンター

2012年01月17日

(TP Basic) Randomオペレーターを使ったビューポートのパーティクルを間引く方法

 今回ツイッターの方で「TPでビューポートとレンダリングでパーティクル数を変える方法」はあるかという質問が出たのでさっくりと説明してみたいと思います。 とは言え、実は自分も以前そういうあって当然そうな機能は無いのかとピクソの元同僚に聞いたんですが、「無い。」とのことでした^^;でも他の方法を使って似たようなことができるというのを教わったのでそれを紹介しておきます。
 まず適当にパーティクルを出します。まあ特筆すべきことはないです。今回は毎秒3000発のパーティクルを出しています。

ReduceViewportBornPrt.jpg

 見てのとおりなかなか重たそうです。そこで何パーセントかの決まった割合でビューポートからパーティクルを間引くようにしてみます。と言ってもやることはパーティクルを消すだけです。そこでちょっとした工夫をします。

 まずAllグループに0から100のランダムな数をRandomオペレーターを使って持たせます。ここは正直ピンと来ないと思います。実際数字を持たせると言っても別にMassやVelosity等の特性があるわけではないただのScalar値なんですね。ここは自分もきちんと説明できないので追々分かったら追記します。とりあえず今は単純にパーティクルがランダムな数字を持てるということだけ覚えてください。

 ちなみにRandomオペレーターは"New Value Per"という所で3つの方法を選びます。まず"Call"は毎回何かしらの命令(例えばパーティクルが発生したとか)を受けるたびにランダムな値を割り振ります。今回の場合これを選ぶと毎フレごとにパーティクルが発生してその命令を受け続けるのでランダムな値は常に違う値を持ちます。今回は適していません。次にFrame/Iterationですが、これは命令の有無と関係無しに毎フレ違うランダムな値を出力し続けます。これも今回は使いません。そして最後のAnimationですが、これはこのシーンのフレームレンジのアニメーションの間パーティクル一つ一つに割り振られたランダムな値は常に固定されます。今回はこれを使います。

 その次にthresholdで特定の範囲のパーティクルをピックアップしParticle Dieに送って消去します。このとき今回は0から90の間の数のパーティクルをParticle Dieに送ります。これは90パーセントのパーティクルを消去するのと同じことですね。このようにしてパーティクルをある程度の割合ビューポートから間引くことができます。

ReduceViewport.jpg

 とは言えこれは手動でオンオフしないといけないものなのでレンダリング時には忘れずにReduceViewportダイナミクスをオフにしないといけないのがめんどくさいです^^;でもこれを機にRandomオペレーターの使い方を覚えておくのはいいことだと思います。
posted by けゑ at 06:18| Comment(0) | TrackBack(0) | Thinking Particles
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/53131949

この記事へのトラックバック