[3ds max: PFlowBox3] Filter Input

Filter Inputはオペレータの右上にある下向きの青い三角のインプットです。
色、用途からも分かる通りBooleanの値を要求します。

オペレータのアウトプットを触ると左側のような下向きの三角形が現れ、接続することが出来るようになります。それ以外の時は小さな四角がポチっと付いています。


簡単に言うとこれは、処理を行うか行わないかを指定する際に使用するものです。

コードっぽい形で書くとこんな感じ。

if(Filter Inputの値 == true) {
  ノードの処理~~
}

つまりFilter Inputは、ifの横の括弧内の判定を行うようなもので、右上のインプットの値がtrueじゃない場合はそのノードは処理を行いません。

なのであるノードの下でどんな処理をしていても、そのノードのFilter Inputがfalseなら、そのノードストリームは処理を行いません。値が出てこない訳なので、処理できないのです。

で、これはどんな場合に使うのか。
簡単な例を挙げてみます。

例えば原点に置いた球体上のエミッタからパーティクルをエミットするとします。
その際、z<0、つまり地面より下のものにだけ何か処理をしたいとします。

その場合、例えばこんな接続になります。

今回はz<0の物に加速度を与えてみました。

Input Standardで取りだしたポジションのZ値を、Conditionで0以下かどうかを調べます。
それをFilter Inputに接続してあります。

これで結果を見ると、Z<0の物のみ+X方向に加速していることが確認できるかと思います。
Z>0のものには全く処理が行われていません。

ちなみに左側のノードの値が小さいのは、シーンスケール小さく作ってしまったため、小さな値にする必要があったためです。
0.002を掛けているのも同様で、Maxだとあまり小さな値を入力すると0と判断されてしまうらしく(?)、小さな値を作るため便宜的に使用しているだけです。

なのでここではあまり気にしないでください。
実際シーンスケールによってはこういう処理を行う必要がある箇所がちらほら見られるので、実際に使用する際に困ったらこんな方法も使えるので、試してみてください。

とりあえずここでは、Z<0のものに対して何か処理が行われているんだなーとだけ分かって頂ければOKです。

 
とまぁこんな感じで、様々な値を元に、その処理を行うか行わないかを決めることができます。

これを使うとMayaで言うところのCreation Expression、つまりパーティクルが作成された瞬間にのみ実行するような処理を記述することが出来ます。
それがNew In Eventです。
僕がFilter Inputを使用する際はほとんどこのNew In Eventとの組み合わせです。

じゃあそれの解説やれよ!!って話ですが、トピック分けとかないと後でどこに何があるか混乱してしまいがちなので、分けることにしました。

というわけで、次回はこのNew In Eventに関して解説します。

 
何か分からないところ、気になるところなどあればコメント下さいませ(・・)ノシ

コメントを残す

メールアドレスが公開されることはありません。