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

2019年2月28日

今回はアリーナこと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であると、しかと覚えておる訳です。

え、なに?もしかしてアクセント付けるとか??

 

Dominォミヌarアァリiaィア

 

何これ怖い。

 

いや、そもそも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

雑談

Posted by theuri