ホーム › MOD制作情報 › マップパックの構造
第01章

マップパックの構造

.oamapのzip、そのoamap.yamlマニフェスト、パッカーが書くマップインデックス、そしてマップのサイズと地形物でゲームに合うかどうかが決まる仕組み。

パッケージ

.oamapはパックのフォルダーをzipにしたもので、oamap.yamlを最上位か、最上位にある唯一のフォルダーの中に置きます(Finderの「圧縮」でこの形のファイルができます)。アーカイブのルールはMODパッケージと同じです。エントリは無圧縮(stored)かdeflate圧縮。リンク、デバイス名、絶対パス、..は使えません。大文字と小文字だけが違う名前を2つ置くことはできず、展開後は最大4 GiBです。

my-maps.oamapプレイヤーがダウンロードしたり開いたりするファイル├─ oamap.yaml必須 マニフェスト:ID、名前、バージョン、作者、packaging、マップインデックス├─ Ridge.tnt · Ridge.otaマップ1つ:地形(.tnt)と設定(.ota)├─ Long Lakes.tnt · Long Lakes.otaもう1つ。1パックに入るマップは1〜256個└─ READMEそのほかのファイルは同梱されるだけで無視される

マニフェスト

厳格なYAMLです。ドキュメントは1つ、最上位は1つのマッピングで、アンカーとブロックスカラーは使えません。IDは小文字のケバブケースで1〜32バイト、パックのインストール先フォルダーの名前になります。規格にないキーは拒否されます。

oamap: 1
id: my-maps                  # ケバブケース、1〜32バイト。インストール先フォルダーの名前
name: My Maps
version: "1.0"             # 自由なテキスト。順序付けされない
description: Two maps for four and ten players
author: {name: A. Mapper}
packaging: {revision: 1, date: 2026-10-18, packager: A. Mapper}
requires: {engine: ">= 0.8.0"}   # エンジンの範囲は引用符で囲む。囲まない>はブロックスカラーの開始となり、拒否される
# maps:はoa-tool packが書く(下のインデックス)

インデックス

oa-tool packは、Networkスキーマを持つフォルダー内のマップすべてについて、パスのバイト順にmapsの項目を書きます。フォルダー側で項目を書いておけば、マップの名前、説明、人数を指定できます。それ以外は常に計算されます。

キールール
stemマップのファイル名(拡張子を除く)。フォルダーにないものを指定するとエラーになります。
name, descriptionフォルダーのリストで指定するか、マップから取得します。パック済みの項目と同じルールです。
playersマップが想定するプレイヤー数。2〜10です。
size, preview, filesフォルダーで指定していても、常にパッカーが計算します。

マップが合うかどうか

マップが指定するタイルセット、地形物、ユニットをゲームが持っていれば、そのマップはゲームに合います。コンテンツライブラリはすべてのパックをベースゲームと各MODに照らして確認し、判定を記録しています。MODページの「対応マップ」の数や、マップのMOD一覧はここから来ています。

拡張パックが必要なパックは、requiredExpansionsにそう書きます。ベースゲームだけでは合わないマップも一覧には載り、読み込めない理由はゲームが示します。

インストール先

Documents/Open Annihilation/Maps/に、ファイル名ではなくマニフェストのIDでインストールされます。同じバージョンの新しいリビジョンはフォルダーを置き換え、別のバージョンは並べてインストールできます。何かを書き込む前に、すべてを確認します。