確認、パック、公開
oa-tool mutator checkとpack、ドライラン、カタログページに表示される内容、アイコン、そしてCore Primeへのパッケージの提出方法。
この章はdocs/mutators/authoring.mdとdocs/mutators/oamut-standard.mdの要約です。
.oamutを確認する
ミューテータのパックと確認には、oa-tool mutator packとoa-tool mutator checkを使います。oa-tool packとoa-tool checkは.oamapと.oamod用のコマンドです。checkが読むのは.oamutで、フォルダーではありません。Luaをコンパイルし、各.smを解析しますが、実行はしません。最後の行はresult: okかresult: refusedです。
$ oa-tool mutator pack commander-radar
$ oa-tool mutator check commander-radar-1.oamut
拒否された場合は、ファイルと行が示されます。提出する前に直してください。Commander Radarをパックした名前はcommander-radar-1.oamutで、その確認はresult: okで終わります。
フォルダーの外からパックする
packは、フォルダーの外からそのフォルダー名を付けて実行します。何も指定しなければ、現在のフォルダーに<id>-<version>.oamutを書きます。--outには.oamutを指定する必要があり、それ以外の拡張子は拒否されます。--forceは既存のファイルを置き換えます。フォルダーの中から.をパックしたり、.oamutをフォルダーの中に置いたままにしたりしないでください。パッケージにそのファイルを入れることはできません。このコマンドで--game-dirを使うと、使い方のエラーになります。
ドライラン
oa-tool mutator diffは、パッケージのフォルダーをゲームフォルダー上でゲームのミューテーションパイプラインに通し、変わった点を一覧にします。オプションは最後のコロンの後に、uber-commのstrength=liteのように書きます。mapsフックは--map NAMEを付けたときだけ実行されます。MODなしの3.1cでは、レポートの#ヘッダーの後の行は次のとおりです:
$ oa-tool mutator diff --game-dir DIR --mutator ./uber-comm:strength=lite
field units/armcom.fbi [unitinfo] acceleration: 0.15 -> 0.3375 by uber-comm
field units/armcom.fbi [unitinfo] brakerate: 0.3 -> 0.675 by uber-comm
field units/armcom.fbi [unitinfo] builddistance: 60 -> 120 by uber-comm
field units/armcom.fbi [unitinfo] maxdamage: 3000 -> 4500 by uber-comm
field units/armcom.fbi [unitinfo] maxvelocity: 1.2 -> 1.8 by uber-comm
field units/armcom.fbi [unitinfo] turnrate: 1044 -> 1566 by uber-comm
field units/armcom.fbi [unitinfo] workertime: 300 -> 900 by uber-comm
field units/corcom.fbi [unitinfo] acceleration: 0.16 -> 0.36 by uber-comm
field units/corcom.fbi [unitinfo] brakerate: 0.32 -> 0.72 by uber-comm
field units/corcom.fbi [unitinfo] builddistance: 60 -> 120 by uber-comm
field units/corcom.fbi [unitinfo] maxdamage: 3000 -> 4500 by uber-comm
field units/corcom.fbi [unitinfo] maxvelocity: 1.07 -> 1.605 by uber-comm
field units/corcom.fbi [unitinfo] turnrate: 1030 -> 1545 by uber-comm
field units/corcom.fbi [unitinfo] workertime: 300 -> 900 by uber-comm
ライブラリのドライランは、対戦なしで、ライブラリ専用の保存領域に対して同じパイプラインを実行します。マップを設定しないので、そこではmapsフックは実行されません。ライブラリは結果を記憶し、「確認」の行は次のいずれかになります。checkはミューテータを適用しません。適用するのはドライランとdiffです。
| 判定 | ライブラリの表示 |
|---|---|
compatible | そのMODで遊べます。行には変わった点の概要が付きます。 |
no-effect | 遊べますが、確認で数える項目は何も変わりません。 |
incompatible | そのMODでは遊べません。理由が続きます。 |
failed | 停止しました。理由が続きます。 |
| 実行中 | そのMODでの確認はまだ実行中です。 |
| 未実行 | そのMODではまだ確認していません。 |
カタログページの表示内容
ページにはアイコンが表示されます。マニフェストがアイコンを指定していない場合は、最初のタグが8つのいずれかなら、そのタグのアイコンです。続いて名前、作者、バージョンとリリース、概要(descriptionの最初の行)、タグ、requires.engineから作るエンジンの表示。「必要なもの」にはrequires.mutatorsが、「オプション」には各オプションが、「変更内容」にはレイヤーが、「遊べるMOD」にはworks-withが並びます。その後にリリースの表、そして「ゲームで入手」が続きます。このサイトがパッケージファイルにリンクすることはありません。ダウンロードはゲーム内で行われます。
アイコン
正方形のPNGで、1辺が1ピクセル以上256ピクセル以下、サイズは256 KiB以下です。128ピクセルで描いてください。マニフェストのiconがパスを指定し、その名前は.pngで終わります。アイコンがない場合、最初のタグのIDが8つのいずれかなら、バッジにはそのタグのアイコンが使われます。2番目以降のタグは試されません。
Core Primeに提出する
Core Primeのコンテンツライブラリは、メンテナーのマシンから公開されています。カタログは、そのマシンから外に出ない鍵で署名されます。ミューテータを掲載するには:
- Open AnnihilationのリポジトリでIssueを作成し、.oamut(またはそのリンク)、作者、ライセンスを添えます。
- メンテナーがゲームフォルダーに対して確認を実行し、ライブラリのパッケージ記録に追加します。
- 次の公開で、ファイルがハッシュ値の名前でアップロードされ、新しいカタログに署名され、そのシーケンス番号が上がります。
- 数分後には、全プレイヤーのライブラリとこのサイトに載ります。
マップパックやMODも同じ方法で提出します。Core Primeへの公開を参照してください。