お散歩MVみたい??とは?お散歩MVではないのか?? VJとはそもそもオーディオリアクティブなのでは?? みたいなツッコミがあるタイトルですが、一旦スルーしてください。
こんにちは、Butadieneです。
先日、draw(tokyo); #4にVJとして出演させていただきました。
【本日開催‼️】
— draw(); (@function_draw) 2026年5月30日
draw(tokyo); #4 | #function_draw
🗓️2026/5/30 (土) 14:00~
📍CIRCUS TOKYO
🎟️当日 ¥4,000+1D
当日券もありますので、お気軽にお越しください!
また、皆様がより安心して楽しめるように行動規範(Code of Conduct)を公開いたしました。ご一読ください。https://t.co/IJxJ64t3xb pic.twitter.com/QU4qzSaR7C
現地で映像を取ってXに上げてくれた方のポストです。
— shivaduke (@shiva_duke28) 2026年5月30日
#function_draw@yoxtellar × @butadiene121
— Magi Poka (@magipok) 2026年6月2日
フラクタル × グリッチ pic.twitter.com/s99Z9pNgrV
すごく楽しいイベントでした!! 来てくださった方、見てくださった方、ありがとうございました! また、Audio担当として最高のライブセットをしてくださったyoxtellarさん、ありがとうございました!!
当日の映像のアーカイブはこちらになります。
現地映像
(タイムスタンプの押してある、1時間33分からが自分のパフォーマンスでうs.)
画面の録画+録音
今回のVJでは、音に合わせて動画をいっぱい切り替えて、エフェクトをかけてくれるソフトを作りました。 この記事では、ソフトを作る経緯、コンセプトなどの話を書こうと思っています。よろしくお願いします。
出演とコンセプト決定の経緯について
前回のdraw(draw(tokyo); #2)について
実は、前々回のdrawイベント、draw(tokyo); #2(以降、前回のdrawと呼びます。)にも出演させていただいていまして、そのときもソフトを自作してVJをさせていただきました。具体的には、自分で撮った写真数千枚を学習にぶち込んで(CVAE)、リアルタイム推論して画像生成するVJソフトになります。
そのときの記事はこちらになります。よろしければこちらもご覧ください(長いですが)。
このツール&パフォーマンスは、試みの面白さという点ではそれなりにうまくいったと思っているのですが、映像の音に対する応答性(や操作性)という点では課題が残るものだったかなと思っていました。 (また、ツール作成に必要なコストが多すぎたことと、完全にワンオフのセットになってしまったのも反省点でした。)
コンセプトの決定について
今回、2026年の3月頭に出演の話をいただきまして、コンセプトを練り始めました。 draw(tokyo);は毎度すごい人が出演するので、自分のShaderやグラフィックの知識だけでは見劣りするものしか作れないのは、はじめからわかっていました(この辺りの発想は前回出演時と一緒です。)。また、自分が4月から就職するため、前回のdrawよりも制作にかけられる時間が大幅に減ってしまうということもわかっていました。
この経緯や前回のdrawの反省も踏まえ、今回のVJの軸を
- ほかのつよつよVJとなんとかして差別化する。
- 製作コストを比較的下げる。できれば汎用的なVJツールにする。
- 映像と音の同期具合に焦点を当てる。
としました。これは、出演のお話をいただいて割とすぐに策定しました。
コンセプトをもとにしたVJツールのアイデア
コンセプトを満たすためのアイデア
コンセプトが決定したら、次はこれを満たすアイデアについて考える必要があります。
差別化について
まず、差別化についてですが、前回のdrawに引き続き、写真関係をうまく使えればな、という考えが浮かびました。しかし、写真は静止画であり、動きません。前回のdrawのように機械学習が使えればよいのですが、それを実装している時間はなさそうです。そこで、今回は自分がこれまで撮ってきた動画をたくさん使ってみることにしました。動画であれば最初から動いているので、機械学習などを使って強引に動いている画にする必要はありません。
自分の撮った動画をたくさん並べて切り替えて、お散歩MVみたいなVJができたらな〜と、最初は考えていました。
お散歩MVとは
こういうのを指すそうです。 あるいは、走馬灯MVと呼ばれるものを目指していたのかもしれません。
もはやメタと化した「お散歩MV」に対するオルタナティブとしての、「走馬灯MV」
— 竹馬春風 (@Bmbo_sprg) 2026年5月21日
- 日常よりハイライト
- 手放しなビバ生活より無意識な高揚をお出しする
- 「私はここにいる」より「あなたをそこにあらせたい」
ただ、結論を言うと、「最終的にこれらとは全く別物」になったので、そこだけご注意くださいませ...。
製作コストについて
次に、製作コストです。これについては、制作ソフトにUnityを使用すること、UnityをMCPサーバー経由でClaude Codeから叩くことで削減を図ります。なぜUnity?ということですが、前回のdrawでC++でVJソフトを作って、本当に嫌な目にあったからですね(PCのクラッシュやライブラリの管理等)。今回はC++よりはマシだろということで、Unityを採用しました(ある程度使い勝手がわかるという理由もあります)。
映像と音の同期について
映像と音の同期についてですが、自分はVJの経験がほとんどないので(現場でのVJは前回のdrawのみ)、手動でかっこよく同期させていくことは難しそうです。すると、Audio側からなんらかの信号を受け取って、それに合わせて映像を動かしたいです。一般には、音の入力を受け取ってFFTなどをして、低音域や高音域で分けて信号として扱うと思います。これによって、低音が鳴ると映像が震える、高音が鳴るとRGBシフトする、といった挙動が可能になります。しかし、音の信号は音量等の関係で、VJ側で安定して扱うのは難しい印象があります。というか、少なくとも私はあまりうまくいきませんでした。特に、「音量がある閾値を超えたときにトリガーとなる」という挙動の安定性の確保が難しかったです。
DJさんとのパフォーマンスであれば、これでなんとかする、あるいはBPMをもとにいろいろ工夫するしかないのですが、今回はライブセットで音を鳴らすyoxtellarさんがAudioを担当されていたので、根本的な解決が可能でした。それが、「MIDI信号を直接受け取る」です。
MIDI信号をAudio側から直接受け取る
VJ側の理想としては、Audio側から各音ごとに信号が送られてくることです。例えば、キックが鳴ったときに「キックが鳴りましたよ」という信号が送られてくる、ベースが鳴ったときに「ベースが鳴りましたよ」という信号が送られてくる、といった感じです。こうすれば、キックが鳴ったときに映像が切り替わる、ベースが鳴っているときだけ画面がゆがむ、といった演出が容易に実現できます。
今回、yoxtellarさんはAbletonで音を鳴らしていたのですが、Abletonの内部ではMIDI信号が生成されて、それに従って音が鳴っているそうです。そこで、Abletonの内部で生成され音を鳴らすトリガーになっていたMIDIをもとに映像を出力するソフトを作ってもらい、その映像を受け取ることにしました。 この辺りはyoxtellarさんが詳しく解説を書かれるそうなので参照してもらえればと思うのですが、結果的に、自分はこのような画像をHDMIを通じて受け取っていました。

キックが鳴ると、上段左から15番目のマスが光る、breakbeatsに合わせて下段左から6番目のマスが光る、上段左から13番目のマスの明るさでBPMを伝える、などをしています(明度を256段階で数値化して送っています)。
このMIDI信号を意味する映像と、実際に鳴っている音(をフーリエ変換したもの)を入力として扱えるようにしました。
作るソフトの内容に関するまとめ
以上の内容を踏まえて、今回作るVJソフトの大まかな仕様を策定しました。
- Unity製
- 自分の撮った映像をたくさん使う。
- Audio側から音の入力と「映像を経由した直接のMIDI信号」を受け取り、映像の切り替えやエフェクトに反映させる。
この仕様が固まったのが、4月中頃だったと思います。
仕様が決まったので、VJソフトを作っていきます。
映像をそろえる
VJツールで使用する映像を用意します。
ところで今回のパフォーマンスではAudio側から来たMIDI信号をトリガーにして映像を切り替えたりすることを想定するのですが、キックなどは1秒間に2回鳴ったりするので、キックを映像切り替えのトリガーにした場合、1秒間に2回の映像切り替えが発生します。例えばずっとキックを映像切り替えのトリガーにしていると、今回のパフォーマンス時間は30分なので、単純計算で3000〜4000回の映像の切り替えが発生することになります。すると、映像が数十個では、同じ映像が一度のパフォーマンスの中で何度も繰り返されることになってしまいます。そこで、大量の映像を用意することでこの問題を解決します。今まで写真を撮りに行くついでに撮ったやつと、今年(2026年)の3月に北海道に撮影に行ったものなどをまとめて、約1100本の映像(各動画、5秒から5分程度の尺)を用意しました。これらすべての動画に
- 選別
- 短すぎるものや人の顔が映りこんでいるもの、手ぶれがひどいものを取り除く。
- トリミング
- 使えそうな箇所があるが、ぶれている箇所や人が映っている箇所もある動画を、トリミングによって整える。
- タグ付け
- 夜、雪、右に動く、右にパン、などのタグを手動でつける。
- 音声データの削除
という処理を行います。ただし、1100本の動画すべてを毎回トリミングソフトを開けてトリミングして音を削除して...などやっていたら時間がかかりすぎます。
そこで、この処理を(手動とはいえ)効率的に行えるように、トリミングソフトを作成しました。Webアプリケーションになっています。


このソフトを使用して、最終的に800本ほどのタグのついた動画を揃えることができました! タグは20種類ほど用意しています。
VJシステムを作る
いよいよUnityを用いて、VJシステムを作っていきます。
具体的な仕様
いろいろ考慮したうえで、今回のVJシステムは以下のような形にしました。
- 動画を6レイヤーまで重ねられる。
- レイヤーの重ね方は加算や減算、焼きこみなど、広く対応させる。
- 各レイヤーに8個のエフェクトをつけられる。
- エフェクトは自由に入れ替えられる。
- エフェクトはShaderで作成する。ShaderのインプットにAudio関係の信号やパラメーターを入れられるようにして、それを規格化する。
- エフェクトは音やMIDI信号をトリガーにできる。
- エフェクトは自由に入れ替えられる。
- 各レイヤーでは映像を選択できる。
- 各レイヤーで、Audioをトリガーにして自動で映像を切り替えられるようにする。
- 各レイヤーでプリセット登録ができる。
- 最終出力に、バックバッファを使用したエフェクト等が作成できる。
UIはこんな感じです。


これによって、こんな感じの出力が出ます。

MIDI信号や音の受け取り方の例(6月6日 21時追記)
映像の切り替えについて
映像の切り替えはこんな感じで、音やMIDI入力(Chと表記されています)といった信号を選択します。

例えば下の画像の場合、キックが4回なると、映像を切り替えます。切り替える映像はfactoriesタグが付いている映像、もしくはcarsタグがついている映像です。

Ch14がキックであるということはここからわかります。

エフェクトへのアタッチについて
エフェクトはShaderで書くのですが、各Shaderで次のようなパラメーターが使用できるようになっています。

IntとはIntgerのことで、加算されるパラメーターです。例えば、トリガーが引かれるたびに1ずつ増えていくような変数を各ChやAudioごとに用意しています。これによって、音が鳴るたびに座標が進む、といった表現が可能になります。
そして、これを用いて例えば次のようなRGBシフトShaderを書きます。

そして、以下のようにエフェクトに信号をセットすることで、各エフェクトがMIDI信号や音の入力を参照するようになります。 これによってキックに影響されるRGBシフトもスネアに影響されるRGBシフトも作成できるわけです。

一々セットアップするのは本当に面倒なので、プリセットとして登録できるようにしています。
その他
エフェクトやレイヤーのオンオフ、レイヤーの透明度などがMIDIコンに対応しています(AKAI APC mini)。
他にもいろいろマスク機能やポストエフェクト機能があったりします(マスクに関しては、今回のパフォーマンスでは使っていませんが)。
この仕様に沿ってVJソフトを作りました。AIの力も借りたのでかなり速いペースで作れて、5月頭には大まかにできていました。そこからは、ひたすらyoxtellarさんと練習しながら、バグ取りやプリセットの作成をしていました。
先ほどの話に戻るのですが、映像でMIDI信号を送ると、Discordで画面共有するだけでリモート練習ができるんですよね。マジで最高です。
技術的な話
今回は前回のdrawと違って、技術的に凝ったことはあまりしていないのですが、一番ボトルネックだったのは映像の切り替え速度です。 breakbeatsなどを映像切り替えのトリガーとすると、映像を1秒間に4回ほど切り替える必要が出てくる場面があります。これを2レイヤー、3レイヤーで同時に行うと、かなりの速度で映像の読み込みを行わなければいけません。適当に動画をロードしまくるとNVIDIA / MediaFoundationのドライバごとクラッシュするので、
- 各レイヤーで動画プレイヤーを2系統持ち、片方で再生しながらもう片方で次の動画を準備する方式にする
- シーン全体で同時に走る動画ロードを1件に制限し、動画の自動切換えが複数レイヤーで同時にトリガーしても直列化する
- 動画のエンコーディングをConstrained Baseline H.264 + bt709に統一して、ドライバが踏む未定義パスを排除する
- 万が一フリーズしても2秒で自動復帰するウォッチドッグを入れる
といった工夫をしています。
ただし、それでも3レイヤー同時が限界だったりするので、アクティブではないレイヤーについては自動切換えをオフにしたりしていました。そしてここを手動にしたせいで、本番何回かやらかしました(自動切換えをオンにし忘れたり)。運用でカバーはだめですね...。
プリセットの解説
実際に本番で使用したプリセットを紹介していきます。
クレジットと工場背景

https://youtu.be/z7HHw9OH_nE?si=tfAA0C234ULpE5Z9&t=16
工場系の動画をゆっくり切り替えながら、クレジットと動画両方にRGBシフトやグリッチをかけて遊んでいます。Audio syncへのこだわりがあることに気づいてもらえたら良いな、と思うパートにしました。
進むやつ

https://youtu.be/z7HHw9OH_nE?si=rK-hbPMjSHSNaZlQ&t=196
横に進む系の動画をひたすら切り替えるパートです。グリッチやフラッシュを音に合わせるのに加えて、(確か)Acid bassの信号に合わせて動画が速く進むようにしています。また、ブレイクビーツが4回ぐらい鳴ると(後半は2回)動画が切り替わるようにしていて、複数のAudioの信号でわかりやすい演出を心がけました。実際、まあいい感じに音に合っていたと思います。 右に進むやつと左に進むやつは別のプリセットなのですが、ここの切り替えをミスってることに気づかず、10秒ぐらい真っ暗にしています。めちゃくちゃ凹みました。
雪景色背景に工場と花を焼きこみ


https://youtu.be/z7HHw9OH_nE?si=5tCnOL_NiwAz0LjK&t=356
雪景色に工場系の映像を焼きこむ、前半のハイライトだったはずなのですが、工場系の映像側の自動切換えをオンにし忘れていて、そしてそれに本番中一切気づかず←!?!?!?ずっと風車が上にのっかっているだけの映像になりました。あとでアーカイブを見て泣きましたね...。工場はブレイクビーツでかっこよく切り替わっていく予定でした。
そのあとは花の動画のほうでも焼きこみを重ねて、だんだんバックバッファとかを強めにしていっています。
花の後にもう一回工場の焼きこみに戻るんですが、そのときは切り替えをちゃんとセットしているみたいです???
(本来やりたかったのはこれ https://youtu.be/z7HHw9OH_nE?si=910BOLWoe2gEsC8E&t=551 )
高速道路に工場の焼きこみ

https://youtu.be/z7HHw9OH_nE?si=ZYIErtVSOtoz7ZGE&t=609
高速道路パートに入ります。高速道路は5分ぐらいの動画を数本用意していたので、かなりゆっくりと(BPM基準で、32回ビートが鳴るたびに切り替え?)切り替えています。そして、その上に先ほど同様に工場系の動画を焼きこみで重ねます。ただ、夜の高速道路は暗いので、めちゃくちゃカラーシフトをかけることで明るさを確保します。 また、工場の動画を長いこと引っぱりすぎなので、ストライプ系のエフェクトなども重ねます。
レイマーチングエフェクトを入れる

https://youtu.be/z7HHw9OH_nE?si=7Mb9bmoicKlI6GYa&t=735
レイマーチング系のエフェクトを入れます。ただし、これは「ある動画にレイマーチングのShaderを用いたエフェクトがかかった」形です。今回の場合は、街中を走る系の動画をモノクロにした動画にレイマーチングエフェクトを重ねていました。ほとんど気づかれないとは思うのですが...。
わかりやすく示すために、今回作成したレイマーチングエフェクトのオンオフの様子を下に示します。

仕組みとしては、「レイがヒットしたとき、レイを発射したUVにある画像の色を貼る」です。これだと、レイがヒットしたところだけマスクされるような画像になりそうですが、レイを反射させることで、かなりいい感じの動きをしてくれるようになりました。ポストエフェクトのようにレイマーチングを動画のエフェクトとして使えるのは、かなり楽しかったです。(レイマーチング用に特別なギミックを入れずにRGBをシフトをShaderでやるのと同じノリでエフェクトが作成できるので、仕組み的にも楽でした。)
また、今回はキューブを並べた系のレイマーチングのエフェクトも使用しました。これです。

結論から言うと、今回こいつのコントロールに失敗しています。本当に悲しい...。 オーディオの大きさに合わせて回転するようにしたのですが、音が常に大きくインプットされていたせいで、ただひたすら高速で回転する物体になっていました。もっと低音とかMIDI信号とかで回転するようにすれば、かなり音に対してメリハリのあるエフェクトになった(というか練習ではなっていた)ので、めちゃくちゃ誤算です。プレイ中にインプットをLowに切り替えるだけでよかったのに、どうしてやらなかったのか...。
アウトライン系

https://youtu.be/z7HHw9OH_nE?si=72-Qk8aqhGKFxv4D&t=835
高速道路に少し戻した後、アウトラインを出します。もともとRGBとかで画面がかなりぐちゃぐちゃ気味だったので、割と良い選択肢だったように思っています。 また、アウトラインをタイルで分割して揺らすのもかなり楽しかったです。
アウトライン系とレイマーチングエフェクトに花を重ねる

https://youtu.be/z7HHw9OH_nE?si=nyKXYpiA_NIuYHwy&t=964
今回の最大のやらかしパートだと思います?? 先ほど作成したアウトラインの裏にレイマーチングのエフェクトを重ね、さらにその上から花をのっけるサビパートのつもりだったのですが、ひたすら回転するだけのレイマーチングが、映像から視覚的に音を感じるのをかなり邪魔していたようにアーカイブを見ていて思いました。先ほど述べたように、レイマーチングエフェクトがやばい勢いで回転し始めたのが原因です。さらにめちゃくちゃ点灯するので、見ている人もかなり疲れさせてしまったのかな...。と思っています。アーカイブを見て頭抱えていました。練習だとメリハリと情報量が両立した良いパートのはずだったのに...。
夜の街を追加

https://youtu.be/z7HHw9OH_nE?si=Jv5paxovHgetwe76&t=1104
テンポが上がってくるにつれて、レイマーチングを、キックに合わせてRGBシフトする夜の街に切り替えていきました。ここのパートは、見ていて気持ちいいパートになったんじゃないかなと思います。
花のアウトラインを夜に乗算する

https://youtu.be/z7HHw9OH_nE?si=ytPotfv3EFuC9d2q&t=1171
またしてもやらかしパートです。RGBでド派手に動いている夜の街に、アウトラインだけ表示した花の動画を乗算します。 個人的にはかっこよくてお気に入りパートだったんですが、花の線をどれぐらい太くするかで、直前までかなり迷いました。細くしすぎると暗くて見えないし、太いと花であることがあまりわかりません。そして、会場自体のアーカイブを見ていると、暗すぎたかな...。と思いました。おそらく、この線が花であることを(この時点で)認識していた人って、どれぐらいいたんだろう...。という感じです。
現地映像で見ると、なかなかに暗い...。
https://youtu.be/cfQq5e2q6S4?si=fclB8LEeZxNjyCiL&t=6800
そのあとのバックバッファや、波状に花を音に合わせてゆがませるパートなどはかなりうまくいったと思うのですが、いかんせん全般的に暗すぎたと思います、はい...。
花のアウトラインを昼に加算する

https://youtu.be/z7HHw9OH_nE?si=kSUhmvo3h9lMDWKy&t=1360
動画を白飛びさせたあと、花を乗算から「加算」にします。これは何人かの方にすごく気に入ってもらえて、うれしかったです。夜のところもそうなのですが、動画のアウトラインを別の動画に重ねるの、多分面白いのでいろいろやってみたいです。
花のアウトラインをタイルでぐちゃぐちゃにしているパートも当初予定になかったのですが、入れて正解でした。
タイルシャッフルとタイルマスク

https://youtu.be/z7HHw9OH_nE?si=LKIy4XfyZDh9ZgAR&t=1413
タイル状にマスクされるstaticな動画の切り替えを、タイル状にシャッフルされる工場や道路の動画の切り替えに重ねる(さらにブラーなどのエフェクトをかける)パートです。

グリッチがスネアやキックでかかったり、ブレイクビーツでstatic側の動画が切り替わったり、キックで工場側の動画が切り替わったりと、MIDI信号の良さが一番引き出せたパートかなあと思います。
トーラスレイマーチングマスク

https://youtu.be/z7HHw9OH_nE?si=I3EgSCpLgoTnSTsS&t=1521
実はここで時間を完全に余らせまして、クローズをミスりました...。が、ここからは映像を落ち着かせていくパートになっています。最終的にトーラスのレイマーチングとグリッチのパートになります。トーラスのレイマーチングは、マスクみたいな役割を果たしていたりします。
鳥とクレジット

https://youtu.be/z7HHw9OH_nE?si=B05FLex6dgjCkrz1&t=1699
最後は鳥系の動画でまとめて、クレジットを最後に出してクローズです。思いつきでバックバッファをかけたら、かなりいい感じになってうれしかったです。
本番の感想
まずは最高の音を出してくださったyoxtellarさん、本当にありがとうございました。マジでよかったです... そして、たくさんの人に見てもらえてとてもうれしいです。ありがとうございます。
自分の映像の感想としては、クラッシュしなくてよかったね、最低限やりたいことはできた、という気持ちはある一方で、見せられなかったパートややらかしたパートが、さすがにちょっと多いかな、という気もしています。リベンジできるならしたい、切実に。
プロダクトとしての感想
本番でオペミスりまくった話はありますが、それはそれとして、かなり好みのものができたかなと思います。 自分の撮ってきた動画が音に合わせてきれいに動いてくれるのは、やはり気持ちいいですね。
それから、数は正義だと思いました。とにかく素材の数を増やすこと、エフェクトの数を増やすこと。これが飽きのこない画面を作ってくれるのかなあと思いました。(ただ、VJってもう少し繰り返しを意図的に増やしたほうがいいのかな?とも思ったり。どうなんでしょうか。VJ素人すぎてわからない。)
映像に関しては、初手の方針としてはお散歩MVをしたい、みたいな話でしたが、エフェクトをかけすぎて、お散歩MVの域を外れてしまったような感じがします。まあ、それはそれでの気持ちです。
アウトラインを重ねる話や、グリッチマシマシの映像を上から焼きこむなど、あまり見たことない景色(既出のものも多いのでしょうが、自分的にはあまり見たことなかったです。)が見えたのはうれしかったです。
ツールとしての反省点は、オペレーションミスが起きやすいものにしてしまったところでしょうか。わかりやすいUIを心がけたつもりなのですが、本番で起こしたミスの数を前には、何も言い訳ができません。 もう少しわかりやすいツールにしようと思います。
最後に
いろいろありますが、とても素敵な体験をさせていただけたと思います! 良すぎな音を出してくださったyoxtellarさん、毎度素晴らしいオペレーションをしてくださる運営の方、見てくださった皆さん、感想をくださった方々(めちゃ嬉しい)、本当にありがとうございました!!
またオーディオリアクティブなVisualで遊んでいきたいと思います。ではでは。


































