MORE::Animation
MORE::Animation
structure
Track
structure
Name |
Type |
Condition |
Description |
type |
uint32 |
|
Never observed to be type >= 0x0D . |
name |
BasicString |
|
|
data |
TrackSimple <uint16 , uint16 , TimeF16 > |
type == 0x00 |
|
data |
TrackSimple <float32 , float32 , float32 > |
type == 0x01 |
|
data |
TrackSimple <Vector3 , Vector3 , float32 > |
type == 0x02 |
|
data |
TrackSimple <Quaternion , Quaternion , float32 > |
type == 0x03 |
|
data |
TrackLinear <float32 , float32 , float32 > |
type == 0x04 |
|
data |
TrackLinear <Vector3 , Vector3 , float32 > |
type == 0x05 |
|
data |
TrackLinear <Quaternion , Quaternion , float32 > |
type == 0x06 |
|
data |
TrackBezier <float32 , float32 , float32 > |
type == 0x07 |
|
data |
TrackBezier <Vector3 , Vector3 , float32 > |
type == 0x08 |
|
data |
TrackBezier <Quaternion , Quaternion , float32 > |
type == 0x09 |
|
data |
TrackTCB <float32 > |
type == 0x0A |
|
data |
TrackTCB <Vector3 > |
type == 0x0B |
|
data |
TrackTCB <Quaternion > |
type == 0x0C |
|
data |
TrackDisplacement |
type == 0x0D |
|
data |
TrackEvent |
type == 0x0E |
|
data |
TrackUser <uint16 > |
type == 0x0F |
|
data |
TrackUser <float32 > |
type == 0x10 |
|
data |
TrackUser <Vector3 > |
type == 0x11 |
|
data |
TrackUser <Quaternion > |
type == 0x12 |
|
data |
TrackSimple <Quaternion , CompressedQuaternionU32 , float32 > |
type == 0x13 |
|
data |
TrackLinear <Quaternion , CompressedQuaternionU32 , float32 > |
type == 0x14 |
|
data |
TrackBezier <Quaternion , CompressedQuaternionU32 , float32 > |
type == 0x15 |
|
data |
TrackSimple <Quaternion , CompressedQuaternion3U16 , TimeF16 > |
type == 0x18 |
|
data |
TrackLinear <Quaternion , CompressedQuaternion3U16 , TimeF16 > |
type == 0x19 |
|
data |
TrackBezier <Quaternion , CompressedQuaternion3U16 , TimeF16 > |
type == 0x1A |
|
data |
TrackSimple <Vector3 , EulerAngleRad , TimeF16 > |
type == 0x1D |
|
data |
TrackLinear <Vector3 , EulerAngleRad , TimeF16 > |
type == 0x1E |
|
data |
TrackBezier <Vector3 , EulerAngleRad , TimeF16 > |
type == 0x1F |
|
Note
If type
is not any of the values listed above, Revelation will crash.
TimeF16
type
Compression/decompression:
uint16 TimeF16::Compress(float32 src) {
return (uint16)((*src + 300.0) * (1.0/600.0) * 65534.0);
}
float32 TimeF16::Decompress(uint16 src) {
return (float32)src * (1.0/65534.0) * 600.0 - 300.0;
}
EulerAngleRad
type
Compression/decompression:
uint16 EulerAngleRad::Compress(float32 src) {
return (uint16)((src + M_PI*10) * (M_PI*20) * 65534.0);
}
float32 EulerAngleRad::Decompress(uint16 src) {
return (float32)src * (1.0/65534.0) * (1.0/(M_PI*20) - M_PI*10);
}
TrackSimple
<Value
, ValueComp
, Time
> structure
Name |
Type |
Description |
terminate |
bool |
Revelation's code appears to ignore this field. Never observed to be anything other than true . |
keys |
Array <KeySimple <Value , ValueComp , Time >> |
|
KeySimple
<Value
, ValueComp
, Time
> structure
Name |
Type |
Condition |
time |
float32 |
version < 0x10 |
time |
Time |
version >= 0x10 |
value |
ValueComp |
|
TrackLinear
<Value
, ValueComp
, Time
> structure
Name |
Type |
Description |
terminate |
bool |
Revelation's code appears to ignore this field. Never observed to be anything other than true . |
keys |
Array <KeyLinear <Value , ValueComp , Time >> |
|
KeyLinear
<Value
, ValueComp
, Time
> structure
Name |
Type |
time |
Time |
value |
ValueComp |
TrackBezier
<Value
, ValueComp
, Time
> structure
Name |
Type |
Description |
terminate |
bool |
Revelation's code appears to ignore this field. Never observed to be anything other than true . |
keys |
Array <KeyBezier <Value , ValueComp , Time >> |
|
KeyBezier
<Value
, ValueComp
, Time
> structure
Name |
Type |
Condition |
Description |
time |
Time |
|
|
value |
ValueComp |
|
|
derSrc |
Value |
version < 0x11 |
|
derDst |
Value |
version < 0x11 |
Ignored if Value == Quaternion . |
derSrc |
ValueComp |
version >= 0x11 |
|
derDst |
ValueComp |
version >= 0x11 && Value != Quaternion |
|
flatOut |
bool |
|
|
TrackTCB
<Value
> structure
Name |
Type |
Description |
terminate |
bool |
Revelation's code appears to ignore this field. Never observed to be anything other than true . |
keys |
Array <KeyTCB <Value >> |
|
KeyTCB
<Value
> structure
Name |
Type |
Condition |
time |
float32 |
|
value |
Value |
|
tens |
float32 |
|
cont |
float32 |
|
bias |
float32 |
|
easeTo |
float32 |
|
easeFrom |
float32 |
|
derSrc |
Value |
|
derDst |
Value |
|
angle |
float32 |
Value == Quaternion |
axis |
Vector3 |
Value == Quaternion |
TrackDisplacement
structure
TrackEvent
structure
KeyEvent
structure
Name |
Type |
Condition |
time |
float32 |
|
value |
uint32 |
|
userData |
BasicString |
version >= 0x2 |
TrackUser
<Value
> structure
Name |
Type |
Description |
terminate |
bool |
Revelation's code appears to ignore this field. |
Instant
structure
Name |
Type |
time |
float32 |
id |
uint16 |