ポケモン第二世代対戦シミュレータ「ジムリーダーの城」の対戦考察Wikiです。各所に散らばった考察をまとめ上げ、より考察を深めます。

Pokemon Showdown!のTeam Builderのテキストの仕様について解説します。
開発者向け情報です。

Team Builderのテキストとは

Team BuilderはGUIで視覚的にパーティを作成することができるツールですが、データはテキスト形式で保持されます。
保持されたテキストデータは「Backup/Restre all teams」ボタンを押下することで表示することができます。


また、「Backup/Restre all teams」ボタンを押下して表示されたテキストを編集し「Save」ボタンを押下することで、編集内容を反映させることができます。

テキストサンプル

サンプルは以下の通りです。
=== [gen2nintendocup2000] Wiki版_HTCカビブラ ===

TeamBoss (Snorlax) (M) @ Leftovers  
Ability: none  
Level: 55  
- Double-Edge  
- Curse  
- Sleep Talk  
- Rest  

Steelix (M) @ Gold Berry  
Ability: none  
Level: 50  
EVs: 252 HP / 252 Atk / 252 Def / 252 SpA / 252 SpD / 212 Spe  
- Earthquake  
- Curse  
- Roar  
- Explosion  

Machamp (M) @ Scope Lens  
Ability: none  
Level: 50  
- Cross Chop  
- Rock Slide  
- Sleep Talk  
- Rest  

Starmie @ Mystic Water  
Ability: none  
Level: 50  
EVs: 252 HP / 252 Def / 252 SpA / 252 SpD / 252 Spe  
IVs: 2 Atk  
- Hydro Pump  
- Ice Beam  
- Reflect  
- Recover  

Zapdos @ Mint Berry  
Ability: none  
Level: 50  
- Thunder  
- Drill Peck  
- Reflect  
- Rest  

Umbreon (F) @ Miracle Berry  
Ability: none  
Level: 50  
Happiness: 0  
EVs: 252 HP / 252 Def / 252 SpA / 252 SpD / 252 Spe  
IVs: 2 Atk  
- Mean Look  
- Charm  
- Pursuit  
- Baton Pass  



なお、上記のサンプルで1つのパーティを表現しており、サンプルと同等の形式のテキストを下部に繋げることで2つ以上のパーティを表現することも可能です。

テキストの詳細

ここでは、1つのパーティを示す箇所について、最初の2行を「ヘッダー部」、最後の1行を「トレーラー部」、それ以外の行を「データ部」と呼びます。

ヘッダー部

パーティの開始を示します。
ルール名・パーティ名の行(必須)
  • レコード種別(必須)
    • "=== ["固定です。
  • ルール名(必須)
    • ニンテンドウカップ2000の場合、ポケスタ環境準拠の場合は"gen2nintendocup2000"、GB・VC環境準拠の場合は"gen2ou"を入力します。
  • 区切り文字(必須)
    • "] "固定です。
  • パーティ名(必須)
    • 任意の文字列でパーティ名を記述します。この文字列には、空白、角括弧、イコールが許容されます。更に、他のパーティとの重複可、空文字可です。ただし、nul文字のような一部のバイナリ文字は許容されません。スラッシュも許容されません。
      • 空白と角括弧、イコールが許容されるため、読み取りプログラムを自力で実装する場合、前述のレコード種別・ルール名や後述のレコード終了と区別するために実装上の工夫が必要です。
      • 実装例:前から順番に読み取り、前半5文字は無視、"文字列] "はルール名として解釈("] "が出現した時点でルール名として判定)、以降は全てパーティ名として解釈するが、最後の4文字はレコード終了を示すため除外。
  • レコード終了(必須)
    • " ==="固定です。
区切り行(必須)
空文字とします。
(改行コードのみ)

データ部

