[Astro #97] LAYER FIGHTER: クレジットにステージ情報を反映
概要
LAYER FIGHTERのエンディングクレジットに、ステージの3Dモデル情報が表示されていなかった問題を修正。原因は単純で、FTGCreditSequence.tsxがAssets.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