FLOW vol.4 VJシステム

"Flow 4"開催時の様子。"Flow 4"開催時の様子。

概要

制作期間: 1週間程度

オーディオビジュアルイベント『Flow』の第4回を、2025年1月9日に開催しました。私は、Unityを利用し、VJパフォーマンスを行いました。

第4回は、合計して約100名ほどの方にご来場頂きました。

技術詳細

第2回・第3回から、主に内部システム面の大きな改善を行いました。

入力

UnityのInput Systemはゲームでプレイヤーキャラクターを制御することを念頭に置いて設計されているため、そのままの状態ではVJシステムの操作に必要な多数のオブジェクトの状態操作に向いていないと考えています。
そのため、特定のクラスに有効化されたInput Action Mapを保持するstaticなメンバを用意し、それぞれのオブジェクトはそのメンバを利用してイベントを購読する方式を取りました。

配色

プライマリ、セカンダリ、アクセントの3色からなる配色パレットを複数保持して管理するシステムは、第3回時点から実装していました。第3回では、全ての配色をstaticな構造体として保持していましたが、今回はScriptableObjectとして保持するように変更し、エディタ上での容易な調整を実現しました。

また、前述の入力を受けて、新しく変更された配色パレットを引数に持つActionを発火させることで、配色に関連するコードを分離して可読性を向上させました。

ポストプロセスエフェクト

Shader GraphとFullscreen Renderer Featureを利用したシェーダーによるポストプロセスエフェクトの実装を行いました。エフェクトの操作には同じくstaticなメンバを利用して購読した入力を利用し、有効無効やエフェクト強度を切り替えます。

特にポスタライズエフェクトでは、前述の配色管理システムによってエフェクトの有効性切り替え処理と配色管理を分離することができ、コードの可読性を向上させられました。

ポストプロセスエフェクトに自作のシェーダーを用いることで過去最大の柔軟性を実現できた一方で、Shader Graphによるビジュアルスクリプティングのために冗長になる部分が複数発生したため、HLSLとURP Renderer Featureを利用したポストプロセスエフェクトの実装は次回までの達成目標となりました。