以下の組み合わせにより1匹のポケモンを示します。
ニンテンドウカップ2000のルール上、使用可能なポケモンは6匹のため、以下の組み合わせを6つ繋げることになります。
ニックネーム・種族名・性別・持ち物名の行(必須)
  • ニックネーム(必須)
    • ニックネームを記述します。種族名の後ろに1バイト空白を入れてください。
    • ニックネームは1〜18文字の文字列で記述します。この文字列には、空白、丸括弧、アットマークが許容されます(ただし、これらの文字の入れ方によってはPokemon Showdown!で正しく読み取れなくなる可能性があるので、使わない方が無難です)。また、マルチバイト文字も許容されます。ただし、nul文字のような一部のバイナリ文字は許容されません。
      • 空白と丸括弧とアットマークが許容されるため、読み取りプログラムを自力で実装する場合、後述の種族名や性別や持ち物名と区別するために実装上の工夫が必要です。
      • 実装例:性別は種族+個体値から導出できるため無視。後ろから順番に読み取り、"@ 文字列 "は持ち物として解釈(後ろから順番に解釈し、")"が出現する前の"@"は持ち物として解釈する)(これを読み取るか")"が出現するかしたら以降は種族名若しくはニックネームとして解釈)、"(文字列) "は種族名として解釈(文字列が種族名を示さない場合は無視)(これを読み取ったら以降はニックネームとして解釈)、文頭"文字列 "はニックネームとして解釈(この時点で種族名がセットされていない場合は種族名としても解釈)する。
  • 種族名(任意)
    • 種族名を記述します。種族名の前に"("、後ろに") "を入れてください。
    • ニックネームと種族名が同一の場合はこの項目は省略され、ニックネームが種族名として解釈されます。
    • 第二世代で記述可能な種族名の一覧はこちらを参照してください。
  • 性別(任意)
    • 性別を記述します。♂の場合は"(M) "、♀の場合は"(F) "を記述します。
    • 省略された場合は性別不明となります。
  • 持ち物名(任意)
    • "@ "を記述した後に持ち物名を記述し、持ち物名の後ろに1バイト空白を入れてください。
    • 第二世代で記述可能な持ち物名の一覧はこちらを参照してください。
    • 省略された場合は持ち物無しとなります。
  • レコード終了(必須)
    • 1バイトの空白を入れてください。
特性名の行(必須)
第二世代の場合は"Ability: none "固定であり、更に後ろに1バイトの空白を繋げます。
(一応、英語で特性名を記述できますが、第二世代の対戦では無視されます)
レベルの行(任意)
行が省略された場合はレベル100と解釈されます。
  • レコード種別(必須)
    • "Level: "固定です。
  • レベル(必須)
    • 第二世代の場合はレベルを2〜100の範囲で記述してください。レベルの後ろに1バイト空白を入れてください。
  • レコード終了(必須)
    • 1バイトの空白を入れてください。
懐き度の行(任意)
行が省略された場合は懐き度255と解釈されます。
  • レコード種別(必須)
    • "Happiness: "固定です。
  • 懐き度(必須)
    • 0〜255の範囲で記述してください。懐き度の後ろに1バイト空白を入れてください。
  • レコード終了(必須)
    • 1バイトの空白を入れてください。
努力レベルの行(任意)
0〜252の範囲で記述します。第二世代の場合は1/4(小数点以下切り捨て)された値が適用されます。
行が省略された場合はHP・攻撃・防御・素早さ・特殊(特攻・特防)の努力レベルは全て252(努力レベル63として適用)となります。
ニンテンドウカップ2000かつGB・VC環境準拠の場合(ルール名に"gen2ou"と記述した場合)、レベル50のポケモンは何れかの努力レベルを4n+1〜3にする必要があります。全ての努力レベルが4nの場合、何れかの努力レベルに1を足す必要があります。全ての努力レベルが252の場合は何れかの努力レベルを251にする必要があります。なお、これらの調整により、実数値が変化することはありません。
  • レコード種別(必須)
    • "EVs: "固定です。
  • HP努力レベル記述(任意)
    • 0〜252の範囲で記述し、後ろに" HP "と記述してください。
    • 攻撃努力レベル・防御努力レベル・特攻努力レベル・特防努力レベル・素早さ努力レベルを省略しない場合は、更に後ろに"/ "を記述してください。
    • 省略された場合は0と解釈されます。
  • 攻撃努力レベル記述(任意)
    • 0〜252の範囲で記述し、後ろに" Atk "と記述してください。
    • 防御努力レベル・特攻努力レベル・特防努力レベル・素早さ努力レベルを省略しない場合は、更に後ろに"/ "を記述してください。
    • 省略された場合は0と解釈されます。
  • 防御努力レベル記述(任意)
    • 0〜252の範囲で記述し、後ろに" Def "と記述してください。
    • 特攻努力レベル・特防努力レベル・素早さ努力レベルを省略しない場合は、更に後ろに"/ "を記述してください。
    • 省略された場合は0と解釈されます。
  • 特攻努力レベル記述(任意)
    • 0〜252の範囲で記述し、後ろに" SpA "と記述してください。
    • 更に後ろに"/ "を記述してください(第二世代の場合は特攻努力レベルと特防努力レベルを同一にする必要があるため、特攻努力レベルを省略しない場合は特防努力レベルは省略不可)。
    • 省略された場合は0と解釈されます。
  • 特防努力レベル記述(任意)
    • 0〜252の範囲で記述し、後ろに" SpD "と記述してください。
    • 素早さ努力レベルを省略しない場合は、更に後ろに"/ "を記述してください。
    • 省略された場合は0と解釈されます。
  • 素早さ努力レベル記述(任意)
    • 0〜252の範囲で記述し、後ろに" Spe "と記述してください。
    • 省略された場合は0と解釈されます。
  • レコード終了(必須)
    • 1バイトの空白を入れてください。
