Language:
Page Info
Tags:
Engine Version:

Skeleton Assets

Choose your OS:

SkeletonImage.png

In Unreal Engine 4, Skeletons are assets that are separate from Skeletal Meshes. Each Skeletal Mesh requires a Skeleton to be associated with it, and all animation assets (such as Animation Sequences, Animation Montages, and Blend Spaces) are associated with the Skeleton, not with the Skeletal Mesh.

What is a Skeleton?

If you are familiar with digital content creation, you may already feel like you know what a "skeleton" is. In most 3D applications, a skeleton is a digital hierarchical framework that is used to define bones or joints in a character and in many ways mimics a real biological skeleton.

MayaSkeleton.png

A typical character skeleton as you might see in Maya.

An important distinction is that a Skeleton asset is not the same thing as the bone hierarchy found within a Skeletal Mesh. In Unreal Engine 4, the Skeleton asset is less like a 3D representation of an actual skeleton and more like a list which holds bone and hierarchy information for a specific type of character or Skeletal Mesh. It is through this list that animation associations are made.

In terms of its place in the animation system, it is probably best to think of a Skeleton asset as an intermediary between Skeletal Meshes and animations. Multiple Skeletal Meshes can use the same Skeleton asset, and any Skeletal Meshes using the same Skeleton asset will be able to share animations.

See the Working with Skeletons tutorial series for more information and what you can do with Skeleton assets.

Basic Rules

There are some essential things you should know about Skeleton assets when animating for Unreal Engine 4:

  • Every Skeletal Mesh requires an associated Skeleton asset.

  • You may create a new Skeleton asset for a Skeletal Mesh while importing it, or choose an already existing Skeleton asset.

  • A Skeleton's initial proportions are defined by the original Skeletal Mesh from which it was created - this is important to note when retargeting .

  • To share animations, Skeletal Meshes must use the same Skeleton asset.

  • Sharing the same Skeleton asset requires that the naming order of the bone hierarchy within the Skeletal Mesh is not violated. See Reusing Skeletons below.

FBXImportOptions.png

When importing a Skeletal mesh, you will see the option of using an existing Skeleton asset or creating a new one for the imported mesh.

Reusing Skeletons

An important feature of Skeleton assets is that a single Skeleton asset can be used by multiple Skeletal Meshes. Best of all, the bone hierarchies in each one do not even need to be identical. They do, however, need to have the same general structure. Most importantly, the bone hierarchy from one Skeletal Mesh to another cannot be violated.

This means that the name and order of your bones must be consistent. Consider a 3-bone limb with bones named 1, 2, and 3:

ExampleBoneHierarchy.png

If you had a second Skeletal Mesh that you intended to use the same Skeleton asset, it would need to keep those bones in the same order, but you can add bones that are peripheral to the hierarchy. So for example, your new hierarchy could look like this:

PeripheralBones.png

However, you could not re-order the hierarchy. For instance, this is not valid:

ReorderedBones.png

Additional Limbs

Because adding bones that are peripheral to the hierarchy is valid, it is easy to reuse Skeleton assets between Skeletal Meshes that have additional parts. Say, for example, you wanted to share animation between 3 different but similar character types, all having essentially the same bone structure (and same bone names) except for some key differences, such as:

  • A human male (for this example, this is like your basic character)

  • A human female with bones for a ponytail

  • A humanoid character with four arms

You could use the same Skeleton asset with all of these characters, and the result would be that the Skeleton asset would contain joint hierarchy information for all three types. The animation will use the Skeleton asset to determine what rotation to apply to each bone. Since the Skeletal Meshes are designed so that their base bone hierarchies are the same, the animations between them will work perfectly. The only difference is that you may need some special animations to drive the extra arms or ponytail on those characters.

Any time animation data is received for a bone that is not included in the Skeletal Mesh (say, if ponytail animation was used on a character that used the same Skeleton asset but did not have a ponytail), then that animation data is ignored.

There is very little performance overhead with this system, though in terms of production, it is generally a good idea to only share Skeleton assets between Skeletal Meshes with similar bone hierarchies.

Tags