位置や法線情報によるフォールオフの調整
https://www.youtube.com/watch?v=cH7tLEmqkB4
MODO 12.0では、ジオメトリの位置情報や法線情報に従って、ツールの影響範囲となるフォールオフを調整する方法が用意されています。
例えばサンプルとしてサイのメッシュを読み込んでみます。このサイに対してメッシュオペレーションでベベルをかけてみます。ツールパイプからFalloff Operatorを追加します。このFalloff Operatorは様々なノードと組み合わせることで、独自のフォールオフを作り出すことができます。
このサンプルでは、あるロケータからの距離によって、フォールオフの強さを設定してみます。まずはロケータを一つ追加し、そのワールド位置をスケマティックへと追加しておきます。
Falloff Operatorもスケマティックビューに追加し、チャンネルリストを見てみると、位置や法線といったチャンネルがリストされていることがわかります。この位置のベクトルをノードに追加してみましょう。ロケータからFalloff Operatorの位置チャンネルが示す位置への距離を測定します。追加 > 測定 > Measure Distanceノードを追加します。このノードの入力するにはタイプをベクトルから行列へと変換する必要があるため、追加 > 行列 > Matrix Constructを追加し、Falloff Operatorの位置を入力に、出力をMeasure Distanceの起点へと接続します。またロケータのワールド位置は終点へと接続します。
ここで測定された距離の値である出力を、Falloff Weightのウェイトへと設定します。距離の値がそのままウェイトの値になりますので、距離が近づくに連れ、ウェイトの値は低くなり、ベベルのかかり具合が小さくなります。これを反転するため、この出力する距離の値の逆数を取ります。
距離出力からウェイトまでの接続のライン上で右クリックし、チャンネルモディファイヤを追加 > 演算 > Basic Math:除算を追加します。このやり方でノードを追加することで、ノードを追加し接続する手間が少し省けます。今回求めたいのは逆数なので、除算ノードの入力Aに接続されている距離の値を、入力Bへと接続し直し、入力Aには値1.0を入力してみます。そうするとロケータが近づくに連れ、ベベルのかかり具合が強くなるのが確認できます。
さらにある一定の値よりも大きくなった時点でベベル処理を行うようにしたいので、除算ノードとウェイトの間の接続のライン上で右クリックし、チャンネルモディファイヤを追加 > 条件式 > AはBより大きいノードを追加し、値Bに1.0と入力します。こうすることで、ロケータが近づくある時点から、ベベルを部分的にかけることができるようになります。またこのベベルがかかる場所と強さというのは、ロケータの位置でコントロールできるため、ロケータにアニメーションを設定することで、ベベルの影響範囲がアニメーションされることになります。