Guidelines for Rigging Game Characters in Harmony

The following are guidelines to follow when creating a character rig in Harmony if you plan to export it for use in Unity.

NOTEYou do not need to follow these guidelines if you intend to export a rendered sprite sheet—see Exporting Rigged Sprite Sheets or Rendered Sprite Sheets.
Resources Usage

When rigging and animating game sprites, you need to keep in mind the size of the exported sprite sheets as well as the resources required to play out their animations.

If you are working on a console or PC game, you have a lot of leeway for both, as they often have high performance video cards and a lot of storage space.

If you are working on a mobile game, you might need to take measures to ensure your animation and sprite sheets are lightweight, as mobile devices have slower rendering hardware and more limited storage space. Also, some users may want to download your game over a mobile data network with costly data charges.

Hierarchy

When creating your character rig's structure, you should use a simple peg-layer hierarchy, which means:

  • Each body part of the character that you want to animate independently is on its own drawing layer.
  • Each drawing layer has its own parent peg, which should be used for animating the layer.
  • Pegs can be rigged in a hierarchy to make body parts attached to each other move together. For example, a hand's peg can be rigged under the forearm's peg, and the forearm's peg under the arm's peg, etc.
  • You can create groups to keep your rig structure tidy and organized.

Body parts that are meant to move together with other body parts (i.e.: the head with the neck, the forearm with the arm, etc.) can be rigged together in either one of these ways:

  • By rigging the peg of the child part under the peg of the parent part. For example, you could rig the forearm's parent peg to be the child of the bicep's parent peg. Moving the bicep's peg would automatically move the forearm.

  • By rigging both parts under a common peg. For example, you could rig the forearm and the bicep's parents pegs under a dedicated peg for the whole arm. You could hence move the bicep's peg independently, or move the arm peg to move both the bicep and the forearm together.

z-Axis Positioning

Nudging layers on the z-Axis to change the order in which they appear is supported and its effect will be visible in Unity. However, you should not attempt to put layers at significant distances from each other on the z-Axis in Harmony, as they will not be rendered in perspective in Unity.

Animation functions

By default, pegs use 3D Path functions to record their position. It is recommended, but not required, to configure your pegs to use Separate position functions instead, as 3D Path functions are a bit heavier on performance. You can make a peg use separate functions by opening its Layer properties, then selecting Separate under the Position section.

NOTEConverting a peg or layer's function type to Separate will discard any existing animation on that peg or layer.

Also, you should only animate using Bezier type functions. This is the default type of function that Harmony creates when you animate a peg or a layer. However, some animators or rig artists may have the habit of manually configuring their layers and pegs to use Ease functions instead. Exporting animation that uses Ease type functions to Unity is not supported, so you should not do that when creating a game asset.

Effects

Aside from the Cutter, you should not use any effect, as no other effect supported by Harmony can be exported to Unity.

NOTES
Bitmap
Symbols The use of symbols is not supported.
Art Layers

Only the artwork in the Line Art and Colour Art layers will be exported to Unity.

By default, those are the only two art layers available. However, if you enabled the Support Overlay and Underlay Arts preferences, which is available in the Advanced tab of the Preferences dialog, you can use the Overlay and Underlay Art layers as reference or sketch layers. They will be visible in Harmony, but they will not be exported in your sprite sheets.