PMD格式(头文件)
2015-11-29 22:57
579 查看
写在前面:很久之前的东东了,现在基本也没有用了,但是查看模型源文件能够用于帮助自己理解3D模型。最近在赶项目,虽然有的Demo已经整理出来了但是没时间写Orz。月末转一篇,期待以后能够补上,做到月更,见证自己成长。
#define MODEL_NAME_LENGTH 20
#define COMMENT_LENGTH 256
#define ELEMENT_NAME_LENGTH 20 #define UVMAP_NAME "Texture"
#define NORMALMAP_NAME "PMDNormal"
#define EDGELINE_NAME "PMDEdgeLine"
#define PTAG_PMDB LWID_('P','M','D','B') // bone param
// "%hd %hu %u %hu", boneElement[].parentIdx, boneElement[].tipIdx, boneElement[].type, boneElement[].refIdx
#define PTAG_PMDK LWID_('P','M','D','K') // ik param
// "%hu %hu %u %hu %f", ikElement[].rootBoneIdx, ikElement[].tipBoneIdx, ikElement[].boneNum, ikElement[].param, ikElement[].paramF
#define PTAG_PMDI LWID_('P','M','D','I') // ik chain boneIdxList(16进)
// "%04X ...", ikElement[].boneIdxs
,...
#define PTAG_PMDX LWID_('P','M','D','X') // lw pol index(16进) lw侧管カー用
// "%04X", boneIndex #define BTYPE_ROT 0 // 通常(回サモ)
#define BTYPE_MOV 1 // 通常(回サモ/移动)
#define BTYPE_CTL 2 // IK Ctl(回サモ/移动)
#define BTYPE_SEL 3 // 非表示/选ユス可
#define BTYPE_CHAIN 4 // IK Chain(回サモ)
#define BTYPE_REF 5 // 回サモ参矮(Refer Indexユ・墲、)
#define BTYPE_GOAL 6 // IK Goal
#define BTYPE_UNSEL 7 // 非表示/选ユス不可
// ===============================================================
#pragma pack(1) // ヌ聘アイメント禁止 #define PNT_ELEMENT_SIZE 38
typedef struct _pntElement{ // 38 byte 固定
float pos[3]; // 顶点座标
float norm[3]; // 顶点ノーオアル
float uv[2]; // リu
u_short boneIdx[2]; // ボーンindex
u_char wgt; // boneIdx[0]ヤロルヘェイト値
u_char eFlag; // エッニヘルアイン描画フルアグ(0:有り,1:无し)
} pntElement; // polElement は u_shortヤロノ缨・ #define SURF_ELEMENT_SIZE 70
typedef struct _surfElement{ // 70 byte 固定
float colrVal[3]; // 基本色
float tranVal; // 不ツァ明度
float glosVal; // グセ。ス
float specVal[3]; // スペルンュルアカルアー
float ambiVal[3]; // ヌ繝鸨ロエントカルアー
u_char shade_No; // シェールヌィング用イメーニヘNo.
u_char edgeLine; // エッニヘルアイン描画フルアグ(0:无し,1:有り)。1ユ・ナ定しpntElement.eFlagでヤロ指定を推奨
u_int nPols; // 割り当てるメレルュヌネン数(三角メレルュでヤロエッニヘ数イ狯ロで1/3するとメレルュヌネン数ユ・烽・
char textFileName[20]; // イメーニヘストクスチャ名
} surfElement; #define BONE_ELEMENT_SIZE 39
typedef struct _boneElement{ // 39 byte 固定
char name[ELEMENT_NAME_LENGTH]; // 名前
short parentIdx; // 亲index(-1:无し) (tag:PMDB)
u_short tipIdx; // 先端座标ユ・烽驿{ーンindex(tag:PMDB)
u_char type; // ボーンホアイプ (tag:PMDB)
u_short refIdx; // 参矮ボーンindex (tag:PMDB)
float pos[3];
} boneElement; #define IK_ELEMENT_SIZE 11
typedef struct _ikElement{ // 11 byte+ 不定
u_short rootBoneIdx; // 制御用ボーンindex (tag:PMDK)
u_short tipBoneIdx; // IKヌネールボーンindex (tag:PMDK)
u_char boneNum; // IKチェーンヤロ构成ボーン数 (tag:PMDK)
u_short param; // パルアメーホア (tag:PMDK)
float paramF; // パルアメーホア (tag:PMDK)
u_short *boneIdxs; // IKチェーンを构成するボーンindex (tag:PMDI)
} ikElement; #define SKINPNT_ELEMENT_SIZE 16
typedef struct _skinPntElement{ // 16 byte 固定
u_int destPntIdx; // 顶点index("base"时はpntElement[]ユ・ホするindex。他はskinElement[0].skinPntElm[]ユ・ホするindex)
float pos[3]; // 顶点座标("base"时はpntElement[].pos。他はpntElement[].posユ・ホする相対値。)
} skinPntElement; #define SKIN_ELEMENT_SIZE 25
typedef struct _skinElement{ // 25 byte+ 不定
char name[ELEMENT_NAME_LENGTH]; // モーフ名称(モーフが有る场合、skinElement[0]は"base"が予约)
u_int pntNum; // 対象顶点数
u_char grp; // UI上ヤログループNo.(0:予约、1-4)
skinPntElement *skinPntElm;
} skinElement; // treeSkinIndexs は u_shortヤロノ缨・ #define TREE_R_ELEMENT_SIZE 50
typedef struct _treeRootElement{ // 50 byte
char name[TREE_R_ELEMENT_SIZE]; // UI上ヤロルュストシロュー用亲阶层文字列
} treeRootElement; #define TREE_C_ELEMENT_SIZE 3
typedef struct _treeChildElement{ // 3 byte
u_short boneIdx; // boneElementヤロindex
u_char treeRootIdx; // treeRootElement[]ヤロindex
} treeChildElement; typedef struct _Pmd_Header{ // 283(3 + 4 + 20 + 256) byte
char head[3]; // ヘッダ"Pmd"
float version; // バーニヘョン(1.0)
char modelName[MODEL_NAME_LENGTH]; // モルヌル名
char comment[COMMENT_LENGTH]; // コメント
} Pmd_Header; #pragma pack() // ヌ聘アイメント禁止解除
struct _Pmd_Data{
pntElement *pntElm; // 顶点要素
u_short *polElm; // メレルュヌネン要素
surfElement *surfElm; // 材质要素
boneElement *boneElm; // ボーン要素
ikElement *ikElm; // IK要素
skinElement *skinElm; // モーフ要素
u_short *treeSkinIdxs; // Tree表示用、モーフindex
treeRootElement *treeRootNames; // Tree表示用、亲阶层名
treeChildElement *treeChildElm; // Tree表示用、ボーンindex
u_int pntElmNum; // 顶点数
u_int polElmNum; // メレルュヌネン数(三角メレルュでヤロエッニヘ数イ狯ロで1/3するとメレルュヌネン数ユ・烽・
u_int surfElmNum; // 材质数
u_int treeChildNum; // Tree表示用、ボーン数
u_short boneElmNum; // ボーン数
u_short ikElmNum; // IKチェーン数
u_short skinElmNum; // モーフ数(无い场合は0、有る场合ユ・K要ユ・烽・base"も数ユ・ワむ)
u_char treeSkinNum; // Tree表示用、表情としてルュストする数
u_char treeRootNum; // Tree表示用、亲阶层数
} Pmd_Data;
// ===============================================================
// ===============================================================
#define MODEL_NAME_LENGTH 20
#define COMMENT_LENGTH 256
#define ELEMENT_NAME_LENGTH 20 #define UVMAP_NAME "Texture"
#define NORMALMAP_NAME "PMDNormal"
#define EDGELINE_NAME "PMDEdgeLine" #define PTAG_PMDB LWID_('P','M','D','B') // bone param
// "%hd %hu %u %hu", boneElement[].parentIdx, boneElement[].tipIdx, boneElement[].type, boneElement[].refIdx
#define PTAG_PMDK LWID_('P','M','D','K') // ik param
// "%hu %hu %u %hu %f", ikElement[].rootBoneIdx, ikElement[].tipBoneIdx, ikElement[].boneNum, ikElement[].param, ikElement[].paramF
#define PTAG_PMDI LWID_('P','M','D','I') // ik chain boneIdxList(16进)
// "%04X ...", ikElement[].boneIdxs
,...
#define PTAG_PMDX LWID_('P','M','D','X') // lw pol index(16进) lw侧管カー用
// "%04X", boneIndex #define BTYPE_ROT 0 // 通常(回サモ)
#define BTYPE_MOV 1 // 通常(回サモ/移动)
#define BTYPE_CTL 2 // IK Ctl(回サモ/移动)
#define BTYPE_SEL 3 // 非表示/选ユス可
#define BTYPE_CHAIN 4 // IK Chain(回サモ)
#define BTYPE_REF 5 // 回サモ参矮(Refer Indexユ・墲、)
#define BTYPE_GOAL 6 // IK Goal
#define BTYPE_UNSEL 7 // 非表示/选ユス不可
// ===============================================================
#pragma pack(1) // ヌ聘アイメント禁止 #define PNT_ELEMENT_SIZE 38
typedef struct _pntElement{ // 38 byte 固定
float pos[3]; // 顶点座标
float norm[3]; // 顶点ノーオアル
float uv[2]; // リu
u_short boneIdx[2]; // ボーンindex
u_char wgt; // boneIdx[0]ヤロルヘェイト値 u_char eFlag; // エッニヘルアイン描画フルアグ(0:有り,1:无し)
} pntElement; // polElement は u_shortヤロノ缨・ #define SURF_ELEMENT_SIZE 70
typedef struct _surfElement{ // 70 byte 固定
float colrVal[3]; // 基本色
float tranVal; // 不ツァ明度
float glosVal; // グセ。ス
float specVal[3]; // スペルンュルアカルアー
float ambiVal[3]; // ヌ繝鸨ロエントカルアー
u_char shade_No; // シェールヌィング用イメーニヘNo.
u_char edgeLine; // エッニヘルアイン描画フルアグ(0:无し,1:有り)。1ユ・ナ定しpntElement.eFlagでヤロ指定を推奨
u_int nPols; // 割り当てるメレルュヌネン数(三角メレルュでヤロエッニヘ数イ狯ロで1/3するとメレルュヌネン数ユ・烽・
char textFileName[20]; // イメーニヘストクスチャ名
} surfElement;
#define BONE_ELEMENT_SIZE 39
typedef struct _boneElement{ // 39 byte 固定
char name[ELEMENT_NAME_LENGTH]; // 名前
short parentIdx; // 亲index(-1:无し) (tag:PMDB)
u_short tipIdx; // 先端座标ユ・烽驿{ーンindex(tag:PMDB)
u_char type; // ボーンホアイプ (tag:PMDB)
u_short refIdx; // 参矮ボーンindex (tag:PMDB)
float pos[3];
} boneElement; #define IK_ELEMENT_SIZE 11
typedef struct _ikElement{ // 11 byte+ 不定
u_short rootBoneIdx; // 制御用ボーンindex (tag:PMDK)
u_short tipBoneIdx; // IKヌネールボーンindex (tag:PMDK)
u_char boneNum; // IKチェーンヤロ构成ボーン数 (tag:PMDK)
u_short param; // パルアメーホア (tag:PMDK) float paramF; // パルアメーホア (tag:PMDK)
u_short *boneIdxs; // IKチェーンを构成するボーンindex (tag:PMDI)
} ikElement; #define SKINPNT_ELEMENT_SIZE 16
typedef struct _skinPntElement{ // 16 byte 固定
u_int destPntIdx; // 顶点index("base"时はpntElement[]ユ・ホするindex。他はskinElement[0].skinPntElm[]ユ・ホするindex)
struct _Pmd_Data{
pntElement *pntElm; // 顶点要素
u_short *polElm; // メレルュヌネン要素
surfElement *surfElm; // 材质要素
boneElement *boneElm; // ボーン要素
ikElement *ikElm; // IK要素
skinElement *skinElm; // モーフ要素
u_short *treeSkinIdxs; // Tree表示用、モーフindex
treeRootElement *treeRootNames; // Tree表示用、亲阶层名
treeChildElement *treeChildElm; // Tree表示用、ボーンindex
u_int pntElmNum; // 顶点数
u_int polElmNum; // メレルュヌネン数(三角メレルュでヤロエッニヘ数イ狯ロで1/3するとメレルュヌネン数ユ・烽・
u_int surfElmNum; // 材质数
u_int treeChildNum; // Tree表示用、ボーン数
u_short boneElmNum; // ボーン数
u_short ikElmNum; // IKチェーン数
u_short skinElmNum; // モーフ数(无い场合は0、有る场合ユ・K要ユ・烽・base"も数ユ・ワむ)
u_char treeSkinNum; // Tree表示用、表情としてルュストする数
u_char treeRootNum; // Tree表示用、亲阶层数
} Pmd_Data;
#define MODEL_NAME_LENGTH 20
#define COMMENT_LENGTH 256
#define ELEMENT_NAME_LENGTH 20 #define UVMAP_NAME "Texture"
#define NORMALMAP_NAME "PMDNormal"
#define EDGELINE_NAME "PMDEdgeLine"
#define PTAG_PMDB LWID_('P','M','D','B') // bone param
// "%hd %hu %u %hu", boneElement[].parentIdx, boneElement[].tipIdx, boneElement[].type, boneElement[].refIdx
#define PTAG_PMDK LWID_('P','M','D','K') // ik param
// "%hu %hu %u %hu %f", ikElement[].rootBoneIdx, ikElement[].tipBoneIdx, ikElement[].boneNum, ikElement[].param, ikElement[].paramF
#define PTAG_PMDI LWID_('P','M','D','I') // ik chain boneIdxList(16进)
// "%04X ...", ikElement[].boneIdxs
,...
#define PTAG_PMDX LWID_('P','M','D','X') // lw pol index(16进) lw侧管カー用
// "%04X", boneIndex #define BTYPE_ROT 0 // 通常(回サモ)
#define BTYPE_MOV 1 // 通常(回サモ/移动)
#define BTYPE_CTL 2 // IK Ctl(回サモ/移动)
#define BTYPE_SEL 3 // 非表示/选ユス可
#define BTYPE_CHAIN 4 // IK Chain(回サモ)
#define BTYPE_REF 5 // 回サモ参矮(Refer Indexユ・墲、)
#define BTYPE_GOAL 6 // IK Goal
#define BTYPE_UNSEL 7 // 非表示/选ユス不可
// ===============================================================
#pragma pack(1) // ヌ聘アイメント禁止 #define PNT_ELEMENT_SIZE 38
typedef struct _pntElement{ // 38 byte 固定
float pos[3]; // 顶点座标
float norm[3]; // 顶点ノーオアル
float uv[2]; // リu
u_short boneIdx[2]; // ボーンindex
u_char wgt; // boneIdx[0]ヤロルヘェイト値
u_char eFlag; // エッニヘルアイン描画フルアグ(0:有り,1:无し)
} pntElement; // polElement は u_shortヤロノ缨・ #define SURF_ELEMENT_SIZE 70
typedef struct _surfElement{ // 70 byte 固定
float colrVal[3]; // 基本色
float tranVal; // 不ツァ明度
float glosVal; // グセ。ス
float specVal[3]; // スペルンュルアカルアー
float ambiVal[3]; // ヌ繝鸨ロエントカルアー
u_char shade_No; // シェールヌィング用イメーニヘNo.
u_char edgeLine; // エッニヘルアイン描画フルアグ(0:无し,1:有り)。1ユ・ナ定しpntElement.eFlagでヤロ指定を推奨
u_int nPols; // 割り当てるメレルュヌネン数(三角メレルュでヤロエッニヘ数イ狯ロで1/3するとメレルュヌネン数ユ・烽・
char textFileName[20]; // イメーニヘストクスチャ名
} surfElement; #define BONE_ELEMENT_SIZE 39
typedef struct _boneElement{ // 39 byte 固定
char name[ELEMENT_NAME_LENGTH]; // 名前
short parentIdx; // 亲index(-1:无し) (tag:PMDB)
u_short tipIdx; // 先端座标ユ・烽驿{ーンindex(tag:PMDB)
u_char type; // ボーンホアイプ (tag:PMDB)
u_short refIdx; // 参矮ボーンindex (tag:PMDB)
float pos[3];
} boneElement; #define IK_ELEMENT_SIZE 11
typedef struct _ikElement{ // 11 byte+ 不定
u_short rootBoneIdx; // 制御用ボーンindex (tag:PMDK)
u_short tipBoneIdx; // IKヌネールボーンindex (tag:PMDK)
u_char boneNum; // IKチェーンヤロ构成ボーン数 (tag:PMDK)
u_short param; // パルアメーホア (tag:PMDK)
float paramF; // パルアメーホア (tag:PMDK)
u_short *boneIdxs; // IKチェーンを构成するボーンindex (tag:PMDI)
} ikElement; #define SKINPNT_ELEMENT_SIZE 16
typedef struct _skinPntElement{ // 16 byte 固定
u_int destPntIdx; // 顶点index("base"时はpntElement[]ユ・ホするindex。他はskinElement[0].skinPntElm[]ユ・ホするindex)
float pos[3]; // 顶点座标("base"时はpntElement[].pos。他はpntElement[].posユ・ホする相対値。)
} skinPntElement; #define SKIN_ELEMENT_SIZE 25
typedef struct _skinElement{ // 25 byte+ 不定
char name[ELEMENT_NAME_LENGTH]; // モーフ名称(モーフが有る场合、skinElement[0]は"base"が予约)
u_int pntNum; // 対象顶点数
u_char grp; // UI上ヤログループNo.(0:予约、1-4)
skinPntElement *skinPntElm;
} skinElement; // treeSkinIndexs は u_shortヤロノ缨・ #define TREE_R_ELEMENT_SIZE 50
typedef struct _treeRootElement{ // 50 byte
char name[TREE_R_ELEMENT_SIZE]; // UI上ヤロルュストシロュー用亲阶层文字列
} treeRootElement; #define TREE_C_ELEMENT_SIZE 3
typedef struct _treeChildElement{ // 3 byte
u_short boneIdx; // boneElementヤロindex
u_char treeRootIdx; // treeRootElement[]ヤロindex
} treeChildElement; typedef struct _Pmd_Header{ // 283(3 + 4 + 20 + 256) byte
char head[3]; // ヘッダ"Pmd"
float version; // バーニヘョン(1.0)
char modelName[MODEL_NAME_LENGTH]; // モルヌル名
char comment[COMMENT_LENGTH]; // コメント
} Pmd_Header; #pragma pack() // ヌ聘アイメント禁止解除
struct _Pmd_Data{
pntElement *pntElm; // 顶点要素
u_short *polElm; // メレルュヌネン要素
surfElement *surfElm; // 材质要素
boneElement *boneElm; // ボーン要素
ikElement *ikElm; // IK要素
skinElement *skinElm; // モーフ要素
u_short *treeSkinIdxs; // Tree表示用、モーフindex
treeRootElement *treeRootNames; // Tree表示用、亲阶层名
treeChildElement *treeChildElm; // Tree表示用、ボーンindex
u_int pntElmNum; // 顶点数
u_int polElmNum; // メレルュヌネン数(三角メレルュでヤロエッニヘ数イ狯ロで1/3するとメレルュヌネン数ユ・烽・
u_int surfElmNum; // 材质数
u_int treeChildNum; // Tree表示用、ボーン数
u_short boneElmNum; // ボーン数
u_short ikElmNum; // IKチェーン数
u_short skinElmNum; // モーフ数(无い场合は0、有る场合ユ・K要ユ・烽・base"も数ユ・ワむ)
u_char treeSkinNum; // Tree表示用、表情としてルュストする数
u_char treeRootNum; // Tree表示用、亲阶层数
} Pmd_Data;
// ===============================================================
// ===============================================================
#define MODEL_NAME_LENGTH 20
#define COMMENT_LENGTH 256
#define ELEMENT_NAME_LENGTH 20 #define UVMAP_NAME "Texture"
#define NORMALMAP_NAME "PMDNormal"
#define EDGELINE_NAME "PMDEdgeLine" #define PTAG_PMDB LWID_('P','M','D','B') // bone param
// "%hd %hu %u %hu", boneElement[].parentIdx, boneElement[].tipIdx, boneElement[].type, boneElement[].refIdx
#define PTAG_PMDK LWID_('P','M','D','K') // ik param
// "%hu %hu %u %hu %f", ikElement[].rootBoneIdx, ikElement[].tipBoneIdx, ikElement[].boneNum, ikElement[].param, ikElement[].paramF
#define PTAG_PMDI LWID_('P','M','D','I') // ik chain boneIdxList(16进)
// "%04X ...", ikElement[].boneIdxs
,...
#define PTAG_PMDX LWID_('P','M','D','X') // lw pol index(16进) lw侧管カー用
// "%04X", boneIndex #define BTYPE_ROT 0 // 通常(回サモ)
#define BTYPE_MOV 1 // 通常(回サモ/移动)
#define BTYPE_CTL 2 // IK Ctl(回サモ/移动)
#define BTYPE_SEL 3 // 非表示/选ユス可
#define BTYPE_CHAIN 4 // IK Chain(回サモ)
#define BTYPE_REF 5 // 回サモ参矮(Refer Indexユ・墲、)
#define BTYPE_GOAL 6 // IK Goal
#define BTYPE_UNSEL 7 // 非表示/选ユス不可
// ===============================================================
#pragma pack(1) // ヌ聘アイメント禁止 #define PNT_ELEMENT_SIZE 38
typedef struct _pntElement{ // 38 byte 固定
float pos[3]; // 顶点座标
float norm[3]; // 顶点ノーオアル
float uv[2]; // リu
u_short boneIdx[2]; // ボーンindex
u_char wgt; // boneIdx[0]ヤロルヘェイト値 u_char eFlag; // エッニヘルアイン描画フルアグ(0:有り,1:无し)
} pntElement; // polElement は u_shortヤロノ缨・ #define SURF_ELEMENT_SIZE 70
typedef struct _surfElement{ // 70 byte 固定
float colrVal[3]; // 基本色
float tranVal; // 不ツァ明度
float glosVal; // グセ。ス
float specVal[3]; // スペルンュルアカルアー
float ambiVal[3]; // ヌ繝鸨ロエントカルアー
u_char shade_No; // シェールヌィング用イメーニヘNo.
u_char edgeLine; // エッニヘルアイン描画フルアグ(0:无し,1:有り)。1ユ・ナ定しpntElement.eFlagでヤロ指定を推奨
u_int nPols; // 割り当てるメレルュヌネン数(三角メレルュでヤロエッニヘ数イ狯ロで1/3するとメレルュヌネン数ユ・烽・
char textFileName[20]; // イメーニヘストクスチャ名
} surfElement;
#define BONE_ELEMENT_SIZE 39
typedef struct _boneElement{ // 39 byte 固定
char name[ELEMENT_NAME_LENGTH]; // 名前
short parentIdx; // 亲index(-1:无し) (tag:PMDB)
u_short tipIdx; // 先端座标ユ・烽驿{ーンindex(tag:PMDB)
u_char type; // ボーンホアイプ (tag:PMDB)
u_short refIdx; // 参矮ボーンindex (tag:PMDB)
float pos[3];
} boneElement; #define IK_ELEMENT_SIZE 11
typedef struct _ikElement{ // 11 byte+ 不定
u_short rootBoneIdx; // 制御用ボーンindex (tag:PMDK)
u_short tipBoneIdx; // IKヌネールボーンindex (tag:PMDK)
u_char boneNum; // IKチェーンヤロ构成ボーン数 (tag:PMDK)
u_short param; // パルアメーホア (tag:PMDK) float paramF; // パルアメーホア (tag:PMDK)
u_short *boneIdxs; // IKチェーンを构成するボーンindex (tag:PMDI)
} ikElement; #define SKINPNT_ELEMENT_SIZE 16
typedef struct _skinPntElement{ // 16 byte 固定
u_int destPntIdx; // 顶点index("base"时はpntElement[]ユ・ホするindex。他はskinElement[0].skinPntElm[]ユ・ホするindex)
struct _Pmd_Data{
pntElement *pntElm; // 顶点要素
u_short *polElm; // メレルュヌネン要素
surfElement *surfElm; // 材质要素
boneElement *boneElm; // ボーン要素
ikElement *ikElm; // IK要素
skinElement *skinElm; // モーフ要素
u_short *treeSkinIdxs; // Tree表示用、モーフindex
treeRootElement *treeRootNames; // Tree表示用、亲阶层名
treeChildElement *treeChildElm; // Tree表示用、ボーンindex
u_int pntElmNum; // 顶点数
u_int polElmNum; // メレルュヌネン数(三角メレルュでヤロエッニヘ数イ狯ロで1/3するとメレルュヌネン数ユ・烽・
u_int surfElmNum; // 材质数
u_int treeChildNum; // Tree表示用、ボーン数
u_short boneElmNum; // ボーン数
u_short ikElmNum; // IKチェーン数
u_short skinElmNum; // モーフ数(无い场合は0、有る场合ユ・K要ユ・烽・base"も数ユ・ワむ)
u_char treeSkinNum; // Tree表示用、表情としてルュストする数
u_char treeRootNum; // Tree表示用、亲阶层数
} Pmd_Data;
相关文章推荐
- 3D设计 Adobe Acrobat 3D 8.1.0 英文版 下载
- jquery带翻页动画的电子杂志代码分享
- jquery 3D 标签云示例代码
- jQuery+CSS3实现3D立方体旋转效果
- jquery实现叠层3D文字特效代码分享
- Android编程实现3D滑动旋转效果的方法
- 一个很有趣3D球状标签云兼容IE8
- javascript实现3D变换的立体圆圈实例
- JS实现3D图片旋转展示效果代码
- js实现3D图片逐张轮播幻灯片特效代码分享
- Ubuntu 3D 桌面
- CSS3中3D综合应用及分析
- Unity3D上路_01-2D太空射击游戏
- Unity3D上路_02-第一视角射击游戏
- Unity3D上路_03-塔防游戏
- Unity3D上路_04-基础资源介绍
- Unity3D上路_05-网络相关
- 3D游戏从头编之D3D(1)
- ujjval panchal blog
- 大话3D