TouchDesigner使い方・勉強方法・ショートカットなどまとめ

※随時追加予定（2017/6/15現在）
TouchDesignerについての個人的なメモ
https://www.derivative.ca/


## TouchDesignerショートカットまとめ
### [ネットワーク上での操作]
基本はマウス操作なので、マウスがないととても扱いにくいです（Windows版）
OP：オペレーター

- **マウス左クリック+ドラッグ**：ネットワーク移動
- **マウス左クリックでOP選択+ドラッグ**：ネットワーク内OP移動
- **マウス右クリック+ドラッグ**：OPの複数選択（選択エリア内の一括選択）
- **マウス右クリック**：OPのMENU表示
- **マウス中ボタンをスクロール**：拡大縮小※カーソルに向かって拡大縮小する

- **Tab** or **ネットワークの背景（画面の何もないとこ
ろ）をダブルクリック**： 
OP Createダイアログボックスを表示 
検索エリアで選択。TabでOperatorのタブ移動 
※右上のBASIC/ALLはALLに設定

- **Operatorの入力or出力で右クリック**： 
OP選択～コネクタを繋いだ状態でOperatorを配置できる 
既に繋がっている複数のOP（オペレーターチェーン）に新規OPを追加 
入力コネクターの前、もしくは出力コネクターの後ろに直接OPを追加出来る 
※グレーアウトのものは選択できない
- **Ctrl+C**：選択中のOPをコピー
- **Ctrl+V**：コピーされたOPを貼り付け
- **Ctrl+Shift+V**：カーソルの位置にコピーされたOPを貼り付け
- **OP CreateダイアログボックスでCtrl押したまま選択**： 
OP複数選択、ワイヤーで繋がれていない状態のオペレーターを一気に追加 
- **OP CreateダイアログボックスでShift押したまま選択**： 
OP複数選択、ワイヤーが繋がれた状態でオペレーター追加 
- **ESC**：OP Createダイアログボックスを閉じる
- **H(Home All)**：全てのOP（ネットワークの全体）をスクリーンに表示
- **Shift+H(Home Selected)**：選択OPの拡大表示
- **F(Unity Frame All)**：ネットワーク全体表示※Hとの違いが不明
- **Shift+F(Unity Frame Selected)**：選択OPを中心に表示移動
- **選択OP右クリック→VIEW**：別ウィンドウでプレビューが開く
- **Ctrl+左右上下キー**：ネットワーク表示エリアの若干移動
- **Ctrl+A→Delete**：全選択→削除
- **P**：OPパラメータウィンドウ表示ON/OFF
- **OP右クリック → parameters**：フローティングウインドウで開く（選択したOPが変わらないので複数開きに便利）
- **Ctrl+B**：パレットブラウザー表示ON/OFF
- **Alt+L**：パレットブラウザーをフローティングウィンドウとして開く
- **Ctrl+F**：ネットワーク内OP検索
- **F3**：検索ダイアログボックス表示(BASICだとOPとPythonスクリプトが検索対象)
- **O**：ネットワークの全体図（画面の左下に表示）表示ON/OFF
- **C**：カラーパレットの表示ON/OFF。選択中オペレータの枠の色を変更できる



### [トランスポートコントロール（タイムラインの操作）]
- **Space**：再生と一時停止のON/OFF

### [ネットワークペインの操作]
- **Alt+1**：Network Editor
- Alt+2：Panel
- **Alt+3**：Geometry Viewer
- Alt+4：TOP Viewer
- Alt+5：CHOP Viewer
- Alt+6：Animation Viewer
- **Alt+7**：Parameter
- **Alt+9**：Textport and DATs
- **Alt+[(Split Left/Right)**：カーソルが位置するペインを横に分割
- **Alt+](Split Top/Bottom)**：カーソルが位置するペインを縦に分割
- **Alt+Z**(CLOSE)：カーソルの位置するペインを閉じる



### [Operator(OP)操作]
- **OP上で右クリックでOP操作MENU**： 
Change OP TYPE：OPの変更
- **OP間のワイヤーの上で右クリックでOPワイヤーの操作MENU**： 
Insert Operator：繋いでいるワイヤーの間に挿入
Add Operator：繋いでいるワイヤーのOPの並列に追加
- **D**：DisplayフラグON/OFF（適用オペレーターの場合のみ）
- **R**：Render Flag（レンダリングフラグ）ON/OFF（SOP、Object COMPの場合のみ）
- **B**：バイパスフラグフラグON/OFF
- **OP選択 → マウス中ボタン**：OPの詳細情報を表示
- **OP選択 → ENTERキー**：OPの中に入る
- **U (up)**：選択中のコンポーネントから一レベル上のネットワークへ移動
- **I (in)** or **Enter**：選択中のネットワークまたはコンポーネント（Container COMPやBase COMP等）の中に移動
- **A**：選択中OPをアクティブモードに切り替え
- **OPのパラメーターのどれか数字の値を選んで左クリック長押し** 
選択肢が出るのでどれか選ぶんでマウスを左右に動かすととその選択肢の設定で値を上下させられる


### [Dialogs関連操作]

- **Alt+F**：Finder
- **Alt+T**：Pythonコンソール
- **Alt+Y**：プロファイラ
- **Alt+I**：Palette Browser
- **Alt+D**：MIDI Device Mapper
- **Alt+S**：Search




