Skip to content

新規キャラクター追加手順

新規キャラクターを追加する際は、以下のステップに従って更新を行ってください。

1. キャラクターデータベースへの登録

以下のJSONファイルに新規キャラクターの情報を追加します。

  • ファイルパス: reseponses/characters_by_rolecode.json

追加フォーマット

既存のID(連番)に続く形で新しいキー作成し、以下の情報を入力してください。

json
  "次の連番ID": {
    "roleId": ゲーム内のRoleID,
    "roleCode": "ゲーム内のRoleCode(通常は連番IDと同じ文字列)",
    "name_jp": "日本語名",
    "cost": コスト数値(例: 2 2.5,
    "img_jp": "画像のURL(あれば)",
    "avatar": "アバター画像のURL(あれば)",
    "name_en": "英語名(画像ファイル名とのマッチングに使用)"
  }

NOTE

name_en は重要です。後述する画像ファイルのマッチングに使用されます。

2. 画像ファイルの配置

キャラクターの画像をコスト別のディレクトリに配置します。

  • ディレクトリ: public/images/starward/{cost}/
    • {cost}15, 20, 25, 30 のいずれかです(コスト1.5なら 15、2.0なら 20)。

画像ファイル名のルール

基本的には name_en と同じ名前(小文字推奨) のPNGファイルとして保存してください。 例: name_en が "Haruka" なら haruka.png を配置。

3. 画像インポート定義の更新

画像を配置したら、以下のスクリプトを実行して src/utils/imageImports.ts を更新します。 これにより、アプリケーションが新しい画像を認識できるようになります。

bash
node scripts/generate-image-imports.cjs

4. エイリアスの設定(画像が認識されない場合)

画像ファイル名と name_en が一致していても、特殊文字が含まれる場合などで正しく認識されないことがあります。 その場合は、以下のファイルにある nameAliases にマッピングを追加してください。

  • ファイルパス: src/utils/logAnalyzer/CharacterService.ts
typescript
  // 画像名とDB名の不一致を解決するためのエイリアスマップ
  private nameAliases: Record<string, string> = {
    // ...既存のエントリ
    'normalized_db_name': 'actual_image_name', // 例: 'katarina': 'katarina'
  };

normalized_db_name は、name_en を小文字化し、記号(, -, スペースなど)を削除したものです。

確認事項

  • アプリケーションを再起動(yarn dev:electron 等)して、新規キャラクターが表示されるか確認してください。
  • ログ解析画面などで正しく名前と画像が紐づいているかチェックしてください。