Unityで簡易VJキットを作る

#初めに
今回はVjを始める際に必要そうなUnityでのMIDI対応とDMX512対応をしてみました。
MIDIの方は結構参考サイトがあったので特に説明しません　どちらかと言えばDMXの方がメインになります
#MIDIとは
MIDI（ミディ、Musical Instrument Digital Interface）は、日本のMIDI規格協議会（JMSC、現在の社団法人音楽電子事業協会）と国際団体のMIDI Manufacturers Association (MMA) により策定された、電子楽器の演奏データを機器間でデジタル転送するための世界共通規格。物理的な送受信回路・インタフェース、通信プロトコル、ファイルフォーマットなど複数の規定からなる。（Wikipediaより）
#DMXとは
DMX512は米国芸術技術協会(USITT)が発端となり改訂されてきたデジタル信号の通信規格です。1本のデジタルケーブルで512チャンネル分の照明制御データのやり取りが可能で、また各チャンネルの信号を256段階で制御することができます。
#動作環境
Unity5.5.0
Windows10
OSX 10.11
#今回使ったもの
###MIDI
[MIDIコントローラー](https://www.amazon.co.jp/gp/product/B004M8UZS8/ref=oh_aui_detailpage_o05_s00?ie=UTF8&psc=1)
###DMX512
[DMXコントローラー](http://www.akaricenter.com/tokusyu/mirror_ball/enttec/dmx-usb-pro.htm)
今回は日本のサイトで買った物でしたが、海外で買ったほうが安かった；；https://www.enttec.com/?main_menu=Products&pn=70304&show=description
[DMX変換ケーブル　5pinオス-3pinメス](http://www.akaricenter.com/tokusyu/mirror_ball/cable/cable-convert.htm)
完品だと高いので自作した方が安上がり
[DMXデバイス（照明）](https://www.amazon.co.jp/gp/product/B01DLOCUHC/ref=oh_aui_detailpage_o03_s00?ie=UTF8&psc=1)
テスト用に買ったので最低限DMXで制御出来て安いものをチョイス
#MIDIのセットアップと動作確認
こちらを参考させてもらったので特にこちらでは説明しません　とりあえず　デモシーンさえ動けばok!
[参考サイト]
(http://psychic-vr-lab.com/blog/unity/midi%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%A9%E3%83%BCnanokontrol2%E3%82%92unity%E3%82%A2%E3%83%8A%E3%83%AD%E3%82%B0%E5%85%A5%E5%8A%9B%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%81%A8/)
[デモプロジェクト](https://www.dropbox.com/s/kd3mi2g9tpdceot/NanoKontrol2.zip?dl=1)

#DMXセットアップ
[マニュアル](https://d2lsjit0ao211e.cloudfront.net/pdf/manuals/70304.pdf)を見ながら進めます
[ドライバーを入れる](http://www.ftdichip.com/Drivers/CDM/CDM20828_Setup.exe) Macはドライバーを入れる必要ないです
PCとDMXコントローラーを繋げる
![空白ページ.png](https://qiita-image-store.s3.amazonaws.com/0/158441/487cb928-58a8-35a8-2936-52902d5e7660.png)
DMXコントローラーが繋がっているポート番号を確認する

#照明側のセットアップ
DMXデバイスには必ず仕様みたいのがあり　直接デバイスを触ってモード変更（DMXモードにするかしないかなど）をする事ができます。機種によって様々なので事前に調べておく必要があります。
![IMG_1437 のコピー.jpg](https://qiita-image-store.s3.amazonaws.com/0/158441/e9acea26-527c-cec0-8e1a-1801e6df6e5f.jpeg)



今回はDMXしか使わないので１、１０をONにして他はOFFにしておきます。
![IMG_1438.png](https://qiita-image-store.s3.amazonaws.com/0/158441/b6d53e74-ad21-c519-66f3-f91b667db0c7.png)

#DMX動作テスト
ENTTEC DMX USB Pro には動作を確認する為のツールみたいな物があるので下記のURLから
任意のOSのアプリケーションをダウンロードしてきて実行する
http://www.enttec.com/?main_menu=Products&pn=79003

DMXコントローラーに照明が繋がっている状態でPCにつなげて、「Find Device」をクリックすると
「DMX USB PRO ~~~~」が出てきて、それをクリックすると接続は完了です
<img width="519" alt="スクリーンショット 2017-01-27 13.06.36.png" src="https://qiita-image-store.s3.amazonaws.com/0/158441/575682a9-f5b1-f99a-8294-1840babf1611.png">

次にデバイスファームウェアを更新します
画像のように緑チェックが入ればokです
<img width="919" alt="スクリーンショット_2017-01-27_13_07_34.png" src="https://qiita-image-store.s3.amazonaws.com/0/158441/5279aa91-8688-4d3d-6c77-49e0d3c20e8d.png">

次に実際にフェードを動かして照明をつけます
タブからDMX Sendを選び、　SourceのFromeFadersを選び
あとは、照明の仕様にしたがってフェーダーを上げ下げして、照明が変化すればokです
例　[DMXデバイス（照明）の場合](https://www.amazon.co.jp/gp/product/B01DLOCUHC/ref=oh_aui_detailpage_o03_s00?ie=UTF8&psc=1)１を５０、２を１０にすれば赤く光ります。
 <img width="907" alt="スクリーンショット 2017-01-27 13.08.45.png" src="https://qiita-image-store.s3.amazonaws.com/0/158441/5e406ac4-c4bc-bded-c4a5-8cc3a3113d47.png">

Windowsは公式が出しているローカルで使える[アプリ](http://www.enttec.com/download/dmx_usb_pro/pro_utility_setup.exe)もあるのでお好みで使えばいいと思います

#UnityとDMXを繋げる
基本下記のURLを元に進めていきます
http://wiki.etc.cmu.edu/unity3d/index.php/DMX_Board
事前にDMXのアセットをプロジェクトにエクスポートするのとDMXと繋がっているシリアル番号を調べときます。
OSによってシリアル番号が違うので注意する
http://wiki.etc.cmu.edu/unity3d/images/1/13/DMX.zip
・プラットフォームを PC, Mac & Linux Standalone　にする
・Api Compatibility Level　を.NET 2.0にする

動作部分はサンプル見た方が早いと思うのでgithubにmidiとDMX対応したものをあげましたのでそちらを参照してください
シリアル番号を入力すれば動作するようなサンプルになっています。
https://github.com/SatoSeiichi/VjKit

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">UnityとMIDIとDMX 連携テスト <a href="https://t.co/5GF4NhOGKM">pic.twitter.com/5GF4NhOGKM</a></p>&mdash; SASE (@SaseKubrick) <a href="https://twitter.com/SaseKubrick/status/818139519920652288?ref_src=twsrc%5Etfw">2017年1月8日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

以上もしわからない事があればコメントをください