個体値の行(任意)
0〜31の範囲で記述します。第二世代の場合は1/2(小数点以下切り捨て)された値が適用されます。
(第二世代の場合、GUI上では0〜15の範囲で記述します)
行が省略された場合はHP・攻撃・防御・素早さ・特殊(特攻・特防)の個体値は全て31(個体値15として適用)となります。
  • レコード種別(必須)
    • "IVs: "固定です。
  • HP個体値記述(任意)
    • 0〜31の範囲で記述し、後ろに" HP "と記述してください。
    • 攻撃個体値・防御個体値・特攻個体値・特防個体値・素早さ個体値を省略しない場合は、更に後ろに"/ "を記述してください。
    • 省略された場合は31と解釈されます。
  • 攻撃個体値記述(任意)
    • 0〜31の範囲で記述し、後ろに" Atk "と記述してください。
    • 防御個体値・特攻個体値・特防個体値・素早さ個体値を省略しない場合は、更に後ろに"/ "を記述してください。
    • 省略された場合は31と解釈されます。
  • 防御個体値記述(任意)
    • 0〜31の範囲で記述し、後ろに" Def "と記述してください。
    • 特攻個体値・特防個体値・素早さ個体値を省略しない場合は、更に後ろに"/ "を記述してください。
    • 省略された場合は31と解釈されます。
  • 特攻個体値記述(任意)
    • 0〜31の範囲で記述し、後ろに" SpA "と記述してください。
    • 更に後ろに"/ "を記述してください(第二世代の場合は特攻個体値と特防個体値を同一にする必要があるため、特攻個体値を省略しない場合は特防個体値は省略不可)。
    • 省略された場合は31と解釈されます。
  • 特防個体値記述(任意)
    • 0〜31の範囲で記述し、後ろに" SpD "と記述してください。
    • 素早さ個体値を省略しない場合は、更に後ろに"/ "を記述してください。
    • 省略された場合は31と解釈されます。
  • 素早さ個体値記述(任意)
    • 0〜31の範囲で記述し、後ろに" Spe "と記述してください。
    • 省略された場合は31と解釈されます。
  • レコード終了(必須)
    • 1バイトの空白を入れてください。
1つ目の技の行(必須)
ファイルフォーマット上は任意であり、省略された場合は技無しになります。
しかし、第二世代の場合は技が1つも無いとルール違反になるため、事実上必須項目です。
  • レコード種別(必須)
    • "- "固定です。
  • 技名(必須)
    • 技名を記述します。技名の後ろに1バイト空白を入れてください。
    • 第二世代で記述可能な技名の一覧はこちらを参照してください。
    • "Hidden Power "の場合、後ろに"[英語のタイプ名] "と記述する記法が許容されています。この記法を行う場合、個体値は当該タイプのめざめるパワーとなる最大の個体値を指定する必要があります。
      • 例えば、"Hidden Power [Water] "の場合、個体値はEDFF、ShowdownのTeam Builderのテキストの記法で言うと"IVs: 14 HP / 28 Atk / 26 Def "を指定する必要があります。
  • レコード終了(必須)
    • 1バイトの空白を入れてください。
2つ目の技の行(任意)
省略された場合は技無しになります。
記法は「1つ目の技の行」と同じです。
3つ目の技の行(任意)
省略された場合は技無しになります。
記法は「1つ目の技の行」と同じです。
4つ目の技の行(任意)
省略された場合は技無しになります。
記法は「1つ目の技の行」と同じです。
区切り行(必須)
空文字とします。
(改行コードのみ)

トレーラー部

パーティの終了を示します。
改行コードのみの空文字を1行記述することで、パーティの終了とみなされます。

このページへのコメント

努力レベルのバリデーションチェックを誤って理解していたので訂正しました。

0
Posted by  nanashi_a nanashi_a 2021年07月11日(日) 21:53:13 返信

パーティ名やニックネームについて、許容されない文字を調べたのでその結果を反映しました。

0
Posted by  nanashi_a nanashi_a 2021年07月10日(土) 16:14:24 返信

パーティ名について、空白、角括弧、イコールが許容されることを追記しました。

0
Posted by  nanashi_a nanashi_a 2021年07月06日(火) 22:39:37 返信

個体値について、GUI上では0〜15の範囲で指定するというのを追記しました。

0
Posted by  nanashi_a nanashi_a 2021年07月04日(日) 14:19:36 返信

ニックネームについて書き忘れたので追記しました。

0
Posted by  nanashi_a nanashi_a 2021年07月02日(金) 22:01:09 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

メニュー

メニューバー

メンバーのみ編集できます