2021年8月16日月曜日

Unityアセット「MIDI Plugin for Mobile devices」をリリースしました

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デバイスを選択します。
これらの初期化処理は MidiManager クラスの InitializeMidi メソッドに実装されています。

新しい機器の接続 / 切断 のイベントは IMidiDeviceEventHandler インタフェースを実装することで受信できます。
デバイス名はMidiManager クラスの GetDeviceName メソッドで取得できます。デバイス名をまだ受信できていない場合、空(null)になっている場合があります。

MIDI イベントの送信

MIDIイベントの送信処理のコードはこのように記述します。 

MIDI イベントの受信

MIDIイベントの受信処理のコードはこのように記述します。

オープンソース

パッケージ内のいくつかの部分はオープンソースプロジェクトです。以下のリストはパッケ0ージの依存ライブラリです。
全てのリポジトリは自作のものです。機能のリクエストや不具合報告など、githubにてお気軽にご連絡ください。

0 件のコメント:

コメントを投稿