忘れちゃうDat 達[Touch Designer]



わすれるのでメモ




Common


今日通電存在する Common TAB

Content LnaguageでこのDATが何を表そうとしているFileなのかをしていできる。
Text DATの時とかは、何を記述したいファイル七日を指定できる。
Edit / View Extensionで Text DATのときとかは、Editで外部エディターを開いた時にデフォルトの.txtではなく.pyとかで開けるので、atomとかの補完とかやりやすい。




Text

file in DATとかで任意のふぃあるを読み込んでその中身をpythonに持っていきたい場合
op().textで得ることができる。

画像23
json = op('json_file_null').text
print(text)



Dat エクスプレッション

こんな感じで最初の行にindex nameが割り当てられているデータがあったとしたとき、
これらの値をchop や sopなどに持っていきたいとき

画像1
op('DATの指定')[行,'列の名前']

配列の中に'string'で書いてあげれば取り出せる


Primitive SOPのとき、

op('DATの指定')[me.inputPrim.index +1, '列の名前']

としてやればインプットのその項目のindex代わり当たってるものに順番に入っていく。

例えば、Primitive SOPのscaleのxの項目に上のようにうてば反応する


//Primitive Sop
$CEX, $CEY, $CEZ – The centroid of the primitive.
-> me.inputPrim.center[0]/me.inputPrim.center[1]/me.inputPrim.center[2]
$NX, $NY, $NZ – The normal of the primitive. Will be 0 for some primitives like sphere and tube (which don’t have normals).
-> me.inputPrim.normal[0] / me.inputPrim.normal[1] / me.inputPrim.normal[2]
$CR, $CG, $CB – Red, green and blue primitive color.
-> me.inputColor[0] / me.inputColor[1] / me.inputColor[2]
Index of primavitve me.inputPrim.index

[引用] http://www.indaehwang.com/category/touchdesigner/




Table DATへのPythonから入力

s

ある値をDATに入れたいとき、

op('targetDat')[row,column] = 21321

とかでScriptを実行すれば、Tableが更新される

(この際、tableにそのセルが無いときにはエラーがでちゃう)

画像2


これだとセルが無いときでも勝手に順番に入っていく
op('table').appendRow(入れたいもの)
op('table').appendRow([column0にいれたいもの, column1に入れたいもの])

0行目はスキップされるみたい

画像6


op('table').clear
でクリア


SOP TO DAT

sopが持つattributeがテーブルに出てくる


Extractでpointのattributeなのか、Vertex / Primitiveなど選べる
AttributesでAttributeを絞ることもできる。

画像3


P(0,1,2)はpointの座標
Nは法線ベクトル
v(0,1,2)はvelocity
Cd(0123)はRGBA





DAT TO SOP


SOP to DATの逆でDATのデータからSOPを作れる


CHOP to DAT


Include Namesをオンにすることでチャネル名を取得可能


Folder

Folderのパスを指定して、(.toeの相対パスでも大丈夫)
Columnsで指定した情報をtableで出してくれる。

画像7
画像8
画像9

TypeをFoldersにしてNameなどをしてすれば指定したパス以下のものを探してくれる





m * n行列 Table DATの生成



JSON と DAT



Execute

プログラムスタート時
Frame start / Frame End時、
Play state Change時(再生、ストップ)
Project Pre Save / Project Post Save
などちょっと特殊なタイミングで発火するプログラムを書ける。

画像10

Fileタブから
指定したファイルの

画像13



CHOP Execute


CHOPsにchopを指定すると、
Off to On / While On / On to Off / While Off Value Change
の時に反応するpythonを書くことができる。

画像4


画像5


DAT Execute

指定したDATに対してのスクリプト
Tableが変わったとき
Row / Column change
Cell Change / Size Changeなどなど

画像11

Executeの項目から、発火タイミングをFrame start 時かframe end時か

画像12


OP Execute

任意のOPに対して、
Pre Cook / Post Cook
Wire Change
Name Change / Path Change / 
などなど変更時に発火するスクリプトを書ける。

画像14


Panel Execute

ようわからん

画像15


Parameter Execute

任意のOPの任意のparametersの
Value change 
on Pulse
Expression Change 
Mode Changeなどなど
に発火するスクリプトを書ける

画像16

parametersはこんな感じでおk

画像17



OP Find

様々な条件に引っかかったOPをテーブルに出力する
ColumnでName以外も
PathやWire Pathなどもテーブルに出せる

画像18
画像19
画像20
画像21

出力

画像22


Call back





Evaluate

input Data Datのテーブルのデータを
Expressions DATに書かれているExpressionで
評価した値をoutputすることができる。

画像24


inputで行うことともできる。
input0がTable 
input1がExpressionとなる

画像27
画像25
画像26


画像28




Sbstitute

DATの中の特定の文字列を特定の文字列に変更することができる。
Before/Afterに入れるだけで基本的にはおk
ヨーロッパ周りの小数点に(,)を使うデータを(.)で表す表記に変更したい時とかに便利だった。

substitute tab

Exclude First Row/Colで最初の行列を除外できる。

scope tab





Reference



(DE)SIGN » Feed

TouchDesigner | Primitive SOP でColorを付け加える - Qiita

TouchDesignerでPythonコードとDAT間で入出力する - Qiita

TouchDesigner Documentation - SOP to DAT



DAT to SOP | TouchDesigner 日本語ドキュメント

[TouchDesigner] DATコンポーネント機能一覧 - Qiita





この記事が気に入ったらサポートをしてみませんか?