Zap Gun – Inside The Maze

2015年11月1日に開催された「MAZE」のメイキング連載だ。メイキングといってもニッチな部分ではあるが。。。

「Inside The Maze」第一回目は今回のアトラクションにおいてホログラムと並んで目玉システムとなった「Zapガン」について。

もともと、「視聴型アトラクションから参加型アトラクションへ」という取り組みからインタラクティブな要素として盛り込んだ。

ゲーム学科とハード学科に外注してもよかったのだが、流動的なプロジェクトな上、「できることはやる」というもう一つの取り組みから私が制作をした。といっても、電子工学は高校の3年間で、プログラミングはBASICだけという素人っぷりだ。その為のArduinoであり、Quartz Composerであり、MIDIなのだ。

ハードウェア

当初はRaspberry Piを使ってビームごと一括で処理して出力しようとしたが、より確実に分散させるため、Arduinoを使用した。

ハードのケースだが、新しくボックスを作ってもよかったのだが、廃品となった1Uサイズのパッチベイを利用した。

ケースを作る手間や費用がかからない上に、会場がスタジオということから、ラックマウントすれば溶け込ませることができる。

もっとも、フォンジャックが大量に手に入る。これをスタジオ中央のディレクター卓にマウントした。

これが「Zapガン・トリガー装置(適当)」

左み見えるのがArduinoUNO R3だ。またケーブルが長すぎたし、接続が適当だ。

ラックマウント後。(散らかり具合が当時の状況を語っている)

ArduinoはMOCO/LUFAをAtmega8U2に焼いてUSB-MIDIとしてマザーマシンにUSB-MIDI機器として認識させている。

328Pにはメインのスケッチを書き込んで使っている。全部で16発分のトリガー・インが必要だったので、UNOのAnalog InもDigital Inputピンとしてアサインして使っている。

プロトタイプシールドを入手し、デジタルスイッチとして動作する簡易的な回路を用意してある。

スイッチを押すと5Vが各ピンに落ちるようにに220Ωの抵抗を挟み過大電流だけ逃す一般的な回路だ。

といっても、うろ覚えだし、ちゃんと動いてくれてよかった。

スイッチ自体は、シリコンハウスで10個入り1000円のものを16個使用した。

それにぴったりサイズの塩ビパイプをグルーガンで接着してある。断線が目立ったのでテープやボンドで固定してあった。文句あるか。

ソフトウェア

当日使用Zapガンの処理と出力を担当したiMac。(散らかり具合が当時の状況を語っている)

Arduinoのスケッチ自体は、pin入力によってMIDIのnoteを操作する一般的な仕組みを使ったので、割愛する。

発射プログラム側はQuartz Composer(以下QC)を使用した。前回の納涼インスタレーションの時、オーロラを出力したのもこのソフトである。

QCを利用した理由として、1.Macにフレームワークレベルで統合されている 2.リアルタイムでコンポジットできる(MIDI制御も可) 3.MAX/MSPやPure Dataの使用歴があればなんとなく。

MIDIで制御できるということが一番大きかった。音楽をやっている身としてはMIDIはこのご時世限りなく身近な手段である。またMIDIキーボードを使ってデバッグをできることも便利だった。

QCのアップデート自体は滞っている様だが(需要が無いため?)、Facebookが配信・更新している「Origami」というプラグインをインストールすることによって、QCを更に使いやすくすることができる。

ZapガンのComposition。半分づつにマクロを分けて処理している。特に意味は無い。適当だ。

Structureにするのも手だったが、今回はそうしなかった。

マクロの中身。この中にまた発射エフェクトのマクロがあるが、全てが「Left DOwn」という名前になっているところが残念。適当だ。

仕組みとしては「MIDI Reciever」パッチからのノート・オン情報を受けてアニメーション用のタイマーを動作させている。

その個々のZapエレメントをマクロにまとめ、一括で処理している。

また別ルーチンとして、「MIDI Reciever」パッチからkineme.com産の「Audio Player」パッチにもトリガーしてショット音を出力している。

ハードウェア的にはApogee Duetから2chで出力し、ハイトチャンネル用のO1V/96にインプットした。

4chでの出力もおもしろかっただろうが、ルーティング的にも、数的にも、会場のスピーカー位置的にもふさわしく無かった事からエコノミックにした。

また、別に接続したフェーダーからZap自体の透明度を操作するパッチも組んである。

同時にボリュームなども操作できればよかったが、そこまで手が回らなかった。ただし、物理的なフェードアウトのほうが確実ではあった。

一気に発射された時、ラグが発生したが、これはMAZE内のバグというストーリー上の演出を使って良い訳ができた。

どうせ画質の悪い単焦点プロジェクターで出力するので、全画面解像度を下げて出力しマザーマシンのGPU使用度を半分まで下げることに成功した。

参考元

Moco for LUFA

http://morecatlab.akiba.coocan.jp/morecat_lab/MocoLUFA.html

MIDI for Arduino

https://github.com/FortySevenEffects/arduino_midi_library/tree/dev

Origami

https://facebook.github.io/origami/