MIDIでUnityをコントロールする方法
MIDIでUnityをコントロール
UnityでVJ的なことをやる方法です。keijiroさんがUnityステーションでいともたやすく披露しているデモです(本記事の末尾の参考リンク参照)。
真似すれば簡単にできると思ったのですが、そもそものUnityの知識やMIDIの知識等色々不足していてそれなりに大変だったのでメモしておきます。
環境設定(前提)
環境としてはMac(Apple Silicon MacBook Air)を使いました。WindowsやLinuxでも基本的に同様の操作で同じことができると思います。
Unityはインストール済みの想定です。
以下は環境初期設定の参考記事です。
サンプルソフトをダウンロードしてUnityで開く
VfxMinisExamplesを以下コマンドでgit cloneします。
$ git clone https://github.com/keijiro/VfxMinisExamples
gitが分からない人は、GitHubのVfxMinisExamplesリポジトリの右上の<> Code
をクリックして、Download Zip
でZIPファイルをダウンロードしてから解凍してもOKです。
Unityを
ダウンロードしたVfxMinisExamples
UnityでOpen。バージョンは 2020.3.8f1
を選択しました。
MIDI機器とPC(Unity)を接続
続いてPCとMIDI機器を接続します。好きな機器でOKですが、接続方法は機器によって異なりますので、機器の説明書などを調べてください。
この記事では、具体例としてMacBook AirにInstaChordとX-TOUCH MINIを接続します。以下、InstaChordとX-TOUCH MINIをPCとUSBケーブルで接続した様子です。
MIDI接続ができているか確認します。Macの場合は、Audio-MIDI設定を開いて、接続した機器がアクティブになっているか確認します。以下は、InstaChordとX-TOUCH MINIがアクティブになっているのでOKです。
InstaChordとX-TOUCH MINIに関しては、以下のZennの書籍やブログ記事を参照ください。
MIDI機器からUnityを操作
Unityの画面で、AssetsからPyro
を選択します。以下のように花火が打ち上がる画面が出たらOKです。
あとは、Unityを再生してInstaChordを弾いたり、X-TOUCH MINIのAchの1つまみをグリグリしてみましょう。以下の動画のように機器の操作に合わせて花火が打ち上がります。
ただ、ここでInstaChord(他の楽器でも)で、MIDIの音階がE2, F2, F#2, G2しか反応しなかったと思います。このトリガはHierarchyのPyroを選択し、Inspectorで確認できます。
この設定を変更することで、トリガとなるMIDI信号を増やしたり変更が可能です。
対応するMIDI信号が分からない場合は、以下のListenボタンをクリックした後、楽器を操作してMIDI出力すれば、Unityがその信号を判定して選択できるようになります(便利)。
対応するスクリプトに関しては、右クリックして「Edit Script」すればコードを確認できます。
他のサンプル
Assetsから「Pyro」でなく「Animator」を選ぶと、よりMIDIで派手なアニメーションをコントロールできます。
様々なMIDI機器を適当に操作するだけで、VJ気分になれるエフェクトになっています。
花火だけ出したい場合(おまけ)
MIDI関係なく、花火だけ出したい場合です。
VfxPyroをGitHubのVfxPyroリポジトリからgit cloneかダウンロードします。
あとは、VfxMinisExamplesのときと同様、UnityでOpenします。バージョンは 2020.3.8f1
にしました。
あとは再生したら花火が打ち上がります。
まとめ
MIDIでUnityをコントロールする方法をまとめました。ほとんどkeijiroさんのリポジトリの紹介でした。
参考リンク
keijiroさん関係
Unity関係
Minis + InputSystem でMIDIコン入力を受け付ける
関連記事
Discussion