TouchDesignerのSOPにあるGroup SOPのRangeがよくわからなかったのでメモ。
Rangeパラメーターは、SOPのPrimitiveやPointの番号によるグルーピングが可能になります。
#Primitiveの場合
Group SOPは単体では機能しません。
その前に何らかのSOPが必要なので、そのSOPとノードを繋ぎます。
そして上のスクリーンショットではGeometryに番号が付いていますが、Display Optionを表示(SOPをプレビューモードにしてPを押せば出ます)し、Primitive Numbersにチェックを入れると表示されます。
1.Entity
PrimitiveのGroupなのでPrimitiveにします。
(デフォルトではPrimitive)
2.Use Number
番号による範囲指定をするためにONにします。
(デフォルトではOFF)
3.Operation
範囲指定のためGroup by Rangeを選択します。
選択肢は下記の3つです。
- Group by Pattern
- Group by Range
- Group by Expression
4.Start / End
StartからEndで指定された範囲のPrimitiveがGroupの対象になります。
Endには下記のようなパラメータが入っていますが、これはデフォルトで入っているものです。
意味としてはこのGroup SOPへの入力0番目のPrimitiveの数となります。
len(me.inputs[0].prims)
今回はBox SOP1つしか繋いでいないのでBox SOPのPrimitiveの数ですね。
Startが0で、EndがPrimitiveの数なので全てのPrimitiveが対象になります。
5.Select_of_
これは何個おきに何個選ぶかを指定します。
この画像では2個おきに1個選ぶことになります。
つまり、このBox SOPで各Primitiveの番号は「0 1 2 3 4 5」と振られています。
2個に1個なので「0 2 4」と偶数が選択されることになります。
#Pointの場合
基本は一緒です。
今回はBoxではなくGridにしています。
さらにAdd SOPを繋いでいますがGrid SOPがPolygonなので、Add SOPでGeometryを削除してPointだけにしています。
1.Entity
Pointsに変更します。
2.Start / End
さっきと似ていますが、primsではなくpointsにします。
len(me.inputs[0].points)
より理解を深めるためにStartを10、Endを上記のパラメータから10引いて90としています。
これで10番目から90番目のPointが選択の対象になりました。
さらにSelect_of_を2と5にしてみました。
これは5個おきに2個選択という意味なので、10番目のPointから始めて最初の2個を選択、その後は5個おきに2個ずつ90番目のPointまで選択ということになります。
こういったグルーピングができると、あるGeometryの特定のPrimitiveやPointをTransformなどで動かすことができますね