🎶

MIDIでUnityをコントロールする方法

2022/08/22に公開

MIDIでUnityをコントロール

UnityでVJ的なことをやる方法です。keijiroさんがUnityステーションでいともたやすく披露しているデモです(本記事の末尾の参考リンク参照)。

真似すれば簡単にできると思ったのですが、そもそものUnityの知識やMIDIの知識等色々不足していてそれなりに大変だったのでメモしておきます。

環境設定(前提)

環境としてはMac(Apple Silicon MacBook Air)を使いました。WindowsやLinuxでも基本的に同様の操作で同じことができると思います。

Unityはインストール済みの想定です。

以下は環境初期設定の参考記事です。

https://zenn.dev/karaage0703/articles/665e0cbdbd69f0

サンプルソフトをダウンロードして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の書籍やブログ記事を参照ください。

https://zenn.dev/karaage0703/books/2883b0a192bc2a

https://karaage.hatenadiary.jp/entry/2021/04/05/073000

MIDI機器からUnityを操作

Unityの画面で、AssetsからPyroを選択します。以下のように花火が打ち上がる画面が出たらOKです。

あとは、Unityを再生してInstaChordを弾いたり、X-TOUCH MINIのAchの1つまみをグリグリしてみましょう。以下の動画のように機器の操作に合わせて花火が打ち上がります。

https://twitter.com/karaage0703/status/1561179837863440384

ただ、ここで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にしました。

あとは再生したら花火が打ち上がります。

https://twitter.com/karaage0703/status/1559868273101271040

まとめ

MIDIでUnityをコントロールする方法をまとめました。ほとんどkeijiroさんのリポジトリの紹介でした。

参考リンク

keijiroさん関係

https://gist.github.com/keijiro/2c1c6c7018da1ca5a1480cfde514464c

https://github.com/keijiro/VfxMinisExamples

https://www.youtube.com/watch?v=-p1NHYB0GMk

https://github.com/keijiro/VfxPyro

https://github.com/keijiro/Minis

https://github.com/keijiro/MidiJack

Unity関係

Minis + InputSystem でMIDIコン入力を受け付ける

https://light11.hatenadiary.com/entry/2020/08/18/202627

https://note.com/hikohiro/n/n87ea28d6c6b6

https://creator.cluster.mu/2021/09/15/firework/

https://unity.com/visual-effect-graph

https://cgworld.jp/regular/202005-codelight-unity15.html

https://nekojara.city/unity-input-system-intro

https://nekojara.city/unity-input-system-actions

https://www.youtube.com/watch?v=hXjNC8pNOTE

関連記事

https://karaage.hatenadiary.jp/entry/2021/04/26/073000

Discussion