🥳

スマートフォン+TouchDesignerでDMX照明機器(ムービングライト)を制御

2022/06/17に公開

やったこと

スマートフォン上のわかりやすいUIでムービングライトをDMX制御してみました。

フェーダーやボタンを自由に配置したUIを作ることができるので、技術や知識のない人でもある程度直感的に操作できるようなシステムを構築できそうです。需要は高そうなのに体系的に纏まってるのがなかったので書き連ねます。

追記:OSC→TD→DMXの構成って現場でもたまに見かけるけどみんなどこで学んでんの?って思って「OSC TouchDesigner DMX」でググったらこの記事が1位(2022/06/23 22:00時点)で笑っちゃいました。演出業界の方、もっと軽率に知見を共有してくれてもいいんですよ。お待ちしてます。

使ったもの

パソコンとスマホがあれば1万円ちょっとで遊べます。

ざっくりした処理の流れ

  1. スマートフォンアプリ「TouchOSC Mk1」からOSC信号をTouchDesignerに送信する
  2. TouchDesignerで数値を処理してDMX信号を生成し、Art-Net経由でQLC+に送信する
  3. QLC+からムービングライトへDMXコントロールケーブルでDMX信号を送信する

アプリケーションの入手とか

ここでは個々のアプリケーションのインストールや使い方についてサポートできないので、先人の知恵や注意点だけまとめたものを用意しました。ご参考までに。

TouchDesigner

Q Light Controller+(QLC+) 4.x

OSC周り

  • TouchOSC Mk1 [iOS] [Android] ¥610/$4.99(執筆時)
    • 健康のためにも、ラーメンは一回我慢してこのアプリを購入してください。
  • TouchOSC Editor/TouchOSC Bridge
    • TouchOSC Mk1で使うレイアウトを作って転送するやつです。

TouchOSC画面の準備


今回作るTouchOSCの画面

TouchOSC Editorで適当な画面を作ります。Sizeではかなりレガシーな感じの選択肢を提示されますが、まあ今も昔もスマホの画面の大きさなんてそんな大幅に変わったりしてないのでiPhone6向けとかでいいでしょう。


iPhone5や6、6Sなどのレガシーな機種が提示される

今回はRGBWの4色のライトの制御用にそれぞれ1つの縦フェーダー、PAN・TILTの2方向の制御用のXYパッドを1つ配置[1]し、全てのValue RangeをDMX信号の仕様に合わせて0-255に設定[2]しました。アドレスにも適当にわかりやすい名前をつけておきます。


「auto」のチェックを外してアドレスを/1/red、Rangeを0〜255に設定

TouchOSC Mk1にレイアウトを転送

TouchOSC Editorを立ち上げたPCとTouchOSC Mk1を立ち上げたスマホとを同じネットワークに接続して、PCのEditorでは右上の「Sync」、スマホアプリではLAYOUT>Add>自分のPCのホスト名をタップすると、Editorで開いているレイアウトを簡単にスマホアプリに転送できます。詳しくは先人の知恵(Touch OSCのレイアウトを自分でつくる|Re: kei|note)をご覧ください。先人はiPadでやってますが、iPhoneでも大差ありません。Androidは分かりません。


PC側の転送画面

これでiPhoneの画面にPCで作ったレイアウトが出せるようになります。


転送されたレイアウトを開いた画面

TouchDesignerでOSC信号を受け取らせる

ここからはTouchDesignerを何の説明もなく使っていくので、次に示す素晴らしい先人によるチュートリアルの#0〜#1くらいをやってみて雰囲気を掴んでおいてください。

TouchDesignerを立ち上げてOSC In CHOPを配置しておきます。PCのIPアドレスを調べ、TouchOSC Mk1のConnections>OSCのHostをPCのIPアドレスに、Port(outgoing)をTouchDesignerで設定した値(デフォルトは10000)に設定します。この状態でTouchOSC Mk1に出ているフェーダーを動かすと、TouchDesigner上でフェーダーの値が表示されるようになります。


OSC In CHOPに値が表示された

さらに他のフェーダーも動かすと、他のフェーダーの値もCHOPの中に表示されていくのがわかります。XYパッドはそれぞれの座標方向に分割された2つの値が出ています。


OSC In CHOPに表示される値が複数になった

受け取らせたOSC信号をいい感じに処理してDMX信号にする

TouchDesigner側で受け取った信号を、DMX機器に送るためにいい感じに処理します。
やることは次の3つです。順を追って説明します。

  • 値を整数値の0-255の256段階のみ取れる形に整えること
  • 使用したい機器のチャンネルに合わせた順番に並び替えること
  • OSCで制御する値ではないチャンネルに、0か255の定数の信号を送るようにすること

値を整数にする

今回はMath CHOPで仕上げます。本当は四則演算するものですが、計算結果をInteger(整数)に丸めることができる性質を利用して、「かける1」の結果を丸めるようにします。

適当にMath CHOPを配置してOSC In CHOPと接続し、Math CHOPのOPのIntegerを「Round」に設定します。演算内容はデフォルトで「かける1」なので触らなくてOKです。


Math CHOPでOSCから送られてきた値が整数になった

