2021年8月16日月曜日

Unityアセット「MIDI Plugin for Mobile and Desktop」紹介(2026年更新)

最終更新: 2026-09-27 / 対象アセット版: 2.0.3

MIDI Plugin for Mobile and Desktop — Asset Store カバー画像

MIDI Plugin for Mobile and Desktop (Unity Asset Store)

ドキュメント(購入前でも閲覧可): マニュアル全文は supports リポジトリ で公開しています。入口は documents/index.md、 または README にある結合版 Markdown / PDF(英語 / 日本語 / 中文)です。

購入後はパッケージ内 Assets/MIDI/documents/ にも同内容が入ります。インストール済みバージョンに合った方を正としてください。本記事は紹介用です。

クイックリンク

Unity 向けプラグインをアセットストアで公開しています。製品名は MIDI Plugin for Mobile and Desktop です。

Unity プロジェクトに MIDI の送受信、SMF の再生・録音、各種トランスポートを追加します。 対象は モバイル・デスクトップ・Unity Editor・WebGL などです。

この記事では概要を紹介します。プラットフォーム対応表や API の詳細は 公開ドキュメント (購入後はパッケージ同梱の同内容)を参照してください。

このプラグインができること / できないこと

できること できないこと(別途必要)
MIDI 入出力・メッセージ配送 内蔵シンセ / SoundFont 再生そのもの
SMF / シーケンサ周辺 DAW 相当のオーディオエンジン代替
Maestro MPTK との任意連携で発音 MPTK の購入必須ではない(音は任意)

Editor や実機で「音」を出したい場合は、例えば Maestro MIDI Player Tool Kit など音源と組み合わせるか、Note On を受け取って自前のオーディオを鳴らしてください。

対応プラットフォーム(要約)

詳細・制限は公開ドキュメントの platforms.md (日本語: i18n/ja/platforms.md) を参照してください。

区分 例
モバイル iOS、Android(Meta Quest 含む)
デスクトップ / Editor Windows、macOS、Linux — Unity Editor の Play Mode 対応
Web WebGL(ブラウザの WebMIDI が許す範囲で USB / BLE)
トランスポート USB MIDI、Bluetooth MIDI (BLE)、Network / RTP-MIDI、Nearby、アプリ間 MIDI(プラットフォーム依存)
プロトコル MIDI 1.0、MIDI 2.0 / UMP(プラットフォーム依存。ドキュメント参照)

過去の記述について: 本記事の初版(2021年)時点ではモバイル向けビルドが中心で、 Unity Editor では動作しませんと書いていました。 v1.3.0 以降は Standalone および Unity Editor(Windows / macOS / Linux) に対応しています。 「Editor では動かない」という断定は現行版には当てはまりません。

インストール

  1. Unity Asset Store からインストールします。
  2. サンプルは Assets/MIDI/Samples/Scenes/ (まずは MidiSampleScene.unity、 または Window → MIDI → Samples)。
  3. Editor での確認: Play Mode に入り、Window → MIDI → Monitor でメッセージを監視できます。
  4. 実機: iOS / Android / Standalone / WebGL / UWP などへ切り替え、ビルドして実デバイスで USB / BLE を確認します。

購入前でも、GitHub 上の スタートガイド と プラットフォーム対応表 を読めます。

推奨 Unity バージョンは Asset Store の表記に従ってください(公開パッケージはおおむね 2022.3 系)。

MidiSampleScene

  • 左: MIDI デバイス選択と送信
  • 右: 受信メッセージ表示

MidiSampleScene — デバイス一覧・送信 UI・受信ログ

初期化は MidiManager.InitializeMidi 周辺にあります。 接続・切断は IMidiDeviceEventHandler、 デバイス名は MidiManager.GetDeviceName (名前未取得時は空のことがあります)。

MIDI デバイスとの接続

Android

  • USB / Bluetooth MIDI は検出・接続され、リストに表示されます(権限・Companion Device はドキュメント参照)。

iOS / macOS

  • Network MIDI や USB / BLE は Core MIDI の挙動に従います。BLE はスキャン時に選択 UI が出ます。

Windows / Linux / WebGL

  • 対応・非対応(例: Windows の BLE MIDI は未対応)は platforms.md を参照してください。

MIDI イベントの送信

MidiManager.Instance.SendMidiNoteOn(
    "deviceId",
    0 /*group*/,
    0 /*channel*/,
    60 /*note*/,
    127 /*velocity*/
);

Fluent API:

using jp.kshoji.unity.midi.util;

MidiSend.ToFirstOutput().Channel(0).NoteOn(60, 127);

MIDI イベントの受信

IMidiNoteOnEventHandler などを実装した MonoBehaviour を MidiManager.Instance.RegisterEventHandleObject(gameObject) で登録し、 InitializeMidi を呼び出します。全文は getting-started.md(日本語) を参照してください(パッケージ同梱版と同一内容です)。

Android ベースの VR(Meta Quest)

Oculus Quest / Meta Quest など Android ベースの VR でも動作します。 VR オブジェクトと実世界の MIDI 機器を相互に反応させられます。 Quest の USB / BLE は ビルド後処理 (GameActivity / Companion Device 含む)の手順に従ってください。

オープンソース

パッケージの一部はオープンソースです。不具合報告・機能要望は supports リポジトリ へどうぞ。

例:

(一覧は contacts.md)

0 件のコメント:

コメントを投稿