//cache [[アドオン開発]] あちこちに分散しているmakeobjに関する記述を整理してリファレンスを作成しようという試み。まだコンテンツは未完成です。 #contents RIGHT: &size(10){''更新履歴''}; &size(10){初版。ぼちぼちと 2010/05/01}; **makeobjの入手 [#k57da0d8] [[SourceForge:makeobj]]からWindows,Linux,BeOS版のコンパイル済みmakeobjの実行ファイルがダウンロードできます。 **makeobjの実行 [#dbc7696b] makeobjはCUIツールです。コマンドプロンプトなどのCUIシェルから使用します。 makeobjをpathの通った場所におくか、makeobjのあるフォルダで実行します。 Linuxの場合は「./makeobj」と[./]が必要ですが、Windowsでは単に「makeobj」です。 &imgfolder(16/page_go.png); [[makeobj.exeを使ってみよう>アドオン開発/アドオンの作り方#f276e6e1]] **コマンドラインオプション [#w89ac0c5] オプションは大文字小文字を区別しません。 ***pak[タイルサイズ] [#jd34ecd6] :説明|datファイルとpng画像ファイルからpakファイルを作成します。 タイルサイズには32から192までのサイズを指定できます。 タイルサイズを省略して単にpakとした場合には、タイルサイズ64として扱われます。 :構文|makeobj pak <pakファイル名> <datファイル名> [<datファイル名> ...] makeobj pak128 <pakファイル名> <datファイル名> [<datファイル名> ...] :例1| makeobj pak makeobj pak ./ ./ フォルダ内のすべてのdatファイルを読み込み、個々のpakファイルを作成します。作成されるファイル名は「menu.WindowSkin.pak」のように「オブジェクトの種類.オブジェクト名.pak」になります。 pakオプションは最もよく使われるため、ファイル名を省略または「./」で代用できます。Windowsでもバックスラッシュではなく「./」です。 ファイル名を省略した場合は、オブジェクトはそれぞれ個別のpakファイルになります。 :例2| makeobj pak new.pak フォルダ内のすべてのdatファイルを読み込み、new.pakを作成します。複数のオブジェクトがある場合にはpakライブラリファイルになります。 :例3| makeobj pak ./ sample.dat sample.datを読み込み、個々のpakファイルを作成します。この場合最初の「./」は省略できません。 ***merge [#h677bc19] :説明|複数のpakファイルを単一のpakライブラリファイルに結合します。 :構文|makeobj merge <pakライブラリファイル名> <pakファイル名> [<pakファイル名> ...] :例1| makeobj merge new.pak a.pak b.pak c.pak a.pak b.pak c.pakの3つのpakファイルを結合し、new.pakを作成します。 :例2| makeobj merge new.pak *.pak フォルダ内のすべてのpakファイルを結合し、new.pakを作成します。 #div(start,noteblue) ''ground.Outside.pak''というpakファイルは特別なファイルですので、他のpakと結合したり、名前を変更してはいけません。 #div(end) ***extract [#y5671432] :説明|pakライブラリファイルを個々のpakファイルに分割します。 #div(start,noteyellow,margin:0) 一部に完全には分割できないpakライブラリファイルがあります。 オブジェクト名にコントロールコードや、ファイル名として使用できない文字(/,\,*,?など)が含まれている場合分割処理が継続できません。また、古いバージョンの橋が含まれている場合にも分割処理が継続できません。 #div(end) :構文|makeobj extract <pakライブラリファイル名> :例| :結果| found 2 files to extract writing 'building.HQ1.pak' ... writing 'building.HQ2.pak' ... ***list [#h5084826] :説明|pakライブラリファイルに含まれているpakオブジェクト名の一覧を表示します。 :構文|makeobj list <pakファイル名> [<pakファイル名> ...] :例| makeobj list building.hq.all.pak building.hq.all.pakファイル内のpakオブジェクト名の一覧を表示します。 :結果| Contents of file building.hq.all.pak (pak version 1001): type name ---------------- ------------------------------ building HQ1 building HQ2 ***dump [#z3222f60] :説明|pakファイルまたはpakライブラリファイル内のノード情報を表示します。 :構文|makeobj dump <pakファイル名> [<pakファイル名> ...] :例| makeobj dump building.IND_00_02.pak building.IND_00_02.pakファイル内のノード情報を表示します。 :結果| File building.IND_00_02.pak (version 1001): ROOT-node (root) 0 bytes BUIL-node (building) 26 bytes TEXT-node (text) 10 bytes 'IND_00_02' TEXT-node (text) 8 bytes 'Patrick' TILE-node (tile) 7 bytes IMG2-node (imagelist2d) 4 bytes IMG1-node (imagelist) 4 bytes IMG-node (image) 9490 bytes IMG2-node (imagelist2d) 4 bytes ***capabilities [#aa75fe08] :説明|このmakeobjが読み書き可能なオブジェクトの種類を表示します。 :構文|makeobj capabilities :結果| This program can pack the following object types (pak version 1001) : bridge building citycar crossing cursor (...以下省略) ***quiet [#h34b6f69] :説明|makeobjのバージョン情報、著作権情報を標準出力に出力しません。&br;このオプションを使用する場合は、必ず最初に指定しなければいけません。 :構文| :例| makeobj quiet pak フォルダ内のすべてのdatファイルを読み込み、個々のpakファイルを作成します。 **トラブルシューティング [#y8bb1920] :&pre(read_png: Invalid image size.);|画像のキャンバスサイズがpakサイズの倍数ではありません。 キャンバスサイズはpak64の場合は64,128,192,256...、pak128の場合は128,256,384,512...のようにpakサイズの倍数にする必要があります。 **makeobjのバージョン履歴 [#u6b72a7f]