値をチャンネルごとに分割する

後でDMX機器に合わせたチャンネル構造にできるように、Select CHOPでチャンネルごとに分割します。Select CHOPを分割したい個数分用意して、それぞれのChannel Namesに欲しいチャンネルの名前を入力しましょう。複数選択が可能なので、この後どうせ連続するRGBWの4つのチャンネルはそのまま1つにまとめておきます。CHOPにわかりやすい名前をつけておくと後々楽です。


Select CHOPで値がチャンネルごとに分割された

使わないチャンネル用に定数を用意する

今回値を動かさないチャンネルが間にあるので、Constant CHOPで0と255の2つの値を用意しておきます。今回はそれぞれminとmaxと名前をつけました。


0と255が指定されたConstant CHOP

DMX機器に合わせてチャンネルをマージする

DMX機器のチャンネルに合わせてチャンネルを順番にマージしていきます。今回使う機器のチャンネル構成は次の通りでした。お手持ちの機器のチャンネル構成やチャンネルモードを確認してそれに合わせてください。

チャンネル 機能 なにそれ 今回値動かす?
1 Pan 横方向 動かす
2 Pan fine 横方向の微調整 動かさない(0固定)
3 Tilt 縦方向 動かす
4 Tile fine 縦方向の微調整 動かさない(0固定)
5 Speed スピード 動かさない(255固定)
6 複雑なので割愛 240以上にすると点灯する 動かさない(255固定)
7 Red Dimming 赤光の強さ 動かす
8 Green Dimming 緑光の強さ 動かす
9 Blue Dimming 青光の強さ 動かす
10 White Dimming 白光の強さ 動かす
11〜14 割愛 割愛 動かさない(NULL)

つまり、1chにPan、3chにTilt、7〜10chにRGBWの値をそれぞれ入れて、間の2ch、4chにはConstant CHOPの0、5ch、6chには同じく255が来るようにマージすればいいのです。Marge CHOPを出して、この順番になるように入力していきます。


DMX機器のチャンネル表と同じ並びにできた

DMX OutでArt-Netに出力する

DMX Out CHOPを出して、いくつかのチャンネルを結合してDMX機器のチャンネル設計に合わせてつくられたMerge CHOPを入力します。DMX Out CHOPの設定はデフォルトで構わないので、InterfaceをArt-Netにして、一旦TouchDesignerの準備は終了です。


今回のTouchDesginerプロジェクトの完成図

TouchOSC Mk1のフェーダーとかをぐりぐり動かして、DMX Out CHOPの意図したチャンネルの値が変化しているかを確認してください。

QLC+でArt-NetからDMX信号を受け取る

本来ならTouchDesignerのDMX Out CHOPから直接DMX機器に出力したいところなのですが、どこの相性か、直接出力することができませんでした。QLC+というアプリケーションを間に挟んで橋渡しをしてもらいます。

QLC+4.xを立ち上げ、右下のInoputs/Outputsタブから、「ArtNet 1:127.0.0.1」のInputにチェックを入れてください。TouchDesigner立ち上げているPCと同じであれば、これだけでTouchDesignerからArt-Net経由で信号を受け取れます。


QLCでArtNetを受け取る設定

下のメニューからSimple Deskタブに切り替え、TouchOSC Mk1のフェーダーを動かした時に、QLC+の画面上のフェーダーが動くか、正しいチャンネルの値が動くこかを確認します。


TouchOSC Mk1のフェーダーを動かすとQLC+画面上のフェーダーも動く

DMXコントロールケーブルで照明機器とつないで操作する

PCとムービングライトをDMXコントロールケーブルで接続し、ムービングライトのアドレスを1chに設定しておきます。この状態でQLC+のInoputs/Outputsタブから「DMX USB」のOutputにチェックを入れると、QLC+からウービングライトに信号を送れるようになります。


DMX USBのOutputにチェック

うまくいっていれば、冒頭のツイートの動画[3]にあるようにTouchOSC Mk1のフェーダーでムービングライトが動くようになっているはずです。


あとがき

だいぶやりたいことに近づけました。あとはTouchOSCのボタンを増やし(領域が足りなければiPadとかにして)、TouchDesigner側の処理を加え、照明機器を増やしていけば、今日からおうちをクラブハウスにできそうです。……実はiPadも持ってるし照明は同じの4台買ってるので僕の家は今からクラブハウスにできます。

今回はインターフェイス側からアプローチしていきました。書いた後に思ったんですが、逆からのアプローチ、つまりQLC+と照明の接続と制御から始めて、徐々にそれらを別のツールから操作していく方が適切ですよね。最後まで組み上げた上で肝心の照明との接続がうまくいかないとガッカリすると思うので、皆さんはハードウェア周りの入念なテストから始めるようにした方がいいと思います。

脚注
  1. 動画では、XYパッドの値は反転(Inverted)している ↩︎

  2. 0〜1の小数をとって、TouchDesignerのMath CHOPで「かける255」の処理をする方法もある ↩︎

  3. 動画では、ムービングライトの設定でPanの方向を180°、Tiltの方向を90°に制限している ↩︎

Discussion