e4722ed1af
General - Always allow multiple instances of the tool by default. (UseSingleInstance in config.XML) - Yaz0 now uses a new library using c code. This improves compression times and is comparable to wzst's yaz0 compressor. Thanks to AboodXD for helping port the code. - Add flat buffer templates for gfbmdl and gfbanm. - Redid UV editor. Now using new 2D engine with some improvements. Should work better with mutliple file formats than just bfres. - Auto compress bfres with .sbfres extension. BFLYT: -Add animation reference list to panes if they have any animations. - Note the animation editor in it is not functional yet. GFBMDL - Progress on model importing. Currently crashes on many tests so saving is currently disabled till i figure out why. - Add new texture map display with UV coordinates shown. Displays how transforms are handled. - Add option to export materials and models entirely as .json files. DAE - improve bone/joint check.
211 lines
3.1 KiB
Plaintext
211 lines
3.1 KiB
Plaintext
namespace Gfbanim;
|
|
|
|
union TriggerParams {
|
|
TriggerParameterInt , TriggerParameterFloat,
|
|
TriggerParameterByte, TriggerParameterString
|
|
}
|
|
|
|
union VectorTrack { FixedVectorTrack, DynamicVectorTrack, FramedVectorTrack }
|
|
union RotationTrack { FixedRotationTrack, DynamicRotationTrack, FramedRotationTrack }
|
|
union BooleanTrack { FixedBooleanTrack, DynamicBooleanTrack, FramedBooleanTrack }
|
|
union ValueTrack { FixedValueTrack, DynamicValueTrack, FramedValueTrack }
|
|
|
|
enum RotationFlags:ushort (bit_flags) {
|
|
Orientation = 0,
|
|
Data1,
|
|
Data2 = 3,
|
|
}
|
|
|
|
table Animation {
|
|
AnimConfig:Config;
|
|
Bones:BoneList;
|
|
Materials:MaterialList;
|
|
Groups:GroupList;
|
|
Triggers:TriggerList;
|
|
}
|
|
|
|
table TriggerList {
|
|
Triggers:[Trigger];
|
|
}
|
|
|
|
table Trigger {
|
|
Name:string;
|
|
FrameStart:int;
|
|
FrameEnd:int;
|
|
Parameter:TriggerParameter;
|
|
}
|
|
|
|
|
|
table TriggerParameter {
|
|
Name:string;
|
|
Params:TriggerParams;
|
|
}
|
|
|
|
|
|
|
|
table TriggerParameterInt {
|
|
Value:int;
|
|
}
|
|
table TriggerParameterFloat {
|
|
Value:float;
|
|
}
|
|
table TriggerParameterByte {
|
|
Value:byte;
|
|
}
|
|
table TriggerParameterString {
|
|
Value:string;
|
|
}
|
|
|
|
|
|
table BoneList {
|
|
Bones:[Bone];
|
|
Defaults:BoneDefaults;
|
|
}
|
|
|
|
table MaterialList {
|
|
Materials:[Material];
|
|
}
|
|
|
|
table GroupList {
|
|
Groups:[Group];
|
|
}
|
|
|
|
|
|
table Bone {
|
|
Name:string;
|
|
Scale:VectorTrack;
|
|
Rotate:RotationTrack;
|
|
Translate:VectorTrack;
|
|
ScaleFrames:FrameRanges;
|
|
RotationFrames:FrameRanges;
|
|
TranslationFrames:FrameRanges;
|
|
}
|
|
|
|
table BoneDefaults {
|
|
Unknown:uint;
|
|
Transform:[SRT];
|
|
}
|
|
|
|
table Material {
|
|
Name:string;
|
|
Switches:[MatSwitch];
|
|
Values:[MatValue];
|
|
Vectors:[MatVector];
|
|
}
|
|
|
|
table MatSwitch {
|
|
Name:string;
|
|
Value:BooleanTrack;
|
|
frameRanges:FrameRanges;
|
|
}
|
|
|
|
table MatValue {
|
|
Name:string;
|
|
Value:ValueTrack;
|
|
frameRanges:FrameRanges;
|
|
}
|
|
|
|
table MatVector {
|
|
Name:string;
|
|
Value:VectorTrack;
|
|
frameRanges:FrameRanges;
|
|
}
|
|
|
|
table Group {
|
|
Name:string;
|
|
Value:BooleanTrack;
|
|
}
|
|
|
|
table Config {
|
|
Unknown:uint;
|
|
KeyFrames:uint;
|
|
FramesPerSecond:uint;
|
|
}
|
|
|
|
table FixedVectorTrack {
|
|
Value:Vector3;
|
|
}
|
|
table DynamicVectorTrack {
|
|
Values:[Vector3];
|
|
}
|
|
table FramedVectorTrack {
|
|
Frames:[ushort];
|
|
Values:[Vector3];
|
|
}
|
|
|
|
|
|
table FixedRotationTrack {
|
|
Value:Rotation;
|
|
}
|
|
table DynamicRotationTrack {
|
|
Values:[Rotation];
|
|
}
|
|
table FramedRotationTrack {
|
|
Frames:[ushort];
|
|
Values:[Rotation];
|
|
}
|
|
|
|
table FixedBooleanTrack {
|
|
Value:byte;
|
|
}
|
|
table DynamicBooleanTrack {
|
|
Values:[ushort];
|
|
}
|
|
table FramedBooleanTrack {
|
|
Frames:[ushort];
|
|
Values:[ushort];
|
|
}
|
|
|
|
|
|
table FixedValueTrack {
|
|
Value:float;
|
|
}
|
|
table DynamicValueTrack {
|
|
Values:[float];
|
|
}
|
|
table FramedValueTrack {
|
|
Frames:[ushort];
|
|
Values:[float];
|
|
}
|
|
|
|
|
|
table FrameRanges {
|
|
StartFrames:[ushort];
|
|
EndFrames:[ushort];
|
|
}
|
|
|
|
|
|
struct Vector3 {
|
|
X:float;
|
|
Y:float;
|
|
Z:float;
|
|
}
|
|
|
|
struct Vector4 {
|
|
X:float;
|
|
Y:float;
|
|
Z:float;
|
|
W:float;
|
|
}
|
|
|
|
struct Rotation {
|
|
X:ushort;
|
|
Y:ushort;
|
|
Z:ushort;
|
|
}
|
|
|
|
struct SRT {
|
|
ScaleX:float;
|
|
ScaleY:float;
|
|
ScaleZ:float;
|
|
RotateX:float;
|
|
RotateY:float;
|
|
RotateZ:float;
|
|
RotateW:float;
|
|
TranslateX:float;
|
|
TranslateY:float;
|
|
TranslateZ:float;
|
|
}
|
|
|
|
root_type Animation;
|