TouchDesigner Experimental Builds 2021.30000 日本語まとめ記事

https://docs.derivative.ca/Release_Notes/2021.30000

### download link

https://derivative.ca/release/202138110/65595

2021.30000 シリーズの最初のビルドのリリースノート日本語翻訳・解説記事です（非公式）

:::note warn
Experimental ビルドには、まだ開発・テスト中の新機能が含まれており、機能は変更される可能性があります
パフォーマンスやプロジェクトの納品に必要な安定性と信頼性については、製品版に対応した公式ビルドを使用することをお勧めします
:::

:::note alert
警告! 
Experimentalで保存したProject.toeファイルをOfficialで読み込むことができません
:::

## (Work In Progress)

`(Work In Progress)`とタグ付けされたものは、活発に作業が行われており、おそらくバグを含んでいるか、未完成とみなされるため、大きな変更が加えられる可能性があります

[既知の問題はこちら](#既知の問題)


# Release Highlights (Build 2021.38110 - Dec 17, 2021)

## Major Architectural Updates

### Vulkan API

https://docs.derivative.ca/Vulkan

TouchDesigner のグラフィックAPIがOpenGLから[Vulkan](https://docs.derivative.ca/Vulkan)になります
Vulkanへの移植は、TouchDesignerのエンジンを近代化するための現在の取り組みの一部であり、VulkanやMetalなどの最新のAPIを通じて利用可能な新機能の導入を可能に
macOSでは、AppleのMetalフレームワーク上でVulkanを使用できるようにする移植性プロジェクトである[MoltenVK](https://github.com/KhronosGroup/MoltenVK/)を使用しており、Appleがリソースを集中している最新のAPIで開発しています

+ Vulkanは、openGLと比較してドライバのオーバーヘッドを大幅に削減することができます
+ Compute Shadersは、現在macOSを含むすべてのプラットフォームで完全にサポートされています

+ TouchDesignerの新しいVulkanアーキテクチャにより、将来的にエキサイティングな機能が実現予定
    + Vulkan Videoのような多くのクロスベンダー拡張機能がVulkanに登場し、将来的にTouchDesignerは単一のAPIですべてのGPUのハードウェアビデオエンコーディング/デコーディングにアクセスできるようになります
    + 映像の入出力など、一部の操作はさらにスレッド化して性能を向上
    + 将来的には、TouchDesigner内のより多くの操作をコンピュートシェーダーで行えるようになります。macOSでのNotchLCエンコード/デコードや、特定のTOPをコンピュートシェーダーで書き直すなどの機能が可能に
    + VulkanのHDR色空間出力への対応強化も、今後に期待したい機能です

### Python Version

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/175399/d0f59adb-3361-a42e-8b77-fb00591407ce.png)


https://docs.derivative.ca/Python

標準搭載のPythonのバージョンが3.7.2から3.9.5のアップデートされました
[Python 3.8](https://docs.python.org/3.8/whatsnew/3.8.html), [Python 3.9](https://docs.python.org/3.9/whatsnew/3.9.html)の新機能が使えます

### High DPI Panel Rendering

UIの描画が改善され、拡大をした際や高DPIのモニターなどでもUIのサイズに依存せず直接描画されるため鮮明なテキストを表示可能となりました
テキスト周りのレンダリングが強化されており、ビルトインのUIのテキストや、DATビュアーにも使用されています

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/175399/233f0526-1f5e-067b-c6d6-e2d282ff4a6b.png)

+ TouchDesignerのUIは、hiDPIおよび高解像度モニターを活用するようになりました。テキスト、ボーダー、およびラインは、以前は高DPIモニター上でUIをソフトでファジーにしていた内部スケーリングなしで、利用可能なすべてのピクセルを活用して画面に直接描画されるようになりました。
+ [Text COMP](https://docs.derivative.ca/Text_COMP)
    + パネル内の解像度に依存しないテキストをレンダリングするための新しいコンポーネントで、[Slug Library](https://docs.derivative.ca/Slug_Library)を使用し、GPU上ですべてを行います。 下記[new operator](#new-operators)参照
    + ビルトイン UI のテキストレンダリングもスラグライブラリとパネルダイレクトレンダリングを使用するように変更され、パラメータダイアログ、ノードビューアと名前、ビルトインメニューとポップアップなどで確認することができます
    + DATsビューアーもこの新しいレンダリングエンジンを使用するように更新
    + 他のユーザーインターフェイスもText COMPsを内部で使用するように更新され、ダイアログ、パレット、メインメニュー、タイムラインにこの素晴らしい外観がもたらされました
    + [Widgets](https://docs.derivative.ca/Widgets)
        + すべてのフィールドとラベルを新しい[Text COMP](https://docs.derivative.ca/Text_COMP)を使用するようにアップグレード

### Steinberg VST® (Virtual Studio Technology)

VST3プラグインが対応
VSTとはオーディオプラグインの規格の一つで、様々なDAWで作成・販売などが行われています
VSTプラグインの様々なパラメータをTouchDeisgner上にもってくることができたり、MIDIイベントを送信などができ、AudioVisualなどをTouchDeisgnerでより快適にできるようになりました

TouchDesignerでは、[Audio VST CHOP](https://docs.derivative.ca/Audio_VST_CHOP)経由でVST3プラグインをサポート
VST3プラグイン用のJUCEフレームワークを使用

+ VST3 プラグインのサポート
+ VSTプラグインの任意のパラメータをTouchDesignerのパラメータとして公開可能
+ VSTプラグインのUIをフローティングウィンドウで表示可能
+ Filter（入力チャンネルを取る）、Instruments（入力なし）、MIDIプラグインタイプに対応
+ [MIDIイベント機能](https://docs.derivative.ca/AudiovstCHOP_Class)でVSTプラグインにMIDIイベントを送信可能
+ Audio VST CHOPのコールバックDATを使用して、VSTプラグインが生成するMIDIイベントをキャプチャ


VST, Vulkan等 新機能解説動画

https://youtu.be/sae-Vo1LTDY


### SDI and Video Pipeline Upgrades

+ [Deltacast](https://docs.derivative.ca/Deltacast) がサポート
    + TouchDesignerはDeltacast PCI-eビデオカードとDeltacast FLEX製品ラインの両方をサポート
+ 12bitフォーマットの対応
    + [AJA](https://docs.derivative.ca/AJA)
        + 12-bit RGB 4:4:4 のキャプチャと 12-bit formatsの出力が対応
    + [BlackMagic Design](https://docs.derivative.ca/Blackmagic_Design)
        + [Video Device Out TOP](https://docs.derivative.ca/Video_Device_Out_TOP)による12-bit formatsの出力に対応
+ 10bit入出力の改善
    + [Video Device Out TOP]()
        + [AJA](https://docs.derivative.ca/AJA)
            + 10-bitキャプチャでカラースペース変換が対応していないファームウェアでも動作可能に
        + [BlackMagic Design](https://docs.derivative.ca/Blackmagic_Design)
            + 10-bit RGB 4:4:4 outputの修正
    + 10-bit 入出力のパフォーマンス改善
+ ビデオ入出力の改善
    + [Video Device In TOP](https://docs.derivative.ca/Video_Device_In_TOP)
        + inputSignalFormat のパラメータが追加
        + Vulkan実装による新たな転送モード
        + BlackMagicDesignやAJA系のデバイスのための　signal_fps という値をinfo CHOPで取得可能に
    + [Video Device Out TOP](https://docs.derivative.ca/Video_Device_Out_TOP) / [Video Device In TOP](https://docs.derivative.ca/Video_Device_In_TOP)
        + Reset Stats パルスパラメータの追加
+ [OpenColorIO TOP](https://docs.derivative.ca/OpenColorIO_TOP) - SDK 2.1.0にアップグレード、最新の.ocio設定標準フォーマットを読むことができるようになり、より優れたレンダラーが提供されます
+ [NDI](https://docs.derivative.ca/NDI) 5.0 にアップデート

### Custom Operators

+ [カスタムオペレータ](https://docs.derivative.ca/Custom_Operators)でC++からPythonのコールバックを呼びだせるようになりました
+ ノードのカスタムのクラスを定義できるようになり、Pythonの呼び出しからC++のコードとやり取りが可能に
+ カスタムパラメータのために提供されるheaderが'TD'namespaceに置かれるようになりました。既存のプラグインは引き続き動作するが、最新のヘッダーファイルにアップグレードした場合は、コード内に `using namespace TD;` を追加する必要があります


### Custom Operator TOPs ([CPlusPlus TOP](https://docs.derivative.ca/CPlusPlus_TOP))

Vulkanへの切替に伴う大きな変更により、すべてのCustom TOP Operatorは新しいAPIへのアップグレードが必要になります。
Vulkanモードが追加されるまで、まだアップグレードパスにないOpenGLモードを使って書かれたTOP以外のケースではすぐにできるはずです。
新たにサポートされるようになったきのうは以下の通りです

+ より多くのピクセルフォーマットのダウンロードと作成に対応
+ CPUMem modeで3D, 2D Array, Cube Textureの作成に対応
+ CPUMem mode時に、異なる解像度/フォーマットを持つ複数のカラーバッファへのアップロードに対応


### ParGroups

`(Work In Progress)`

ParGroupは関連するパラメータのグループで、個々で扱うのではなく、ParGroup全体でより自然に作業ができます
多くの場合パラメータウィンドウで同じ行にあるパラメータは同じParGroupに属します。
例えば「[Transform TOP](https://docs.derivative.ca/Transform_TOP)」の「Translate」は二つのParオブジェクト（txy, unit）を持つParGroupの一つです。
一つのパラメータのみのParGroupも存在します。

+ [ParGroup](https://docs.derivative.ca/ParGroup)
    + パラメータをより高いレベルで操作できる新しい Python オブジェクト
        + [ParGroup Execute DAT](https://docs.derivative.ca/ParGroup_Execute_DAT)
            + [Parameter Execute DAT](https://docs.derivative.ca/Parameter_Execute_DAT) に似た新しい DAT だが、ParGroup オブジェクトを中心に構成
        + [ParGroup_Class](https://docs.derivative.ca/ParGroup_Class)
            + ParGroup オブジェクトにアクセスするための python クラス

### New Operators

+ [Text COMP](https://docs.derivative.ca/Text_COMP)
    + ユーザーインターフェースなどを構築するための[パネル](https://docs.derivative.ca/Panel_Component)にテキストを表示するために使用
    + [Field COMP](https://docs.derivative.ca/Field_COMP)を完全に置き換えるとともに、従来にない多くの新機能を追加
        + 静的なテキストと編集可能なテキストの両方に対応
        + 文字列や複数行のテキスト、浮動小数点数、整数値、パスワードフィールドなどを表示するモード
        + テキストフォーマットオプションは、Python構文、Custom C++ Fmt、Custom Python F-String構文に対応
        + タイムコード、科学的数値、パーセント、通貨を表示するための数値フォーマットオプション
        + 色、取り消し線、下線、小文字、下付き文字、グラデーションなど、テキスト内のインライン書式設定ディレクティブをサポート
        + 例えば、{#color(255, 0, 0, 255);} と記述すると、その行に続くすべてのテキストが赤くなる
        + パネルサイズに必要な解像度で画面に直接描画される解像度に依存しないテキストは、すべてのズームレベルで完全に鮮明なテキストを実現
        + [Slug Library](https://docs.derivative.ca/Slug_Library)を用いたGPUベースの処理
+ [Geo Text COMP](https://docs.derivative.ca/Geo_Text_COMP)
    + [Text COMP](https://docs.derivative.ca/Text_COMP)と同様に、[Slug Library](https://docs.derivative.ca/Slug_Library)を使用してGPU上で直接テキストジオメトリを作成する新しいコンポーネント
+ [Stype Out CHOP](https://docs.derivative.ca/Stype_Out_CHOP)
    + Stypeフォーマットのカメラトラッキングデータを出力する新しいCHOP
+ [FreeD Out CHOP](https://docs.derivative.ca/FreeD_Out_CHOP)
    + FreeDフォーマットされたカメラトラッキングデータを出力する新しいCHOP
+ [ParGroup Execute DAT](https://docs.derivative.ca/ParGroup_Execute_DAT)
    + [Parameter Execute DAT](https://docs.derivative.ca/Parameter_Execute_DAT)に似た新しいDATですが、ParGroupオブジェクトを中心に構成
 

### SDKs Updated

+ [CUDA](https://docs.derivative.ca/CUDA) 11.2
+ [NDI](https://docs.derivative.ca/NDI) 5.0
+ [OpenCV](https://docs.derivative.ca/OpenCV) 4.5.2
+ [Slug Library](https://docs.derivative.ca/Slug_Library) 6.0
+ [OpenColorIO](https://docs.derivative.ca/OpenColorIO_TOP) 2.1.0
+ [Substance](https://docs.derivative.ca/Substance_TOP) SDK 8.3.0
+ [Blackmagic Design](https://docs.derivative.ca/Blackmagic_Design) SDK 12.2.
+ [Material Design Icons](の) SDK 5.4.55. インストーラにチートシートが同梱


## New Features

### Ntwork Comments, Boxes and Annotations

`(Work In Progress)`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/175399/8b54f6a8-95cc-1471-0292-2b66065bdf33.png)

UEのBluePrintでよくみるやつ！

+ ネットワークにコメントやボックスを追加して、整理してわかりやすくすることが可能に
    + ネットワークエディターのRMBメニューから、'Add Comment' か 'Add Network Box'を選択して、ネットワークに追加
    + ネットワークエディタのカラースウォッチを使って色を変更（cキーを押して表示）
    + 右クリックでパラメータを表示
    + コメントとネットワークボックスは「ユーティリティノード」と呼ばれ、OP検索、[COMP Class](https://docs.derivative.ca/COMP_Class)にfindChildren()、ネットワークリストモードなどの検索にはデフォルトで表示されない
+ [Annotate COMP](https://docs.derivative.ca/Annotate_COMP) - カスタマイズ可能なネットワークツールを作成可能
    + ネットワーク・エディタの背景にオペレータ・ビューワやパネルを埋め込み、オペレータとのインタラクションやオペレータを囲むオプションを制御し、ネットワーク要素間の深さの配置を指定可能
    + 初期設定はされているが、パラメータをリセットすることにより、カスタムツールとしてゼロから構築が可能
    + Annotate COMPは、テキスト、色、サイズ、OP Viewerをバックグラウンドで表示するように設定可能

### [Ouster](https://docs.derivative.ca/Ouster) Support

+ [Ouster](https://docs.derivative.ca/Ouster)はファームウェアv2.xが必要で、これによりTouchDesignerはOusterの全モデルをサポート
    + 不完全なフレームを表示しないオプションを追加
    + シグナルマルチプライヤーに対応しました。ファームウェアバージョン2.1以降が必要
    + アクティブフラグが無効の場合、出力がデフォルトの黒色テクスチャーに戻るように

### Interpolation and Mipmapping Controls

+ [Panel COMPs](https://docs.derivative.ca/Panel_Component)
    + すべてのパネル COMP に`OP Smoothness`パラメータが追加され、Backgroud TOP のビューアースムーズネス設定を制御可能に
    + TouchDesignerの以前のビルドでは、これは常に「Mipmap Pixels」だったので、古いファイルはその設定でロードされますが、新しいPanel COMPのデフォルトは「Interpolate Pixels」になります
+ [Null TOP](https://docs.derivative.ca/Null_TOP) / [Out TOP](https://docs.derivative.ca/Out_TOP)
    + すべてのTOPで'Viewer Smoothness' と 'Fill Mode'を選択可能に
    + これまでは、「インスタンススタイル」のTOP（NullやOutなど）には使用できませんでした
+ [TOP preference](https://docs.derivative.ca/Dialogs:Preferences_Dialog)
    +  'Viewer Smoothness' と 'Fill Mode'　のデフォルト値を環境設定で制御可能に

### Pre-Multiply by Alpha Overhaul

TOPsとMATsがPre-Multiplied Alphaを扱う方法が見直されました
MAT は入力されるテクスチャとカラーが Pre-Multiplied Alpha であると仮定

+ [Camera COMP](https://docs.derivative.ca/Camera_COMP) / [Light COMP](https://docs.derivative.ca/Light_COMP)
    +  背景色の Pre-Multiply by Alpha 設定を制御可能に
    +  新しいノードのデフォルトでオン
+  [Fit TOP](https://docs.derivative.ca/Fit_TOP), [Corner Pin TOP](https://docs.derivative.ca/Layout_TOP), [Layout TOP](https://docs.derivative.ca/Layout_TOP), [Level TOP](https://docs.derivative.ca/Level_TOP) and [Transform TOP](https://docs.derivative.ca/Transform_TOP)
    +  'Pre-Multiply' のコントロールの追加

### その他

+ [FBX COMP](https://docs.derivative.ca/FBX_COMP)
    + FBXファイル内で指定されたデフォルトの場所に外部テクスチャファイルが見つからない場合に、追加の検索場所として使用される `Texture Directory` パラメータの追加
+ [Timer CHOP](https://docs.derivative.ca/Timer_CHOP)
    + 固定長または無限長を指定する新しいメニュー `Length Type`の追加
    + 長さを`Infinite`に設定すると、時間は無制限にカウント
    + これは、固定長を持たないジェネレーティブ・コンポーネントに対して、タイマーCHOPを駆動できるようにするためのもの
+ オペレータが使用しているSDKのバージョン情報の追加
    + オペレータの上でMMBを押すか、パラメータダイアログの「i」情報アイコンをクリックすると、ポップアップで情報が確認可能
+ 新しい[検索ダイアログ](https://docs.derivative.ca/SearchReplace_Dialog)は、検索と置換の機能の提供
    + グローバルまたはコンポーネント単位で利用可能
    + 大規模なプロジェクトにおいて、時間を大幅に節約し、洞察を得ることができます

### New Operator Snippets

Experimentalの新機能を強調する新しい例を多数掲載
Help > Operator Snippets を開き、'Newest' button を押してください
(注：Web Client DATの例5がハングアップします）

### New Python

+ [Camera](https://docs.derivative.ca/Camera_Class).frameBounds()
    + orthographic camera の Ortho Width パラメータに使用できるカメラフレーム幅を返すようになりました
+ [COMP Class](https://docs.derivative.ca/COMP_Class).reload(path, password=None)
    + 与えられたファイルパスからコンポーネントを再ロード
    + トップレベルのパラメータと同様にその子を置き換え、フラグ、ノードの幅/高さ、ストレージ、コメント、入力を更新（ただし、元のノードの x,y は維持します）
+ [Connector Class](https://docs.derivative.ca/Connector_Class).description
    + コネクションの説明
    + Example: `Color Image`
+ [Dependency Class](https://docs.derivative.ca/Dependency_Class) callbacks method
    + 変更可能な関数のリスト
    + Dependencyオブジェクトが変更されると、リスト上の各関数が呼び出されます
    + 関数は、以下の内容を含む辞書を1つの引数として呼び出されます。
        + `dependency`- 修正されたDependency
        + `prevVal` - 可能であれば、前の値。
        + `callback` - コールバック関数。必要であれば、Dependencyコールバック関数から削除することが可能
+ [NetworkEditor](https://docs.derivative.ca/NetworkEditor_Class).placeOPs method
    + ノードを作成するためのopTypeを受け取る
    + この引数は文字列または型
    + 例： `ui.panes[0].placeOPs(opType='waveCHOP')` または `ui.panes[0].placeOPs(opType=waveCHOP)`
+ [ParGroup_Class](https://docs.derivative.ca/ParGroup_Class)
    + 新しい [ParGroup](https://docs.derivative.ca/ParGroup) オブジェクトにアクセスするための Python クラス
+ [tdu Class](https://docs.derivative.ca/Tdu_Class)
    + デバッグとクラッシュリカバリーテストのために、強制的にクラッシュさせる`tdu.forceCrash()`を追加
+ [tdu](https://docs.derivative.ca/Tdu_Module).tryExcept(func1, func2 or value) -> result 
    + 1行のtry-except構文
    + 第2パラメータは、他の呼び出し可能な関数または直接の値

```example.py
tdu.tryExcept(lambda: 1/me.par.w, 0.0)
# second argument is simply 0.0 

tdu.tryExcept(lambda: 1/me.par.w, me.GetDefaultValue)
# Good: me.GetDefaultValue not called until needed.

tdu.tryExcept(lambda: 1/me.par.w, me.GetDefaultValue()) 
# >> INCORRECT <<. Always calls second function even if not needed.
```
+ [UI Class](https://docs.derivative.ca/UI_Class).rolloverPanel
    + ロールオーバーイベントを取得した最新のパネルを返す
    + クリックスルー、深度順、その他のパネル設定を考慮
+ [WebclientDAT Class](https://docs.derivative.ca/WebclientDAT_Class).connections
    + 現在の HTTP 接続識別子のリスト
+ [WebclientDAT Class](https://docs.derivative.ca/WebclientDAT_Class).closeConnection(id)
    + 指定された識別子に関連する接続を閉じる
+ [WebclientDAT Class](https://docs.derivative.ca/WebclientDAT_Class).request
    + timeoutキーワードを追加
+ PythonでマルチOPパラメータにOPのリストを割り当てるサポートを追加
    + 複数opのパラメータに対してeval()を呼び出すと、結果が1つだけの場合は単一のop、2つ以上の場合はリスト、結果がない場合はnoneを返すようになりました

### new Palette

+ [TDAbleton](https://docs.derivative.ca/TDAbleton)
    + Version 1.33
    + 個別のコンポーネントがパレットに追加
        ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/175399/00d8c171-935a-9c1d-0307-b7d047b2c7ba.png)
    + Live 11 と Live 10の両方に対応
        + 切断エラーフラグを抑制するためのパラメータオプションの追加
        + TDAbletonから直接Liveセッションをロードするためのユーティリティ・パラメータ・オプション
        + 重複したパラメーター名の処理を改善
        + 後方互換性 - 曲のコールバックのcuePointNumはcuepointテーブルのインデックスを保持
+ [materialDesignIcons](https://docs.derivative.ca/Palette:materialDesignIcons)
    + symbolPickerの代わりとなる新たなコンポーネント
    
+ [vstHost](https://docs.derivative.ca/Palette:vstHost)
    + [Audio VST CHOP](https://docs.derivative.ca/Audio_VST_CHOP)にVST3プラグインをロードし、MIDIキーボードイン、MIDIシーケンサー、Bind CHOPを使ったVSTオートメーションの例を追加した新しいコンポーネント
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/175399/813918ce-9233-542a-6351-1c0cf0667520.png)

+ [kantanUVHelper](https://docs.derivative.ca/Palette:kantanUVHelper)
    + kantanUVHelperがGPU Memoryを大幅に満たすことがある問題の修正
+ [presets](https://docs.derivative.ca/Palette:presets) / [particlesGpu](https://docs.derivative.ca/Palette:particlesGpu)
    +  カスタムユーザープリセットが正しく呼び出されない問題の修正
+  その他修正・調整
    +  [lister](https://docs.derivative.ca/Palette:lister) 1.11
    +  [treeLister](https://docs.derivative.ca/Palette:treeLister) 1.6
    +  [searchReplace](https://docs.derivative.ca/Palette:searchReplace)
    +  [operatorPath](https://docs.derivative.ca/Palette:operatorPath)
        +  operatorPathコンポーネントは、TouchDesignerネットワークでオペレータのパスをナビゲートするためのフル機能のUI要素
        +  Editor panesの上部にあるパスバーと同じようなもの

### バグ修正・改善

+ [Animation COMP](https://docs.derivative.ca/Animation_COMP)
    + キーフレーム編集時に、キーフレームDATテーブルのカスタムカラムを保持
+ [Button COMP](https://docs.derivative.ca/Button_COMP) / [Slider COMP](https://docs.derivative.ca/Slider_COMP)
    + 内部でテキストCOMPを使用し、Label, Valueパラメーターを含むように更新
+ [List COMP](https://docs.derivative.ca/List_COMP)
    + 文字サイズに端数があっても動作可能に
    + フォントサイズの小数点以下の切り捨てを廃止、Backward Compatibilityに追記
    + テキストオフセットが小数点の浮動小数点数をサポート
    + Cellアトリビュートにアクセスする際に、負のインデックスを折り返さないようになりました
    + str(ListCell) はそのセルで計算されたテキスト、またはブランクを返す
    + ビューアーが拡大・縮小されたときに、リストコンポーネント上にドラッグできるように修正
    + Pythonで定義されたアイテムを使用する際のドロップを修正
    + Callback DAT がデフォルトでOPの外側にドッキング
    + Font File属性によるカスタムフォントのサポート追加
+ [OP Viewer COMP](https://docs.derivative.ca/OP_Viewer_COMP)
    + 'Interactive' という、マウスやキーボードとのインタラクションでの制御を可能とするパラメータを追加
+ [Panel COMP](https://docs.derivative.ca/Panel_Component)
    + [Drag-and-Drop](https://docs.derivative.ca/Drag-and-Drop) コールバック onStartHoverGetAccept は、その情報dictにマウスがパネルに入った場所に関する情報を含む
+ [Panel COMP](https://docs.derivative.ca/Panel_Component)
    + 'Allow Expansion' Allow Expansion' パラメータは、パラメータを展開して式フィールドを表示できるかどうかを制御する
+ [GLSL MAT](https://docs.derivative.ca/GLSL_MAT)
    + ポイントスプライトは、gl_PointCoord の代わりに TDPointCoord() を使用してスプライトのテクスチャ座標を取得するように。Backward Compatibilityに追記
+ [Level TOP](https://docs.derivative.ca/Level_TOP)
    + デフォルトでクランプのパラメータがOffになりました（やっとなった、、）
+ [Luma Level TOP](https://docs.derivative.ca/Luma_Level_TOP)
    + アルファ値が'Opacity'以外のオプションに影響されるのを修正
+ [Ouster TOP](https://docs.derivative.ca/Ouster_TOP)
    + partial azimuth windowを使用する際に、パケット番号の欠番やスキップが正しくインクリメントされない問題を修正
+ [Switch TOP](https://docs.derivative.ca/Switch_TOP)
    + Blend モードで、スイッチの値が整数の場合、2 つの入力をブレンドしないように修正
+ [Text TOP](https://docs.derivative.ca/Text_TOP)
    + スマートクォートのサポートを追加
    + 非ビットマップフォントに対する浮動小数点位置オフセットに対応
    + ストローク描画の改善（スケーラブルモードでは未対応）
+ [Video Device In TOP](https://docs.derivative.ca/Video_Device_In_TOP)
    + Blackmagicデバイスへの入力信号フォーマットが変更された際に発生するストールを低減
+ [ZED TOP](https://docs.derivative.ca/ZED_TOP)
    + エラー時やカメラが見つからない場合に、空白の画像を出力
+ [Joystick CHOP](https://docs.derivative.ca/Joystick_CHOP)
    + 'Active' トグルの追加
+ [MIDI In CHOP](https://docs.derivative.ca/MIDI_In_CHOP)
    + よりスムーズなタイムスリック・チャンネルを実現(特に高周波の入力を扱う場合)
+ [MIDI Out CHOP](https://docs.derivative.ca/MIDI_Out_CHOP)
    + チャンネル数が変化したときにランダムな値が生成される問題を修正
+ [Panel CHOP](https://docs.derivative.ca/Panel_CHOP)
    + ターゲットパネルが削除されるとクラッシュする問題を修正
+ [Select CHOP](https://docs.derivative.ca/Select_CHOP)
    + チャンネル名を数字のサフィックスでフィルタリングするオプションを追加
+ [Sync In CHOP](https://docs.derivative.ca/Sync_In_CHOP)
    + プロジェクトがまだリアルタイムモードである場合の警告
+ [Sync Out CHOP](https://docs.derivative.ca/Sync_Out_CHOP)
    + インフォメーションにクライアントのリアルタイムステータスを含める
+ [Timer CHOP](https://docs.derivative.ca/Timer_CHOP)
    + onSegmentExitコールバックから呼び出された場合の初期化処理を修正
+ [Art-Net DAT](https://docs.derivative.ca/Art-Net_DAT)
    + ポーリング中にアンダークックが発生し、ネットワークに表示されないのを修正
+ [Examine DAT](https://docs.derivative.ca/Examine_DAT)
    + キーは異なるが値が一致するエントリーの欠落を修正
+ [OP Execute DAT](https://docs.derivative.ca/OP_Execute_DAT)
    + onDelete()が呼び出されない問題の修正
+ [Parameter Execute DAT](https://docs.derivative.ca/Parameter_Execute_DAT)
    + パラメータのデフォルトが変更されたときに、変更の監視に失敗するのを修正
+ 整数のパラメーターで浮動小数点値を使用すると、切り捨てではなく、（式またはエクスポートによって）丸められるようになりました。下位互換性セクションに追記
+ オペレーターが使用しているSDKのバージョン情報を追加
    + オペレータ上でMMBを押すか、パラメータダイアログの「i」情報アイコンをクリックすると、ポップアップで情報を見ることができます
        + [Kinect Azure TOP](https://docs.derivative.ca/Kinect_Azure_TOP) / [Kinect Azure Select TOP](https://docs.derivative.ca/Kinect_Azure_Select_TOP) / [Kinect Azure CHOP](https://docs.derivative.ca/Kinect_Azure_CHOP) - Added SDK version to the pop-up info.
        + [Nvidia Denoise TOP](https://docs.derivative.ca/Nvidia_Denoise_TOP) / [Nvidia Background TOP](https://docs.derivative.ca/Nvidia_Background_TOP) / [Face Track CHOP](https://docs.derivative.ca/Face_Track_CHOP) - Added SDK version to pop-up info.
+ 自動的に作成されたパラメータは、「カスタムパラメータ」に分類されなくなりました
    + パラメータ DAT フィルタ、ダイアログオプション、および Python アクセスに適用
    + 以下のオペレータに影響します。
        + [C++/カスタムオペレータ](https://docs.derivative.ca/Custom_Operators)
        + [Audio VST CHOP](https://docs.derivative.ca/Audio_VST_CHOP)
        + [Substance TOP](https://docs.derivative.ca/Substance_TOP)
        + [Notch TOP](https://docs.derivative.ca/Notch_TOP)
+ jsonファイルの拡張子のドラッグドロップに対応
+ 0-1以外の範囲を扱う場合のカラーピッカーダイアログのパラメータUIを修正
+ 新しいノードが再クックされるように、ops関数検索にワイルドカード依存性を追加
+ Cook中にパラメータYが更新された場合に、自己のパラメータ依存関係（me.Xはme.Yに依存）が更新されない問題を修正
+ 名前付きオブジェクトの属性に[Bind](https://docs.derivative.ca/Binding)できるように
    + 式の形式は2タプル
        + (オブジェクト, 属性), 例: (op('box1'), 'nodeY')
+ PythonのNone値（空文字列または0を返す）への[Binding](https://docs.derivative.ca/Binding)を許可
    + Binding式がNoneに評価され、ソースが利用できない場合でもエラーが発生しないように
+ `me.curPar` を含む Bind 式を修正
+ カスタムパラメーターで、メニューのドロップダウンリストが正しく更新されない問題を修正
+ `ctrl+c` で macOS の Python スクリプトを中断させるようになりました。ハングアップしないか試してみてください。
+ パネルレイアウトをリファクタリングし、より効率的で高パフォーマンスに
+ Audio系のCHOPによるオーディオデバイスへの再接続が改善
+ DATのポップアップヘルプのパフォーマンスとサイズを改善
+ toecollapse/toeexpand が、大文字と小文字だけが変化する演算子名の重複をサポート
+ cookの最適化、データ依存性の改善、パラメータ値の更新の最適化、拡張機能の初期化の改善

### 後方互換性

+ [wrnchAI CHOP](https://docs.derivative.ca/WrnchAI_CHOP)
    + 現在、ライセンス販売終了に伴い、使用不可に
+ 整数パラメータで浮動小数点値を使用した場合（式またはエクスポート）、値が切り捨てられるのではなく、丸められるようになりました
    + メニューや他の整数パラメータにエクスポートされた小数値の動作が異なる場合があります
+ [List COMP](https://docs.derivative.ca/List_COMP)
    + フォントサイズに端数があっても良いようになりました
    + フォントサイズの小数点以下の切り捨てが廃止
        + 例4.9を整数のパラメータにエクスポートすると、4ではなく5とみなされるように
+ [GLSL MAT](https://docs.derivative.ca/GLSL_MAT)
    + ポイントスプライトを扱う場合、スプライトのテクスチャ座標を取得するのに gl_PointCoord の代わりに TDPointCoord() を使用しなければならないようになりました
+ [PBR MAT](https://docs.derivative.ca/PBR_MAT)
    + アルファを補正するシェーダーと連動しないため、 'Mult Alpha by Light Luminance'機能を削除
+ [Nvidia Flow Emitter COMP](https://docs.derivative.ca/Nvidia_Flow_Emitter_COMP)
    + pythonオブジェクトタイプが、命名規則と一致させるために、flowEmitterCOMPからflowemitterCOMPに名前が変更
+ [Light COMP](https://docs.derivative.ca/Light_COMP)
    + プロジェクションメニューから、廃止された'Shadow Mapping Projection' ビュータイプを削除
+ [SVG TOP](https://docs.derivative.ca/SVG_TOP)
    + ベースとなったOpenGLの機能がVulkanに存在しないため、一旦削除
    + TouchDesigner で SVG ファイルを読み込むには [Palette:webSvg](https://docs.derivative.ca/Palette:webSvg) を使用してください
+ tscriptコマンドの'jpeg'が削除
    + OP.save()の'quality'キーワードは、代わりにJPEGの品質を制御するために使用可能
+ SonCookコールバックの外でスクリプトメソッドにアクセスしていたスクリプトOPは、ロックされなければならなくなりました
    + 例えば、scriptCHOP の onCook() メソッドの外から scriptCHOP.appendChan() のようなものを呼び出すことは、ランダムな動作を引き起こすので、もはや許されません
    + これらのメソッドを呼び出す必要がある場合は、最初にスクリプトCHOPをロックしてください
    + これは、演算子の内容を変更するスクリプトOPメソッドにも当てはまります

### 既知の問題
既知のバグはもっとたくさんありますが、これらは頻繁に遭遇する可能性があります

+ [Engine COMP](https://docs.derivative.ca/Engine_COMP) / [TouchEngine](https://docs.derivative.ca/TouchEngine)
    + 動作不可
+ [macOS](https://docs.derivative.ca/MacOS)
    + Apple Silicon Macのフローティングウィンドウでテクスチャーのちらつきが発生
+ 一部のTOPネットワークで、AMDやIntelのGPUでガベージテクスチャが表示される場合あり
+ [OP Viewer COMP](https://docs.derivative.ca/OP_Viewer_COMP)
    + CHOPビューア、3Dジオメトリビューアが正しく表示されない
+ [GLSL TOP](https://docs.derivative.ca/GLSL_TOP)
    + 3Dテクスチャが正常に動作しているにもかかわらず、TOPに誤ったエラーメッセージが表示される
+ [Layout TOP](https://docs.derivative.ca/Layout_TOP)
    + AMD GPUで使用不可
+ [Line MAT](https://docs.derivative.ca/Line_MAT)
    + macOSで動作不可
+ コンポーネントをコンポーネントエディタにドラッグドロップすると、クラッシュ
+ タイムライン上で範囲スライダーをドラッグすると、クラッシュする場合あり
+ HiDPIモニターでは、一部のパネルのボーダーやボタンの要素が正しく表示されない場合あり
+ [palette:camSchnappr](https://docs.derivative.ca/Palette:camSchnappr)
    + ポイントラベルが反転
+ [palette:materialDesignIcons](https://docs.derivative.ca/Palette:materialDesignIcons)
    + シェーダーコンパイルの問題でエラー発生中
+ [palette:particlesGpu](https://docs.derivative.ca/Palette:particlesGpu)
    + macOSでクラッシュ
+ [palette:TDVR](https://docs.derivative.ca/Palette:TDVR)
    + HTC Vive 動作不可

## 最後に

Experimentalビルドでは新機能を様々な人に試してもらって、オフィシャルビルドの際にバグのないように、より良い機能のために無料で先行体験させてもらえています。
バグや不具合、不透明な部分などがあった場合には公式のサポートやフォーラムにどんどん出していくことで、ソフトウェア・コミュニティ全体の貢献に繋がります。
TouchDesignerに限らず、どんなソフトウェア・サービスにおいても、それをより良くするために開発をしているとても優秀な開発者の方々がいます。
バグや不具合、満足のいかない機能に対して怒ったり文句を言うのではなく、冷静に報告や相談などをして開発者の方々のモチベーションとなるようなより良いコミュニティを目指していけるといいですね。