Bone Animation

From wiki
Revision as of 03:17, 15 November 2017 by DeamonHunter (Talk | contribs) (Initial commit.)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

In Staxel, *.boneanimation files are used specify animations. These are used alongside a bvh files, which supply the actual animation data.


Creating a *.boneanimation file

This will be coming at a later date.


Config Options

"code"

Valid options (String): A unique string which specifies what this Bone Animation is.

Default Value: No default value is specified. Always need to provide your own.


A string containing the code of the Bone Animation the blob will be referring to.


"axismode"

Valid options (String): Either "XPYPZP" or "XPZPYN"

Default Value: No default value is specified. Always need to provide your own.


This specifies what axis system the animation was using. This can very per software, so may require some searching to see which of the two available types should be used.


"animation"

Valid options (String): The timeline code of the specific animation, in the Bone Animation being used by the Body Type.

Default Value: No default value is specified. Always need to provide your own.


This is the animation that will get played by the emote.


"offset"

Valid options (Vector 3 - Float): { "x": 0.0, "y": 0.0, "z": 0.0 }

Default Value: No default value is specified. Always need to provide your own.


This is the position of the origin of the animation. This is used to line up the positions of bones so that they rotate and scale correctly.


"scale"

Valid options (Float): A positive decimal number.

Default Value: No default value is specified. Always need to provide your own.


This is the scale that gets applied to the animations. This makes sure that it is the correct size to deal with models.


"timelines"

This is a required Blob which is to be added to the Bone Animation file. This blob contains information to seperate the different animations that is contained in the animation file. It will commonly look like;

"timelines": {
  "tpose": {
    "start": 0,
    "end": 0
  },
  "walk": {
    "start": 20,
    "end": 40
  },
  "femalewalk": {
    "start": 50,
    "end": 70
  },
  "run": {
    "start": 80,
    "end": 105
  }
}

Each property here, is actually a different animation. The property name, is the code you want for the animation, while the values contained within are the frames of the animation. The explanation of these properties are as follows;

"base"

Valid options (Integer): A positive integer value.

Default Value: If not specified, will default to the starting frame.

This is the frame that specifies what position this animation will start from.


"start"

Valid options (Integer): A positive integer value.

Default Value: No default value is specified. Always need to provide your own.

This is the frame number, starting from 1, that this animation starts at.


"end"

Valid options (Integer): A positive integer value.

Default Value: No default value is specified. Always need to provide your own.

This is the frame number, starting from 1, that this animation ends at. (This should be the final frame, and not the frame after.)


"translation"

Valid options (Vector 3 - Float): { "x": 0.0, "y": 0.0, "z": 0.0 }

Default Value: No default value is specified. Always need to provide your own.


This is the offset that will be applied to the model. This is used to line up models in game to the animations used here.


"zbias"

This is an optional Blob which can be added to the Bone Animation file. This blob contains information on how to handle which part is rendered above others. For example the player model animations has the following as its bias;

"zbias": {
  "": 0,
  "__0": 0,
  "Torso": 3,
  "Head": 4,
  "Shoulder_Right": 4,
  "UpperArm_Right": 5,
  "LowerArm_Right": 6,
  "Hand_Right": 7,
  "Item_Right": 8,
  "Shoulder_Left": 4,
  "UpperArm_Left": 5,
  "LowerArm_Left": 6,
  "Hand_Left": 7,
  "Item_Left": 8,
  "Thigh_Right": 0,
  "UpperLeg_Right": 1,
  "LowerLeg_Right": 2,
  "Thigh_Left": 0,
  "UpperLeg_Left": 1,
  "LowerLeg_Left": 2
}