[Astro #97] LAYER FIGHTER: クレジットにステージ情報を反映

[Astro #97] LAYER FIGHTER: クレジットにステージ情報を反映

概要

LAYER FIGHTERのエンディングクレジットに、ステージの3Dモデル情報が表示されていなかった問題を修正。原因は単純で、FTGCreditSequence.tsxAssets.jsonからstagesキーを読もうとしていたが、ステージデータは別ファイルStages.jsonに定義されていたため、該当データが存在せずスキップされていた。

修正内容

変更は2箇所のみ。

1. import追加

  import assets from './data/Assets.json';
+ import stages from './data/Stages.json';

2. forEachのデータソース変更

- (assets as any).stages?.forEach((s: any) => {
+ stages.forEach((s: any) => {

as anyのキャストも不要になり、型的にもクリーンになった。

結果

5ステージ分のクレジットが正常に表示されるようになった。

  • Sci-fi Fighting — Creator: Umar
  • Lava Fighting Arena — Creator: Umar
  • Mitaiken Horizon Llsifas — Creator: tspmosybau
  • Hikari LLSIFAS — Creator: tspmosybau
  • yume utaou llsifas — Creator: tspmosybau

各ステージのGLBモデルがオートローテーションで表示され、クリエイター名・ライセンス・Sketchfab URLが併記される。

残作業

  • クレジット表示時のスケール・座標の微調整(edScale, edPosition, edRotation
  • 一部ステージのモデルがカメラに対して大きすぎる/小さすぎる可能性

所感

1年2ヶ月、土日も盆正月も休まず開発を続けてきたが、今回のスランプは深刻。コードを書く気力がまるで出ない。今日できたのはこの修正だけ。import1行とforEachのソース変更1行。アホみたいな更新だが、動作テスト中に「ステージのクレジットが出てない」と気づいて、それだけは直した。

料理で一番重要な道具は何か。包丁ではなく、ぞうきん。掃除に始まって掃除に終わる。開発も同じで、足元の掃除から始まる。今日やったのはそういう類の仕事だった。


Tags: #WebXR #React Three Fiber #格闘ゲーム #Quest3 #TypeScript