-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathXSM.bt
117 lines (97 loc) · 1.81 KB
/
XSM.bt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
//------------------------------------------------
//--- 010 Editor v13.0.1 Binary Template
//
// File:
// Authors:
// Version:
// Purpose:
// Category:
// File Mask:
// ID Bytes:
// History:
//------------------------------------------------
LittleEndian();
typedef struct{
byte magic[4];
byte majorVersion;
byte minorVersion;
byte bBigEndian;
byte pad;
}Xsm;
Xsm xsm;
typedef struct{
int32 chunkType;
int32 length;
int32 version;
}Chunk;
Chunk chunk;
typedef struct{
float unused;
float fMaxAcceptableError;
int32 fps;
byte exporterMajorVersion;
byte exporterMinorVersion;
byte pad[2];
int32 sourceAppsize;
byte sourceApp[sourceAppsize];
int32 origFileNamesize;
byte origFileName[origFileNamesize];
int32 exportDatesize;
byte exportDate[exportDatesize];
}Metadata;
Metadata metadata;
typedef struct{
float x;
float y;
float z;
}Vec3d;
typedef struct{
int16 x;
int16 y;
int16 z;
int16 w;
}Quat16;
typedef struct{
Vec3d pos;
float fTime;
}PosKey;
typedef struct{
Quat16 rot;
float fTime;
}RotKey;
typedef struct{
Vec3d scale;
float fTime;
}ScaleKey;
typedef struct{
Quat16 rot;
float fTime;
}ScaleRotKey;
typedef struct{
Quat16 poseRot;
Quat16 bindPoseRot;
Quat16 poseScaleRot;
Quat16 bindPoseScaleRot;
Vec3d posePos;
Vec3d poseScale;
Vec3d bindPosePos;
Vec3d bindPoseScale;
int32 numPosKeys;
int32 numRotKeys;
int32 numScaleKeys;
int32 numScaleRotKeys;
float fMaxError;
int32 namelength;
byte name[namelength]<optimize=false>;
PosKey poskey[numPosKeys]<optimize=false>;
RotKey rotkey[numRotKeys]<optimize=false>;
ScaleKey scalekey[numScaleKeys]<optimize=false>;
ScaleRotKey scalerotkey[numScaleRotKeys]<optimize=false>;
}SkeletalSubMotion;
typedef struct{
int32 numSubMotions;
SkeletalSubMotion submotion[numSubMotions]<optimize=false>;
}BoneAnimation;
int padding;
Chunk chunk2;
BoneAnimation bone;