猫も杓子もTouchDesigner(以下TD)の昨今ですが、仕事で触ってみたのでノウハウをまとめてみる。僕のスキルとしては基本的にスクリプトでクリエイティブコーディングしてきてて、TDみたいなビジュアル言語なやつはMaxやPdをたまーに触ってたくらい。
TDのキモはチャンネル
TDはチャンネルという概念がポイントだと思う。チャンネルはチャンネル名に数値が紐付いてるもので、TD上では緑の線がチャンネルそのものを表している。チャンネルが持てる数値は1つの数値だけではなく、過去の数値群も持てる。これを分かりやすく実感する例が、Trail CHOP。下記画像のとおり、Trail CHOPがLFO CHOPで作られた数値を貯めていってグラフにして表示している。
CHOPは複数チャンネル扱える
初心者以外には当たり前な話だと思うのだが、CHOPは複数チャンネル扱える。パラメータウィンドウのChannel項目でチャンネル名を足していくと増える。簡単ですね。同じ処理をするなら単純にチャンネルを増やしていけば良い。
チャンネルを分けるならSelect CHOP、束ねるならMerge CHOP。
チャンネルを入力にPythonで処理したいならScript CHOPがおすすめ
スクリプトを書くOPは各種用意されているけど、一番のオススメはScript CHOP。スクリプトへのチャンネルの入力と出力をTD上で明示的に出来て、他のCHOPと同じように扱えるので。ここでは、オフセットをチャンネルごとに設定するためのシンプルなコードを書いてる。スクリプト以外でも出来そうだけど、書いちゃった方が早い。Pythonだし。
def onCook(scriptOp): scriptOp.clear() a = scriptOp.inputs[0] scriptOp.copy(a) for (count, chan) in enumerate(scriptOp.chans()): for i in range(0, scriptOp.numSamples): if count % 2 == 1: chan[i] -= 0.12 elif count == 0: chan[i] += 0.25 else: chan[i] -= 0.25 return
Pythonのコード書くときは、OPSnippetsと下記リファレンスとにらめっこしながらって感じでやっている。
https://www.derivative.ca/wiki099/index.php?title=Category:Python
余談
自在に出来るような気がしてきた……!ってところでTD以外に移行することになったのでエイヤッとまとめた。みなさん頑張りましょう。
Visual Thinking with TouchDesigner - プロが選ぶリアルタイムレンダリング&プロトタイピングの極意
- 作者: 松山周平,松波直秀,ベン・ヴォイト,サムワンズガーデン
- 出版社/メーカー: ビー・エヌ・エヌ新社
- 発売日: 2017/09/15
- メディア: 単行本
- この商品を含むブログを見る