この記事はクラスター「Advent Calendar 2025」 16日目の記事です。
昨日は、monac(もなしー) さんの「企画苦手だった私が、それなりにビジネス企画書が書けるようになるまでに気を付けたこと」でした!monac(もなしー)さんにはスタジオチームもよくお世話になっています!
こんにちは、クラスター社のスタジオチームのn_mattun(まっつん)です。
普段はclusterを用いたイベントの快適な体験環境とイベント進行環境を作るためであれば
人力/ハード/ソフトと技術領域は問わず、お助けになれるようなことは色々と何でもやってるマンです。
ClusterMUSICJAMの照明演出の話です
今回は2024年~2025年初頭に足掛け開催された、クラスター公式の音楽番組「ClusterMUSICJAM※」の中で、出演者の皆さまを彩っていたステージ上の照明演出について、社内のテクニカルアーティストチームから「結構気になってたユーザさんいると思うので書いてみては?」というフリを受けて書いています。
※MUSICJAMの様子は↓のクラスター公式Youtubeチャンネルからご覧いただけます!
Vol.1 Vol.2 Vol.3 Vol.4
この連載で書いていくことの技術要素のひとつひとつはUnity+CCKでのパーティクルライブが好きだったり、実際にパーティクルライブ風のワールドも手掛けている方々には既知のテクニックだったりしますが、これらをまとめて照明演出という形で網羅的に書いている所は見かけたことがないので、けっこう貴重な資料になるのではないかなと思います。
なお、やってることを一気にぜんぶ書いてしまうとかなり長文になるため、初回となる今回は「基本設計編」としてシステムの全体像をお話したのち、そこから「実装編」「検証・運用編」「次の改善に向けて編」と連載形式で書いていきます。
また、連載上では考え方のポイントは記載しますがアプリやソースコードの公開は行いません。仕組みを導入してみたいなと思った方は本連載を読めば同じようなものを作ることはできると思いますので、ぜひクリエイター各々で切磋琢磨しながら、思い思いの照明演出システムを作ってみましょう!
基本設計
では基本設計ということで、演出データがどうやって発火して、照明演出として可視化されているかの流れを説明していきます。
ごく普通のclusterのイベント会場で使われている様々な舞台演出は、基本的には
- 想定されるすべての演出パターンをUnity側に仕込んでおく
- 仕込んだ演出を空間内のボタン押下やWebトリガーやOSC+clusterScriptの組み合わせで呼び出す
というワークフローで作られていると思いますが、
MUSICJAMの舞台演出ではこのワークフローではなく、
- 本物の舞台照明制御で使われている照明制御アプリを使って、
- そのアプリから出力されるArtnetと呼ばれる本物の舞台照明制御でも使われている通信プロトコルを独自変換して、
- それを特殊な通信経路でcluster空間内に置かれている照明に制御情報を送り込んで照明を動かす
というワークフローで照明制御を行っています。
照明演出がなんか本物の舞台照明っぽい!と感じた方は正解です、なんせ本物でも使われているような演出パターンを使っていますので。
Artnetの独自変換 is 何
独自変換と書くとむずかしそうですが、やってること自体はものすごい単純で、
照明制御アプリから送られてくるArtnet信号を色データに変換するアプリを作って、そのアプリの結果画面に任意の色を出力してるだけです。
特殊な通信経路 is 何
続いて特殊な通信経路ですが、こちらも知ってしまえば何てことはなく、
アプリが出してる任意の色が出力されている画面を、みなさんが普段使っているclusterの画面共有機能を使ってcluster側に制御情報を送っているだけです。
そして、cluster側のスクリーンに描画されている色情報(テクスチャ)なんですが、Unity上の取り扱いは単なるRenderTextureなので、それをスクリーン以外のマテリアルで参照することには特に制限はありません。
なので、照明に使っているマテリアルにこのRenderTextureを参照させてあげれば、描画されている任意の色を照明の色をはじめとした制御情報として使うことができるのです。
ここまでの話でピンと来ている方がいるかもしれませんが、
このデータ変換経路はVR内でバーチャルライブを多数行っているMemexのぴぼさん(@memex_pibo)がイベントビジュアライザと呼んでいる技法と根っこの技術は同じですね。
基本設計編 まとめ
今回のデータ経路を図にするとこんな感じです。
(上記の図ではわかりやすくするため簡略化をしていますが、実際の運用時では画面共有をする前にOBSでアプリの画面を参照させてからOBSの統合全画面を画面共有するようにして、必要に応じて色テーブル以外の情報も出せるようにコントロールしていました)
というわけで基本設計編でした。
明日は「実装編」として、色生成アプリ側の具体的な実装やシェーダーに関しても触れていきます。お楽しみに!

