[TouchDesigner] 座標の配列から図形をおこす

ポイントごとの座標が入った配列データから、図形を再現したいことってありますよね。そんな時はTable DATとAdd SOPを使うといいみたい。

まずはがどんなデータになってるか見てみましょう。

Circle SOPを配置して、わかりやすくするためにDivisionsを4にします。SOP to DATを配置して、SOPにこのDATを指定すると、ポイントごとの座標が配列になって取り出せます。逆に配列がこのフォーマットになっていれば、図形に戻せることがわかると思います。

Point形式の場合はP(0)、P(1)、P(2)が座標になります。XYが平面だとすると、順にX、Y、Zとなります。
数値は原点からの相対値になります。

今回はこんな感じの図を用意して、(手動で)座標に変換しました。

Table DATを配置して、行ごとに座標を入力します。1行目には項目名を埋めておきます。
Add SOPを配置して、

・Points DATに先のDATを指定。
・Named AttributesをOn。
・Polygonsタブで、By Groupを選択。
・AddはAll Points。
・ClosedをOn。

コンポーネントの中で、図形が再現できているはずです。

これを理解しておけば、外部からOSCでポイントの配列を送って、図形のポイントを直接操作できたりします(そんな手間なこと必要なさそう。。)。

他にAdd SOPだけでなく、DAT to SOPでも変換はできます。

■参考
https://www.derivative.ca/wiki099/index.php?title=DAT_to_SOP
https://www.derivative.ca/wiki099/index.php?title=SOP_to_DAT

(TD099 macOS Build 2017.14620で確認)

[TouchDesigner] CHOPの値が変わったらPythonを実行する

CHOPの値が変わったのをトリガーにして、Pythonを実行するには、Chop Execute Datを使うといいみたい。

・インスペクタのCHOPに入力したCHOPを指定。
・Off to On、While On、On to Off、While Offのいずれかを「On」。
・該当する関数の中に実行する内容を書く。

関数は読めばわかるかと。
088から関数名が変わってるので注意。

■参考
TouchDesigner | Getting More out of the CHOP Execute DAT
CHOP Execute DAT

(TD099 macOS Build 2017.5940で確認)

[TouchDesigner] CHOPでIfを使う

If文を使って条件分岐をPythonじゃなくてCHOPでなんとかしたいって時は、Expression CHOPを使うっぽい。

・Expressionのインスペクタから、exprタグを開いて「+」をクリック。
・青色のボタンをクリックして、変数欄にif文を書く。

例えば、入力された値が2だったら1、それ以外は0(出力しない)てしたい場合は、こう書く。

2 if me.inputVal == 1 else 0

書き方が変わってるので、詳しくは参考を参照のこと。

というかExpression使えばどのCHOPでもいいんかな。
理解したら追記します。。

■参考
TouchDesignerのExpression CHOPの使い方

(TD099 macOS Build 2017.5940で確認)