Make animated IMVU Pets with Blender

Making animated PETS for IMVU using Blender

Making static or animated Pets for IMVU is relatively straightforward so long as a few basic principles are followed, namely that Pets are anchored to specific points relative to the Avatar, and that they should be made making allowance for the Avatar itself, i.e., where animated they should more around figure rather than through it (unless that's a 'feature').

A basic knowledge of using Blender 3D to create content is assumed, including but not limited to; making and editing a mesh, applying materials to objects, UVW unwrapping and applying textures to objects, navigating the interface, creating actions and exporting objects out for use, as well as creating and applying vertex groups.

Ideally a model should also be available and prepped for export; the following does not discuss how to model content in 3D but does require an understanding of the terms and instructions stated.

Design note: the following was originally written with Blender 2.45 (with Python 2.5.4 installed) in mind using the included CAL3D exporter. However, the same basic principles apply when using other versions of Blender, up to and including the latest.

Important Notes
For Blender 2.45/49:
the complexity of animations is restricted to relatively simply movements - up-down, left-right, spin on a single axis - due to the way IMVU implemented CAL3D, exported animations can be distorted and/or corrupted on playback. This is not a limitation of Blender, but of the export script and IMVU implementation of CAL3D.

For Blender 2.64 and above: more complex animations are possible using the updated export script but creations may still be subject to errors when loaded into IMVU. This again is a symptom of IMVU's implementation of CAL3D not a limitation of Blender.

IMVU's default scale, the size objects appear to be in the 3D View, is approximately 100x LARGER than Blenders. Always start a project by opening the appropriate template for the product type being made to ensure everything is the correct size relative to IMVU, else scene "Scale" and "Clip" values will need to be increased to properly view view content (press "N" to access "View" properties, adjust "Scale:" under "Display", and "Start:" and "End:" under "Clipping").

basics of making animated IMVU pets ^

Pets are basically the same as any other avatar accessory in that they are composed from three core component;

  • Mesh
  • Armature
  • Animation

The IMVU product item is then put together in a two stage process;

  • Blender 3D
    Build (includes construction, texturing, rigging, animation) and export to CAL3D.
  • IMVU Creator Tool
    The various CAL3D files are imported into the creator tool.

How does a pet work? ^

As with any type of item for IMVU, a pet is 'tagged' or 'linked' to a bone or bones of the avatars underlying skeleton, which largely determines where the pet appears to be rooted and how behaves in relation to the avatar and avatar actions. In other words, if the root of a pet is at its feet (a bird for example), the same pet could be 'linked' to any given bone in the avatar and thus appear relative to the link bone - wrist, shoulder or toe (parrot on the foot!).

Where to put the pet ^

When building the pet thought should be made about its position; a 'flying' pet to be placed at shoulder height should be built in-situ at the avatars shoulder in Blender; a 'ground-based' pet close to or on the floor and so on. Once the mesh is made the Armature needs to be created and as required of the mesh, needs to be positioned relative to the final outcome in the chat client.

Design note: this is the initial position the pet appears relative to the avatar and not the 'root' bone of the pet itself (see below).

Typical 'anchor points' to which pets can be linked

Pets can be anchored to a number of points on the avatar, although to any bone in fact, they are more typically connected to "zHead", "AttachmentRoot", "PelvisNode" and "Female03MasterRoot"

If the pet is to 'fly' then and be affected by avatar actions (pet moves with the avatar), it's best to create and position its 'root' bone relative to;

  • zHead
  • AttachmentRoot
  • PelvisNode

Design note: generally speaking "zHead" is used whenever the pet needs to function relative to the avatars head or upper-body region - "AttachmentRoot" can be used but has generally restricted usefulness in this context unless the pet is to be linked the the avatars head and head movements.

If the pet is to not to be effected by avatar movement its root bone needs to be placed at the base of the avatar, at;

  • Female03MasterRoot

Design note: the avatars root bone, "Female03MasterRoot" is not connected to anything, it is at the top of the Armature stack so tends to remain static even when the avatar is jumping about.

What this means is that as the pets armature is being created, a bone will need to be moved to one of the locations mentioned above and named appropriately. It's also important to note that bone names aren't so much important as the relationship between them; the pets 'root' bone must be the bone to which all other bones are connected.

Pet template open in Blender showing typical placement and attachment Armatures

Pet template file shown in the latest version of Blender

Pet template open in Blender 2.49 shows typical placement (boxes) and attachment skeletons (bones)

Pet template shown in Blender 2.45/49. Note the names of the main pet connection points, "Female03MasterRoot" at the feet of the avatar, "zHead" off to the side of the avatar at shoulder height and "AttachmentRoot" at the base of the neck (hidden in this instance 'under' another copy of Female03MasterRoot). Pets are typically 'rooted' to these default locations.

Animating the pet and making it move ^

This is distinct from the section above about bone positions as this is related to what the pet does rather than where it does it. What this means is that there are two types of 'movement' achievable with pets;

  • Only move when the avatar moves - essentially a 'static' pet.
  • Move independently of the avatar - an 'animated' pet.

Although both do require an 'action' (animation) be present before export from Blender to IMVU (CAL3D), the latter is a little more involved as it means creating extended animations that progress along the timeline for several seconds or minutes depending on the desired effect - the only difference between an animated item and everything else is simply related to using more keyframes and more time to carry out a movement or motion.

Design note: animated pets can have their own animations and trigger actions that move along with, or without, the avatar depending upon their set up.

So, create actions as normal but extend their length and the complexity of movement of bones in the armatures associated with an object.

Design note: Although the 'root' bones should be keyframed (at the start and end frame), they should not in actuality be moved or manipulated in any way.

Animation squence showing individual bone channels that will be exported to IMVU

An animated pet showing the Armature bones and associated frames marked in the Action Editor prior to being exported to IMVU from Blender using CAL3Dexport

Pet animation showing each bone channel marked to the timeline

An animation sequence shown in Blender 2.49 - displayed are the individual channels associated with each bone as they are marked to the Action Editors timeline

Exporting the Pets animation's ^

Each pet movement needs a separate action/animation and each of these animation's need to be exported individually for best results - it's not really possible to 'batch' export animation data so each action has to go through the CAL3D export process on it's own. At the end of this process there will be a number of different *.xaf files sitting in the projects folder, each one being a specific export of a particular animation action. These new files now need to be put together in IMVU's Create Mode.