11
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【TouchDesigner】本当に教えたい!!かゆいところに手が届くメモ

Last updated at Posted at 2023-10-02

挨拶

WOW inc.でプログラマーをしています。
落合陽一×日本フィルハーモニー交響楽団プロジェクト VOL.7《帰納する音楽会》のシステムの開発などで小ワザ的な知見が貯まったので共有します!

1. Performモード時のウィンドウの名前を変更

複数のTDプロジェクトを立ち上げてPerformモードで運用している時に役立ちます。

刻みTDまでいかないにしても、複数のプロジェクトファイルを立ち上げてタイトルバーが全部/performだとわかりにくい時があると思います。
image.png

追記 2023/11/1

Screenshot 2023-11-01 002124.png
以下のことをしなくても、Window COMPTitleというパラメータにつけたい名前を入力するとタイトルバーの名前を変更できました。

追記終わり


TDファイルの一番上の階層にあるWindow COMPの名前をperfomから変更します。この状態でF1を押してPerformモードにしようとするとエラーが出るので、
image.png
左上のDialog -> Window Placementを開いて、Pathが変更後の名前になっていればF1を押してもエラーが出なくなります。
image.png
また、プロジェクト内に他のWindow COMPがあれば、Performモードで開くWindow COMPを選択できます。
image.png

2. パラメータのexperession小ワザ集

2-1. File Suffix

連番png書き出しなどで、自動でナンバリングしながらファイル保存したい時に役立ちます。

Movie File Out TOPのデフォルトのme.fileSuffixより自由が効くようになります。
詳しくは【TouchDesignerドキュメント:moviefileoutTOP Class】へ。

Fileパラメータのexpression

'Path/name_take' + str(me.writeCount) + '_frame' + str(me.curSeqIndex).zfill(5) + '.' + str(me.par.imagefiletype)

と入力します。
image.png

Path/name_take0_frame00000.png, Path/name_take0_frame00001.png, …と書き出されていきます。me.writeCountのとこには、書き出しのテイク数が入ります。

Pathで指定しているフォルダがないと保存されないので気をつけてください。

2-2. digits系

Replicatorとかで番号に合わせてパラメータを変化させたい時に役立ちます。

me.digits, parent().digitsはよく使うと思います。
例えばcam1_xx_yy1を取り出す場合は、me.name.split('_')[0:][0][3]とすると良いでしょう。
詳しくは【Pythonドキュメント:str.split】へ。
image.png

3. OP Find DATでオペレーターの位置を参照してソートする

SceneChangerで切り替えたいCOMPを集めるとか、並び順が大事な時に役立ちます。

Palette -> UI -> Basic WidgetsbuttonRadioLayout/Align Orderに潜んでいたりするのですが、TouchDesignerのオペレーターはネットワークエディタ上の位置情報を持っています。
詳しくは【TouchDesignerドキュメント:OP Class / Appearance】へ。
image.png
このnodeX, nodeYを使います。
OP Find DATにソートしたいパラメータの追加方法は、コールバック内に簡単に説明が書いてあります。
詳しくは【TouchDesignerドキュメント:opfindDAT Class】へ。

Y座標でソートしたい場合、コールバックに以下のように記入し、

def onInitGetColumnNames(dat):
	return ['nodeY']

def onFindOPGetValues(dat, curOp, row):
	return [curOp.nodeY]

Select DATを繋ぎnodeYでソートします。
image.png

4. Select DATで文字入ってるセルだけ取得

Select DATで文字入ってるセルだけ取得したい時に役立ちます。

Select DATSelect Rows/Colsby Valuesを選択し、*?とします。
詳しくは【TouchDesignerドキュメント:Pattern Matching】へ。
image.png

5. 超便利なSearch機能

「これどこで参照してるっけ…?」てなった時に役立ちます。

限られた時間で組み上げたシステムの階層が深く複雑になればなるほど、依存関係がコントロールできなくなることがあると思います。
パラメータのexpressionでも、DATに書いたコードでも、オペレータの名前でも検索結果に表示してくれます。
ショートカットはF3
詳しくは【TouchDesignerドキュメント:SearchReplace Dialog】へ。
image.png

結び

以上です!

11
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?