Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
「艦載機厨」氏の各種ツールにおけるデータフォーマットを真面目に解説してみました

概要

  • 記録可能な情報は次の通り
    • 鎮守府の司令部レベル
    • 艦娘のID(全ての艦娘を一意に表せる)
    • 艦娘のレベル
    • 艦娘の運(デフォルト値は-1)
    • 装備のID(全ての装備を一意に表せる)
    • 装備の装備改修度(0~10)
    • 装備の艦載機熟練度(0~7)
  • JSON形式で記録されている
  • 読み込みエラーが起きた際は、デフォルトで初期値(艦隊数0の何もない状態)になる

各項目について

キー(/は連想配列のネストを表す) 値の種類 意味 備考
version 数字 データのバージョン表記 現在は4だが、かつては3だった
hqlv 数字 司令部レベル 端折ってもいい
f1からf4 連想配列 第1艦隊~第4艦隊 飛ばされている場合は、当該艦隊が存在しない
f*/s1からs6 連想配列 1番艦~6番艦 飛ばされている場合は、当該艦が存在しない
f*/s*/id 数字文字列 艦船ID 何故文字列にした
f*/s*/lv 数字 レベル
f*/s*/luck 数字 -1だと、当該艦のデフォルト値になる
f*/s*/items 連想配列 装備
f*/s*/items/i1からi4、ix 連想配列 装備 飛ばされている場合は……(以下備考欄)
f*/s*/items/i*/id 数字 装備ID こちらは文字列ではない
f*/s*/items/i*/rf 数字 装備改修度
f*/s*/items/i*/mas 数字文字列 艦載機熟練度 こちらは文字列である

備考

  • 「http://kancolle-calc.net/deckbuilder.html?predeck={JSONクエリ}」といった形で投げると自動で展開されて表示される
    • ただし、前述のようにデコードに失敗するとデフォルト値になる
    • この時、JSONクエリはJavascriptのencodeURIComponentかそれに準ずる形で変換しておくこと
  • 司令部レベルを表す「hqlv」はpredeckでインポートする際に画面上に反映されるだけなので注意
    • つまり画面上で司令部レベルを弄ってもJSON側に影響はない
  • 艦隊を表す「f*」は数字の順序で入っているとは限らず、また「s*」に対応する値が「{}」と空っぽなこともあるので注意
    • 他の項目も推して知るべし。備えよう
  • 艦船IDで文字列云々を書いたが、別に数字で入力しても普通に認識するので注意
  • レベルを表す「lv」は、入力欄に入力することををサボると「0」と記録されるので注意
  • 運を表す「luck」は、画面下の夜戦タブからでないと入力できないので注意
  • 装備の有無を表す「i*」は、「ixは拡張スロット」という作者の言葉を鵜呑みにするとエライ目に遭うので注意
    • 例えば4スロ艦の「補強増設」欄に装備を入れると「ix」だが、3スロ艦だとなぜか「i4」になる
    • つまり3スロ艦以下は、「i(スロット数+1)」が補強増設となる。自前でDBを用意して備えよう
  • 艦載機熟練度を表す「mas」は、艦載機じゃない装備については当該キーが存在しないようになっているので注意
    • 装備改修度を表す「rf」は必ず存在する……と思いきや、本家インポーターでは省いても問題なく読み込める
  • 装備IDは図鑑番号と一致するが艦船IDはそうではない。どうやって調べるかはお察しください

記述例

{"version":4,"hqlv":113,"f1":{"s1":{"id":"277","lv":142,"luck":59,"items":{"ix":{"id":72,"rf":"6"},"i3":{"id":157,"rf":"10","mas":7},"i1":{"id":144,"rf":0,"mas":7},"i4":{"id":108,"rf":0},"i2":{"id":144,"rf":0,"mas":7}}},"s2":{"id":"429","lv":99,"luck":-1,"items":{"i1":{"id":94,"rf":0,"mas":7},"i4":{"id":134,"rf":"10"},"i2":{"id":100,"rf":0,"mas":7},"i3":{"id":189,"rf":0,"mas":7}}},"s3":{"id":"282","lv":99,"luck":-1,"items":{"ix":{"id":43,"rf":0},"i4":{"id":54,"rf":0,"mas":7},"i1":{"id":110,"rf":0,"mas":7},"i2":{"id":110,"rf":0,"mas":7},"i3":{"id":22,"rf":0,"mas":7}}}}}

上記の記述は、下記の記述と同じ意味である。

(1)赤城改 Lv142 天山一二型(村田隊)>>,天山一二型(村田隊)>>,零式艦戦53型(岩本隊)>>★10,熟練艦載機整備員,増設バルジ(中型艦)★6
(2)天城改 Lv99 天山一二型(友永隊)>>,彗星(江草隊)>>,Re.2005 改>>,OTO 152mm三連装速射砲★10
(3)祥鳳改 Lv99 烈風(六〇一空)>>,烈風(六〇一空)>>,烈風>>,彩雲>>,応急修理女神

概要

  • 記録可能な情報は次の通り
    • 各艦娘について、その練度・改造段階を含めて記録できる
    • 同一の艦に含まれる場合でも複数隻登録可能
  • 入力する際は、所持艦のレベルをカンマ区切りで入力する
    • レベル毎に形態が自動で変化するが、あえて未改造にしたい場合は小数点以下の数字で区別する
    • 例えばレベル20で改造する艦をあえて未改造でレベル99にした場合は「99.1」となる
    • 龍鳳改や呂500やBismarck dreiは「.3」、改二甲/乙/丁は「.4」、千歳型航改二は「.6」となる

データフォーマット

  • BNFで書くとこんな感じ
<data> ::= ".2" <list>
<list> ::= <token> | <token> <list>
<token> ::= "|" <kammusu>
<kammusu> ::= <id> ":" <levels>
<levels> ::= <level> | <level> "," <levels>
<level> ::= <level_number> | <level_number> "." <rank>
  • <id>は艦船ID。デッキビルダーのそれと意味は同じ
    • ただし前述のように改造段階<rank>があるので、改造段階の初めの艦のものしか <id>に使われない
  • <level>が"0"だけならば、当該艦はリスト中に存在してない扱いになる
  • <rank>の早見表を以下に示す**(上から判定すること)**
条件 <rank>
未所持 0
○○航改二 6
○○航改 5
○○航・○○ drei・○○改二甲/乙/丁 4
龍鳳改・呂500・Верный・○○甲・○○ due・○○ zwei 3
○○改二 3
龍鳳・Italia 2
○○改 2
○○(無印) 1

記述例

.2|83:1,100.1,142|24:99.1|25:99.2,99.3|101:0

上記の記述は、下記の記述と同じ意味である。

・赤城改(Lv.142)
・赤城(Lv.1とLv.100)
・大井(Lv.99)
・北上改(Lv.99)
・北上改二(Lv.99)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment