⚔️

遊戯王コンボの効率的記述方法

2024/03/15に公開

序論

昨今、遊戯コンボ混迷を極めている。
コンボテキスト記述する際には、次のように書かれている。

例:【マテリアル1キル】《超弩級砲塔列車グスタフ・マックス》使用型 | 遊戯王Wiki

1. 《E・HERO エリクシーラー》を融合召喚して、効果で除外されているカードをデッキに戻す。
2. 《E・HERO エリクシーラー》は地属性としても扱えるのでシャドールモンスターと共に融合素材に使い、《エルシャドール・シェキナーガ》を融合召喚。
3. 《E・HERO エリクシーラー》を融合召喚して、効果で除外されているカードをデッキに戻す。
4. 《E・HERO エリクシーラー》と《エルシャドール・シェキナーガ》で《超弩級砲塔列車グスタフ・マックス》をエクシーズ召喚。
効果で2000ダメージを与えるが、その際エクシーズ素材として取り除くのは《E・HERO エリクシーラー》を使う。
5. 《超弩級砲塔列車グスタフ・マックス》と墓地の《E・HERO エリクシーラー》で《E・HERO ガイア》を融合召喚。
6. 《E・HERO ガイア》と墓地の《エルシャドール・シェキナーガ》で《エルシャドール・シェキナーガ》を融合召喚。
以降、3~6を繰り返す。

このように、記述量は多く、理解に時間を要する。
また、各々が好きなように記述するため、より理解しづらくなっている。
つまり、記述が簡単、読解も簡単、かつ広く普及している、そんな記述方法が存在していない。

本論

1. 慣習的略号を使った記述例

一般的に、+,=, ->などのオペランドを用いる, カード名は略称、効果発動をef、 特殊召喚(Special Summon)をssとするなどして、次のように記述されている。
例:

1. エリクシーラー ss、ef 除外されているカードをデッキに戻す。
2. エリクシーラー + シャドール = シェキナーガ ss。
3. エリクシーラー ss、ef 除外されているカードをデッキに戻す。
4. エリクシーラー + シェキナーガ = グスタフ・マックス ss、ef 2000ダメージを与えるが、その際エクシーズ素材として取り除くのはエリクシーラーを使う。
5. グスタフ・マックス + エリクシーラー = ガイア ss。
6. ガイア + シェキナーガ = シェキナーガ ss。
以降、3~6を繰り返す。

しかし、日本語と記号が混合しているため、読みにくさは残る。
また、カード名省略方法も人によって異なるため、読みづらい。

上記のような記号の定義を一般化する例をまとめた。 (参考: Yugioh!Wiki)

actions_common = ['ef', 'set', 'destroy', 'bounse', 'peep', 'return', 'search', 'survage', 'draw', 'dump_to_grave', 'send_to_grave', 'negate', 'banish', 'target', 'select', 'chain', 'burn']

actions_monster = ['ns', 'fs', 'ss', 'sys', 'fus', 'xs', 'rs', 'ps', 'ef', 'ssef', 'release', 'flip', 'open', 'offensive', 'defensive', 'battle', 'resurrect', 'recruit', 'remove']

turn = ["draw", "standby", "main1", "battle", "main2", "end"]

field = ['main_deck', 'extra_deck', 'side_deck', 'main_zone', 'extra_zone', 'spell_trap_zone', 'field_zone', 'pendulum_zone', 'graveyard', 'hand', 'banished']

一般的ではないが、これらを用いて、さらに略記することができる。

1. エリクシーラー ss, ef return banished -> deck
2. エリクシーラー + シャドール = シェキナーガ ss。
3. エリクシーラー ss, ef return banished -> deck
4. エリクシーラー + シェキナーガ = グスタフ・マックス ss,ef burn 2000, remove エリクシーラー。
5. グスタフ・マックス + エリクシーラー = ガイア ss。
6. ガイア + シェキナーガ = シェキナーガ ss。
以降、3~6を繰り返す。

2. D2を使った記述例

1で定義した略号を用いて、テキストダイアグラムのトレンドである、D2の記法を使って記述できる。 demo

shape: sequence_diagram

# states
hand: {shape: person}
deck: {shape: circle}
field: {shape: circle}
grave: {shape: circle}
banished: {shape: circle}

1: {
  hand -> field: 《E・HERO エリクシーラー》1 fus ef
  banished -> deck: 除外されているカード
}

2: {
  deck -> banished: 《E・HERO エリクシーラー》1
  deck -> banished: 任意のシャドールモンスター
  deck -> field: 《エルシャドール・シェキナーガ》1 fus
}

3: {
  deck -> field: 《E・HERO エリクシーラー》2 fus ef
  banished -> deck: 除外されているカード
}

4: {
  field -> grave: 《E・HERO エリクシーラー》2
  field -> grave: 《エルシャドール・シェキナーガ》1
  deck -> field: 《超弩級砲塔列車グスタフ・マックス》1 ef -2000
  field -> grave: 《E・HERO エリクシーラー》2
}

5: {
  field -> banished: 《超弩級砲塔列車グスタフ・マックス》1
  grave -> banished: 《E・HERO エリクシーラー》2
  deck -> field: 《E・HERO ガイア》1 fus
}

6: {
  field -> banished: 《E・HERO ガイア》1
  field -> banished: 《エルシャドール・シェキナーガ》1
  deck -> field: 《エルシャドール・シェキナーガ》2 fus
}

# loop 1..6

5つの状態(デッキ・手札・場・墓地・除外)の定義、コンボ、の順に記述する。

3. Mermaidを使った記述例

Markdown Mermaidで可視化する方法も考えられる。

sequenceDiagram
    autonumber
    box Player 
    participant Deck as Deck
    participant Hand as Hand
    participant Field as Field
    participant Graveyard as Graveyard
    participant Banished as Banished2
    end
    Note over Deck,Banished: Start
    
    box Opponent 
    participant Deck2 as Deck
    participant Hand2 as Hand
    participant Field2 as Field
    participant Graveyard2 as Graveyard
    participant Banished2 as Banished
    end

    rect gray
    Deck->>Hand: 手札からカードを(1)ドローする (draw)
    activate Hand
    Hand->>Hand: デッキからカードを(1)ドローする
    deactivate Hand

    Hand->>Field: Aを場に出す (ns)
    activate Field
    Hand->>Field: Bを場に出す (ns) 通常召喚
    deactivate Field

    Field->>Graveyard: Bを破壊する (destroy)
    activate Graveyard
    Field->>Graveyard: Bを墓地に送る
    deactivate Graveyard

    Field->>Banished: Cを場から除外する (banish)
    activate Banished
    Graveyard->>Banished: Cを墓地から除外する
    deactivate Banished

    Field->>Deck: 場のカードをデッキに戻す (shuffle)
    activate Deck
    Graveyard->>Deck: 墓地のカードをデッキに戻す
    deactivate Deck

    Banished->>Graveyard: 除外されたカードを墓地に戻す (return)
    activate Deck
    Banished->>Deck: 除外されたカードをデッキに戻す
    deactivate Deck
    end

    rect gray
    Deck2->>Hand2: 手札からカードを(1)ドローする (draw)
    activate Hand2
    Hand2->>Hand2: デッキからカードを(1)ドローする
    deactivate Hand2

    Hand2->>Field2: Aを場に出す (ns)
    activate Field2
    Hand2->>Field2: Bを場に出す (ns) 通常召喚
    deactivate Field2

    Field2->>Graveyard2: Bを破壊する (destroy)
    activate Graveyard2
    Field2->>Graveyard2: Bを墓地に送る
    deactivate Graveyard2

    Field2->>Banished2: Cを場から除外する (banish)
    activate Banished2
    Graveyard2->>Banished2: Cを墓地から除外する
    deactivate Banished2

    Field2->>Deck2: 場のカードをデッキに戻す (shuffle)
    activate Deck2
    Graveyard2->>Deck2: 墓地のカードをデッキに戻す
    deactivate Deck2

    Banished2->>Graveyard2: 除外されたカードを墓地に戻す (return)
    activate Deck2
    Banished2->>Deck2: 除外されたカードをデッキに戻す
    deactivate Deck2
    end
    Note over Deck2,Banished2: End

考察

1の略号定義は、まだ未完成で、遊戯王の細かなルールを魔力掌握できていない。
(例:ダメージステップ, 名称1ターン制限, ...)

表現力を高めるには、さらに細分化した用語定義をつくる必要がある。
しかし、記述しやすさを高めるには、ある程度抽象化を施す必要がある。

適切なラインを見極めるために、ITと遊戯王の双方に精通した熱きデュエリスt・・技術者が求められている(いない)。

Discussion