整数範囲に関するノードの使い方
https://www.youtube.com/watch?v=UqtLUW-93aY
MODO 12.2では新たに整数範囲に関するノードが4種類ほど追加されていますので、その使い方をご紹介します。
まず整数範囲とは何かを説明しましょ。メッシュオペレーションでセグメント10×10のいたポリゴンを作ります。ポリゴンを作ったらベベルをかけます。ポリゴン > Polygon Bevelを追加し、グループ化オプションをオフにして、ベベルをかけます。このとき、デフォルトでは全ての面に対してベベルがかけられています。これをある一つの列に対してのみベベルをかけようとすると、その列を選択する必要が出てきます。
そういった場合には、オペレーションリストからPolygon Bevelを開き、Selection > (Selection を追加)でSelect By Indexなどでポリゴンのインデックスを指定することになります。例えば0-9というインデックスを指定すると、一番端の列のみが選択されるようになります。この0-9のように整数の値をある範囲で指定しているのが整数範囲です。
新たに追加された整数範囲のノードを使用して、まずはこの列を他のアイテムの動きに合わせてずらしてみましょう。列を動かすアイテムとして、ロケータを一つ追加します。わかりやすい形状へと変更したら、このロケータのX軸の位置で、ベベルをかける列を変えていきます。
まずはSelect By Indexの選択チャンネルをスケマティックビューへと追加します。次に追加 > 整数範囲 > Int Range Clampを追加します。この整数範囲のカテゴリにあるノードが今回新たに追加されたノードになります。このRange Clampのノードは指定している範囲から最小値と最大値で抜き出して整数範囲を出力します。今回の場合、大元となる整数範囲はいたポリゴンのセグメントのインデックス番号となりますので、0-99となります。整数範囲に0-99と指定して、最小値に0、最大値に9と指定したら、出力をSelect By Indexの選択へと接続してみます。そうすると、最小値と最大値で指定した範囲の整数範囲で表すインデックス値のポリゴンに対してベベルがかけられるようになります。
では、この最小値と最大値を、ロケータのX軸の値で表すようにしてみましょう。ロケータのX位置のチャンネルをスケマティックビューへと追加します。この値はX軸がマイナス方向に向かっても負の値を取らないようにするため、絶対値に変換しておきます。演算 > 絶対値を追加し、その値をInt Range Clampの最小値と最大値に入れてみます。最大値には1列分選択するため、最小値+9の値を入れたいので、接続ラインを右クリックし、チャンネルモディファイヤを追加 > 演算 > 加算ノードを追加します。値Bに9を入力すると、ちょうど1列分追加されるようになります。
これでロケータのX軸を動かすと列も動くようになりますが、大きく動かさないときれいに反映されないようであれば、絶対値から入力する値をさらに100倍ほどにして調整を加えてください。
では他の整数範囲のノードもご紹介します。Int Range Mergeノードは整数範囲を複数あわせるノードです。例えば、Int Range Clampのノードを整数範囲 Aに接続し、整数範囲 Bに90-99と設定し、出力をSelect By Indexへと設定してみると、ロケータの動きに合わせた列の選択と、一番右端の選択が同時に行われるようになります。このように、複数の整数範囲を合わせて指定したい場合には、このInt Range Mergeノードを使います。
次にInt Range Boundsノードです。これは逆に、設定されている整数範囲から、最小値と最大値を抜き出すノードです。例えばInt Range Clampのノードの出力をInt Range Boundsの整数範囲へと入力し、チャンネルタブで、ロケータを動かしたときの最小値と最大値の値を見てみると、整数範囲から最小値と最大値とを抽出しているのが確認できます。
最後に、Int Range Testノードですが、これは判定値プロパティで指定した値が、整数範囲内に収まっていればTrueを、そうでない場合はFalseを返すノードになります。例えば、Int Range Clampの出力をInt Range Testの整数範囲へと入力し、判定値を50に設定しておきます。ポリゴンのインデックス番号50が範囲内に入っている時を判定してくれるようになりますので、例えばポリゴンベベルのマテリアル使用プロパティへと接続すると、範囲内の場合にだけ異なるマテリアルを設定できるといった効果を表現することができるようになります。
このように、整数範囲用のノードが追加されたことで、プロシージャルモデリングにおける表現方法をより広げられるようになりました。