hibitekitou
頭堅いなと思った事2題
xsi |2011-12-23
パーティクルを原点中心に回転させた時、その回転速度を、外側に行くほど遅くしたい。
この場合、パーティクルの位置をsin, cos使って指定してやればいいんだけど、グリッドをエミッタにしてパーティクルをばらまく場合、そのばらまいた場所の初期位置を(半径、角度)っていう座標に変換してやって、その値を元にしてやればいいんじゃん、って普通に考えた。
そしたら、ある人は、半径だけ取得しておいて、後はパーティクルのIDを元にしてやればいいじゃん、って考えた。
はい、両者を再現したICE Treeです。Aが座標を変換することで処理を行ったもの。BはIDを元に処理を行ったもの。Bの方がシンプルです。
原点周りで回す
ブール値が格納された配列の中でTrueのものの数を数える
もともと、ある条件を満たしたパーティクルの数を数える、って案件だったようです。で、そうした時、何らかの判定を行って、その条件に対し真が偽かを調べるわけですね。んで、それを全部配列に入れてやる。ここまではいいんです。問題はその後。
配列の中のTrueのものの数を調べたいのだから、Find in Arrayノードを使ってTrueのインデックスのリストを得て、Get Array Sizeノードで配列のサイズを得れば数が出るじゃん、って考えたのだけど、ブール値の配列の中身って、結局0か1が入っているわけで、んじゃ、その中身の値を全部足せばいいじゃん、という解法を見た時、俺って頭わりぃな、と(^^;
コメント ( 0 )|Trackback ( )
コメント |
コメントはありません。 |
![]() |
コメントを投稿する |
![]() |
ブログ作成者から承認されるまでコメントは反映されません |