-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathans-animation.mif
More file actions
170 lines (168 loc) · 3.14 KB
/
ans-animation.mif
File metadata and controls
170 lines (168 loc) · 3.14 KB
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
//===================================================================
//
// Animation (.ans) Example Template
//
// @author Aconite
// @since SWG Source 2022
// @see clientSkeletalAnimation/CompressedKeyframeAnimationTemplate.cpp
//
//===================================================================
//
// note: you may consider using either the compressed format here or the standard keyframe format
// see the logical animation table (lat) example template for formatting for both
//
//===================================================================
#pragma extension "ans"
form "CKAT"
{
// version 1 (latest)
form "0001"
{
// general animation information
chunk "INFO"
{
// frames per second
float 0
// frame count
int16 0
// transform info count
int16 0
// rotation channel count
int16 0
// static rotation count
int16 0
// translation channel count
int16 0
// static translation count
int16 0
}
// transform info
form "XFRM"
{
// for each of transform info count from INFO chunk
chunk "XFIN"
{
// name
// e.g., leftear01
cstring ""
// has animated rotations? (0/1)
int8 0
// rotation channel index
int16 0
// translation mask
uint8 0
// x translation channel index
int16 0
// y translation channel index
int16 0
// z translation channel index
int16 0
}
}
// animated rotation channels
form "AROT"
{
// for each rotation channel count from INFO chunk
chunk "QCHN"
{
// key count
int16 0
// compression format
int8 0 // x
int8 0 // y
int8 0 // z
// for each key count
// frame number
uint16 0
// compressed rotation
uint32 0
}
}
// static rotation data
chunk "SROT"
{
// for each of static rotation count from INFO chunk
// x format
uint8 0
// y format
uint8 0
// z format
uint8 0
// compressed rotation value
uint32 0
}
// animated translation channels
form "ATRN"
{
// for each of translation channel count from INFO chunk
chunk "CHNL"
{
// key count
int16 0
// for each key count
// frame number
int16 0
// value
float 0
}
}
// static translation data
chunk "STRN"
{
// for each of static translation count from INFO chunk
// static translation
float 0
}
// animation messages
form "MSGS"
{
chunk "INFO"
{
// number of messages
int16 0
}
// for each message
chunk "MESG"
{
// signal count
int16 0
// signal name
// e.g., event_vocalize
cstring ""
// for each signal count
// trigger frame number
int16 0
}
}
// locomotion translation data
chunk "LOCT"
{
// average translational speed
float 0
// key count
int16 0
// for each key count
// frame number
int16 0
// translation as float vector (x, y, z)
float 0 // x
float 0 // y
float 0 // z
}
// locomotion rotation data
chunk "QCHN"
{
// key count
int16 0
// compression format
int8 0 // x
int8 0 // y
int8 0 // z
// for each key count
// frame number
uint16 0
// compressed rotation
uint32 0
}
}
}