忘れちゃうDat 達[Touch Designer]
わすれるのでメモ
Common
今日通電存在する Common TAB
Content LnaguageでこのDATが何を表そうとしているFileなのかをしていできる。
Text DATの時とかは、何を記述したいファイル七日を指定できる。
Edit / View Extensionで Text DATのときとかは、Editで外部エディターを開いた時にデフォルトの.txtではなく.pyとかで開けるので、atomとかの補完とかやりやすい。
![](https://assets.st-note.com/img/1665110813575-fVE2aUHxRw.png?width=800)
![](https://assets.st-note.com/img/1665110821255-BRjkbZv9vG.png?width=800)
![](https://assets.st-note.com/img/1665110836033-IDYooxSxnl.png?width=800)
Text
file in DATとかで任意のふぃあるを読み込んでその中身をpythonに持っていきたい場合
op().textで得ることができる。
![画像23](https://assets.st-note.com/production/uploads/images/42525955/picture_pc_b7fe182d7ec74df61ddd3c5cb62e0fb6.png?width=800)
json = op('json_file_null').text
print(text)
Dat エクスプレッション
こんな感じで最初の行にindex nameが割り当てられているデータがあったとしたとき、
これらの値をchop や sopなどに持っていきたいとき
![画像1](https://assets.st-note.com/production/uploads/images/41507431/picture_pc_d4e9f7a673e6a89232422944c9aa2af6.png?width=800)
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](https://assets.st-note.com/production/uploads/images/41507996/picture_pc_347bed4ddc1d765b8f315b7ad1af69f9.png?width=800)
これだとセルが無いときでも勝手に順番に入っていく
op('table').appendRow(入れたいもの)
op('table').appendRow([column0にいれたいもの, column1に入れたいもの])
0行目はスキップされるみたい
![画像6](https://assets.st-note.com/production/uploads/images/42345092/picture_pc_1d92dfbaa17eda55a26b6a13877f8347.png)
op('table').clear
でクリア
SOP TO DAT
sopが持つattributeがテーブルに出てくる
Extractでpointのattributeなのか、Vertex / Primitiveなど選べる
AttributesでAttributeを絞ることもできる。
![画像3](https://assets.st-note.com/production/uploads/images/41508390/picture_pc_be7abece552c6f12b544a817b6238bb9.png)
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](https://assets.st-note.com/production/uploads/images/42345271/picture_pc_15907ed20a4b2156b92c70f959cf4bc5.png)
![画像8](https://assets.st-note.com/production/uploads/images/42345283/picture_pc_9c55882ccf252681d1d4cb9221a07217.png)
![画像9](https://assets.st-note.com/production/uploads/images/42345357/picture_pc_2444bcd325704df6db60c2cc79b2cb47.png)
TypeをFoldersにしてNameなどをしてすれば指定したパス以下のものを探してくれる
m * n行列 Table DATの生成
JSON と DAT
Execute
プログラムスタート時
Frame start / Frame End時、
Play state Change時(再生、ストップ)
Project Pre Save / Project Post Save
などちょっと特殊なタイミングで発火するプログラムを書ける。
![画像10](https://assets.st-note.com/production/uploads/images/42522264/picture_pc_76af05b3596d21498ee21f7082082541.png)
Fileタブから
指定したファイルの
![画像13](https://assets.st-note.com/production/uploads/images/42522855/picture_pc_ca976211524d68e122f8f386fa759c05.png)
CHOP Execute
CHOPsにchopを指定すると、
Off to On / While On / On to Off / While Off Value Change
の時に反応するpythonを書くことができる。
![画像4](https://assets.st-note.com/production/uploads/images/42289699/picture_pc_97706e761ba20ea97da6c3dd10db9489.png)
![画像5](https://assets.st-note.com/production/uploads/images/42289757/picture_pc_c9bdc21ed592d8dec1fece2a5b25d32e.png)
DAT Execute
指定したDATに対してのスクリプト
Tableが変わったとき
Row / Column change
Cell Change / Size Changeなどなど
![画像11](https://assets.st-note.com/production/uploads/images/42522576/picture_pc_dd5fe1ca69f042a827d5f20c493a8c36.png)
Executeの項目から、発火タイミングをFrame start 時かframe end時か
![画像12](https://assets.st-note.com/production/uploads/images/42522663/picture_pc_238bb93b6084b397bddf036d6fb02579.png)
OP Execute
任意のOPに対して、
Pre Cook / Post Cook
Wire Change
Name Change / Path Change /
などなど変更時に発火するスクリプトを書ける。
![画像14](https://assets.st-note.com/production/uploads/images/42522983/picture_pc_45e083f0095eabc0a0cb7121cb3ab31b.png)
Panel Execute
ようわからん
![画像15](https://assets.st-note.com/production/uploads/images/42523259/picture_pc_4054412c213c3b42fbbcd3faf5236bad.png)
Parameter Execute
任意のOPの任意のparametersの
Value change
on Pulse
Expression Change
Mode Changeなどなど
に発火するスクリプトを書ける
![画像16](https://assets.st-note.com/production/uploads/images/42523317/picture_pc_fae2f92c8db4838a8401cd409453ca3d.png)
parametersはこんな感じでおk
![画像17](https://assets.st-note.com/production/uploads/images/42523535/picture_pc_bd1d9553d5471bd8edbf34836b4ad297.png)
OP Find
様々な条件に引っかかったOPをテーブルに出力する
ColumnでName以外も
PathやWire Pathなどもテーブルに出せる
![画像18](https://assets.st-note.com/production/uploads/images/42523649/picture_pc_2c8dd0790e3a1fc6d5d99041c36d9c59.png)
![画像19](https://assets.st-note.com/production/uploads/images/42523657/picture_pc_4a7c069409de9ccec7c0e63d6ffaa900.png)
![画像20](https://assets.st-note.com/production/uploads/images/42523667/picture_pc_8572d19f8aa0bddd40b1ab80991c1829.png)
![画像21](https://assets.st-note.com/production/uploads/images/42523682/picture_pc_1e32631dfb88583b790a42e5a7739e32.png)
出力
![画像22](https://assets.st-note.com/production/uploads/images/42523843/picture_pc_06e0571494d55c789dfa00561eef24db.png)
Call back
Evaluate
input Data Datのテーブルのデータを
Expressions DATに書かれているExpressionで
評価した値をoutputすることができる。
![画像24](https://assets.st-note.com/production/uploads/images/43305805/picture_pc_e8d0dbabde6368e3efceb24df3246f1f.png)
inputで行うことともできる。
input0がTable
input1がExpressionとなる
![画像27](https://assets.st-note.com/production/uploads/images/43305816/picture_pc_ee5928f0373e9c1b2b7aacf4ab86dff5.png?width=800)
![画像25](https://assets.st-note.com/production/uploads/images/43305809/picture_pc_58dcfdb1441e6b9b4157b1e28ce41eb1.png)
![画像26](https://assets.st-note.com/production/uploads/images/43305812/picture_pc_140b7aa468dac02fc5d2b98d5dccb1c9.png?width=800)
![画像28](https://assets.st-note.com/production/uploads/images/43306080/picture_pc_6ca4175bee9d7f65d87a61a143e8a8ec.png)
Sbstitute
DATの中の特定の文字列を特定の文字列に変更することができる。
Before/Afterに入れるだけで基本的にはおk
ヨーロッパ周りの小数点に(,)を使うデータを(.)で表す表記に変更したい時とかに便利だった。
![](https://assets.st-note.com/img/1677811952597-rI9mtC4i9D.png?width=800)
Exclude First Row/Colで最初の行列を除外できる。
![](https://assets.st-note.com/img/1677812001881-jvsXJJHUmQ.png?width=800)
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
この記事が気に入ったらサポートをしてみませんか?