ALModelConv


目次

1. 概要
2. 基本的な使い方
3. 出力ファイルについて
4. コマンドラインオプション

第1章 概要

ALModelConvは3Dモデルコンバータです。 3Dのデータからオブジェクト定義ファイルやモーションファイルを生成し、aarまで一気に生成を行います。 現在サポートしている入力ファイルはFBXとColladaですです。 ファイル読み込み処理はプラグイン形式になっており、独自のフォーマットから変換も可能です。

第2章 基本的な使い方

基本的な使い方は

ALModelConv 入力ファイル -BaseID 基準ID

です。

ALModelConvで生成するファイルはテクスチャやメッシュのID参照があるため、ID指定が必須です。 メッシュやテクスチャの枚数により基準IDから順に1ずつ使うため、 あまりIDを隣接させるとメッシュやテクスチャの枚数が増えたときにIDが衝突して誤動作します。 通常、モデル毎に0x100程度間を開ける事を推奨します。

出力ファイルは.aarになります。 このアーカイブ内に必要なファイルが全て出力されます。

コンバート時には中間ファイルが生成され、デフォルトでは_workフォルダに生成されます。 このフォルダや中身のファイルは削除しても問題ありません。

第3章 出力ファイルについて

このツールでの最終出力ファイルは.aarというアーカイブファイルです。

このaarファイルは、メッシュデータ、モーションデータ、テクスチャ等必要なデータを全て含みます。

モデルデータ専用フォーマットではないので、他のツールで生成することが出来ます。

ALMakeArcやALArcDump等のツールの説明を参照してみてください。

第4章 コマンドラインオプション

