TouchDesigner 099 Spring 2019 Official Update (日本語)

## はじめに

- 本記事は[TouchDesigner 099 Spring 2019 Official Update](https://www.derivative.ca/Events/2019/TouchDesigner099Spring2019/default.asp)を日本語に翻訳したものです（**全てではありません**）  
→[Official Release Notes](https://docs.derivative.ca/Release_Notes)
- 筆者はTouchDesigner初心者(初めて3ヶ月程度)
- 間違いがあれば訂正よろしくお願いします  
※メモがてら書き始めたのですが、割と多く面倒になってしまった部分もあるため、、

## 目次

- [01.FULL UNICODE SUPPORT](#01full-unicode-support)
- [02.PHYSICS SIMULATIONS](#02physics-simulations)
- [03.WIDGETS & BINDING](#03widgets--binding)
- [03.C++ CUSTOM OPERATORS](#03c-custom-operators)
- [04.INTEROPERABILITY](#04interoperability)
- [05.FBX & USD GEOMETRY SUPPORT](#05fbx--usd-geometry-support)
- [06.RENDERING, MATERIALS & LIGHTING](#06rendering-materials--lighting)
- [07.TOPS & CHOPS & DATS](#07tops--chops--dats)
- [08.WORKFLOW FEATURES](#08workflow-features)
- [09.NEW PYTHON](#09new-python)
- [11.CONTENT & TOOL UPDATES](#11content--tool-updates)

## 01.FULL UNICODE SUPPORT

- Unicodeに対応
- DATやPythonのコメント等でも書くことができる
- ファイル名やパスにUnicode文字が含まれていても読み込み、保存がちゃんとできる

## 02.PHYSICS SIMULATIONS

- Bulletというリアルタイム物理演算APIを使用して、Actor COMP内に3Dオブジェクトを配置することで物理演算を適用できる
- Force COMP, Impluse Force COMP, Constraint COMPによって動作する
- 初期値、シミュレーション、スピード等を制御するBullet Solverによって管理される

## 03.WIDGETS & BINDING

- Widgetsはコントロールパネル、パフォーマンスIF、アプリUI、システム等を作るためのコンポーネントのセット
- Pythonベースで作られており、カスタマイズが可能
- Widget COMPはWidget UIシステムを作る際、ベースとなるパネルコンポーネント
- UI Widgetはそれぞれパラメータを持っており、Bindingと呼ばれるモードにすると、参照等が切れることなく双方間同期を維持することができる

## 03.C++ CUSTOM OPERATORS

- C++ DATだけでなく、TOP, CHOP, SOPが追加
- Non-CommercialライセンスでもC++オペレータが動作する
- Custom OPsができた
    - TouchDesignerの組み込みオペレータみたいに扱うことができる  
→toxをもっと簡単に読み込めるようにしようよみたいな気がする

## 04.INTEROPERABILITY

- Non-Commercialライセンス、macOSでもWeb Render TOPが使用可能に
- NDIで送受信する映像と共に、音も送受信したい場合は、Audio NDI CHOPをNDI In TOPから音を受信し、NDI Out TOPを経由して音を送信することができる
- NDI DATの更新
    - ネットワーク上にある全てのNDIソースをリスト化できるようになった
    - NDIソースの表示、非表示や再生、停止などのイベントをcallbacks DATを取得できるようになった
- AJA
    - 外部参照同期入力に対応
    - AJA Corvid24シリーズのfailsafe機能に対応
    - AJA Kona HDMIにも対応
- Blackmagic Design
    - GPUDirectに対応?
    - Blackmagic 8K Proもサポート
- Stereolabs' ZEDを扱うためのオペレータが３つ追加された
    - ZED TOP: カメラのデプス、カラー画像にアクセス可、ポイントクラウドデータの出力も可
    - ZED CHOP: カメラの位置、面方位を返す
    - ZED SOP: 現実世界のオブジェクトをスキャンし、ジオメトリを作成する
- RealSense
    - D435i cameraに対応

## 05.FBX & USD GEOMETRY SUPPORT

- FBX COMP, USD COMPはジオメトリを読み込み、編集、カスタム可能な内部ネットワーク構造を生成する
- 読み込み時に、callbacks DATでネットワーク構造と最終シーンの変更が可能になった
- Playページでプレイバック等、アニメーションの制御が可能になった
- Import Select TOP, Import Select CHOP, Import Select SOPでテクスチャ、アニメーション、ジオメトリーメッシュアセットの選択が可能になった

## 06.RENDERING, MATERIALS & LIGHTING

- Nvidia Flowの対応
    - Nvidia Emitter COMP: パラメータを制御するエミッター
    - Nvidia Flow TOP: シミュレーションし、レンダリング結果を表示するオペレータ
- Line MAT
    - depth rolloffでカラー制御可能なconstant shadingなマテリアル
    - smooth crisp linesを提供
    - line jointやcap等、様々なオプションが追加
- Phong MAT, PBR MATに正しいdisplacement mappingが追加された
- Displace VerticesオプションでHeight Mapに応じて頂点を動かすことができる
- Substance TOPはSubstance Designerからマテリアルを読み込むことができ、4K PBRテクスチャにも対応した
- Camera COMPにQuad Reprojectionが追加された
    - 4点のSOPで定義した任意のエリアを最終的な出力範囲を埋めるようにフル解像度で再投影することができる
- Light COMPで、Equirectangular投影マップタイプを使用してライトの位置から全ての方向に、Equirectangularテクスチャを投影できるようになった
- Render TOP
    - 6面が必要ない場合に、少しの面だけをレンダリングするよう設定し、レンダリングのオーバーヘッドを減らすことができるようになった
    - プロジェクションマッピング設定で使用するために、ジオメトリにラップし直す等の処理ができるUV Unwrapモードが追加された

## 07.TOPS & CHOPS & DATS

- Movie File In TOPのTuneページにHardware Decodeパラメータが追加
- Movie File Out TOPにStop-Frame Moviesが作成できる出力形式が追加、.gifファイルの作成が可能になった
- Speed CHOP, Spring CHOP, Slope CHOPにPer Sample optionが追加され、チャンネルの代わりにサンプル数を制御できるようになった
- Shuffle CHOPはshuffle, un-shuffleをする必要がなくなった
- DATとlookup tableを探索するLookup DATが追加
- Parameter DATでどんなオペレータの情報も取得可能（特にstringsパラメータを持ったやつ）

## 08.WORKFLOW FEATURES

- Internal Operators (iop) と Internal Parameters (ipar)
    - iop: コンポーネント内でよく使うオペレータのショートカット
    - ipar: コンポーネント内でよく使うパラメータの集まりのショートカット
- ローカルアドレスを設定することでネットーワークが使用できる、multi-NICが全てのオペーレータに追加
- オフラインドキュメンテーションが追加
- パラメータ名rollover時に、alt（macOSの場合はoption）キーを押すと、パラメータのヘルプが表示される
- オペレータスニペットにexampleを追加
- CrashAutoSave.toeファイルにプロジェクトファイル名で接尾辞が追加
- ファイル名のデフォルト設定がOn and Save to Backup Folderに変更

## 09.NEW PYTHON

- Preference DialogにあるSearch External Python Path Lastで、組み込みモジュールの前後にカスタムPythonモジュールパスが検索される順序を制御できる
- Python Custom Parametersが追加、PyObjectsで評価可能になった?
- カスタム演算子を扱うために、appendPython()を使用してPythonパラメータを作成し、getParPython()を使用してPythonのC APIを使用するためにPyObjectに直接Pythonパラメータを評価できるようになった
- Page Class Page.appendPar(name, par=Par): 指定されたパラメータにできるだけ近いカスタムパラメータを作成する

## 11.CONTENT & TOOL UPDATES

- TreeBrowser: UIセクションのパレットに追加された
- moviePlayer: 画像ズーム、前に戻る、スクラブ、再生、停止等のマウスインタラクションが追加
- presets: 更新を受け取り、inspection DATに格納される?。presetからの追加、変更、削除が可能
- camschnappr: 新しいautoblend機能が追加

## 参考

- [https://www.derivative.ca/Events/2019/TouchDesigner099Spring2019/default.asp](https://www.derivative.ca/Events/2019/TouchDesigner099Spring2019/default.asp)
- [https://docs.derivative.ca/Release_Notes#Official_Build_2019.14650_-_May_06.2C_2019](https://docs.derivative.ca/Release_Notes#Official_Build_2019.14650_-_May_06.2C_2019)