Runtime terminology

Common terminology used throughout the official Spine runtimes.

Atlas An atlas, also known as a texture atlas, stores named regions of a texture. Spine can perform texture packing to create an atlas, or external tools such as Texture Packer Pro can be used (most runtimes use the “libgdx” atlas format).

Animation An animation stores a list of timelines. Each timeline stores keys, each of which have a time and one or more values. When the animation is applied, the timelines use the keys to manipulate the skeleton, fire events, etc. The animation does not store any state.

AnimationState An animation state is a convenience class that holds the state for applying one or more animations to a skeleton. It has the notion of “tracks” which are indexed starting at zero. The animation for each track is applied in sequence each frame, allowing animations to be applied on top of each other. Each track can have animations queued for later playback. Animation state also handles mixing (crossfading) between animations when the current animation changes.

Attachment An attachment is something that is attached to a bone by being placed on a slot. For example, a texture region or bounding box.

AttachmentLoader An attachment loader is used by SkeletonJson to create attachments. This is a hook to provide your own attachment implementations, eg to do lazy loading. Most commonly an attachment loader is used to customize where the images come from for region attachments.

Bone A bone has a local transform (SRT) which child bones inherit. A bone also has a world transform, which is the combination of all parent bone transforms with the local transform. The world transform uses the same coordinate system the root bone is defined in.

Bounding box attachment An attachment that has a polygon for performing hit detection, physics simulation, etc.

Draw order Draw order is a list of slots on a skeleton. The order of the list is the order each slot’s attachment should be drawn, from back to front.

Mixing Mixing, also known as crossfading, is applying an animation by blending linearly between the current pose and the pose for the animation.

Region attachment An attachment that has a texture region and an offset SRT, which is used to position the region relative to the attachment’s bone.

Slot A slot is a placeholder on a bone. A slot can have either a single attachment or no attachment at all. It also has a color and the time elapsed since its attachment was changed.

Skeleton A skeleton holds the state of a skeleton. This includes the current pose, bones, slots, draw order, etc.

SkeletonBounds A skeleton bounds is a convenience class for performing hit detection for a skeleton using the currently attached bounding box attachments.

SkeletonData The skeleton data contains the skeleton information (bind pose bones, slots, draw order, attachments, skins, etc) and animations but does not hold any state. Multiple skeletons can share the same skeleton data.

SkeletonJson The skeleton JSON loads a SkeletonData from JSON.

SkeletonRenderer The skeleton renderer iterates over the slots in the draw order for a skeleton and knows how to render various attachments.

Skin A skin is a map where the key is a slot and name and the value is an attachment. A skin is a level of indirection which allows specific attachments to be found using a slot and a non-specific name. For example, a skin might have a key of [slot:head,name:head] with a value of [attachment:redHead]. Another skin might have [attachment:greenHead] for the same key. The non-specific name is used in animations, enabling animations that change attachments to be reused with skeletons that have different attachments.

SRT Scale, rotation, and translation. Also known as the “transform”.

Transform The scale, rotation, and translation.