itempict等で利用されるファイル
mrbファイルやtexファイル等を関連付けしてる
ファイル構成:hed + data + ファイル名などの情報(dataのアドレスから参照)

struct hed {
       DWORD ver;		//とりあえずバージョン 08/07/04に3から4へ
       DWORD DataType;		//モデルの種類
       /*
               Map = 0
               MapObj = 1
               Effect = 2
               Character & Furniture = 3
               Monster = 4
               Npc = 5
               Marionette = 6
               Other = 7
       */
       DWORD MrbAddress;	//Mrb名のアドレス
       DWORD Count;		//オブジェクト数
        WORD EffectID;		//effect.sppを参照する
}
struct data {
	struct address {//以下文字列のアドレス
	 	DWORD Obj;	//ObjName
	 	DWORD Ct;		//ContextFileName
	 	DWORD Tex1;	//Tex1FileName
	 	DWORD Tex2;	//Tex2FileName
	 	DWORD Humei;	//現在使用されてなさそう(08/07/04
	 	DWORD Humei2;	//現在使用されてなさそう(08/07/04
	 	DWORD UV;		//UV値関連("U+[720f]" とか "UV[U-030,V+015]"とか Offset値?
	 	DWORD Humei3;	//現在使用されてなさそう(08/07/04
	 	DWORD Humei3;	//現在使用されてなさそう(08/07/04
	 	DWORD Humei4;	//現在使用されてなさそう(08/07/04
/******  Ver4以上から *****/
	 	DWORD Humei5;	//現在使用されてなさそう(08/07/04
	 	DWORD Humei6;	//現在使用されてなさそう(08/07/04
	 	DWORD Humei7;	//現在使用されてなさそう(08/07/04
	 	DWORD Humei8;	//現在使用されてなさそう(08/07/04
/******  ここまで  *****/
	}
	D3DMATERIAL8 material (
		struct Diffuse{
			float r,g,b;	//0.0f, 0.25f, 0.5f, 1.0f
			float a;		//1.0fか0.0f
		}
		struct Ambient{
			float r,g,b;	//0.0f〜1.0f
			float a;		//ほぼ0.0f。26_kibako02_01B.txtだけ0.6f
		}
		struct Specular{
			float r,g,b;	//0.0f
			float a;		//0.0f
		}
		struct Emissive{
			float r,g,b;	//0.0f
			float a;		//0.0f
		}
		float	Power;		//0.0f
	)
	byte	Visible;		//
} * Count

以下はdataから読む(SetFilePointer?(hFile,add〜)なり&buf[address.Tex1]とか


ファイルの頭から Lenght 分進んだところから(実際にこの順番で並んでるとは限らない)
MrbFile? Char[] //0x00終端

structure Material {
	ObjFile	Char[]+'\0'	//0x00終端。存在しないときは 0x00だけ
	CtFile	Char[]+'\0'	//同上
	TexFile	Char[]+'\0'	//同上
	Tex2File	Char[]+'\0'	//同上
	Humei	Char[]+'\0'	//同上
	Humei	Char[]+'\0'	//同上
	UV	Char[]+'\0'	//同上
	Humei	Char[]+'\0'	//同上
	Humei	Char[]+'\0'	//同上
	Humei	Char[]+'\0'	//同上
					//ここからVer4以上のみ
	Humei	Char[]+'\0'	//同上
	Humei	Char[]+'\0'	//同上
	Humei	Char[]+'\0'	//同上
	Humei	Char[]+'\0'	//同上
} * Count

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-06-15 (土) 20:24:06 (1708d)