TouchDesigner初心者のための外部連携まとめ

 
『アレがしたいんだけどやり方が分からない！！』という時のため、外部連携をまとめてみました。
全てcommercialのTouch Designer099(α版)で確認しています。
ただし、一部動作確認をしてないパッチもあるので、間違い等あれば教えてください。
オススメの奴には( ! )をつけてます。

# 他アプリケーションと連携させたい
## 1. 画面連携

### Syphon Spout In / Out TOP( ! )  
    同一PC内のアプリケーションの画面が共有できます。
    対象アプリケーションがSpoutもしくはSyphonでの画面出力に対応している必要があります。
    openFrameworksなどで作った画面をTouchDesignerで加工して出力したい場合によく利用されます。
### Direct X In / Out TOP  
    同一PC内のアプリケーションの画面が共有できます。
    Windows版のみ利用可能。
    対象アプリケーションがDirect Xを利用して画面出力している必要があります。
### Photoshop In TOP  
    同一ネットワーク内のPhotoshopの画面が共有できます。
    Photoshop側でRemote Connectionsという機能を使ってサーバを立てておく必要があります。  

### Shared Mem In / Out TOP  
    同一PC内のTouchDesignerアプリケーションの画面が共有できます。 

## NDI In / Out TOP 
    同一ネットワーク内のNDI対応アプリケーションと画面が共有できます。  

## 2. パラメータ連携

### OSC In / Out CHOP( ! )  
    同一ネットワーク内のアプリケーションのパラメータが共有できます。
    FloatやIntなどの単純なパラメータであればCHOPで十分に扱えます。
    OSCはtouch OSCやZIG SIMなどの既製アプリケーション、openFrameworksなどのフレームワークなどで幅広く利用されています。  
### OSC In / Out DAT  
    同一ネットワーク内のアプリケーションのパラメータが共有できます。
    Stringなどの複雑なパラメータの場合、DATで一度受けてからパースする必要があります。  
### TCP In / Out DAT  
    同一ネットワーク内のアプリケーションのパラメータが共有できます。
    TCPは確実に相手に届けることが可能なソケット通信です。  
### UDP In / Out DAT  
    同一ネットワーク内のアプリケーションのパラメータが共有できます。
    UDPは確実には届かない代わりに軽量なソケット通信です。上級者向け。  
### UDT In / Out DAT  
    同一ネットワーク内のアプリケーションのパラメータが共有できます。
    UDTは、UDPベースでありながら確実に相手に通信することができるソケット通信です。上級者向け。  
### LTC In / Out CHOP  
    オーディオのライン入出力を利用してタイムコードの送受信ができます。  
    USBオーディオインターフェースが必要になります。
### Shared Mem In / Out CHOP  
    TouchDesigner同士で連携する場合のみ利用可能。パラメータの共有ができます。  

## 3. ファイル連携
### Text DAT( ! )  
    .txtや.csvなどのテキストファイルを読み込みます。  
### XML DAT( ! )  
    XMLをTable状に変換してくれます。ローカル上のXMLを利用する場合はText DATと、ネット上のXMLを利用する場合はWeb DATとそれぞれ繋いで利用します。  
### Substance TOP  
    Substance Designerのマテリアル系のファイル、PBRファイルを読み込みます。PBR MATと連結させて使います。099より利用可能。  
### OpenColorIO TOP
    インスタグラムのような画像にかける3Dルックアップテーブル（フィルタ）のフォーマット『.ocio』を読み込みます。
## FBX COMP
    3DのファイルフォーマットとしてメジャーなFBXファイルを読み込みます。
## USD COMP
    3Dのシーンとして規格されたUSDファイルを読み込みます。

## 4. デバイス連携
### Leap Motion CHOP  
    手の動きをセンシングするデバイス、Leap Motionの各種パラメータが利用できるようになります。
    Leap MotionとTouchDesignerを利用するPCがUSBで接続されている必要があります。  
