基礎編オペレータ同士をつなぐ実線と点線の違い

###TouchDesigner099
自分が使い始めた時につまづいたことなどを備忘録として書いていきます。

非商用版 https://www.derivative.ca/099/Downloads/
をダウンロードし、インストール。その際、公式サイトでユーザ登録したり、そこそこグラフィックに強いマシンの用意などが必要です。その辺は無事乗り越えて立ち上げたばかりの状態をもとに以下記述します。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3230383233392f36656139623230312d646130342d333239382d653232322d3139626630356530353635652e6a706567.jpg](https://qiita-image-store.s3.amazonaws.com/0/208239/005fd61b-9fc1-ef49-0a46-67670de556c6.jpeg)


#箱と箱をつなぐ線
TouchDesignerのウリとして、ビジュアル重視のプログラミング環境であることが挙げられます。箱と箱を線でつなげばかっこいい映像がでてくる！（はず）

#オペレータをつなぐ基本は「実線」([公式にはwireと呼ぶ](http://www.derivative.ca/wiki088/index.php?title=First_Things_to_Know_about_TouchDesigner_088))
![sample1.jpg](https://qiita-image-store.s3.amazonaws.com/0/208239/2093e80e-a8bb-527a-f795-c950a386c152.jpeg)
moviefilein1からdisplace1、もしくはchopto1からdisplace1へのびる紫色の実線が描かれています。
moviefilein1やdisplace1やらの箱をオペレータと呼びます。
実線は、同じファミリー（TouchDesignerには、CHOP、COMP、TOPと呼ばれるようなオペレータの分類があり、[公式サイト](https://www.derivative.ca/wiki088/index.php?title=Operator_Family)ではこれらの分類をfamilyと呼んでます）のオペレータ同士がつながっていることを表しています。（オペレータ＝関数、実線はデータフローと捉えてよいようです）
moviefilein1も紫色。displace1も紫色。chopto1も紫色の縁取りがされており、同じファミリのオペレータであることが表現されています。

なんとなく適当にマウスをダブルクリックしますと、これらのオペレータとやらが作られると思いますし、同じ色同士のオペレータの出力と入力を線で引っ張るのは直感的にできてしまいます。
そこまではマニュアルなど1ミリも読まずとも何となくわかります。

ですが、、、

noise1からchopto1へのびる矢印の点線はなんだ！！！！！！！！
オペレータの枠の色が違うけど、なんかつながってるっぽい！！！！

#異なるファミリのオペレータは「点線」([Link](http://www.derivative.ca/wiki088/index.php?title=First_Things_to_Know_about_TouchDesigner_088))でつながる。
適当に操作をしても異なるファミリのオペレータ同士はつながってくれませんので、以下のようなパタンでつなげる必要があります。ファミリを超えてオペレータをつなぐと、データの流れが点線で表現されます。

##点線パタン1:パラメータの参照
まずは、点線でつながるパタン1として、「異なるファミリのオペレータに対する参照」を説明します。
![dot1.jpg](https://qiita-image-store.s3.amazonaws.com/0/208239/b0518d9f-68b5-962c-d592-b1acbe836459.jpeg)
そもそも、chopto1というオペレータは、CHOPファミリの情報（ここではnoise1）を受信してTOPファミリへ変換する機能をもちますが、ファミリの異なるオペレータ同士は実線でテキトーにつなぐことができません。
chopto1というオペレータをクリックすると、画面右上のパラメータというウィンドウ（上の画像の赤枠）が開きます。パラメータウィンドウのCHOPという欄に、noise1とあります。
これは、chopto1オペレータが、noise1オペレータからデータを受け取っていることを意味します。
今見ているTouchDesignerの初期状態においては、既にリンクされた状態ですが、もし新たにリンクする場合には、noise1ををchopto1のchopパラメータへドラッグしてリンクさせます。
これで、noise1とchopto1が点線でつながります。
![chopto.jpg](https://qiita-image-store.s3.amazonaws.com/0/208239/7406e251-d095-0201-909b-e54c7f84880d.jpeg)
このように、もともとオペレータの機能として異なるファミリのオペレータに対する参照を行えるものがあり、参照の設定を行うと点線で表現されるというのが、点線パタン1です。


##点線パタン2：Export CHOP
つぎに点線パタン2として、「CHOPファミリのオペレータから異なるファミリのオペレータに対する数値出力」について説明します。
CHOPというファミリに分類されるオペレータは緑の枠で表現され、定数や変数、乱数などの数値を扱います。で、CHOPに関してはTouchDesignerの世界では例外的に、いかなるファミリのほぼどんなオペレータとでもつなぐことができます。これをCHOP Exportと呼びます。
では、noise1をdisplace1へリンクしてみます。

1.赤丸で囲んだ十字をクリックして、CHOPをviewerモードにする。viewerモード化しないとこの先の作業はできません。
![CHOP1.jpg](https://qiita-image-store.s3.amazonaws.com/0/208239/7217847d-7e1b-41b6-fdc6-18a371151e27.jpeg)

2.エクスポートするチャンネル（chan1）をドラッグし、displace1のパラメータウィンドウのUV Weightへドロップする。（実際には他のパラメータでもかまわないのですが、ここでは効果のわかりやすいものを例にしました）
![CHOP2.jpg](https://qiita-image-store.s3.amazonaws.com/0/208239/e4f0a314-0651-6997-7437-d809b97c0dfe.jpeg)

ダイアログが開くので、Export CHOPを選択。（[ダイアログの他の選択肢については、別原稿を用意しました](https://qiita.com/roundjam/items/05088c4767fd3b4cff80)）
![CHOP3.jpg](https://qiita-image-store.s3.amazonaws.com/0/208239/8b01b909-a466-0b2d-615a-4a525151745c.jpeg)

すると、例の点線でオペレータ同士が接続され、noiseの効果でdisplace1の画像がグニグニ動きはじめます。
![CHOP4.jpg](https://qiita-image-store.s3.amazonaws.com/0/208239/625b626c-4d6c-2c3c-1d2e-2a91fe341583.jpeg)
これが、CHOPによるほかのファミリへの数値出力（CHOP Export）で、点線パタン2となります。


以上で、「実線と点線の違い」は終了です。
実は上記2パタン以外にもDAT Exportというのもありますが、使い方はほぼCHOP Exportと同じです。