LoginSignup
17
10

More than 1 year has passed since last update.

TouchDesigner でのドラッグ&ドロップについて

Last updated at Posted at 2019-12-02

新しいバージョンでの記事を新しく書いているので以下のリンクをご参照ください

概要

TouchDesignerでのドラッグアンドドロップについて学んでいきます。

#####公式Wiki
https://docs.derivative.ca/Drag-and-Drop

TouchDesignerでのD&D

####読み込み可能ファイルのインポート
ネットワークエディタに対してTouchDesignerで読み取れるファイル形式をドロップすることで対応するオペレータでそのファイルを読み取れるのはよく知られていると思います。
drop_movie.gif

オペレータをエクスポート

ネットワークエディタ上にあるオペレータをデスクトップなどにドロップすると対応するファイル形式で保存されます。
TOX保存するとき便利!
drop_op.gif

ほかのTouchDesignerのネットワークエディタにコピー

サンプルファイルから引っ張ってくるときとかに便利
(なぜか接続切れたところがありますが...)
drop_tdtotd.gif

Panel Components でのD&D

上記の例はネットワークエディタ上で行えるものですが自分で作ったUIに対しては自分でカスタマイズしてドラッグアンドドロップに対する処理を行うことができます。

Drop Script

COMPのドロップスクリプトは他のCOMPやファイルがドロップされたときに実行されます。

Drag Script

COMPがドラッグが始まったときに実行されます。

デフォルトでは /sys/drag, /sys/dropになっていますがちょっと解説するには長かったので今回は省略します。

Setting

Containerを作り、パラメータのDrag&Dropのタブで以下のように変更します。
par.jpg

取得できる値

####Drag

args
args[0] ドラッグされたオペレータの名前
args[1] ドラッグされているオペレータのインデックス
args[2] ドラッグされているオペレータの数
args[3] オペレータの種類
args[4] ドラッグされているオペレータの親のパス

####Drop

args
args[0] ドロップされたNodeの名前、CHOPのチャンネル名またはファイル名(ドロップされたものによる)
args[1] マウスが離されたときのX座標
args[2] マウスが離されたときのY座標
args[3] ドロップされたもののインデックス
args[4] ドロップされたものの総数
args[5] オペレータの種類、又は拡張子
args[6] ネットワークのフルパス、又は
args[7] ドラッグされたCOMP

drag, drop ともに、print(args)と書き込みドラッグアンドドロップをしてみた例
DD_example.gif

##実例
TouchDesignerでUIに動画ファイルやTOXファイルをドラッグアンドドロップして読み込む方法、およびUI上でCOMPをドラッグアンドドロップで操作できるもの

##こんな感じの

TD_dropBank.gif

ファイル

https://github.com/Joe0hara/TD_DragAndDrop

上で学んだD&Dの知識で実現することができます。
ドロップされたファイルの拡張子やパス、Containerの名前などから行う処理を決めています。
Movie、Toxどちらも対応しているBankになっています。
中身みてよく分からないことやなぜこのようなことをしているかなど質問、意見のある方はTwitterかFacebookよりご連絡ください。
Twitter
Facebbok

17
10
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
17
10