TouchDesignerの基本操作を思い出すメモ
久しぶりに触ると、何もかも忘れていたので改めてメモする。超基本的なUIUXをメモしておく。
随時更新
ほぼ網羅して書いてくれているQiita
Network Editor
左クリック + 移動で
移動
右クリック + 移動で
選択
ホイール / ダブルクリックで
Compに入る。出る。
ホイールクリック + 移動で
Zoom
OPを選択時D / OP右下青ボタン
画面背景にプレビューの表示
OPを選択時P
パラメーターウインドウ
OPを選択時P + Command / OP右下青ボタン
背景に表示
OPをホイールクリック or パラメーターウインドウ上部iボタン
infoの確認
OP右下+ボタンで、referenceやエクスプレションに繋げれたり、SOPなら法線とか情報を見れる
OP選択時、Aでもおk
![](https://assets.st-note.com/img/1664728676909-yVUA6O4Vfe.png)
>Pを押すと Display Optionの表示
![](https://assets.st-note.com/img/1664728693326-53f39snt0K.png)
OP選択時 + Ctrl + P
H 選択したオペレーターに画面を戻す
右クリック + View で別ウィンドウでそのOPを表示。UIをそのComp内に作っていた場合は、触れる。
Boardaless..だとちょっとじゃま
![](https://assets.st-note.com/img/1664728716779-90qdte9Vsl.png)
ノード増やすときにAlt + Nを押すとnullが追加できるらしい。
That probably feels normal to most of us…but there is a faster way. We can use a keyboard shortcut Alt + N to create the null in 3 easy steps! They are as follows:
Click on the operator you want a null after
Hit Alt + N on the keyboard (lowercase n)
Hit Enter on the keyboard
That’s it!!! It looks like this:
text DATなどを簡単に実行するためにはtext portを開いてドラッグアンドドロップからのRun Script以外に
text DAT選択してのCtrl + Rで簡単に実行できる。
topとかを、dをすと、ピクセル情報が出てくる。
![](https://assets.st-note.com/img/1698155802536-gmeI6wcW62.png)
そもそも、右クリックするとShortcutがでてくる。
![](https://assets.st-note.com/img/1698156099126-iD2tLy8H3l.png)
vにあたっている、View as Pointsを押せば、point cloud系・particle系の何かみたいなピクセルのrgbをxyzに落とし込んだ時の表示が見れてよい。
![](https://assets.st-note.com/img/1698156926136-MYlkotInrc.png)
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では数値と文字列を連結するとエラーになる。暗黙的に型変換をしてくれない
[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オペレーターの値の配列数取得
eval() ・exec()
たくさんのオペレーターを操作
例えば、「constant1,2...9のvalue0に1を代入する」はこうです。
for i in range(1,10):
op( 'constant' + str(i) ).par.value0 = 1
例えば、「constant1のvalue1,2,...9に1を代入する」はこうです。
exec関数を使います。(私はこれを知らず、四苦八苦しました。。)
コツ:
valueの項番をイテレータとするには、まず実行したい文全体をstring型で書き、イテレータを埋め込みます。その後、exec()関数で実行します。
クォーテーションをエスケープするのを忘れずに!!
for i in range(1,10):
script = 'op(\'constant1\').par.value' + str(i) + ' = 1'
exec(script)
print(a)
例えば、「constant1の1,2,...10の合計値を表示する」はこうです。
a = 0
for i in range(10):
a += eval('op(\'constant1\').par.value' + str(i) )
print(a)
先ほどのexec関数と似てますが、今度は値を評価する関数であるevalを使ってます。
以下のように、exec関数を用いてもよいです。
a = 0
for i in range(10):
script = 'a += op(\'constant1\').par.value' + str(i)
exec(script)
TOPまわり
レイヤー
単純にレイヤー的に画像を重ねたいときはmergeなんてノードがないので頭おかしくなる
overがレイヤー処理
いわゆるレイヤーモードごとにある程度nodeになっている
comp topだと細かくレイヤーモードを選べる
アルファの調整
channel Mix TOP
でRGBAの調整ができる。
![](https://assets.st-note.com/img/1686061188556-z1wjEpqTVs.png)
channel Mixだと、使いにくいため、
luma levelのpostの方がもっと使いやすい。
![](https://assets.st-note.com/img/1696697552310-cXsIswr5Ru.png?width=1200)
TOPにdelay
chacheTOPで可能。
Activeをonにして、chache size分キャッシュされて、Step sizeごとにキャッシュされて、Output Index-10だと10フレーム前の表示になる。
![](https://assets.st-note.com/img/1686061343312-MtFXX3xMnd.png)
下記は分かりやすく、色を付けているだけ
![](https://assets.st-note.com/img/1686061315682-iRbRiYZv2O.png?width=1200)
この記事が気に入ったらサポートをしてみませんか?