【Unity】MIDIデータをUnityに取り込んでピアノロールを表示する - 準備編
動機
「Unityで音を表現しよう計画」がマイブームなので、その前段階として行った、ピアノロールのUnity上での生成方法について紹介します。
今回は準備編ということで、MIDIの基本的知識の説明をした後、MIDIファイル解析用のパッケージのインストールをしていきます。
MIDIとは?
MIDI(Musical Instrument Digital Interface)とは音の「高さ・長さ・大きさ・変化」などを記録したバイナリデータになります。実際には、この他にBPM等の情報も含まれています。
また、上図のようにMIDIを可視化したものが有名ですが、これはピアノロールと言います。DTMをしている人にはなじみ深いでしょう。
大抵の作曲ソフトであれば、ピアノロールからMIDIを出力することができます(拡張子は.mid)。これを利用してUnity上にMIDIを取り込み、ピアノロールにしようというのが本記事の目標です。
この.midファイルですが、先述の通りバイナリデータになっているため、C#にて1から解析するのは非常に面倒です。そのため、有志の方のライブラリを利用させていただき、MIDIをデータとして取り込むところまでスキップしたいと思います。
パッケージ(package)のインストール
今回はkeijiro氏のMidiAnimationTrackというパッケージを利用します。MIDIの信号をアニメーションのトリガーにできるようにするもので、MVや音ゲー制作に生かせる優れものです。
参考動画↓
今回は本来の使い方をせず、.midの解析部分のみを流用させていただきますが、MIDIでアニメーション制御をするという手法も実用的かつ楽しそうなので、やりたくなったらやろうかと思います。
インストール手順
MidiAnimationTrackはストアから入手できるようなパッケージとは異なる(いわゆる野良パッケージというそう)ので、Package Managerに認識してもらう設定をする必要があります。
Unity上で「Edit → Project Settings → Package Manager」と進みます。Scoped Registriesにて新たにレジストリを追加することができるので、各項目について、
"name": Keijiro
"url": https://registry.npmjs.com
"scopes": jp.keijiro
と入力。そのままApplyを押し、Project Settingsは完了です。
これでPackage Managerに認識されているはずなので、Unity上から「Window → Package Manager」に移動します。
ここで左上の「Packages:」をクリック。「My Registries」に変更します。
すると「MIDI Animation Track」を含むkeijiro氏のパッケージ群がズラーーっと表示されるので、MIDIAnimationTrackをここでInstallします。
Project下にPackages/MIDIAnimationTrackがあれば、準備編は完了となります。
次回は実際に.midを解析してノーツを生成していきたいと思います。