ItemPMTアイテムパラメータ表

← ホームへ戻る

ItemPMT(Item Parameter Table)はPSOのクライアントとサーバーが共有するアイテムパラメータ表です。武器・鎧・盾・ユニット・マグ・消耗品の基本性能、名称の索引、装備条件、説明文、外観モデルを定義します。ItemPTとItemRTは出現条件と確率を扱い、アイテム自体の詳細はItemPMTから取得します。

概要

ItemPMTはゲームのアイテム辞書に相当します。アイテムIDから次の情報を取得できます。

  • 表示名(TextEnglish・TextJapanese内の文字列索引)
  • モデルとテクスチャ
  • 分類(武器・鎧・盾・ユニット・マグ・消耗品・テクニック・フォトンドロップなど)
  • 基本性能(武器のATP・ATA、鎧のDFP・EVP、盾の耐性など)
  • 装備制限(職業フラグ、必要ATP・MST・ATA、必要レベル)
  • 最大付加、レア度、売却可否、基本売価

セーブデータ内のアイテムを読み込むとき、詳細を表示するとき、サーバーが装備条件を判定するときに使用します。

ファイルとバージョン

ItemPMTはPRS圧縮されたバイナリファイルで、PSOの各版に対応する形式があります。

  • ItemPMT-bb-v4.prs— PSOBB公式版・Ephinea
  • ItemPMT-gc-v3.prs— GameCube版(Episode I & II)
  • ItemPMT-gc-ep3.prs— Episode III(カードゲーム)
  • ItemPMT-xb-v3.prs— Xbox版
  • ItemPMT-pc-v2.prs— PC v2版
  • ItemPMT-dc-v1.prs/ItemPMT-dc-v2.prs— Dreamcast v1・v2版
  • NTE(Network Trial Edition)や2000年11月のプロトタイプ版もあります。

武器

武器のフィールドは大きく3つに分かれます。

識別と分類

  • ID:アイテム固有番号で、名称の文字列索引も指定
  • Model / Texture:3Dモデルとテクスチャ
  • Type / Subtype:武器系統とサブタイプ。例えばセイバー系のSaber・ブランド・バスターなど
  • Class Flags:装備可能職業。HUmar・HUnewearl・HUcastなど12職業に各1ビット

戦闘パラメータ

  • ATP Min / ATP Max:基礎ATP範囲。実際の値は範囲内でランダム
  • ATA:武器のATA加算値
  • Max Grind:最大付加(+9なら9)
  • Photon:フォトン種別。近接・射撃・法撃の分類とコンボ動作を決定
  • Special:既定のエクストラアタックID(参照先:エクストラアタック表)

装備条件

  • ATP Required:装備に必要な最低ATP
  • MST Required:装備に必要な最低MST
  • ATA Required:装備に必要な最低ATA

鎧(Armor / Frame)と盾(Shield / Barrier)

鎧と盾は共通の構造を使い、別々のサブテーブルに格納します。各エントリは次を含みます。

  • DFP / EVP:基礎防御力と回避力。武器と同様にmin–maxの範囲内で変動
  • Class Flags:装備可能職業
  • 必要レベル:装備できる最低レベル
  • DFP・EVP補正上限:鎧の強化による加算上限(鎧の+N)
  • ユニットスロット:盾は常に0、鎧は0~4。レア鎧のスロット数も固定ではなくItemPTで決定
  • 5属性耐性:EFR・EIC・ETH・EDK・ELT(炎・氷・雷・闇・光)

ユニット

ユニットのエントリは比較的単純です。

  • Class Flags:装備可能職業
  • Stat Bonus:加算する能力と数値(HP・TP・ATP・DFP・ATA・EVP・LCK・MSTなど)
  • プラス・マイナスのしきい値:/表記のユニット(例:HP/リストレイト、HP/Resurrect)の発動率またはクールダウン
  • レア度:コモンかレアかを決定

一部のユニットは数値加算ではなく個別の効果判定で動作します。例:スマートリンク、V501/V502、Trap Vision。ItemPMTに効果の数値を持たず、ゲームコードがIDを識別して専用効果を発動します。

マグ

マグのパラメータはItemPMTの中でも特徴的です。各マグのエントリは次を含みます。

  • Model ID:進化後の外観。DEF・POW・DEX・MINDと持ち主の職業系統に依存
  • フォトンポイントのコスト(餌テーブル):各アイテムを与えたときの能力変化と変化量
  • フォトンブラストの組み合わせ:3つの枠に設定できるPB

