[#TouchDesigner] オペレータにカスタムパラメータを追加する

![td_final.png](https://qiita-image-store.s3.amazonaws.com/0/127402/311734e3-4557-6924-79e8-56ac83784fab.png)

# はじめに
.toxなどでノードを配信する場合、パラメータの設定を一つのノードにまとめておくと便利です。
本稿では、ノードに自分の定義したいカスタムパラメータを追加する方法を解説します。
![2017-10-08_160901.png](https://qiita-image-store.s3.amazonaws.com/0/127402/6396dad8-d66d-844e-433c-99d438d01956.png)

詳しい説明は公式のドキュメンテーションに記載されていますのでそちらを参照してください。
[Custom Parameteras - Derivative](https://www.derivative.ca/wiki088/index.php?title=Custom_Parameters)

# カスタムパラメータの追加
カスタムパラメータを追加できるノードは、ノードを非アクティブ化した状態で右クリックをすると、
「Customize Component...」メニューが選択できるようになっています。
今回の例ではBaseCompを用いて解説をしますが、ContainerやButtonなどでも同じことができます。
![bandicam 2017-10-08 15-45-47-961.jpg](https://qiita-image-store.s3.amazonaws.com/0/127402/1cbe6002-0de4-8b24-c240-e04c2869bc15.jpeg)

このメニューを選択すると、コンポーネントエディターが起動します。
![2017-10-08_161555.png](https://qiita-image-store.s3.amazonaws.com/0/127402/e4149581-b888-2cca-b786-4b6aabd8ecee.png)


## ページの追加
PageNameのテキストボックスに、自分の好きなページ名を入力し「Add Page」を選択すると、
![bandicam 2017-10-08 15-46-36-513.jpg](https://qiita-image-store.s3.amazonaws.com/0/127402/c1a17293-8976-952c-3cc8-4a38e4454c6f.jpeg)

コンポーネントにページが追加されます。
![bandicam 2017-10-08 15-47-01-529.jpg](https://qiita-image-store.s3.amazonaws.com/0/127402/102474ef-9cf4-8951-f025-ac1680b3721e.jpeg)


## パラメータの追加
それぞれのページに対して、パラメータを追加していくことができます。
ParNameに自分の好きなパラメータ名を入力し、パラメータの種類を選びます。
![bandicam 2017-10-08 15-47-22-703.jpg](https://qiita-image-store.s3.amazonaws.com/0/127402/5819b41b-f61d-f0b0-c929-f1094fa8ed9e.jpeg)

その後「Add Par」を選択すると、ページ内にパラメータが追加されます。
![bandicam 2017-10-08 15-48-08-251.jpg](https://qiita-image-store.s3.amazonaws.com/0/127402/39057d7c-779d-966b-d7db-dbe27fd7fc8f.jpeg)

ここで、パラメータにアクセスする際の変数(メンバ)名は赤で囲ったものになります。
ラベル名とは異なる場合もあるので注意してください。
![2017-10-08_162211.png](https://qiita-image-store.s3.amazonaws.com/0/127402/8819cc74-4554-6ea9-6d7a-f145730aba24.png)

また、floatやintなどはベクトルとして登録をすることができます。
右の方で要素数を選択するドロップダウンがありますので、お好きな数をお選びください。
![bandicam 2017-10-08 15-48-17-143.jpg](https://qiita-image-store.s3.amazonaws.com/0/127402/a3a0ccb1-c3f0-0b25-53d3-281f78fee98a.jpeg)

無事追加できれば、ページがこのような表示になっているかと思います。
![bandicam 2017-10-08 15-48-30-809.jpg](https://qiita-image-store.s3.amazonaws.com/0/127402/3a4b5764-e060-41e0-0bad-26549919909b.jpeg)

## パラメータの並び替え
コンポーネントエディタ上でドラッグアンドドロップするだけで、パラメータの表示順を変更することができます。
便利ですね。
![bandicam 2017-10-08 15-51-34-971.jpg](https://qiita-image-store.s3.amazonaws.com/0/127402/fd654fbf-2769-3201-af04-10e9de5ebb72.jpeg)


## パラメータの種類
ほぼすべてのデータ型を扱うことができます。
![bandicam 2017-10-08 15-47-22-7032.jpg](https://qiita-image-store.s3.amazonaws.com/0/127402/646f1b94-bce7-7d7a-b0bc-b9d1460201ed.jpeg)


## パラメータへのアクセス方法
floatパラメータにアクセスしたいとします。
値は12345にしておきました。
![bandicam 2017-10-08 16-01-47-847.jpg](https://qiita-image-store.s3.amazonaws.com/0/127402/e457d080-dc86-e9fe-8e28-ccfda9a2d29d.jpeg)

コンポーネントの中に入って、Text DATを作成し、以下のように記述します。
普通のパラメータのアクセス方法と一緒ですね。
![bandicam 2017-10-08 16-01-58-528.jpg](https://qiita-image-store.s3.amazonaws.com/0/127402/b6bdcc8d-cd47-9a31-ecab-d7a64d030a19.jpeg)

スクリプトを実行すると、数値を取り出すことができました。
![bandicam 2017-10-08 16-02-05-562.jpg](https://qiita-image-store.s3.amazonaws.com/0/127402/d04477c6-9fc3-9c37-9974-54500a31657c.jpeg)

# さいごに
![o-cOptQ7_400x400.jpg](https://qiita-image-store.s3.amazonaws.com/0/127402/111c28b8-7374-8462-ad2a-bbaf3f15818d.jpeg)
[Reflect Initial - Official Website](https://reflectinitial.wordpress.com/)
友人がディジタルクリエイティブ集団を立ち上げたようです。
かなり面白いことをやってのけそうな集団だなと思っているので、ぜひ応援してあげてください。