2026年01月24日 活動日誌

運営

概要

クルクルシューティング

体調不良をきっかけにダラダラとしていたら気づけば24日。1月も残り僅かに。
そのため1月の目標であったストーリ画面の作成を行いました。

ストーリ画面

ストーリ画面ではクルクルシューティングのストーリを表示します。
ストーリ画面に表示する画像やアイコン、テキストの内容はCSVに設定しています。

        // ResourcesからTextAssetとしてロード(WebGL対応)
        TextAsset csvText = Resources.Load(csvFilePath, typeof(TextAsset)) as TextAsset;
        if (csvText == null)
        {
            Debug.LogError("CSV file not found: " + csvFilePath);
            return;
        }

        // CSVSerializerを使ってパース
        storyList = CSVSerializer.Deserialize<StoryData>(csvText.text);

CSVファイルはテキストデータとして読み込んだ後に、CSVSerializerを使用して構造体配列にパースします。
この構造体配列を1行ずつ読み込んで、画面に画像やテキストを表示していきます。

        // 画像をロードして設定(ResourcesからSpriteとしてロード、拡張子なし)
        Sprite storySprite = Resources.Load<Sprite>("Stories/StoryImages/" + data.StoryImage); 
        if (storySprite != null)
        {
            storyImage.sprite = storySprite;
        }
        else
        {
            Debug.LogWarning("StoryImage not found: " + data.StoryImage);
        }

        Sprite iconSprite = Resources.Load<Sprite>("Stories/StoryImages/Icons/" + data.IconImage); 
        if (iconSprite != null)
        {
            iconImage.sprite = iconSprite;
        }
        else
        {
            Debug.LogWarning("IconImage not found: " + data.IconImage);
        }

久々すぎて忘れてましたが、Resources.Loadでファイルを読み込むためにはResourcesフォルダに格納しておく必要があります。
また、拡張子は不要で、拡張子を設定していると逆にちゃんと読み込んでくれません。

あとは、ストーリ画面に表示する画像やアイコンを作成します。
ほとんどは結構前から描いていたので、昨日、最期の画像を作成。

アイコンも同じように作成。ナレーション用の「ナ」が良い感じに描けなくて苦労しました。
とりあえず妥協点ということで。

そんなこんなで基礎部分は何とか完成。
文字は1文字ずつ順番に表示される感じに。
あとは、スキップボタンでのスキップとか終わった後にストーリモードに戻ったりの処理です。
効果音とかBGMも付けた方が良いかも。

ステージ選択処理

ステージ選択画面からストーリ画面を表示できるようにするよう改修中です。
合わせて、ステージ解放機能も追加していこうかなと思います。
ステージ解放をどうするのが良いか考えてGrokにも相談しましたが、
Cleared_+ステージIDをキーにしたフラグをPlayerPrefsで永続管理するのが良さそうです。

クリア時に

PlayerPrefs.SetInt("Cleared_" + stageID, 1); PlayerPrefs.Save();

このフラグをみてステージ選択可否の制御していきます。

1月の作業内容

作業実績を更新していなかった1月の作業内容として

  • APIのソース構成と管理
    何とかソース構成が決まって格納。
    バージョン管理とか共通部品はどうするかとかで悩んでいました。
  • ユーザー管理方法の検討
    ユーザー情報をどう管理するのか検討していました。
    ユーザーIDをローカルに持たせておきたかったのですが
    ユーザーIDの改竄や盗聴のリスクを考慮し
    HttpOnly Cookieやリフレッシュトークンを使用する予定です。
  • ユーザーのプレイデータの蓄積
    ユーザーのプレイデータを蓄積するための仕組みづくり。
    各ユーザーのステージ毎のプレイ回数やクリア回数などを蓄積
    リザルト画面で確認が出来たり、全体の傾向を把握出来たりするための
    下準備。
    ユーザー管理の検討で実際の作業はストップ
  • 新規ゲームの検討・企画
    新規ゲームの検討や企画を行っていました。
    ゲームの企画自体は楽しいんですが、実現性を考えると
    単なる趣味の妄想でしかないなぁと感じています。
    なんとか実現させてみたいとこですが…。
    また別途記事を作って紹介したいと思います。

明日の予定

午前中や夕方から用事があるので大したことは出来ませんが、
ステージ選択画面からストーリ画面を表示するところまでは進めたいです。

コメント

タイトルとURLをコピーしました