マグの餌テーブルはItemPMT内の大きな表で、8つの餌テーブル×11種の餌で構成され、マグの種類ごとにいずれか1つのテーブルを参照します。各マスがDEF・POW・DEX・MIND・SYNC・IQの変化を指定します。

消耗品(Tools)

道具のエントリは最も単純で、主に次を含みます。

  • IDと名称索引
  • 使用効果ID。回復・状態異常解除・転送などの処理はゲームコードがIDごとに実行
  • 所持上限(Stack Max):1枠の最大数。回復アイテムやソルアトマイザーは10個、フォトンドロップは99個など。
  • 売却可否/基本売価
  • レア度:例えばアドスロットは消耗品ですがレア度を持ちます

テクニックディスクも道具分類ですが、構造はテクニックIDとレベルの組で、所持上限は1固定です。

エクストラアタック表

チャージ・スピリット・バーサーク・ガイスト・ヘル・デーモン・アレスト・カオス・ブリザード・バーニングなどは独立した表に格納され、ItemPMTからIDで参照されます。各エントリは次を含みます。

  • 名称索引(チャージ、バーサークなど)
  • レア度:コモン武器の生成でレア度を抽選し、そのランクの能力を選択
  • 発動パラメータ:成功率、消費(MST・HPなど)、追加ダメージ

コモン武器のエクストラアタックはどう決まるか
武器のSpecial欄を直接読むのではなく、ItemPTがエリアに応じて0~5のランクを生成し、ItemPMTの対応する能力から選択します。たとえば坑道で拾った武器には1★のDraw、遺跡で拾った同じ武器には4★のGushが付くことがあります。エリアによって候補が異なります。

その他のサブテーブル

主要なアイテム以外にも、各種処理で参照する補助テーブルがあります。

合成・強化(Item Combination Table)

レシピには使用アイテム×装備中の対象×生成結果と、追加条件を格納します。

  • 必要マグレベル、武器付加、キャラクターレベル、職業
  • 例:フォトンドロップからPhoton Sphereへの合成や、専用道具による武器の強化

この表はコンボ表とは別物です。N-N-H・N-H-Hなどのコンボ補正はクライアントに固定実装されています。ItemPMTでコンボに関係するのは、武器ごとの1バイトのbehavior_flagsのみで、コンボ禁止のビットを含みます(一部の武器は連続攻撃できません)。

Tech Boost Table

杖などによるテクニックのダメージ・範囲補正。例として、サイコウォンドはラフォイエ・ラバータ・ラゾンデのダメージ+30%、グライドディヴァインはジェルン・ザルアの範囲+100%です。武器のtech_boostフィールドから参照します。

Special Data / Weapon Effect / Shield Effect

  • Special Data Table:チャージ・バーサーク・ヘル・デーモンなど、前述の能力パラメータ。
  • Weapon Effect Table:HP吸収や耐性など、装備中の武器のパッシブ効果。
  • Shield Effect Table:自動回復や一部レア盾の追加効果など、盾のパッシブ効果。
  • Ranged Special Table:射撃武器のエクストラアタック動作。射撃武器では挙動が変わる能力があります。

Stat Boost Table

ユニットが参照する加算データです。ユニット本体はboost IDを保持し、ここから能力の種類と値を取得します。

Max Tech Level Table

職業ごとのテクニック習得上限です。例としてフォースはLv30ラフォイエ、ハンターはLv15までと説明されています。上限を超えるディスクは使用できません。

Photon Color / Weapon Range / Star Value

  • Photon Color Table:フォトンの刃の色。種別ごとにRGBの組を持ちます。
  • Weapon Range Table:武器の攻撃距離と判定範囲。
  • Star Value Table:IDからレア度への対応表。名称の横に表示する☆の数を決定します。

Unsealable / Unwrap

  • Unsealable Table:封印ノダチ、ラムダージャンなどの封印解除後の武器。
  • Unwrap Table:クリスマスプレゼントやイースターエッグなどを開いた際の候補。

Sale Divisor / V1 Replacement

  • Weapon Sale Divisor / Non-Weapon Sale Divisor:店の売価計算に使うアイテムごとの除数。
  • V1 Replacement Table:PSO v1のIDをBBの対応アイテムに置き換えます。

