VRChat 非公式日本語ドキュメント

MIDI再生

MIDIデータをオーディオトラックと一緒に再生することで、Udonワールド内のあらゆるものを制御できます。すぐに始めたい場合は、サンプルシーンを参照してください。

アセット: MidiFileおよびAudioClip

拡張子が .mid のファイルはMIDIアセットとして処理されます。独自のMIDIファイルとオーディオファイルを使用するには、以下の手順に従ってください。

  1. それらをAssetsフォルダ内の任意の場所にドラッグ&ドロップします。MIDIファイルは拡張子が .mid である必要があり、オーディオファイルはUnityでサポートされている形式(.aif、.wav、.mp3、.ogg)であれば何でも使用可能です。
  2. MIDIファイルを選択し、そのAudioClipに対応するオーディオファイルを割り当てます。

画像

  1. MIDIファイルのBPMは正しく設定されていることが不可欠です。データがオーディオと一致していないように見える場合、これが原因である可能性が高いです。「Override Bpm」をオンにして正しい値を指定することで、BPMを上書きできます。理想的には、MIDIファイルを編集して正しいBPMを追加してください。

コンポーネント: VRCMidiPlayer

VRCMidiPlayer

これは動作の核となる部分です。Audio Sourceと同様に機能しますが、Midi Assetを使用します。これは、すべてのターゲットとなるUdonBehaviourに対してMIDIのNote OnおよびNote Offイベントを送信します。

インスペクターのフィールド

Midi File

名前説明
Midi Fileトリガーしたいデータを含む、SMF形式のMIDIファイルです。
Audio SourceMIDIデータに対応するオーディオクリップを持つAudioSourceコンポーネントです。
Target BehavioursMIDIの Note On イベントおよび Note Off イベントが送信される UdonBehaviour の配列です。
Display Debug Blocks有効にすると、VRCMidiPlayer を選択している間、Unity Editor の Scene ビューで現在の MIDI ファイル内のすべてのノートを表示できます。データの素早い確認に便利です。

メソッド

メソッド

名前説明
Play()MIDI イベントと Audio Source の再生を開始します。
Stop()MIDI イベントと Audio Source の再生を停止します。

プロパティ

名前説明
float timeMIDI ソースと Audio ソースの両方の現在時刻を設定および取得します。
MidiData midiData現在の MIDI トラックに関するすべてのデータを含む MidiData オブジェクトを取得します。再生前にセットアップを行うために使用できます。

例: MidiPlaybackScene

Example Central にはシンプルな MIDI 再生例が含まれています。メニューバーの「VRChat SDK > Samples > MidiPlayback」から読み込むことができます。

クラス: MidiData

VRCMidiPlayer から MIDI データを要求した際に取得されるものです。すべてのトラックの配列と BPM を保持しています。

名前説明
MidiTrack[]Tracksファイル内の MidiTrack の配列です。
byteBpmトラックの BPM を表します。

クラス: MidiTrack

このクラスは MidiBlock の配列をラップするもので、トラック内で検出されたノートやベロシティの範囲に関する便利な参照を提供します。

名前説明
MidiBlock[]Blocksトラック内の MidiBlock の配列です。
byteminNoteトラック内で演奏された最も低いノートです。
bytemaxNoteトラック内で演奏された最も高いノートです。
byteminVelocityトラック内で演奏された最も低いベロシティです(0を除く)。
bytemaxVelocityトラック内で演奏された最も高いベロシティです。

クラス: MidiBlock

MidiBlock は、Midi Note イベントの On から Off までの一連と、いくつかの便利なメタデータを表します。

名前説明
byteNote演奏されたノートの 0〜127 の範囲の番号です。
byteVelocity演奏されたノートのベロシティの 0〜127 の範囲の番号です。
byteChannelノートが演奏されたチャンネルの 1〜16 の範囲の番号です。
floatStartTimeMsNote On イベントが開始されるミリ秒単位の開始時間です。
floatEndTimeMsNote Offイベントがトリガーされる終了時刻(ミリ秒)。
floatStartTimeSecNote Onイベントが開始される開始時刻(秒)。
floatEndTimeSecNote Offイベントがトリガーされる終了時刻(秒)。
floatLengthSecNote OnからNote Offまでのイベント全体の長さ(秒)。

最終更新: