日々適当

hibitekitou

MODOのパーティクル

cg |2015-06-11
また勉強してみようかなと思って、どこのチュートリアルか忘れたけどやってみたわけです。
サーフェースからパーティクルを発生させ、ロケータが動くと、そのロケータが通過した位置にあるパーティクルがタービュレンスの力を受けて動き出すって内容でした。



考え方としては、フォールオフを使ってその位置がパーティクルより大きくなったらパーティクルに力がかかるというものです。
それをちょっと拡張して、動き出したらパーティクルのサイズが小さくなっていってサイズが0になる(消える)という要素も加えてみました。



まぁそれはいいんですけど、力がかかるかかからないかってのは、ロケータとの位置関係を見ているだけなので、パーティクルが動き出してロケータを追い抜いてしまったら、そこで力がかからなくなるという事態が起こります。
そのため、上図では追い抜かないようにロケータの動きの逆向きにWind Forceをかましています。

これを回避する場合、例えば、パーティクル一個一個に、任意のフラグ(ユーザーチャンネルとかカスタムアトリビュート)を立てて、ロケータが通過した瞬間にそのフラグをオンにして、フラグがオンなら力を受けて、オフなら受けないという設定にしておく、という考え方があろうかと思います。
んが、そこの設定をシンプルにどうやるか。

Softimage先輩だと、そこはシンプルに実装できますわな。


Softimage先輩が素晴らしいのは、一気に必要分だけパーティクルを発生させとくことが出来ること。あ、この下のムービーでパカッってなるのは、Time Varyingをオフにするのを忘れてたから、ね。



MODOと同じ構造を試すためにWind Forceノードを置いていますけど、実際は使っていません。で、self.Flag ってカスタムアトリビュートの値を見て、Trueの間だけ実行ノードであるSet Dataが動作するようにしております。



まぁたぶん、MODOのパーティクルを分かっていないだけなんだろうけど、どうやんのかなぁって思ったのでした。

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

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