9
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

MaxでDMX機材を[Art-Netを経由して]制御する。

Last updated at Posted at 2019-12-16

はじめに

以前、TouchDesignerで照明を制御する際にArt-Netを用いてDMXの通信を行うための記事を投稿しましたが、今回はそれをMaxにて行いたいと思います。

そもそもMaxで照明?

サウンド系の処理に用いられることの多いMaxという言語で、わざわざ照明の制御するの?って思われる方も多いかと思います。

確かにサウンド系の作品等で使われている事例をよく聞きますが、音の処理以外の使用例もたくさんあります。具体例を上げたらキリがないですが、ぜひMaxアーティストパッチのサイトをご参照ください。

また、僕個人としては今年の夏に参加した「Max Summer School 2019」にて堀尾寛太さんが授業で紹介されていた「MaxからArt-Net経由で照明を制御できる」という話に驚きました。
本当に、何でもできるんだな...と。
ということで、今回はそれを実際に実装し、記事を通してMAXのさらなるポテンシャルを感じて頂ければと思います。

ちなみに、MaxでDMXを出力する時にENTTECのDMXUSB PROという機材を使用するには、dmxusbproというオブジェクトをインストールして使用する必要があるのですが、こちらは有料のオブジェクトになります。(さらに、MAX4.5向けに作ったものなので、8以降は不具合等出る場面もあるようです。)
対して、Art-Netを出力するためのオブジェクト群であるimp.dmxは、無料でインストールすることができます。また、現状ではMAX8でも特に問題なく動作しています。

MAXで照明をやるのに"Art-Net"を用いるというのは良い選択肢のようですね。

準備1

では、さっそくやっていきましょう。
今回用意したものは

  • PC(Macbook pro)
  • USB Type-c変換
  • LANケーブル
  • ENTTEC OPENDMX ETHERNET(以下、ODE。今回使用したのはmk2ではないです)
  • 5PIN(オス) - 3PIN(メス)変換
  • キャノンケーブル(DMXケーブルがなかったので、オーディオ用ケーブルを代用しました)
  • moving head(DMX制御できる照明機材) * 2

です。
照明機材を2つにした以外は、前回と同じですね。
MAXのバージョンは 8.1.1 になります。

接続も前回と同様で、上記の順番で繋げば大丈夫です。

IMG_5470 2.jpg
今回の記事では左側がmoving1、右側がmoving2になります。

ちなみに今回使用するmoving headのDMXチャンネルの仕様ですが、

  1. Pan
  2. Tilt
  3. Dimming and strobe
  4. Red
  5. Green
  6. Blue
  7. White
  8. motor speed
  9. reset
    です。

準備2

今回はパッチングをする前に、さらに2つ準備することがあります。

  • ネットワーク設定
  • エクスターナルオブジェクトのインストール

です。

ネットワーク設定

ネットワークの設定は前回の記事と同じですので、省略します。
今回も

  • PCのIPアドレス : 169.254.206.100
  • サブネットマスク : 255.255.0.0
  • ルーター : 169.254.206.1
  • ODE : 169.254.206.200 (universe 0)

に設定しました。

エクスターナルオブジェクトのインストール

上でも紹介しましたがimp.dmxというオブジェクト群が必要になります。

以下、mac OSでのエクスターナルオブジェクトをMAXにインストールする方法を確認します。

まず、リンクで移動したサイトの"imp.dmx Version 0.5"というものをダウンロードしてください。
ダウンロードした"imp.dmx"というファイルを"書類 -> Max 8 -> Library"の中に入れます。

以上です。
Maxを立ち上げるとエクスターナルのオブジェクトが使える状態になっています。

パッチング

あとはエクスターナルオブジェクトのヘルプを見て頂くと、だいたい使い方が分かるかと思います!
と言いたいところですが、これが意外とよく分からない...(僕には難しいです。)

ので、今回はODEへのシグナルの送り方と、MAXでの(僕個人にとって)テストしやすそうな照明制御のパッチの説明をしたいと思います。
自分の良いように作り変えて頂きたいです!

全体図は以下のようになります。
スクリーンショット 2019-12-14 17.38.19.png
また、この中の"signal-for-address"のパッチの中身は以下のようになります。
スクリーンショット 2019-12-16 16.37.14.png

では、解説をしていきます。

ODEへの送り方

見ての通り"imp.artnet.controller"というオブジェクトに信号を入れていきます。
このとき、AttributeとしてODEのipとuniverseを指定してあげます。
今回は上記の通り"@unicast_ip 169.254.206.200 @universe 0"と指定しました。
そして、このオブジェクトにmessageオブジェクトで"channnel (DMXのチャンネル) (値[0~255])"の順番でリストを作り、メッセージとして入力します。
例えばDMXアドレスの3chに255を送るときは(channel 3 255)と書いたmessageオブジェクトを作り、"imp.artnet.controller"に入力してあげます。
この部分の処理は上のパッチの"signal-for-address"内で行っています。

照明制御のパッチ

"signal-for-address"オブジェクトは
input1 DMXのチャンネルへ送る値(mc.inputの左側のout)
input2 各照明機材の対応ch(mc.inputの右側のout)
input3 各照明機材のstart address
と、入力しています。

今回、僕が使っている照明機材は9chモード(操るのにDMXチャンネルを9ch使用する)ムービングライトなので、mc.inputに9のinletを用意して、まとめています。
また、それに伴いmoving1のstart addressを1、moving2のstart addressを10(moving1の9chの次)に指定しています。
この辺は、事前に決定できるものなので、loadbangで毎回自動で呼び出せるようにしていて良いでしょう。

右上の方で、closebangにより閉じる際に0の値を全てのaddressへ送っているのも重要です。

↓MaxにてDMXを制御しているデモです。↓

いやー、やっぱり光って動くと楽しいですね。

最後に

今回はMaxにてDMXをArt-Net経由にて制御しました。
いかがでしたか?
Maxのさらなる可能性を感じて頂けたのではないでしょうか。

今回は前回以上に上手く説明できなかった気がしますので、「ここ、もっと詳しく説明して!」とか「この辺の説明してなくない?」といったこともコメント頂けたらと思います。
よろこんで追記します。
また、「ここの説明は間違ってるよ。」などのご指摘も頂けると大変嬉しいです!
よろしくお願いします。

Max界隈、盛り上がっていきましょ〜〜。

9
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?