Unity向けプラグインをアセットストアにてリリースしました。
この記事ではプラグインの機能について紹介します。
機能
このプラグインはMIDIイベントの送受信機能をUnityのモバイル(iOS/Android)プロジェクトに追加します。
- MIDIイベントの受信と送信
- MIDI 1.0に定義されている、全ての種類のMIDIメッセージを扱うことができます。
- USB MIDI
- Android のみ
- Bluetooth MIDI (BLE MIDI)
- iOS と Android
- Apple Network MIDI (RTP-MIDI)
- iOS のみ
Android ベースの VRデバイスにも対応
プラグインはOculus Quest 2のような、AndroidベースのVRデバイスでも動作します。実世界のMIDI機器と呼応するVRオブジェクトを簡単に作成できます。VR世界のキューブを指したときにMIDIモジュールから音を出したり、その逆に実世界のMIDIキーボードを演奏したときにVR上のオブジェクトに反応させることができます。
サンプルシーンを試す
プラグインのインストール
- Unity Asset Storeからプラグインをインストールします。
- iOS または Androidのプラットフォームを選択し、サンプルシーンを含めてビルドします。
- サンプルシーン 「MidiSampleScene.unity」は Assets/MIDI/Samples/Scenes ディレクトリにあります。
- プラグインはUnity Editorでは動かないので、アプリバイナリをビルドして、実際のデバイスにインストールする必要があります。
MidiSampleScene
アプリでサンプルシーンを開くと、いくつかのGUIが現われます。
左のウィンドウではMIDIデバイスを選択し、いくつかのMIDIメッセージを送信できます。
右のウィンドウでは受信したMIDIメッセージが確認できます。
MIDIデバイスとの接続
- Android
- USB / Bluetooth MIDIデバイスは自動的に発見、接続されてGUIの「Device」のリストに表示されます。
- iOS
- Apple Network MIDIデバイスは自動的に接続され、GUIの「Device」のリストに表示されます。
- アプリが起動したときにBluetooth MIDIデバイスを選択します。
新しい機器の接続 / 切断 のイベントは IMidiDeviceEventHandler インタフェースを実装することで受信できます。
デバイス名はMidiManager クラスの GetDeviceName メソッドで取得できます。デバイス名をまだ受信できていない場合、空(null)になっている場合があります。
MIDI イベントの送信
MIDIイベントの送信処理のコードはこのように記述します。MIDI イベントの受信
MIDIイベントの受信処理のコードはこのように記述します。
オープンソース
パッケージ内のいくつかの部分はオープンソースプロジェクトです。以下のリストはパッケ0ージの依存ライブラリです。
全てのリポジトリは自作のものです。機能のリクエストや不具合報告など、githubにてお気軽にご連絡ください。
- Android Bluetooth MIDI ライブラリ: https://github.com/kshoji/BLE-MIDI-for-Android
- Android USB MIDI ライブラリ: https://github.com/kshoji/USB-MIDI-Driver
- iOS 向け Unity MIDI プラグイン: https://github.com/kshoji/Unity-MIDI-Plugin-iOS