デッキエディタ開発記録 vol.14 – MTG Arenaの仕様

今回はアリーナことMTG Arenaのインポート/エクスポートの仕様について調べて行きます。
今Arenaは非常にテコ入れされてて業界的にもかなりアツいし、日本語対応もやっぱり新規参入の敷居を大きく下げたと思うので、対応するなら今でしょ!って事で(※遅い気もするけどw)
私自身、ちょっとアリーナからは離れていたので、日本語対応されてから初めての起動となります。
早速設定で言語を日本語にしてデッキ一覧を、
おおう…。
なんか、なんて言うか、なんでもないけど。
まぁ好みの問題ですね!
さて、デッキをクリックして画面下部の「エクスポート」をクリックすると、こんな画面が出ました。
これOK押しちゃうとクリップボードが空になる(※ゴミが残らんようにとの親切設計なんだけど)ので、表示したままテキストエディタとかに貼り付けましょう。
で、こちらが貼り付けたリストデータ。
2 本(ほん)質(しつ)の散(さん)乱(らん) (M19) 54
4 島(しま) (RIX) 193
1 ドミナリアの英(えい)雄(ゆう)、テフェリー (DAR) GR6
4 平(へい)地(ち) (RIX) 192
2 曲(ま)がりくねる川(かわ) (M19) 253
2 否(ひ)認(にん) (RIX) 44
4 悪(あく)意(い)ある妨(ぼう)害(がい) (GRN) 54
2 進(しん)化(か)する未(み)開(かい)地(ち) (RIX) 186
2 湿(しめ)った墓(はか) (GRN) 259
1 探(たん)知(ち)の塔(とう) (M19) 249
2 水(すい)没(ぼつ)した地(ち)下(か)墓(ぼ)地(ち) (XLN) 253
1 凶(きょう)兆(ちょう)艦(かん)隊(たい)の毒(どく)殺(さつ)者(しゃ) (RIX) 68
2 貪(どん)欲(よく)なチュパカブラ (RIX) 82
2 氷(ひょう)河(が)の城(じょう)砦(さい) (XLN) 255
5 沼(ぬま) (XLN) 269
1 残(ざん)骸(がい)の漂(ひょう)着(ちゃく) (XLN) 34
1 孤(こ)立(りつ)した礼(れい)拝(はい)堂(どう) (DAR) 241
2 一(いっ)瞬(しゅん) (DAR) 46
1 ヴラスカの侮(ぶ)辱(じょく) (XLN) 129
2 ドミナリアの英(えい)雄(ゆう)、テフェリー (DAR) 207
3 薬(やく)術(じゅつ)師(し)の眼(がん)識(しき) (GRN) 32
2 浄(じょう)化(か)の輝(かがや)き (M19) 9
2 黎(れい)明(めい)をもたらす者(もの)ライラ (DAR) 26
3 悔(かい)恨(こん)する僧(そう)侶(りょ) (M19) 33
2 スランの崩(ほう)落(らく) (DAR) 18
1 イクサランの束(そく)縛(ばく) (XLN) 17
1 世(せ)界(かい)のるつぼ (M19) 229
3 思(し)考(こう)消(しょう)去(きょ) (GRN) 206
2 神(しん)聖(せい)の発(はつ)動(どう) (M19) 16
3 封(ふう)じ込(こ)め (DAR) 31
1 スランの崩(ほう)落(らく) (DAR) 18
1 一(いっ)瞬(しゅん) (DAR) 46
1 任(にん)務(む)説(せつ)明(めい) (GRN) 44
1 アズカンタの探(たん)索(さく) (XLN) 74
2 強(きょう)迫(はく) (M19) 94
1 喪(そう)心(しん) (DAR) 81
3 最(さい)古(こ)再(さい)誕(たん) (DAR) 90
うわぁ…。
これ、ルビ文字は要らないんじゃないかな!
フィードバックにご意見送っておく事にします、誰も得しない感が凄い。
いや、単純に物凄く読みづらい。
この出力方式はhtmlのソレと同じなので、XMLで管理してる感じなのかな(多分)
スランの崩落
スランの崩落
この二つは全く同じタグで書いてます、前者がhtml表示で後者がプレーン表示。
ここはどうでも良いとこだけど。
ここから読み取れるもの
では解析して行きましょう。
まず、どう見てもわかる事は「名前部分は必要無い」ってとこですね!
DBから引っこ抜くためのユニークなキーは半角スペースで分割した後ろ二つの要素、頭1つはカードの枚数でほぼ確定でしょう。
つまり、セットのコードとカードナンバーの組み合わせをインデックスとして持っておくと良さそうです。
ワンチャン後ろ二つが矛盾する時にカード名を参照している可能性がありますが…そうするならカード名は英語表記に統一するか、最悪ルビ文字無しの日本語名にしますね(※勿論私なら、ですが。)
あれ?簡単やん??
と、思ったのですが見慣れない3文字が目に付きます。
2 黎(れい)明(めい)をもたらす者(もの)ライラ (DAR) 26
やべぇDARって何。
ここ最近嬉々として公式APIを叩きまくっていた私は基本セット~全エキスパンション、殆どのセットコードは覚えておる訳です。
ドミナリアはDOMであると、しかと覚えておる訳です。
え、なに?もしかしてアクセント付けるとか??
Dominaria
何これ怖い。
いや、そもそもM19とかXLNとかGRNとかは普通じゃん。
念のため公式APIにDARでリクエスト投げて見たけど、当然該当無し。
まさか公式に使われてるセットコードとは違う物が使われているのでは?と途端に不安になりつつも、表記の法則性を探ります。
30秒ほどでヒントを発見、リスト上から見れば良かった。
1 ドミナリアの英(えい)雄(ゆう)、テフェリー (DAR) GR6
うむ、この「GR6」は知ってますよ!
stdClass Object (
[name] => Teferi, Hero of Dominaria
[names] => Array
(
)
[manaCost] => {3}{W}{U}
[cmc] => 5
/* 中略 */
[rarity] => Mythic
[set] => MED
[setName] => Mythic Edition
/* 中略 */
[number] => GR6
/* 中略 */
[id] => 07295596-988f-5b4d-b766-92809e90740c
)
ズバリ《Guilds of Ravnica Mythic Edition》のナンバリングルールです。
こいつね、Closed Betaでなんか突然配布された謎の太っ腹プレゼント。
んー、これはひょっとしてアレかな。
違うエディションのカード入れちゃったけど、一つのエキスパンションにしたいから
Dominaria and Ravnica Mythic Edition
的な事にしたかったとか…?
いや、そうなるとラルとヴラスカが入っているのに「GRN」と普通のセットコードなのは変だしなぁ(混乱)
うん、
そう言うもんだと思う事にしよう!
取りあえず考えてみて「考えても分からん」と言う事が分かったら、スパッと切り替えるのがオモチャを作るコツです(適当)
雑なまとめ
この後他のスタンで使えるセットのコードや、分割カードはどうなのかとかを調べて見た。
- イクサラン → XLN
- イクサランの相克 → RIX
- ドミナリア → DAR(謎)
- ラヴニカのギルド → GRN
- 基本セット2019 → M19
- ラブニカの献身 → RNA
- 分割カード → 「 /// 」(※半角のスペース・スラッシュ・スラッシュ・スラッシュ・スペース)で区切られて両方の名前が表示
- 両面カード → 表面の名前だけ表示
まぁこんなとこでしょう、これで要件は満たしているはず。
ナンバーに「GR」が含まれている時はMythic Editoinを参照すると言う注意点があるのを忘れずに、って感じですね。(※献身のMythic Editionにもカーンとかドムリとか居たと思うので。)
そしてエディタにもMythic Editoinを実装しなきゃ行けないって事になる、と…w
ディスカッション
ピンバック & トラックバック一覧
[…] 前回、日本語で出したリストが気持ち悪い! […]