Lump とは

Lump とは、テクスチャ・効果音・スクリプト・パッチ等の WAD ファイルを構成する各データを示す言葉です。WAD に納められた lump データにアクセスするには、専用のソフトウェアを必要とします。各 lump データは最大8文字の半角英字 (大文字) で表すのが慣例となっています (ただしポートエンジンにおいてはこの限りではない)。
各 lump データのフォーマットには、以下のようなものがあります:
- グラフィック (graphics)
- サウンド (sounds)
- ミュージック (music)
- デモ (demos)
- スプライト (sprites)
- 壁面用テクスチャ (wall textures)
- 壁面用パッチ (wall patches)
- 床/天井用テクスチャ (flats)
- レベルマップ及び関連データ (level maps)
WAD ファイルについて
WAD ファイルは、拡張子が「.wad」となっており、専用のバイナリ形式で lump データを格納しています。
ポートエンジンによっては、id Software が Quake 3 で採用した PK3 フォーマット (ZIP 書庫形式、拡張子「.pk3」) を模倣した形式にも対応しており、この形式で配信されている WAD もあります。ただし、PK3 形式は各エンジン間で互換性がありません。その代わり元が ZIP 書庫形式なので lump データを圧縮して格納できます。
Lump フォーマット
レベルマップ及び関連データ
1 つのレベルマップを構成する lump データは複数からなり、レベルマップのフォーマットによっても、それらは変化します。
DOOM においては、現在以下の 6 つのフォーマットに大別可能かと思われます:
- Doom 形式
- バニラ DOOM のバイナリ・フォーマット。レベルマップの構成要素である THINGS、LINEDEFS、SIDEDEFS、VERTEXES、SECTORS 等の lump から構成される。
- Boom 形式
- 伝統的な拡張フォーマット。多くの拡張フォーマットの基礎となっている。
- ZDoom 形式
- ZDoom で拡張されたバイナリ・フォーマット。Hexen で拡張された Doom 形式のデータを元に、BEHAVIOR、SCRIPTS の 2 つの lump が追加される。またレベルエディタで使用される DoomEd 番号に Doom 形式との互換性が見られないことから、後方互換性はないものと思われる。
- Zandronum(Skulltag) 形式
- ZDoom 形式に Zandronum(Skulltag) 用の機能追加が施された形式。ZDoom 形式との後方互換性が保たれている。
- ZDeamon 形式
- ZDeamon で拡張されたフォーマット。ZDoom 派生ポートだが ZDoom へのコードコミットを行っていない為、Doom 形式、ZDoom 形式共に互換性はないと思われる。
- UDMF 形式
- 標準化を念頭に置いたテキスト・フォーマット。従来のフォーマットがレベルマップ構成要素単位で lump データを分けていたのに対して、UDMF はヘッダ、TEXTMAP、ENDMAP の 3 つの lump で構成されている。また大きな変更点としてデータフォーマットがテキスト形式となった。ZDoom 系ポートの大半は対応しているが、肝心のレベルエディタは現在 Doom Builder 2 のみが対応している。
CMPGNINF
Zandronum(Skulltag) 用の lump です。MAPINFO と記述内容でかぶっている部分もありますが、こちらは主に Zandronum(Skulltag) 専用のゲームモードに関する定義を行います。例えば、ゲームモードを Invasion にして wave を 3 回にするといった設定を行えます。
DECORATE
ZDoom 専用の lump で、従来の DeHackEd が担っていた機能を大きく拡張するものです。レベルマップ構成要素の 1 つである Thing に対して、その振る舞いを追加・変更、もしくはそれ自体を新たに追加することが出来ます。例えば、Imp の攻撃力を上げたり、外観を新たに描いたスプライトに置き換えたり出来ます。新しいモンスターや武器を定義することも可能です。
ただし互換性を保つためDECORATEへの対応は継続されますが、将来的には後述するZScriptに代替される予定となっています。
ZScript
ZDoom 専用の lump で、DECORATEを更に拡張したC++ベースの拡張スクリプトです。レベルマップ構成要素の 1 つである Thing の追加・変更(新しいモンスターやアイテム・武器の定義、既存のモンスターやアイテム・武器の変更など)において複雑な挙動を実現するにとどまらず、メニューやHUDなどUIの変更といったマップに依存しないMODの作成も行いやすくなっています。
DEHACKED
もとはバニラのDOOMエンジンにおいてハードコーディングされた箇所の変更を目的に作られたパッチで、モンスターや武器などThingの挙動を変更するのに必要でした。
Boomなど大抵のポートエンジンでは実行ファイルへの適用変更を必要とせずにDeHackEdパッチを読み込むなどの対応が行われています。
MAPINFO (ZMAPINFO)
ポートエンジンにおいて用いられる各レベルマップの定義データです。このデータを定義することで、IWAD に定義されている情報を上書きすることが出来ます。元となるマップのマップ名や BGM を置き換えたい場合や、完全にオリジナルのマップを作成する際に使用します。
将来のバージョンアップで ZDoom においては「ZMAPINFO」を代用することが推奨されています。
添付ファイル