[Astro #86] WitchadiusのED無限ループ修正とVOICEVOX(猫使ビィ)によるシステムボイス実装

[Astro #86] WitchadiusのED無限ループ修正とVOICEVOX(猫使ビィ)によるシステムボイス実装

はじめに

本日、自作WebXR STG『Witchadius』のマイナーアップデートを適用しました。 部屋のキャッシュクリア(大掃除)と脳のシステム再起動(断酒)をキックした勢いで、懸案だったエッジケースのバグと、前々からやりたかったシステム音声の配線を一気に終わらせました。

以下、今回のコミットログの裏側です。

1. エンディング後の時限爆弾(無限ループバグのパージ)

POST_ENDING_FLOW_AND_RENDER_FIXED

まずは挙動のデバッグから。 エンディングを無事に迎えた後、タイトルに戻ってリスタートをかけると、なぜかゲームが始まらずに再びエンディングシーケンスが誤爆トリガーされるという、プレイヤーが永遠にWiredから抜け出せなくなる時限爆弾のようなバグを修正しました。

原因はリスタート時のフラグ管理。EDシーケンス終了時のクリーンアップがReactのタイムラインを出し抜けていなかったため、同期的かつ鉄壁のパージ処理へとリファクタリングしています。 ついでに、EDクレジット中に一部の3Dモデルが正しく描画・レンダリングされないグレーゾーンのバグも綺麗にお掃除完了。これでようやく、読後感のいい綺麗な幕引きができるようになりました。

2. 「モータポー」の誘惑と、世界観のデバッグ

フラグが綺麗になったところで、ゲームの「手触り」をプロっぽく、かつ気持ちよくするためにシステムボイス(パワーアップ音声)の追加に着手。

最初は「レトロSTGのあの独特なこもった渋さ」を再現したくて、VOICEVOX(冥鳴ひまり)を使い、テキスト入力側に「モータポー(※オプションの空耳)」や「メサォ(※ミサイルの空耳)」を直接叩き込み、さらにサンプリングレートを8bit/22kHzまで強制ダウンサンプリングするバッチファイルを作ってガサガサに潰してみました。

システム的には完璧に「あの頃のゲーセンの音」になったのですが、いざlocalhostで動かしてみると……

「ゲームの世界観(魔女っ娘ファンタジー)と音が致命的に喧嘩している」

という、音声合成デバッグ特有の壁に衝突。可愛い女の子の声質をただローファイに潰すと、レトロの良さではなく「単にブラウザの音質がバグっている」ように脳が錯覚してしまう。空気感のデバッグの難しさを痛感しました。

3. 「猫使ビィ」へのスイッチと音量1.2の神アジャスト

そこで、プライドを捨てて一瞬で軌道修正。 音声モデルを中性的で少しツンとしたエッジのある「猫使ビィ」ちゃんへスイッチ。文字列も空耳を諦めて正攻法の日本語に戻し、BGMの爆音に負けないようVolumeを 1.2 まで引き上げました。

{
  "id": "SE_PG_OPTION",
  "name": "オプション",
  "file": "/assets/se/猫使ビィ_オプション.mp3",
  "volume": 1.2,
  "creator": "VOICEVOX(猫使ビィ)"
}