ワールド制作者、イベント運営者向け:Groove Truckの裏側
ダンス、ライブ、グラフィティ、DJをお呼びして開催するウィークリーイベントGroove Truck(以下、グルトラ)を1年以上運営しての振り返り。
まずは何より遊びに来てくれるみなさん、出演いただいているみなさん、いつも本当にありがとうございます。
以下の内容が音楽イベントワールドの制作者や音楽イベントを開催するオーガナイザーにとって参考になると嬉しいです。
2024/10/25の1周年の集合写真 📷️by和奈さん🙏
コンセプト
開始当初から変わらず「MC(ライブ)、ダンサー、DJ、グラフィティの架け橋になるイベント」、「無理をしない」の2つ。
架け橋になるイベント
ライブ、ダンサー、DJ、ペインターコミュニティが集まる定期イベントがあったら面白いと思いはじめました。心がけていることの一つにイベント始まる前の出演者同士の紹介やご挨拶の時間があります。その後の交流やコラボとかにつながった話を聞くと嬉しいです。
無理をしない
VRChatには様々な環境、ライフステージの人がいます。くれぐれも無理をしないようお声がけするようにしています。ドタキャン、途中参加・離脱OKであることを繰り返し伝えるようにしてます。
ワールドについて
以降、2024/12/26時点のワールドのギミックなどのまとめです。ワールドはpublicなのでいつでもご覧いただけます。
Club Skr Skr
すくすく倶楽部跡地にGrooveTruckがブロックパーティーをはじめた、という設定。出演者や遊びに来てくれた人が、すくすくと成長して活躍できるよう願いを込めて付けた名前です。
配信プレイヤー
配信プレイヤーはTopazChat Player 3.0を使用。
追加機能
- VRCDN再生機能。配信URLを切り替えてるだけなので音響設定は共通。
- TopazChatはランダムシリアルキー。TopazChat Random Stream Key Supportを一部改変して使用。ワールドはpublic化しTopazで出演者が自由に練習できる。(後述する出演者アンケートの結果では事前にワールドテストしてる方は少数なので、当日のリハ時間は短縮できない。)
- VRCDN、Topazどちらも使用できなくなった時のためにURL入力欄もあってもよいが、他の配信サービスは遅延が大きいので今のところ考えてない。
- android対応のためにビルド環境に合わせたURL自動差し替え。
- 誤操作を防ぐためGlobal Syncは非表示。OnPlayerTriggerEnterで表示。
- MIDIコンにGlobal Resyncを設定すると転換が楽。
- OBSで映像を配信しない演者もいるのでモニターon/off。
見た目の調整
- Resyncボタン
Local Resyncであることを明記し、押す際の不安を解消。アクセスしやすい位置に配置。グルトラは左右のスピーカー。もっとあっていいかも。
みんなが見慣れてるTopazChat Playerのデザインを可能な限り維持。
よくあるトラブル
- 配信中に映像だけが乱れる場合は、出力解像度が許容範囲外になっていないか確認。
TopazChat ランダムシリアルキーはインスタンスごとにランダム生成。たまたま同じキーになって別インスタンスでも視聴される可能性はある。本番はVRCDN。VRCDNの再生権限はjentagawaのみ。
fradolさんの設定を参考にリバーブを追加。
DJエリア
- レベルメーターと映像モニター
配信確認用。 - Local Resync
すぐ押せる位置に配置。
OnPlayerTriggerEnterでLocal表示。
ステージ
- ステージ正面コライダー
on/off切替可能。観客が侵入することは少ない。 - 中央バミリ
つつみちぎりさんのご協力でパーティクルライブ用に中央座標調べてDiscordでみなさんに共有。 - レベルメーター
音声出力確認用。 - ミラー
on/off切替と透明度調整が可能なアバター専用の鏡。 - Local Resync
すぐ押せる位置に配置。 - パーティクル
オーナー権限で使用可能なステージライトなどのパーティクル。主にパーティクルパックを使用。アットホーム感がなくなるんじゃないかと導入を結構悩んだ…。
バミリやミラーなどはステージ上にいる人にlocal表示。
instance owner、jentagawa権限でパーティクル操作。MIDIコンでも操作可能。
ダンサー
- サイファー用のダンスマット
on/off可能なダンスマットを3箇所フロアに配置。各マットに中央バミリとミラー。 - SyncroomやDiscord通話でバックDJ
ダンサーには低遅延で音楽を聞いていただくため、ワールド音声ではなくSyncroomで音を聞いていただく。
海外の方はSyncroomが使えないのでDiscordの通話を使用。Discordの音声調整はすべて切らないとノイズ判定されて相手に正しく音楽が伝わらない。 - 同期オフセット
のりおさんに教えてもらったOBSの機能。観客に対する遅延を減らすため設定。ダンサーさんの動きの方が早い場合は減らす。遅い場合は増やす。最小-950ms。 - 同期のリセット
Syncroomと同期オフセットで揃えたダンサーとワールド音声が時間経過とともにズレてくので、定期的にOBSの配信を再接続してGlobal Syncして同期をリセットする。2曲くらい踊ったら同期リセットするのが理想。
ペインター
- UGraffitiSpray
スプレー音は無効化。ペインターはカラーパレットを多様するので複数スプレーをキャンバス前に配置。ゲストエリアは高画質、ビルは低画質に設定。ペインターの動作が重いとスプレーの出が悪くなるので、人数上限を約60人に制限(グルトラワールドは狭くてプレイヤーが一箇所に集中するため)。 - 同期方法
ペインターさんに撮影してもらったグラフィティをGitHub PagesにアップしてVRCImageDownloaderを使用し、全員が見えるようにする。保存機能にもなるので事前に下書きを描いてイベント前に読み込むことも可能。将来的には、DXT1式 Late joiner 同期対応カメラを導入し、自動同期化を検討中。動作確認はできたのであとは実装のみ…。 - Image Loader Resyncボタン
Global ResyncとLocal Resyncの両方を用意。読み込みステータスの表示で、私の心理的な安心感向上。 - キャンバス
当初は横の廃墟を使用していたが孤立感の緩和のため、より目立つステージ横にキャンバスを配置。 - コライダー
ゲストエリアにはコライダーを設置して上書きを防止。Local on/off。
イベント後ペインターが描いたグラフィティをコンテナ、ビルの壁、廃墟の壁、電車の車体、線路などに転載。無機質だったワールドが生き生きとしてくる。
ぱんだ・ぱんださんが1周年で描いたピース。歴代ペインターの名前入り。泣きました。
その他
- リアルタイムライトはミラーボールのみ。リアルタイムシャドウ不使用。
- ワールド容量は基本30MB以下。
- ミラーボールあり、配信なし、ライブペインティングなしの状態で、Batch 787、SetPass Calls 630。Localの軽量化スイッチ(パーティクル、fog、ワールド内を動いてる電車、QvPen、グラフィティを消すスイッチ)で最軽量化すると、Batch 530、SetPass Calls 420。
- 最適化の工夫
メッシュ、マテリアル、テクスチャを単純にまとめるだけでは不十分。オクルージョンカリングを適切に活用し負荷を軽減。頻繁に使わないオブジェクトは基本非表示でOnPlayerTriggerEnterでon/off管理。フォグやパーティクルで低画質をごまかす。 - MIDIコンでワールドギミックを操作
パーティクルやオブジェクトのon/offやGlobal Resyncの操作。ボタンから指を離したときもmidi note 「on」が発火するのでvelocityをみるように。アバターをOSC操作するよりいろんなことができそう。TouchOSCを先に起動してからVRChatを起動しないとMIDI信号送れない。※いつか別記事にまとめたい。
VRChat OSCを使ってMIDI機器でVRCHATを操作する
MIDIを使ってVRChatのワールドに干渉する
- 出演者用メインエリアへのテレポート機能。
- 頻繁に更新する画像はVRCImageDownloader化。
- ギミック操作の権限管理
ギミックの多くはinstance ownerまたはjentagawaの権限で操作可能に設定。Group/Group+/Group Public/Publicのインスタンスではinstance ownerがfalseを返すため、とかげさんのアドバイスを参考に仮想的なinstance ownerの仕組みを実装。 - Groove Truck Sunday時代の出演者のオリジナルフード。
- 仕事が忙しくないときや、コラボ企画、出演者から持ち込み企画があった際には特別にギミックを追加したり、ワールドを特別仕様に改変。
- ワールドは3種類アップ。本番用、Dev用(特殊なゲストギミックを入れる場合の非公開ワールド)、Back Up用(最低限の同期ギミック。VRChat側で同期の取り扱いのサイレントアプデがあって不具合があった場合のバックアップ用)
- バージョン管理
githubでバージョン管理。PSDファイルなどは対象外にして容量調整。パーティクルライブなどされる方には権限を付与してGitHub Flowで運用。
Using Source Control with the VPM
jentagawaもしくはinstance owner権限のスイッチ類。
持ち運びできる注書き看板やアナウンス用の拡声器。
入場時の注意事項(自戒の念も込めて)。ボタンは読みながらクリックできるよう、近くに寄る必要があるコライダーインタラクトではなく、UIで作ってビームでクリックできるようにする。
一緒にいる時間が長かったり、酒が進むとトラブルが起きやすいので開催時間あまり長くならないようにしている。
出演者アンケートでのご意見からフロアに高低差を作るオブジェクト配置。自然と上に登ったり、後ろに集まって談笑したりしている。
ワールド制作は導線を考えるのがすっごく楽しい。例えば閉店したことをワールドの雰囲気を変えて知らせたり。Jane Fulton SuriのThoughtless Acts?: Observations on Intuitive Design(邦題: 考えなしの行動?)オススメ。
トイレはAFKする場所として配置。以前フルトラッキングが動作したままトイレに行ってしまったことがあるので、なるべくここでAFKしてから行くようにしている。
オリジナルモデル配布中。
ボツ案
- 時計
ペインターのそばに配置していたがVRChatの機能としてメニューを開くと時間が分かるので撤去。 - ロリコライダー
DJブースの高さとアバターの身長をあわせるための土台。OVRや身長設定で対応する形に変更。
※私は右Joystickの押し込みで移動、左Joystickの押し込みでリセットする設定をしています。 - 持ち歩けるオブジェクト
プレイヤーの行動を計測するために設置していたが、出演者の邪魔になる場面が多かったため撤去。 - 楽器類
持参することがほとんどのため撤去。 - ラップサイファーエリア
初回から参加している人は覚えているかもですが、外から音が聞こえない専用エリアを設置していた。サイファー聞きたいというご要望があり音を開放したが心理的なハードルが高いのかサイファーする方がいないため撤去。
なお、Syncroomを使ったオープンマイクスタイルでスクラッチ、ラップ、ダンスサイファー回を実施した際は非常に盛り上がったため、今後うまくやる方法を模索中。
隠し要素
- 実は2つくらいある。ヒントはワープと神社。
運営について
気楽にやりたいので一人で運営してます。
管理ツール
主にDiscordのコミュニティサーバーで管理。ロールの選択を最初にしていただき、ウェルカムページでコンセプトや基本のタイムテーブルを最初に確認いただくようにしている。
配信方法やワールドの仕様など、かなり細かく記載していますが事前に読んでる方は少ない。質問されたときにリンクですぐにご案内するために常時アップデートを心がけている。
アドバイスいただけるのでワールドアップデートやTODOも公開。
翌月の開催日をまとめて一ヶ月前に発表して募集。カレンダーの形でコメント投稿をして、空き枠が一目で分かるようにしている。
告知
月の中旬くらいまでには翌月の出演者が概ね確定し、2週間前には告知画像を出演者にご案内。出演者から修正のご連絡がなければご了承いただいたということで、イベント終了後に翌週の告知画像をXに投稿、VRChatイベントカレンダー、VRChat Club Eventカレンダー、Wonder Noteに登録。
告知画像、タイムテーブルなどは時間短縮のために出演者のロゴや写真は掲載せず、名前だけ書き換える。
毎週水曜日くらいに前の週の様子を今週の開催日を載せて投稿して開催予定をリマインド。
アンケート
イベント終了後に出演者に匿名でアンケートを実施(ほぼ特定できるので匿名の意味なしw)。結果から改善案や今後の運営のヒントをたくさんいただいていますmm。
自動化ツール
一人で運営してるのでルーチーンはなるべく自動化。
- 最初のご案内ジェネレーター
開催日ごとにチャンネルを作成。最初のご挨拶はだいたい定型なので自動化。海外の方もいらっしゃるのでタイムスタンプ形式でタイムテーブルを生成。 - VRChatグループ投稿ジェネレーター
- VRChatグループのロール管理
VRChatのUIが使いづらいので、VRChatのAPIを使って管理。本家よりサクサク動く検索機能(今のところGroupの参加者が少ないので)と最小限の操作でロール付与や削除。
最後に
ブッキングする際にグルトラがどんなコンセプトのイベントでどういった理由で出演のご相談をしているか、できればメリットもお伝えしてます。VRだったとしてもリアルと変わらず準備する時間、当日の拘束時間が発生していることを忘れないように心がけています。また、再度出演のご相談をする際も相手の近況をXなどで追ったり、出演情報やリリース情報を確認するようにしてます。
スケジュールの都合上狙った通りにいくことが少ないですが、この人たち会わせたいな、とか、遊びに来てくれる皆さんこの組み合わせで楽しんでほしいな、ということも考えてブッキングしてます。もちろん私が聞きたい、見たいという気持ちも大事にしてます。
今後ですが、android対応謳っているのにBatch、SetPass Callsが大きいので目指せ二桁で目下改修工事中です(blenderから作り直してます)。理想は出演者がどんな環境下でもサクサク動作することと、動画や写真を撮影してくださるお客さんのツイートをみたときにワールドのギミックが何も省略されてないことです。Quest単機で出演してくださる方もいらっしゃるので軽量化精進します。
以上、長くなりましたが、音楽イベント用のワールドを制作するワールド制作者や音楽イベントを開催するオーガナイザーに少しでも参考になると嬉しいです!
そして今後ともGroove Truckよろしくお願いします!
Groove Truck VRChat Group
Groove Truck公式サイト