TouchDesigner

TouchDesigner Operaotr&Python Scriptまとめ

More than 1 year has passed since last update.

※随時追加予定(2017/6/13現在)

TouchDesignerで日々作ったパッチから得られた知見をまとめています。

個人用のチートシートなのでかなり不完全なまとめなのはご了承ください。


[OPERATORまとめ]


[SOP:Surface Operator]


Particle:パーティクルに使用

[Parameter]

Ramp Tab

- Type:方向

- aa


[TOP:Texture Operator]


Movie File In(TOP)

ファイルからの入力/動画/静止画を読み込む/解像度最大1280

※日本語ファイル/フォルダはトラブルの可能性あるので使用しない

[Parameter]

Play Tab

- Play:


Video Device In(TOP): 内臓カメラやキャプチャカードからの入力

[Parameter]

xxx Tab

- xxx:


Text(TOP): テキスト入力して生成した画像

[Parameter]

xxx Tab

- xxx:


Constant(TOP): 指定した値の色

[Parameter]

xxx Tab

- xxx:


Level(TOP): コントラストやガンマ値などのレベルの変更

[Parameter]

xxx Tab

- xxx:


Cross(TOP): 2つの入力を重ねてクロスフェード

[Parameter]

xxx Tab

- xxx:


Tile(TOP): タイル状に並べる

[Parameter]

xxx Tab

- xxx:


RGB to HSV(TOP): HSVカラースペースに変換

[Parameter]

xxx Tab

- xxx:


Switch(TOP): 入力された値の切り替え

[Parameter]

xxx Tab

- xxx:


[CHOP:Channel Operator]


Math(CHOP): 四則演算など

[Parameter]

xxx Tab

- xxx:


Audio Device Out(CHOP): 音声ファイルからの入力

[Parameter]

Audio Device Out Tab

- Play:


Select(CHOP): 特定のデータを抽出

[Parameter]

xxx Tab

- xxx:


Cache(CHOP)

[Parameter]

xxx Tab

- xxx:


Cache Select(CHOP)

[Parameter]

xxx Tab

- xxx:


Constant(CHOP): 一定の値。いくつも指定できる

[Parameter]

xxx Tab

- xxx:


MIDI In(CHOP): MIDIデバイスからの入力データを受け取る

[Parameter]

xxx Tab

- xxx:


[COMP:Component Operator]


Slider(COMP): SLIDER UIで値をコントロール

[Parameter]

xxx Tab

- xxx:


Ramp:グラデーションを作るときに使用

[Parameter]

Ramp Tab

- Type:方向

- aa


Transform

[Parameter]

Transform Tab

- Rotate:回転


Composite

[Parameter]

Composite Tab

- Operation:

Common Tab

- Output Resolution:

- OutPut Aspect

Tab共通

- Input OP:


Replicator

[Parameter]

Replicator Tab

- Template DAT Table:

- Operator Prefix:

- Master Operator

- Destination


Audio File In(TOP): 音声ファイルからの入力

[Parameter]

Audio File In Tab

- Play:


Audio Play(CHOP): 音声ファイルからの入力

[Parameter]

AudioPlay Tab

- Play:


Audio Movie(CHOP): 音声ファイルからの入力

[Parameter]

Movie Audio Tab

- Play:


Filter(CHOP)

[Parameter]

Filter Tab

- Type:


Leap Motion(TOP/CHOP)

Leap Motionからの入力


[Python Script]


[Basic]


  • op('xxx'):xxxオペレーターの参照取得

  • op('xxx').par.xxxxxx:xxxオペレーターのパラメータの参照

  • ops('xxx*'):ワイルドカードで複数の参照

    → あとは変数用意してfor variable in variablesとかで適当にループ回す


  • str(me.digits):

  • absTime.seconds:総経過時間

  • absTime.frame:総フレーム数

  • me.time.seconds:タイムライン一周分の時間

  • me.time.frame:タイムライン一周分のフレーム数

  • me:OP自身

  • me.parent():OPの親

  • me.parent().var('xxx' , xxx):local Variable xxx設定

  • me.digits:

  • me.op('xxx'):

  • print(''' xxx '''):シングルクォート3つで改行ありで出力できる

  • parent():親を参照

  • parent(x):親の祖先を参照。xは数値

  • parent().digits:

  • parent().name:

  • op('xxx')['chan1']:xxxオペレーターのchan1の値を参照

  • op('xxx')[0]:xxxオペレーターの配列0番目の値を参照(一つ上と同じ値)、OPにある値の分だけ配列数指定可能

    → こっちの記述のほうが変更に強い

  • op('xxx')chan(0):xxxオペレーターのchan1配列0番目の値を参照

  • op('xxx')chan(0).vals:xxxオペレーターのchannel全値をリストとして取得

  • math.sin():sin関数

  • math.cos():cos関数

  • op('table')[row(横), column(縦)]:row、columnで指定した条件でTableの値を参照

    → row, columnにはテーブルの指定の行&列番号もしくは値の文字列でも指定可能

  • app.samplesFolder + '/Map':現在開いているファイルのフォルダの中身?

  • 配列.len():配列の数を返す

  • 配列.append(''):配列に要素を追加

  • 配列.extend(['', '']):配列に配列要素を追加

  • op('xxx').findChildren( $type, ):子要素を全取得, 引数で絞込める

  • Dictionaryデータ.keys():Keyを全て取得

  • Dictionaryデータ.values():Valuleを全て取得

  • me.inputCell:テーブルのセルに演算できる

  • int(val):valをint型にする

  • float(val):valをfloat型にする

  • str(val):valを文字列に

    ※Pythonでは数値と文字列を連結するとエラーになる。暗黙的に型変換をしてくれない


[Logic&各演算子]


  • if ~ else文


if condition:

statement
else:
pass

pass:breakと同じく論理構造から抜ける


  • if ~ elif ~ else文


if condition 1:

statement 1
elif condition 2:
statement 2
else:


  • A and B:AかつB。andで論理積


  • A or B:AもしくはB orで論理和



[Channel Class]


  • op.chan(x).index:channe(x)のインデックス

  • op.chan(0).name:channel名

  • op.chan(0).owner.name:channelの属すオペレーター名


[CHOP Class]


  • op('xxx').samples:xxxオペレーターの値の配列数取得