コマンドラインオプションは、入力ファイル名の前、後どちらにでも記述できます。 また、大文字小文字は区別しません。

  • -BaseID 基準ID

    ※必須項目

    コンバートの基準となるIDを指定します。コンバートしたファイルはこのIDから順に使用します。

    数値は0xをつける事により16進数が使用可能です。

  • -BasePath 基準パス

    各種パスの基準パスを指定します。

    各種ファイル名指定やパス指定は、このパスが基準となります。

    指定がなければ入力ファイルのある場所が基準パスとなります。

    この基準パスの指定は、カレントパスが基準となりますのので、例えば . を指定すると各種パスの基準がカレントパスになります。

  • -WorkPath 中間ファイル出力パス

    中間ファイル出力パスを指定します。デフォルトでは_workです。このフォルダは削除しても問題ありません。

  • -OutPath 最終データ出力パス

    最終データ出力パスを指定します。

    このツールが出力するデータのうち、最終出力に相当するファイルを出力するパスを指定します。

    指定がなければ基準パスを使用します。

  • -SeparateImagePath 

  • -OutFile 最終データファイル名

    最終データのファイル名を指定します。

    拡張子を指定しても無視され、フォーマットに合わせた拡張子が設定されます。

    省略時は入力ファイルと同じ名前が使用されます。

    基準パスは最終データ出力パスです。

  • -SeparateImageFileName 

  • -AssembleIDList 

  • -NodeIDList テーブルファイル名

    ノードの名称とIDの対応を自動記録するテーブルファイルを指定します。

    このテーブルには、

    名称=ノードID

    の形式で、新規に発生したノード名称を自動で追加していきます。

    モデルとモーションを分けてコンバートする場合などは、

    このテーブルを使って対応を取らないと正しく動作しません。

    なお、特定のノードのIDを固定したい場合は、FixNodeIDListオプションを使用します。

  • -FixNodeIDList テーブルファイル名

    ノードの名称とIDの対応を指定するテーブルファイルを指定します。

    このテーブルには、

    名称=ノードID

    の形式で、ノード名称に対応するIDを記録します。

    このファイルは読み込むだけで、ツールから書き込むことはありません。

  • -OutShaderFile 

  • -OutTextureFile 

  • -BigEndian 

    データをビッグエンディアンで出力します。

    なお、PCではリトルエンディアン、ビッグエンディアン両方のデータを読む事が可能です。

  • -AutoMaster 

    コンバート後のノード数が一つの場合で、位置や色関連の変更がある場合に、自動的にマスターノードを追加します。

    ノードが一つの場合は、このオプションがなければそのままノード一つで出力されますが、

    そのノードを移動させたり色を変更させようとした場合に、ノードに設定された値と衝突します。

    マスターノードを追加すると、位置や色設定はマスターノードに設定されるため、衝突する事はなくなります。

    生成されたノードの位置や色を変更する場合は、このオプションを指定して下さい。

    なお、ノード数が2以上の場合は常にマスターノードが出力されるので、このオプションは使われません。

  • -PackMotion 

    モーションが複数ある場合、それらをまとめて一つのモーションファイルとして出力します。

    モーションが一つしかない場合は、出力に変化はありません。

    モーションを一つにまとめても使い方の変化はありませんが、

    同じモーションファイル内でのモーション切り替えが高速になります。

  • -MergeMotion 

    アセンブルファイルにモーションを含めます。

    アセンブルをした時点で、モーションも読み込み済みになります。

    PackMotionオプションが自動的に設定されます。

    なお、モーションファイルはアセンブルファイルに含まれるため出力されません。

    モーションファイルも必要な場合は、MergeRefMotionオプションを使用して下さい。

  • -MergeRefMotion 

    アセンブルファイルにモーションの参照を設定します。

    アセンブルをした時点で、モーションも読み込み済みになります。

    PackMotionオプションが自動的に設定されます。

    MergeMotionと違い、モーション自体はアセンブルファイルには含まれず、

    モーションファイルへの参照だけが含まれるようになります。

    モーションファイル自体も使用する場合はこちらのオプションを使用します。

  • -ForceQuat 

    回転をすべて強制的にクォータニオンとして出力します。

    元がオイラー角で作られていた場合、補間の仕方が変わることがあります。

  • -ImageFormat 4文字で指定するイメージフォーマット

    出力画像のフォーマットを指定します。

    フォーマットはAqualeadのイメージフォーマットを使い、4文字で指定します。

    4444や、5551という形で指定します。

    デフォルトでは、32ビットRGBAフォーマットです。

  • -MotionOnly 

    モーションのみを出力します。

  • -ConvInt 

    メッシュの各要素を実数ではなく整数で出力します。

    整数で出力することで、メッシュサイズを小さくすることが出来ます。

  • -TexturePrepare 

    このオプションを有効にすると、アーカイブを生成した際に含まれるテクスチャを自動で生成します。

    ゲーム中でそのテクスチャを必要になった際、この生成済みテクスチャを使用するようになるため、

    テクスチャのセットアップが発生して負荷がかかることを抑えることが出来ます。

    なお、アプリケーション側の変更は一切必要ありません。

  • -ShaderPrepare 

    シェーダの自動生成を有効にします。

    このオプションを有効にすると、アーカイブを生成した際に含まれるシェーダを自動で生成します。

    ゲーム中でそのシェーダを必要になった際、この生成済みシェーダを使用するようになるため、

    シェーダのセットアップが発生して負荷がかかることを抑えることが出来ます。

    なお、アプリケーション側の変更は一切必要ありません。

  • -MeshPrepare 

    メッシュの自動生成を有効にします。

    このオプションを有効にすると、アーカイブを生成した際に含まれるメッシュを自動で生成します。

    ゲーム中でそのメッシュを必要になった際、この生成済みメッシュを使用するようになるため、

    メッシュのセットアップが発生して負荷がかかることを抑えることが出来ます。

    なお、アプリケーション側の変更は一切必要ありません。

  • -UseTextureTemp 

    Tempセクションに配置するとALArchiveの生成後、

    ReleaseTemp関数でTempセクションのファイルのメモリを解放することが出来ます。

  • -UseShaderTemp 

    シェーダをアーカイブするとき、Tempセクションに配置します。

    Tempセクションに配置するとALArchiveの生成後、

    ReleaseTemp関数でTempセクションのファイルのメモリを解放することが出来ます。

  • -UseMeshTemp 

    メッシュをアーカイブするとき、Tempセクションに配置します。

    Tempセクションに配置するとALArchiveの生成後、

    ReleaseTemp関数でTempセクションのファイルのメモリを解放することが出来ます。

  • -CompressShader 

    アーカイブ内のシェーダをALCompressで圧縮します。

    使用時にプログラムコードの変更は必要ありません。

  • -CompressTexture 

    アーカイブ内のテクスチャをALCompressで圧縮します。

    使用時にプログラムコードの変更は必要ありません。

  • -UseBlend 

    モーションのブレンド補間を使用するときに指定します。

    このオプションをつけずに生成したモーションをブレンド補間すると、

    ブレンドが正しく行われないことがあります。

  • -ForceWriteMotionPos 

    モーション出力時、常に位置を出力するようにします。

    通常では値が0,0,0でキーが無い場合は位置をモーションに出力しませんが、

    このオプションをつけると、その場合でも位置を出力します。

  • -ForceWriteMotionRot 

    モーション出力時、常に回転情報を出力するようにします。

    通常では回転情報が無く、キーも無い場合は回転情報をモーションに出力しませんが、

    このオプションをつけると、その場合でも回転情報を出力します。

  • -ForceWriteMotionScale 

    モーション出力時、常にスケールを出力するようにします。

    通常では値が1,1,1でキーが無い場合はスケールをモーションに出力しませんが、

    このオプションをつけると、その場合でもスケールを出力します。

  • -BaseIDStep 

  • -TextureIDList テクスチャIDリストファイル名

    テクスチャIDリストを指定します。

    テクスチャIDリストとは、

    テクスチャ名=テクスチャID

    という形式で記述したテキストファイルで、ここに記述されたテクスチャは指定されたIDが使用されます。

    また、ここにないテクスチャは自動でIDが割り当てられ、このファイルに追加されます。

    手動で用意したり編集する必要は無く、自動で生成され更新されます。

  • -ShaderIDList シェーダIDリストファイル名

    シェーダIDリストを指定します。

    シェーダIDリストとは、

    シェーダ名=シェーダID

    という形式で記述したテキストファイルで、ここに記述されたシェーダは指定されたIDが使用されます。

    また、ここにないシェーダは自動でIDが割り当てられ、このファイルに追加されます。

  • -TexturePath テクスチャ出力パス

    テクスチャ出力パスを指定します。

    コンバート時に出力する画像ファイルはこのパスに保存します。

    指定が無ければ、最終データ出力パスを使用します。

  • -Platform 

  • -NodeValueFile 

  • -NodeIgnoreFile 

  • -ColorReduce 

  • -ColorReduceQuality 

  • -SeparateImage 

  • -SarList Sarファイル名

    .sarファイルと、SarListファイルを生成するオプションです。

    .sarとは.aar(Aqualeadで使用するアーカイブ)を生成するための設定ファイルです。

    .sarは、以下のように記述します。IDはデータの種別が違えば同じものを使用できます。

    Tex.bmp=0x1000

    sample1.amt=0x1000

    sample2.amt=0x1001

    .aarを作成する時にはデータごとにIDを設定する必要があるため、.sarが必要になります。

    SarListは、.csvなどのデータが存在する時、そのデータ用の

    .sarをincludeするためのファイルです。以下のように記述します。

    [CheckInclude]

    Test1.sar,../Test1.xls

    Test2.sar,../Test2.xls

    Test3.sar,../Test3.xls

    [CheckInclude]は、ALMakeArc関数を実行する時にカンマで区切った二番目のデータが存在すれば、

    一番目の.sarをincludeする構文です。

    例えばTest1.xlsが二番目の項目で指定されたパスに存在すれば、Test1.sarをincludeします。

    ALMakeArc( "_work/SarList.sar ../../Data/Tests.aar" );

    ALMakeArc関数の実行時、リストの最後の項目(Test3.csv)までCheckIncludeを行い、

    存在するすべての.csvを一つのTests.aarファイルにまとめて生成します。

  • -TextureScale 

  • -Filter