データ構造

以下はPSOBB(V4)のItemPMT構造です。V1・V2・V3、DC・GC・XBでは配置に違いがありますが、用途は共通です。オフセットは16進数のバイト単位です。

最上位オフセット表TableOffsetsV3V4

展開したItemPMTの最上位にある表で、各フィールドはサブテーブルへの4バイトのオフセットです。BBクライアントは起動時に読み込み、他の表を参照します。

オフセットフィールド型説明
0x00weapon_tableu32武器表→[{count, offset → [WeaponV4]}](0xED件)
0x04armor_tableu32鎧・盾の表(armors、shieldsの2組)
0x08unit_tableu32ユニット表→[UnitV4]
0x0Ctool_tableu32道具表→[{count, offset → [ToolV4]}](0x1A件)
0x10mag_tableu32マグ表→[MagV4]
0x14v1_replacement_tableu32PSO v1からBBへのID置換表
0x18photon_color_tableu32フォトン色(0x20種、各0x24バイト)
0x1Cweapon_range_tableu32武器の射程・判定範囲表
0x20weapon_sale_divisor_tableu32武器売価の除数→[float]
0x24sale_divisor_tableu32武器以外の売価除数
0x28mag_feed_tableu32マグの餌テーブル
0x2Cstar_value_tableu32アイテムID→レア度(☆数)、0x330件
0x30special_data_tableu32エクストラアタック定義→[Special]
0x34weapon_effect_tableu32武器のパッシブ効果(各0x10バイト)
0x38stat_boost_tableu32ユニットの加算値→[StatBoost]
0x3Cshield_effect_tableu32盾のパッシブ効果(各8バイト)
0x40max_tech_level_tableu32職業ごとのテクニック上限
0x44combination_tableu32合成・強化レシピ→[ItemCombination]
0x48unknown_a1u32未解析
0x4Ctech_boost_tableu32テクニック補正→[TechniqueBoost × 3]
0x50unwrap_tableu32プレゼントの中身
0x54unsealable_tableu32封印解除後の武器
0x58ranged_special_tableu32射撃武器のエクストラアタック動作

アイテム基底構造ItemBaseV4

武器・鎧・ユニット・マグ・道具の先頭12バイトは、この共通ヘッダーです。

オフセットフィールド型説明
0x00idu32アイテムID(名称文字列の索引も兼用)
0x04typeu16モデル番号(クライアントの.njモデルID)
0x06skinu16テクスチャ番号
0x08team_pointsu32チームポイント値

武器WeaponV4(0x2Cバイト)

オフセットフィールド型説明
0x00baseItemBaseV4基底ヘッダー(0x0Cバイト)
0x0Cclass_flagsu1612職業の装備可否ビット(既定値0x00FF、全有効)
0x0Eatp_minu16基礎ATP下限
0x10atp_maxu16基礎ATP上限(実値は最小~最大の間で変動)
0x12atp_requiredu16必要最低ATP
0x14mst_requiredu16必要最低MST
0x16ata_requiredu16必要最低ATA
0x18mstu16武器のMST補正
0x1Amax_grindu8最大付加(+9なら9)
0x1Bphotonu8フォトン種別(近接・射撃・法撃)
0x1Cspecialu8既定のエクストラアタックID(special_data_tableの索引)
0x1Datau8ATA補正
0x1Estat_boost_entry_indexu8stat_boost_tableの索引
0x1Fprojectileu8射撃武器の弾ID
0x20trail1_x / yi8×2武器の軌跡の開始位置
0x22trail2_x / yi8×2武器の軌跡の終了位置
0x24colori8photon_color_tableの色索引
0x25unknown_a1u8×3未解析
0x2Atech_boostu8tech_boost_tableの補正索引
0x2Bbehavior_flagsu8動作ビット:0x01コンボ不可/0x08属性不可

鎧・盾ArmorOrShieldV4(0x20バイト)

オフセットフィールド型説明
0x00baseItemBaseV4基底ヘッダー
0x0Cdfpu16基礎DFP
0x0Eevpu16基礎EVP
0x10block_particleu8防御時パーティクルID
0x11block_effectu8防御エフェクトID
0x12class_flagsu16装備可能職業ビット
0x14required_levelu8必要レベル
0x15efru8炎耐性
0x16ethu8雷耐性
0x17eicu8氷耐性
0x18edku8闇耐性
0x19eltu8光耐性
0x1Adfp_rangeu8追加DFP上限(+Nの最大値)
0x1Bevp_rangeu8追加EVP上限
0x1Cstat_boost_entry_indexu8stat_boost_tableの索引
0x1Dtech_boostu8テクニック補正の索引(tech_boost_tableへ)
0x1Eflags_typeu8動作フラグ(鎧0x01、盾0x01・0x02・0x03など)

