日々適当

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 ( )
 
コメント
 
コメントはありません。
コメントを投稿する
ブログ作成者から承認されるまでコメントは反映されません
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。