Switch-Toolbox/Switch_Toolbox_Library/Resources/FlatBuffers/gfbanm.fbs
KillzXGaming e4722ed1af Alot of additions.
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.
2019-12-07 20:16:13 -05:00

210 lines
3.1 KiB
Text

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;