[[アドオン開発]]
あちこちに分散しているmakeobjに関する記述を整理してリファレンスを作成しようという試み。まだコンテンツは未完成です。
#contents
RIGHT:
&size(10){''更新履歴''};
&size(10){初版。ぼちぼちと 2010/05/01};
**makeobjの入手 [#k57da0d8]
[[SourceForge:makeobj]]からWindows,Linux,BeOS版のコンパイル済みmakeobjの実行ファイルがダウンロードできます。
**makeobjの実行 [#dbc7696b]
makeobjはCUIツールです。コマンドプロンプトなどのCUIシェルから使用します。
makeobjをpassの通った場所におくか、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]
**makeobjのバージョン履歴 [#u6b72a7f]