-
Notifications
You must be signed in to change notification settings - Fork 1
Hack.io.BCK
Super Hackio edited this page Jul 23, 2020
·
3 revisions
Hack.io.BCK is the Library that handles Bone animations for J3D Models (BMD & BDL)
.bck
is the only format supported by this library. BCK Stands for Binary Curve Keyframes.
The BCK Class contains all the information about a given bone animation
-
Properties
-
string FileName
: The full path of this BCK file. If not set, set using Save() -
BCK.LoopMode Loop
: The mode to use for Looping. -
ushort Time
: The length of the animation -
float RotationMultiplier
: Unknown -
List<BCK.Animation> JointAnimations
: The list of animations in this file. There will be one for each bone in a given model
-
-
BCK.LoopMode
-
Default = 0x00
: The Default Loopmode of the game. Varies between games -
Once = 0x01
: The animation will play only once before stopping -
Loop = 0x02
: The animation will repeat forever -
OnceAndReverse = 0x03
: The animation will play forwards, and then play in reverse, stopping at the start. -
OnceAndReverseLoop = 0x04
: The animation will play forwards, and then play in reverse, then repeat instead of stopping
-
-
BCK.Animation
-
List<BCK.Animation.Keyframe> ScaleXFrames
: The List of keyframes that hold data related to scaling a bone along it's X Axis -
List<BCK.Animation.Keyframe> ScaleYFrames
: The List of keyframes that hold data related to scaling a bone along it's Y Axis -
List<BCK.Animation.Keyframe> ScaleZFrames
: The List of keyframes that hold data related to scaling a bone along it's Z Axis -
List<BCK.Animation.Keyframe> RotationXFrames
: The List of keyframes that hold data related to rotating a bone along it's X Axis -
List<BCK.Animation.Keyframe> RotationYFrames
: The List of keyframes that hold data related to rotating a bone along it's Y Axis -
List<BCK.Animation.Keyframe> RotationZFrames
: The List of keyframes that hold data related to rotating a bone along it's Z Axis -
List<BCK.Animation.Keyframe> TranslationXFrames
: The List of keyframes that hold data related to Translating a bone along it's X Axis -
List<BCK.Animation.Keyframe> TranslationYFrames
: The List of keyframes that hold data related to Translating a bone along it's Y Axis -
List<BCK.Animation.Keyframe> TranslationZFrames
: The List of keyframes that hold data related to Translating a bone along it's Z Axis -
BCK.Animation.Keyframe
-
ushort Time
: The position in the timeline that this keyframe exists at -
float Value
: The value that this keyframe represents -
float IngoingTangent
: The Tangent used for interpolating the previous frame and this frame -
float OutgoingTangent
: The Tangent used for interpolating the previous frame and this frame -
BCK.Animation.Keyframe()
: Create a blank keyframe (0,0,0,0)
-
-
BCK.Animation()
: Create a blank animation (All lists are empty) -
BCK.Animation(int ScaleCount = 1, int RotationCount = 1, int TranslationCount = 1)
: Creates a new animation with the given amount of keyframes. (Default 1 keyframe per group)
-
-
BCK()
: Create an Empty BCK -
BCK(string filename)
: Load a BCK from a file -
BCK(Stream BCKStream, string filename = null)
: Load a BCK from a stream (optionally with a given filename) -
void Save(string Filename = null)
: Save the BCK to the given file. If you leave Filename as null, it will use the already existing filename. Will throw an error if the Filename was null, and you didn't provide one in the method call.
All 3 of the classes related to BCK are equatable to each other using both .Equals()
and the ==
and !=
operators. Each class also has a ToString()
override, which is primarily used for Debugging Purposes.