### Kinect CHOP 
    3次元情報や人体のトラッキングが可能なデバイス、Kinectの各種パラメータが 利用できるようになります。
    Kinect(v1もしくはv2)とTouchDesignerを利用するPCがUSBで接続されている必要があります。
    Windows版のみ。  
### DMX In / Out CHOP( ! )  
    舞台照明、ムービングヘッド、スモークやDMX制御アプリケーションと連携するためのDMX信号を取り扱います。
    Enttec USB PRO、Enttec USB PRO MkIIの場合、TouchDesignerを利用するPCとUSBで接続されている必要があります。
    Art-Netを選択した場合は、TouchDesignerを利用するPCが同一ネットワークに接続されている必要があります。  
### EtherDream DAT  
    レーザをILDA方式で利用する場合に使用します。
### Helios DAC CHOP
    レーザを制御できるHeliosのDACと連携します。
### Art-Net DAT  
    Art-Netにて大量のデバイスを細かく利用したい場合にはこちらを利用します。  
### Oculus Rift TOP
     VR用のHMDである、Oculus Rift用のステレオ画像を生成します。
     Windows版のみ。  
### Oculus Audio CHOP
     OculusのAudio SDKと連携します。
### NatNet CHOP
     OptiTrackなどで利用されている通信プロトコルです。同一ネットワーク内のデバイスからのNateNet通信を受信します。
### OpenVR TOP  
    OpenVRデバイス出力デバイス用のステレオ画像を生成します。VIVEもOpenVRデバイス扱いです。Windows版のみ。  
### Leuze ROD4 CHOP  
    フランスの測域センサ、Leuze ROD4シリーズと接続します。Lease ROD4とTouchDesignerを利用するPCが同一ネットワークに接続されている必要があります。  
### Video Device In / Out TOP( ! )  
    Web Camと接続して、画像を取得します。Web CamとTouchDesignerを利用するPCがUSBで接続されている必要があります。  
### Video Stream In / Out TOP  
    RTSP形式で配信されているIPカメラと接続して、画像を取得します。
    IPカメラとTouchDesignerを利用するPCが同一ネットワークに接続されている必要があります。  
### Serial DAT  
    シリアルポート(もしくは仮想シリアルポート)を持つデバイスと接続して、データを取得します。
    デバイスとTouchDesignerを利用するPCがシリアルポート、もしくは仮想シリアルポートにて接続されている必要があります。
    Arduinoを使った自作デバイスと通信する場合に使います。  
### MIDI In / Out CHOP( ! )  
    MIDIデバイス及び、MIDIアプリケーションとの連携に利用します。
    簡単にMIDIの送受信ができます。
### MIDI IN DAT
    MIDIデバイス及び、MIDIアプリケーションとの連携に利用します。  
    複雑なMIDIデータの受信ができます。
### MIDI Event DAT  
    MIDIデバイス及び、MIDIアプリケーションとの連携に利用します。
    MIDIイベントを取り扱えます。
### Monitor DAT  
    接続しているモニタの解像度情報などを取得します。  
### Mouse In / Out CHOP( ! )  
    マウスの入出力を取り扱えます。
### Keyboard In CHOP( ! )  
    いくつかのキー入力を受け付けます。  
### Keyboard In DAT  
    全てのキー入力を受け付けます。  
### TUIO In DAT  
    同一ネットワーク内のアプリケーションのパラメータが共有できます。
    TUIOというマルチタッチの通信プロトコルを利用します。
### Touch In / Out DAT  
    同一ネットワーク内のアプリケーションのパラメータが共有できます。
    マルチタッチの通信プロトコルを利用します。
### HOKUYO CHOP
    同一ネットワーク内のHOKUYO社製の測域センサ（LiDAR）のパラメータが受信できます。USB版、Ethernet版両方可能。
### ZED CHOP
    ZEDをSLAM的に利用する場合の6DoFの値が受信できます。
### ZED SOP
    ZEDの3D画像を受け取れます。

### JOYSTICK CHOP
    ゲームコントローラの値を受信できます。
### RealSense TOP
    RealSenseの画像を受信できます。現在T435まで対応。