TouchDesignerでムービングヘッドライトをDMX制御する

## 追記 2023/11/8
サンプルファイルはこちら。
`sample1.toe`をちょっとだけ更新しました。
`sample2.toe`は、今だとこんな組み方絶対にしないなと思いつつ、当時のまま残しておこうと思います。

https://github.com/komakinex/TD_AdventCalendar2018

追記終わり

# こんにちは
簡単に自己紹介をします。去年まで大阪の大学院で化学を専攻していました。演出やコンテンツ制作を仕事にしたくて、今年から東京のデジハリでデザインやプログラミングを学んでいます。電子工作や、クリエイティブコーディングが楽しいなあと思ってます。( [Twitter](https://twitter.com/komakinex) )

僕は今、光で演出を手掛けている[Tokyo Lighting Design](http://tokyolighting.com/)という会社でアルバイトしています。DMX 512という信号によって照明などを制御できるということを知りました。

DMXついて↓
https://www.soundhouse.co.jp/howto/light/dmx/
https://jmpelletier.com/ja/dmx512/

これによって光の色を変えたりといった照明による空間演出が可能になります。
出来たらかっこいいなと思ったので、DMX制御してみたくなりました。

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">きた！！ムービングライト動かせた！<a href="https://twitter.com/hashtag/TouchDesigner?src=hash&amp;ref_src=twsrc%5Etfw">#TouchDesigner</a> <a href="https://t.co/w8cw15JPCw">pic.twitter.com/w8cw15JPCw</a></p>&mdash; komakinex (@komakinex) <a href="https://twitter.com/komakinex/status/1049494455508553728?ref_src=twsrc%5Etfw">2018年10月9日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

紆余曲折あり、出来ました。

そして先日、上のツイートのおかげで演出に呼んでいただけました。HAPPY
僕は、全体を照らしているライトの担当をしました。

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">サイバーエージェントベンチャーズの <a href="https://twitter.com/hashtag/monthlypitch?src=hash&amp;ref_src=twsrc%5Etfw">#monthlypitch</a> の感謝祭で「U.S.A」のライティング演出をしてきました！<br><br>サイドライト喜々津(<a href="https://twitter.com/_kiryo?ref_src=twsrc%5Etfw">@_kiryo</a>)さん<br>センターライト細井(<a href="https://twitter.com/komakinex?ref_src=twsrc%5Etfw">@komakinex</a>)さん<br><br>直前で声かけたのに完全に仕上げてくれて最高でした🙏<br>ダンスただでさえかっこよかったのにめちゃくちゃ映えた、、 <a href="https://t.co/zaknIZbwFs">pic.twitter.com/zaknIZbwFs</a></p>&mdash; yuki narumi💡 (@narumin256) <a href="https://twitter.com/narumin256/status/1073178586041901056?ref_src=twsrc%5Etfw">2018年12月13日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

ダンスもライトもとてもかっこいいです。超楽しかった。


## で？
ということで、①TouchDesignerを使ってムービングヘッドライトを動かして光らせるところまでの一連の流れと、②演出で使ったファイルについて書きます。

僕は何が必要なのかも一切わからなかったので、冗長かもしれませんが、できるだけ詳しく書きました。同じくゼロからDMX制御したいと思っている方の参考になれば幸いです。

TouchDesignerのインストールとか基本的な操作については他の方の記事を参考にしてください。
導入：https://qiita.com/sanokazuya0306/items/75eeb7009bf4eb5678bc
勉強法：https://qiita.com/ToyoshiMorioka/items/763f425bc3381209a29f
Tips：https://qiita.com/narumin256/items/25710e6952079e1b3348

## 用意したもの
（自分が購入した時の税込の値段です）

・ムービングヘッドライト
Amazon 6,489円（送料無料）
https://www.amazon.co.jp/gp/product/B07B2J9F9B/ref=oh_aui_detailpage_o02_s00?ie=UTF8&psc=1
DMX制御ができて、ヘッドが動くものの中で一番安いものを選びました。日本のコンセントの規格に合わない、海外仕様のものがあるので注意が必要です。たまに4900円とかになってます。悔しい。

・ENTTEC DMX USB PRO DMXコントローラー・インターフェース
アカリセンター 23,587円（送料無料）
https://www.akaricenter.com/tokusyu/mirror_ball/enttec/dmx-usb-pro.htm
結構なお値段がするので初っ端からくじけそうになりました。値段が信じられなくて、もしかすると買わないで済む方法があるのでは、、、？と思って色々調べましたが、DMX制御するには絶対に必要みたいです。なので勇気を振り絞って買いました。USBを通して送られるpcからの指示をDMX信号に変えてくれます。

・DMXケーブル（3ピン）
soundhouse 864円
https://www.soundhouse.co.jp/products/detail/item/184706/
・DMX変換コネクター（3ピンオス→５ピンオス）
soundhouse 810円
https://www.soundhouse.co.jp/products/detail/item/24913/
DMXケーブルたちは合計1,500円以上だったので送料無料でした。



## 動作環境
MacBook Pro 13-inch, 2017
macOS 10.13, 10.14.1
TouchDesigner 099 NON-COMMERCIAL 2018.25850以降

## 参考にした記事
一番助かりました。toeファイルをほとんどそのまま使わせていただきました。
https://qiita.com/k_ohara/items/fac500e66dcd8bf00dfe

MIDIコンでムービングライトを操作されています。今回の①と②の中間の内容です。
http://4009.jp/post/2017-08-10-dmxlight/

MIDIコンのセットアップ方法
https://qiita.com/joe0hara/items/25b9aedc5369e3a79f62

TouchDesignerではなくMAXですが、DMX USB PROの部分を参考にしました。
https://qiita.com/tatmos/items/d33383aecda9dd2d6724

また、自分の環境ではこの記事にあるようなターミナルへの入力は必要ありませんでした。
http://blog.antymark.com/2017/05/macos%E3%81%AEtouchdesigner099%E3%81%A7dmx%E5%87%BA%E5%8A%9B%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF/




 
# ①動かして光らせるまでの手順
1. ムービングライトのモード設定
2. 機器の接続
3. PRO-Managerで確認
4. TouchDesignerで操作

## 下準備
ムービングライトをDMX受信モードに設定します。（なぜか文字がひっくり返っています。「d001」と表示されています。）
![S__57319426.jpg](https://qiita-image-store.s3.amazonaws.com/0/144702/3d47a017-01b3-b9c2-2f34-6ab8d8ed05cc.jpeg)


pc、DMX USB PRO、ライトをこんな感じで繋ぎます。
![S__56885250.jpg](https://qiita-image-store.s3.amazonaws.com/0/144702/b609aced-89db-05f6-7e4d-1fea0512d6ab.jpeg)

ここからPRO-Managerをダウンロードします。
https://www.enttec.com/products/controls/software/pro-manager/
自分と同じ環境だと「PRO Manager v2.34-beta OSX (10.11 – 10.12)」です。

ライトの電源をONにした状態でダウンロードしたこいつ↓
<img width="135" alt="スクリーンショット 2018-12-01 18.44.17.png" src="https://qiita-image-store.s3.amazonaws.com/0/144702/372d5671-c6c5-82f6-3663-a26a41434bc3.png">
を開くと、ブラウザでこんな画面が開きます。
<img width="924" alt="スクリーンショット 2018-12-01 18.46.28.png" src="https://qiita-image-store.s3.amazonaws.com/0/144702/8c7febea-260f-ce78-c21d-f71536965f20.png">

一番上のSelect USB Device to useのところでDMX USB PRO - EN~~ を選択します。
<img width="934" alt="スクリーンショット 2018-12-01 18.49.07.png" src="https://qiita-image-store.s3.amazonaws.com/0/144702/e3d94418-52a2-f13f-b9bf-ed4f834e8086.png">
ちゃんと接続されていればこんな画面になって、DMX Sendのページでライトの首の角度や光をいじれます。

僕のムービングライトは9つ、入力のチャンネルがあって、それぞれこんな感じで動作が割り振られています。
![S__57311237.jpg](https://qiita-image-store.s3.amazonaws.com/0/144702/b3c91cbd-4a64-999c-983e-f9857fd95095.jpeg)
1, 2：首のX軸、Y軸方向の角度
3：照明の明るさとストロボ（8-135までは全体の明度、136-240ではストロボの速度）
4, 5, 6, 7：赤、緑、青、白の光の強度
8：首の動く速度
例えばチャンネル2に0を送ると首のY軸の角度が0になったり、チャンネル3に200を送るとライトの光り方がストロボになったりします。ムービングライトによってどんな動きをするかは異なるので、各自で確認してください。

**て、え？もう動きましたね。**

この調子でTouchDesignerでも動かしてみましょう。



## toeファイル作成
[ファイル](https://github.com/komakinex/TD_AdventCalendar2018/blob/master/sample1.toe)

`SliderCOMP`を置きます。取れる値の範囲を、`MathCHOP`で「0 ~ 255」に変換します。わかりやすくするために`RenameCHOP`で「Chan1」と変えておきます。
<img width="900" alt="スクリーンショット 2018-12-18 23.20.25.png" src="https://qiita-image-store.s3.amazonaws.com/0/144702/b77d60d6-03a3-51d6-d7c3-a304861df8a0.png">
9つのチャンネルに値を送れるように同様に9組用意します。

これらを`MergeCHOP`でまとめて、`DMX OutCHOP`に繋ぎます。`DMX OutCHOP`のInterfaceを、自分が接続しているDMXコントローラー・インターフェースに変更します。
<img width="761" alt="スクリーンショット 2018-12-18 23.30.53.png" src="https://qiita-image-store.s3.amazonaws.com/0/144702/a447a0e7-8f50-693b-c539-ee005b21c214.png">

これで全て整いました。`DMX OutCHOP`のActiveをOnにすれば、スライダーの数値に合わせてムービングライトが動いてくれます！わーい

# ②演出で使ったファイルの説明
[ファイル](https://github.com/komakinex/TD_AdventCalendar2018/blob/master/sample2.toe)

声をかけてくれた[鳴海さん](https://twitter.com/narumin256)、サイドライト担当の[喜々津さん](https://twitter.com/_kiryo)と話し合って、僕はこんな感じで頑張ることになりました。
![S__57319427.jpg](https://qiita-image-store.s3.amazonaws.com/0/144702/93657381-3d15-caf4-c764-64bd8595e8d5.jpeg)

なので
①：X軸、Y軸の動きをスライダー
②：明るさが調整できるスライダー
③：押すと光が赤、緑、青、白になるボタン
④：押している間ストロボになるボタン
を用意する必要があります。

つまり
①：chan1, 2の値をそれぞれ0-255で操作できるスライダー
②：chan4, 5, 6, 7 の値をいっぺんに0-255で操作できるスライダー
③：chan4, 5, 6, 7 を(255, 0, 0, 0)、(0, 255, 0, 0)、(0, 0, 255, 0)、(255, 255, 255, 255)にするボタン
④：押している間chan3の値を240にする、押していないときは255にするボタン
かつ②と③の機能が競合しないようにする必要がありました。

まずMIDIコンから使うスライダー、ボタンだけを引っ張ってきました。
<img width="1347" alt="スクリーンショット 2018-12-19 17.12.25.png" src="https://qiita-image-store.s3.amazonaws.com/0/144702/6f63e977-e1c1-d2bd-a08c-0417410aa707.png">
スライダーの動きを、X軸とY軸の値にリンクさせて①のスライダーが出来ました。

同じように、chan4, 5, 6, 7に1つのスライダーの動きをリンクさせると、②のスライダーが出来ました。

MIDIコンのボタンを押すと1が返ってくるようにします。`SwitchCHOP`と組み合わせて④の切り替えボタンが出来ました。
![Kapture 2018-12-19 at 17.19.29.gif](https://qiita-image-store.s3.amazonaws.com/0/144702/bb93c886-738f-3ace-3958-f8ec03cc1c35.gif)

最後に③のボタンは、押した時1, 2, 3, 4を返すように`MathCHOP`で調整して、`CHOP Execute`で場合分けしました。

chan8, 9の機能は今回使わなかったので、ボタンは割り当てないでおきました。

これで音楽に合わせてMIDIコンのスライダーを動かしたりボタンを押すことで、イケイケな空間を演出出来ます！！YEAH

以上が解説です！



## 注意事項
**DMXケーブルについて**
僕の場合ですが、DMX USB PROのピンの数は5、ムービングライトは3でした。つまりDMX信号を送信する側と受け取る側でピンの数が違うので、変換コネクターが必要でした。
![S__57311236.jpg](https://qiita-image-store.s3.amazonaws.com/0/144702/f1d367be-4f8a-b358-7a61-8314c5d0856b.jpeg)

**ムービングライトのモードについて**
僕のライトには30個弱のモードがあります。DMXで9つの値を送るから9chモードにしないと、と勘違いしていて、正しく繋げられているのに一切動きませんでした。難しい。
![S__57344011.jpg](https://qiita-image-store.s3.amazonaws.com/0/144702/f7115d65-f79b-95e0-4e57-4ff8b9d03fd2.jpeg)




# 最後に
見てもらった通りTouchDesignerでは、様々なデバイスが繋ぐだけで、大した設定もせず使うことが出来ます。特にMIDIコンは、指で直感的に操作できるのでとても楽しかったです。

僕はVJのイベントをよく見に行くのですが、いつかは自分も、、と思っていました。今回声をかけてもらったおかげでMIDIコンが使えるようになったし、たくさん映像を作って今度はVJやってみたいと思います！

かなり長くなりましたが最後まで読んでいただいてありがとうございました！
それではみなさん、良いお年を。


## おまけ
まっったく関係ないんですけど、僕がもう何十回も見てるコントを貼っておきます。

かまいたち
https://youtu.be/onNhzxoNH1g
https://youtu.be/qdJO14Za-Q4

チョコレートプラネット
https://youtu.be/fqLDLfn-DyM
これは先週何回も見たやつです
https://youtu.be/S0fC9JAzPD0

ぜひ見てみてください。