VRChatUdonWorldGimmick解説

MidiAnimatorDriver 使い方ガイド

VRChatワールドでMIDIコントローラーを使ってAnimatorを操作できるギミックの使い方を解説します

MidiAnimatorDriver 使い方ガイド

はじめに

MidiAnimatorDriverは、VRChatワールド内でMIDIコントローラーの入力を受け取り、Animatorのトリガーを発火させるギミックです。

本ギミックを使うことで、VRChatワールド内でMIDIコントローラーを活用した演出やインタラクションが実現できます。

ライブパフォーマンスや照明制御など、に活用することを想定しています。

リポジトリ

https://github.com/SmiSANN/MidiAnimatorDriver

Note: JSON構造の詳細やファイル構成など、より詳しい技術情報についてはGitHubのREADMEをご参照ください。

主な機能

  • MIDI入力対応 - VRCMidiListenerを使用したMIDI信号の受信
  • ネットワーク同期 - 全プレイヤーに対してAnimator操作を同期
  • コンボ入力 - 複数ボタンの同時押しによるトリガー発火
  • 操作権限ロック - 特定のプレイヤーのみが操作可能なロック機能
  • JSON設定 - 外部JSONファイルによる柔軟なマッピング設定

マッピングツールの使い方

MIDIパッドとAnimatorのパラメーターを紐づけるためのエディターツールが付属しています。

ツールの起動

Unityのメニューバーから Tools > MIDI Pad Mapping を選択して、マッピングツールを開きます。

MIDI Pad Mappingツールの起動
Tools > MIDI Pad Mapping からツールを起動

ツールの詳細

ツールは以下の要素で構成されています。

MIDI Pad Mappingツールの詳細
MIDI Pad Mappingツールの構成
番号名称説明
Animatorsシーン内のAnimatorコンポーネント一覧
Triggers選択したAnimatorのTriggerパラメーター一覧
割り当てフィールドMIDIパッドのグリッド(ノート番号が表示)
レイヤー追加ボタン新しいレイヤーを追加

操作方法

パラメーターの割り当て

  1. 左側のAnimators一覧からAnimatorを選択します
  2. 中央のTriggers一覧に、選択したAnimatorのTriggerパラメーターが表示されます
  3. パラメーターを右側の割り当てフィールド(パッド)にドラッグ&ドロップします

レイヤーの追加と割り当て

  1. ④のボタンをクリックして新しいレイヤーを追加します
  2. 割り当てフィールドを右クリックしてコンテキストメニューを開きます
  3. メニューからレイヤーを選択して割り当てます

レイヤー機能の仕組み: レイヤーボタンとして設定したパッドを押しながら、別のパッドを押すことで、レイヤー専用のバインディングが発火します。これにより、同じパッドに複数の機能を割り当てることができます。

エクスポートとインポート

  • Export: 右上のExportボタンで現在のマッピング設定をJSONファイルとして出力します
  • Import: Importボタンで以前エクスポートしたJSONファイルを読み込み、再編集できます

Launchpad Miniプリセット

Novation Launchpad Mini MK3を使用している場合は、左上のPresetメニューからプリセットを選択できます。

プリセット名サイズ説明
Drum Mode8×8ノート番号36-99(左右2ブロック)
User Mode8×8Drum Modeと同じ配置
Keys Mode8×8ピアノ風配置
Programmer Mode9×9ノート番号11-99(行列=十の位・一の位)

警告表示機能

Animatorやパラメーター名に以下の文字が含まれている場合、ツール上で警告が表示されます:

  • [ ] { } " \

これらの文字はJSON形式で問題を引き起こす可能性があるため、使用を避けてください。

ワールドへのセットアップ

マッピング設定が完了したら、VRChatワールドにギミックをセットアップします。

コンポーネントの設定
Inspector上でのコンポーネント設定

セットアップ手順

  1. VRC MIDI Listenerの追加

    • MeshRendererとColliderが付いたGameObjectを用意します
    • Add Component > VRC Midi Listener を追加します
    • Active Eventsの NoteOn をクリックして有効化します(青くなれば選択済み)
  2. Midi Animator Driverの追加

    • 同じGameObjectに Midi Animator Driver コンポーネントを追加します
  3. Config Jsonの設定

    • エクスポートしたJSONファイルをプロジェクトにインポートします
    • InspectorのConfig Json欄にJSONファイルをドラッグ&ドロップします
  4. インジケーターの設定

    • 操作権限のロック状態を表示するオブジェクトを設定します
    • Indicator Unlocked: フリー状態時に表示されるオブジェクト
    • Indicator Locked: ロック状態時に表示されるオブジェクト
  5. Colliderの設定

    • Mesh ColliderまたはBox Colliderの Is Trigger を必ず有効化してください

Note: Colliderを配置することで、プレイヤーがInteractしてロック/アンロックを切り替えられるようになります。

操作権限ロックについて

状態説明
フリー(Unlocked)誰でもMIDI操作が可能
ロック(Locked)ロックしたプレイヤーのみ操作可能

Colliderをクリック(Interact)することで、ロック/アンロックを切り替えられます。

MIDIデバイスの接続

単体デバイスの場合

MIDIデバイスが1台のみPCに接続されている場合は、特別な設定は不要です。VRChatが自動的にデバイスを認識します。

複数デバイスの場合

PCに複数のMIDIデバイスが接続されている場合は、VRChatの起動オプションで使用するデバイスを指定する必要があります。

Steam起動オプションの設定
Steamの起動オプションでMIDIデバイスを指定

設定手順

  1. Steamのライブラリを開きます
  2. VRChat を右クリック → プロパティ を選択します
  3. 起動オプション 欄に以下を入力します:
--midi=LPMiniMK3 MIDI

例えば、Launchpad Mini MK3を使用する場合:

--midi=LPMiniMK3 MIDI

Tip: デバイス名は、Windowsのサウンド設定やMIDI設定で確認できます。

トラブルシューティング

Animatorが認識されない場合

  • GameObjectにAnimatorコンポーネントがアタッチされているか確認してください
  • Animator ControllerにTriggerパラメーターが定義されているか確認してください
  • 名前に [ ] { } " \ などの特殊文字が含まれている場合は警告が表示されます。これらの文字は使用しないでください

MIDI入力が反応しない場合

  • VRC Midi ListenerのNoteOnが有効になっているか確認してください(青く表示されている必要があります)
  • MIDIデバイスがPCに正しく接続されているか確認してください
  • 複数のMIDIデバイスが接続されている場合は、VRChatの起動オプションでデバイスを指定する必要があります
  • JSONファイルのmidiChannel設定が正しいか確認してください(0=全チャンネル)

ロック機能が動作しない場合

  • ColliderのIs Triggerが有効になっているか確認してください
  • LayerがWalkthroughに設定されているか確認してください(プレイヤーがすり抜け可能でInteract動作が可能になります)
  • Indicator UnlockedとIndicator Lockedのオブジェクトが正しく設定されているか確認してください