2012年1月22日日曜日

ParticleFlowにあるSplitAmountをTPで再現する方法

ParticleFlowにはある一定の条件によってパーティクルを別のイベントに送るオペレータ「SplitAmount」がありますが、これに似たようなことをTPで実現する方法です。

まず、元となったのはsky-high-nest-blogのけゑさんのこの記事です。
(ほとんどそのままパクっただけですがw)
「(TP Basic) Randomオペレーターを使ったビューポートのパーティクルを間引く方法」
けゑさんはのブログはCGやってる人なら一度は見たことあるであろう有名なブログです、いつも大変勉強になる記事ばかりで、ホント頭が下がります。
この記事も自分が質問した事をものすごく丁寧に解説してくれました。
改めてありがとうございます!
自分もけゑさんのような丁寧な記事が書けるよう精進します。

では本題にもどります。
今回は以下の二つの方法を書きたいと思います。

元のパーティクルはシンプルでPositionBornでパーティクルを発生しredグループからblueグループに送っているだけです。
■Randamにある割合でグループを分けるには。
redグループからRandomオペレータ(NewValueParはAnimationを指定)をつないでThresholdで割合を決めてblueグループに送っているだけです
ちょっと謎なのがThresholdで割合を指定しても、Randomオペレータのシード値によっては思った割合にならないことがありました。

■パーティクルIDの範囲でグループを分けるには。
こちらはもっと簡単でredグループからThresholdで送りたいIDの範囲をしていてblueグループにつなぐだけです。

他の条件も再現できたらまた書いていきたいとおもいます。

TPをしばらく触った方なら、「知ってるよ。常識だよ」って記事だとおもいますが、元々このブログでのTPの記事は簡単なことや初心者の方に向けての記事ですので温かい目で見守ってくださいw
(自分のTPの経験がまだ乏しいだけですが…。)
もっといい方法あるよ。や他の条件を再現できるよって方はコメントなどいただけるとうれしいです。

2 件のコメント:

  1. どうもー。記事お疲れ様です。さすが今津さん分かりやすい記事で仕事が丁寧ですw個人的には初級、中級、上級のレベルを問わず分かりやすくて見易いブログが出てくるのは相当助かると思ってます。

    >ちょっと謎なのがThresholdで割合を指定しても、Randomオペレータのシード値によっては思った割合にならないことがありました。

    やっぱりこれはRandomが割り当てる数値によっては特定の値の範囲内にパーティクルが固まってしまうからですかね。多分かっちり均等には割り振られてないのかもですね。

    あとIDでやる方法はSplit amountでいう"First N Particles"に当たる感じですね。IDが5までの最初のパーティクルだけが次のグループに行くみたいな。TPのIDも0スタートだから5までのIDだと0も含めて6個行くって感じですね。

    自分も他にいい方法あったらまた考えておきますね。

    けゑ

    返信削除
    返信
    1. >けゑさん
      どもども~。コメントありがとうございます。
      勝手に紹介&リンク貼ってしまい失礼いたしました^^;
      >やっぱりこれはRandomが割り当てる数値によっては特定の値の範囲内にパーティクルが固まってしまうからですかね。
      >あとIDでやる方法はSplit amountでいう"First N Particles"に当たる感じですね。
      なるほどー。

      まだ今のところ、なんとなく感覚で触ってしまってる部分があるのでけゑさんのようにきちんと理解しなければ…。と思っているところです。
      やっぱりそれには英語が必須ですね…。一番苦手なところですがorz。

      これからも簡単でもいいから解りやすい記事を心がけていきたいと思いますー。

      削除