### [Operatorパラメーターウインドウ解説]
##### OPパラメーターの上のアイコン部分解説
[左からそれぞれ]
- **OPヘルプ**：現在使用中のOPについてのWikiページを新規ブラウザーウィンドウで開く
- **OP Pythonヘルプ**：選択OPのPython Wikiヘルプページがブラウザーで開く
- **詳細情報ダイアログボックス**：OPを中クリックした場合と同様に、そのオペレーターについての詳細情報が表示
- **コメント**：OPについてのコメントを表示・編集
- **複写済みパラメータ**：右クリックメニューを使ってコピーされたオペレーターを表示
- **ランゲージ**：OPで使われるスクリプト言語をPythonとtscriptの二つから選択
- **拡張・折り畳み**：全てのパラメータの拡張・折り畳み表示
- **非デフォルトパラメータ**：デフォルト値から変更されたパラメータのみが表示

##### OPパラメーターの各パラメーター解説
- **下部Input OPエリア（OPによってはない）**  
選択中のOPに何がつながれてるか分かる
順番の入れ替えや付け外しが可能


## Operatorについて
### [Operator種類]

- **COMP：COMPonent operator** 
TouchDesigner上のネットワークを作成するときに使用する部品。ネットワーク内に置いてUIとして使用できるOPもある

- **TOP：Texture OPerator** 
画像ベースのデータを扱うOP
2Dのテクスチャーオペレーターであり、映像再生から3Dレンダリング、合成、ハードウェアのビデオ入力・出力までこなします。そして、モニター、プロジェクター、LEDディスプレー等に出力する全ての工程で使われます
※動画は連続した静止画

- **CHOP：CHannel OPerator** 
主に数値を扱うOP
チャンネルに関連する全ての作業を扱う。モーションデータ、音声の入力、アニメのキーフレーム、DMX、MIDI、OSC、そしてMicrosoft Kinect、Leap Motion、Oculus Rift、ペンタブレット、キーボード、マウス等のハードウェアからの入力作業。様々なタイプの音響・映像機器とのデータ通信（入力、処理、出力）
外部からの入力値を簡単に扱うことができる


- **SOP：Surface OPerator** 
SOPは3Dに関する全て（三次元形状、パーティクル、アーキテクチャモデル、3Dキャラクター等）の作業を行うものでポリゴン、カーブ、パーティクルなどの画像が生成できる
対応3Dファイル：[.fbx, .obj, .3ds, .dxf, .dae]

- **MAT：MATerial** 
3Dレンダリングの際に使用するデータ

- **DAT：DATa operator** 
外部とのデータのやり取りや、ネットワーク内でのデータの保持に使用 
データに関する作業。DATを使って様々な形式のデータを作成、編集、解析、送信、そして受信できる。テキスト、テーブル、Pythonスクリプト、XML、JSON、MIDI、Serial、OSC、そして他の様々なデータ形式に対応



背景が濃いOperatorがGeneratorで、薄いのがFilter
- **Generator**：データを読み込んだり、生成したり、外部のセンサの値を取得 
- **Filter**：別のOperatorからデータを受け取って加工

### [種類の違うOperatorのつなぎ方]
ex) TOP-CHOP
1. CHOPの値を繋ぎたい先のTOPのパラメーターを表示
2. 繋ぎたいCHOPの右下の「+」マークをクリック
3. CHOPの表示が変わる
4. 表示変化後のCHOPの値の上で左ボタン→マウスのカーソルが^から➡に変わる
5. 繋ぐ先のTOPのパラメーターの上でカーソルが⇒になったら左ボタンを離す→Export CHOP
6. これでCHOPの値でTOPが制御可能に

## 通信方法
### [おもに使う通信プロトコル]
- **MIDI** 
- **OSC** 
- **DMX** 
- **TUP** 
- **UDP** 
- **UDT** 
- **Websocket** 
 


## Python Script & DAT Operatorについて
- **Alt+T**：Textport起動（MENU → Dialogs → Textport and DATsでも同じ）
- **Pythonを記述したノード選択 → Ctrl+R**：Python Scriptの実行（Textportをコンソールとして使えるのでprint()でデバッグ可能）
- **Pythonを記述するノード選択 → Ctrl+E**：外部エディタを起動




## その他メモ
window performで実行時の設定ができる







## 学習方法
### [Operator Snippets]
各Operatorの簡単な使用サンプルが見れるので、そのパッチを見て使い方を覚えることができる
TouchDesigner起動 → [Help]メニュー → [Operator Snippets]で起動

### [操作画面の左側にあるPaletteウインドウ] 
ある程度のまとまった機能を実装したサンプルパッチがあるので、慣れてきたらその中身を解析するのも勉強になると思います

### [Derivativeサイト内Forum,Wiki]
公式ページによる使用説明やユーザーによるFAQなど

- **Wiki / Tutorials and Workshop Videos** 
https://derivative.ca/wiki088/index.php?title=Main_Page
- **FORUM** 
http://www.derivative.ca/Forum/

### [Tutorial Movie]
http://www.derivative.ca/wiki088/index.php?title=Category%3ATutorials
http://www.interestingresults.com/
https://www.youtube.com/user/raganmd/videos

### [FACEBOOK Group]
公開グループで、投稿すれば誰か親切な人が大抵教えてくれる
TouchDesigner User Group Japan
https://www.facebook.com/groups/437766143072915/?fref=ts

TouchDesigner Help Group
https://www.facebook.com/groups/touchdesignerhelp/

### [好きな演出をまねてみる]
まずは自分がいいと思うものがどう作られているのか真似てみるのはかなりおすすめ

#####[作品事例] 

- **SHUHEI MATSUYAMA**：http://www.shuhei-matsuyama.com/#!portfolio/c1han
- **Matthew Ragan**：https://matthewragan.com/teaching-resources/touchdesigner/
- **Vimeo/TouchDesignerJapan**：https://vimeo.com/groups/touchdesignerjapan/

##### [Wiki] 

- **Generative Design** 
https://www.derivative.ca/wiki088/index.php?title=Generative_Design