SIMPLE VRシリーズ Vol.2 THE DANMAKU(仮) 2026/06/18


概要

SIMPLE VRシリーズ Vol.2 THE DANMAKU(仮) の試作版を 0 から組み立て、あわせて今後の派生で使い回せる sync / save / score / audio の共通部品も切り出したうえで、2026年6月18日 に公開しました。


変更点

プロトタイプ実装

  • 0 から STG 試作を組み立てました
    • glyph + DataTexture ベースで playfield を描き、Desktop / VR の両方で弾幕 STG として触れる最小構成を先に作りました。
    • STARTRESTARTENDLESSBOMB まわりの入口を揃え、試作として一通り遊べる流れを先に成立させました。
  • STG 用の画面構成を builder から再生成できるようにしました
    • STGShaderPrototypeBuilder を入口にして、Canvas_FieldCanvas_StatusCanvas_DemoCanvas_ControlsCanvas_ScoreBoardCanvas_Debug の配線をまとめました。
    • scene を手で作り込むより先に、壊れても組み直せる shell と wiring を用意して、調整を回しやすい形にしています。

共通部品化

  • ゲーム本体と共通システムを分離しました
    • ゲーム本体は StgShaderPrototypeUdon に寄せつつ、進行同期は StageSessionSync、boss 状態は BossStateSync、参加者状態は PlayerRosterSync、結果表示は ResultSync、ランキングは STGScoreboardSync、保存は STGSaveSystem、音まわりは STGAudioSystem に切り出しました。
    • 「1 Behaviour は 1 つの主要責務に寄せる」という形にして、あとから別の試作へ持ち出しやすい層を先に固めました。
  • Rogue 側の方針を STG 側へ持ち込みました
    • 文字列は同期せず、score / seed / wave / phase のような numeric data だけを同期し、表示文は各クライアントで組み立てる構成にしました。
    • 自機位置、弾 1 発ごとの座標、細かい演出はローカル処理のまま残し、共通化しすぎて重くならない境界を意識しています。

公開

  • 試作版を公開しました
    • ワールド名を SIMPLE VRシリーズ Vol.2 THE DANMAKU(仮) として公開しました。
    • 公開ページ: https://vrchat.com/home/world/wrld_68b226ac-5d45-49f3-986f-fcad070c45ad/info

修正

  • ローカルベスト保存の前提を揃えました
    • 原因: PlayerDataOnPlayerRestored 前に扱えず、保存対象 Behaviour 側に VRCEnablePersistence が無いと永続化の入口も揃いませんでした。
    • 対応: STGSaveSystemOnPlayerRestored(local) 後だけ save / load する形にし、builder 側でも STGSaveSystemVRCEnablePersistence を自動付与するようにしました。

設計メモ

  • まず 0 から 1 本通して遊べる STG を作り、その後で共通化する順にしました
    • 最初から抽象化しすぎず、試作を成立させたあとで score / save / sync / audio のような再利用しやすい層だけを切り出す方針にしました。
    • そのため今回の共通化は「全部を共有化する」のではなく、「次のシリーズでも困りやすい部品を先に独立させる」ことを重視しています。

次に確認すること

  • BossStateSync の owner authoritative 化はまだ途中です。
  • PlayerRosterSync の state を UI 表示へつなぐ余地があります。
  • STGAudioSystem には実音源の追加と発音間引きの整理が残っています。

vrchat udonsharp unity gamedev devlog