ユニットUnitV4(0x14バイト)

オフセットフィールド型説明
0x00baseItemBaseV4基底ヘッダー
0x0Cstatu16主能力種別(StatBoostの01~0F、例:01=ATP)
0x0Estat_amountu16主能力の加算値
0x10modifier_amounti16HP/リストレイトなどの発動しきい値・クールダウン
0x12unusedu8×2パディング

マグMagV4(0x1Cバイト)

オフセットフィールド型説明
0x00baseItemBaseV4基底ヘッダー
0x0Cfeed_tableu16mag_feed_tableの餌反応索引
0x0Ephoton_blastu8既定のフォトンブラストID
0x0Factivationu8イベントの基礎発動率
0x10on_pb_fullu8PB満タン時のイベントID
0x11on_low_hpu8低HP時のイベントID
0x12on_deathu8死亡時のイベントID
0x13on_bossu8ボス部屋進入時のイベントID
0x14on_pb_full_flagu80~4でsynchroと組み合わせた確率計算方式を指定
0x15on_low_hp_flagu8同上
0x16on_death_flagu8同上
0x17on_boss_flagu8同上
0x18class_flagsu16装備可能職業ビット
0x1Aunusedu8×2パディング

マグの発動率は、まずsynchroからstep_synchro(0・15・25・30・35などの段階値)を求め、フラグで計算式を選択します。flag=0はactivation、flag=1はactivation+step_synchro、flag=2はstep_synchroなどを使います。

消耗品ToolV4(0x18バイト)

オフセットフィールド型説明
0x00baseItemBaseV4基底ヘッダー
0x0Camountu16量・効果値(メイト系はHP回復量、ディスクはテクニックレベル)
0x0Etechu16テクニック系道具のテクニックID
0x10costi32店頭価格
0x14item_flagsu32ビットフラグ:0x01使用可能/0x08アンドロイド使用可/0x10街で使用可/0x20ボス部屋で使用可/0x40チャレンジで使用可/0x80レア

エクストラアタックSpecial(4バイト)

オフセットフィールド型説明
0x00typeu16能力種別ID(チャージ・スピリット・バーサーク・ヘルなど)
0x02amountu16能力強度(成功率・追加ダメージなど)

能力補正StatBoost(6バイト)

ユニット・武器・鎧はstat_boost_entry_indexで本表を参照します。1レコードに2能力を格納できますが、DCの2000年11月版以降はループが1項目のみを読むため、実際には最初の能力だけ有効です。

オフセットフィールド型説明
0x00stats[0..1]u8×22つの能力種別ID(下記)
0x02amounts[0..1]u16×2対応する加算値

能力種別ID:

値意味値意味
0x01ATP+0x09ATP−
0x02ATA+0x0AATA−
0x03EVP+0x0BEVP−
0x04DFP+0x0CDFP−
0x05MST+0x0DMST−
0x06HP+0x0EHP−
0x07LCK+0x0FLCK−
0x08全能力+(HPを除く)0x10全能力−(HPを除く)

合成レシピItemCombination(0x10バイト)

オフセットフィールド型説明
0x00used_itemu8×3使用道具ID(data1[0..2])
0x03equipped_itemu8×3装備中の対象アイテムID
0x06result_itemu8×3合成結果のアイテムID
0x09mag_levelu8必要マグ総レベル
0x0Agrindu8対象武器の必要付加
0x0Blevelu8必要キャラクターレベル
0x0Cchar_classu8職業制限
0x0Dunusedu8×3パディング

マグの餌の効果MagFeedResult(8バイト)

8つの餌テーブルはそれぞれ11種の餌を並べたもので、各マスがMagFeedResultです。

オフセットフィールド型説明
0x00defi8DEF増減
0x01powi8POW増減
0x02dexi8DEX増減
0x03mindi8MIND増減
0x04iqi8IQ増減
0x05synchroi8シンクロ増減
0x06unusedu8×2パディング

関連ページ