Ch99.1: Your own event map support
怠け者の開発者は、イベントサポートの更新に時間がかかりすぎる。
自分でイベント更新パックを作ってみてはどうでしょう?
付録 ‐‐ イベント海域のサポートを作成する
警告: kcauto の Python 環境を持っていない場合、独自の更新パックを作成することはほぼ不可能です(kcauto/kca_enums/nodes.py にアクセスできないため)。
(2025/11/12 の更新によりノード定義が data/combat/map_enum.json に分離されたため、通常ユーザーにとっても、このガイドは使えるはずです。)
以下の 3 つをアップデートする必要があります:
- アセット (
assets/combat/_event_next_page_<X>.pngおよびassets/combat/_event_world_E-<X>.png) - マップデータ (
data/combat/E-<X>.json) - ノード (
data/combat/map_enum.json)
アセット (Assets)
アセットについては、マップアイコンの参照画像をキャプチャする必要があります。
元画像:
ターゲット:
また、次ページボタンも必要です。
元画像:

ターゲット:

次に、assets/combat/_event_next_page_<X>.png および assets/combat/_event_world_E-<X>.png のファイルを置き換えます。
マップデータ (Map data)
kcauto が戦闘と基地航空隊を処理できるように、マップデータを設定する必要があります。
まずは、マップ画像を用意します。
個人的には 艦これ Wiki から取得しています。
スケーリングされていない画像が必要なので、使用するソースには注意してください。
信頼できるマップ画像の入手先
ミニツール tool/map/mapCoorUpdater.py がマップデータの作成を補助します。この Python ツールの必要ライブラリは tool/map/mapCoorUpdaterRequirement.txt にリストされています。
ツールを実行すると、KC3 のソースコード から最新のマップエッジデータを取得します。
KC3 がイベントマップデータを更新した後にこれを行うようにしてください。
マップ座標アップデーター
基本情報を入力し終えたら、各ノードの座標を定義する必要があります(参照:issue#20 および discussion#71):
- マップの左上をクリックします。
- ツールのガイドに従い、必要に応じてノードタイプを設定します。
キーを押してください:o:オプションノードa:対空ノードs:対潜ノードb:ボスノード
- 各ノードをクリックします。
ノード C をオプションノードとして設定
画像上のクリック位置
E-4.json の設定が完了した mapCoorUpdater
ノード (Nodes)
kcauto が処理できるように、すべてのノードは data/combat/map_enum.json に定義されています。
ただし、新しく更新されたノードをファイルに手動で追加する必要はありません。
tool/map/maps_generater.py を実行すると tool/map/map_enum.json が生成されます。
その後、data/combat/map_enum.json を tool/map/map_enum.json で置き換えてください。
マップデータのデバッグ
E-X.json ファイルをデバッグする必要がある場合に備えて、古い E-5.json を見てみましょう。マップデータはマップ内のノード、エッジ、敵のタイプを定義します。
{
"world": "E", // イベントマップ
"subworld": 5, // 第 5 海域
"panel": 1, // 1 番目のパネル(上側)に配置。例:E1〜E3 がすべて 1 ページ目にある場合に必要
"page": 3, // 3 ページ目に配置
"enemy_context": [ // このマップに出現する敵のタイプ。任務モジュールにデータを提供
"subs",
"carriers",
"transports"
],
"nodes": { // すべてのノードの座標。ゲームウィンドウ(ブラウザや画面ではなく)の左上からのオフセット
"A": {
"coords": [
157,
273
]
},
...
...
"L2": {
"coords": [
775,
424
]
}
},
"edges": { // すべてのノード間のエッジ。艦これの API で定義されている
"1": [
"Start 1",
"A"
],
...
...
"37": [
"V",
"U"
]
}
}