Avatar Heads

For the purposes of this tutorial, we will be building the head in 3DS MAX.

OK. Straight up. No lies. Building a *complete* avatar head is REALLY hard. It is not for the feint of heart. The road is frought with peril and disappointment. However, the bright light at the end of that road is that it *can* be done and is very rewarding. I mean, come on: you can make your own head in IMVU. That is so cool! You can choose to make these heads as big or as small as you like and the heads can be anything your imagination can conjure up.


Before diving into building a head, you ought to check out the Mesh Introduction, the Mapping Materials Tutorial, the Morph Targets Tutorial and the Weighting in Physique Tutorial. 

The Curse of the Corrupt File

While its true that building a head is hard because 1) you need to know how to model fairly well, 2) you need to know how to use Physique fairly well, and 3) you need to have a deep understanding of how to make morph targets, the hardest part of making a head is file corruption [insert eerie music here. Note: music may contain someone playing a saw].

Your file may not become corrupt the first time, or even the second time you build a head. However, please know that a corrupt head file is waiting in the shadows and will strike you when you can least afford it. Best to keep whistling ‘Singin’ in the rain’ while you work. This confuses the dreaded corrupt file.

A MAX file can become corrupted for a number of reasons. One of the sure fire ways to get a corrupt file is to make multiple copies of a single mesh and perform the same actions on those files – which you will no doubt do in order to save yourself gobs of production time. I am guilty of this same act and, sometimes [most of the time] it actually works. However, sometimes, I collapse the stack on a bunch of meshes and….my file size rises inexplicably each time I save…eventually making MAX unusable and making the file un-openable…and, in some very rare cases, killing the fan on your graphics card! YIKES!

So, now that you know what you are getting into, read on, intrepid soul…

Some help from Spirit

We recently spoke to Spirit, one of IMVU’s awesome Creators, and she had some helpful tips for avoiding corrupt files when working on morph targets. Please note that this method of working doesn’t always work but its worth a shot. Take it away, Spirit:

In 3ds MAX, instead of moving your copies out from the original location by holding down Shift and then dragging, make your base copy from your parent mesh as follows:

  • Select the parent Mesh
  • Hold down Shift and click on the parent Mesh
  • In the Object Options dialog that appears, make sure that copy is selected and instance is unselected
  • Name the copy you want to make Base Copy
  • In the same way, clone the Base Copy and name it your Morph
  • Once you have your Morph model, Hide the rest of the objects so you can work with your morph model
  • Then Follow the Morph tutorial as written


Example Head Files

Female Head File

Male Head File

To build a new head, specifically, it is *really* helpful to begin with an avatar that is positioned in the ‘weighting pose’….and that also has all of the morph targets actually living in the file. This, of course, means that the files are MUCH larger than the master weighting poses found on the Avatar Body Parts Introduction. This makes them a little harder to work with as it takes a beefier computer to deal with the complexity of the file.

Files for both the female and male heads are supplied above. These ZIP files contain a MAX file for use in 3DS MAX. 

The female .zip file also contains product61995.cfl, example female head textures, and the master skeleton file. The male .zip file also contains product59086.cfl, example male head textures and the master skeleton file. All of these files will come in handy later when using an Editor in Create Mode.

Example Head Contents

The Example 3D Head files contain everything necessary to export a functional, animating Head mesh. This includes a master head mesh, morph targets, the avatar skeleton and default body meshes.


Save these files with a new name as you may need to merge facets of the original example 3D Head files into your new Head file if a mistake is made.

Build Mesh


If your final Head product’s file size is too big, it is unlikely that your potential customer will purchase and download it. It is good practice to try to keep the texture size, vertex/face count of your meshes and animation length down to the bare minimum.

Build Mesh – Geometric Complexity

A head can be as simple as one polygon, if you so choose. It can also contain as many or as few morph targets as you like. The IMVU heads supplied can be pushed and pulled to become a wide variety of head shapes while still maintaining the same mapping across problem areas (like eyes and lips). By using the supplied head, you also get the benefit of knowing that other products like skin, eyes, and eyebrows will work on your head too.

Build Mesh – Parents and Children

The mesh that actually gets texture mapped, weighted to the skeleton and exported is the ‘parent’. All of the morph targets are called ‘children’ in that they get linked to the parent in order to be included in the mesh export.

Build Mesh – Adding or removing vertices – your friend?

Morphs are interesting creatures in that they are pretty much a morph target or not. A morph target is an EXACT DUPLICATE of your original mesh but with some vertices pushed and pulled into a new location (like, a smile or blink). This means that adding or removing vertices (even just one vertex) will change your copied mesh from a morph target to just another mesh. Vice versa, adding or removing geometry from the parent will render all of your morphs useless.

Said another way, if you build a mesh and then build out all of the morphs and THEN realize that you need one more vertex to get the shape you want on the morph….you should realize that you will have to rebuild all of your morphs from scratch.

Do not be afraid of this, however, as it is bound to happen. Haha – one of the reasons making heads can be so hard is because it requires patience.

Build Mesh – Match the neck EXACTLY

If you are building a head that is meant to blend seamlessly into the tens of thousands of upper body products in the catalog, you must match the neck vertex positions exactly to those of the upper body mesh supplied in the Example Head file.

To do this, just click the move icon and turn on the Snap tool. Then, when you click on a vertex and move it around, it will try to snap to another, nearby vertex. In this manner, you can move each neck vertex in your head mesh *near* the appropriate neck vertex in the body mesh and it will ‘snap’ to the exact same 3D space as another vertex.

Build Mesh – Big heads are not just for egomaniacs

The default avatar heads in IMVU are of an enlarged, anime style. All of the accessories and hairstyles in the catalog have been built to fit these default heads. This adds a level of complexity to those of you who plan on making a head that is meant to work with those existing products.

Basically, in MAX, your head will look enormous in order for it to fit the original hair, accessories and neck.

This is OK, though, as you will be able to reduce (or enlarge) the size of the head later in an Editor in Create Mode. You can also change its depth so that a squat face in MAX can end up looking normal in the Editor.

In MAX, an oversize head with no penetration on hair or accessories = good.

Build Mesh – Mesh Scale

It is really important that you understand that you can change the size and depth of your head file later on when using the Previewer. If you want the head to work with existing hair and head-accessory products, your head will need to fit within the glasses and hair supplied in the example head files. Sometimes, this means the head mesh file can look squished (from front to back.)

To learn more about this, please go to the Mesh Scale Tutorial.

Build Mesh – Half a Head

Symmetry is a good thing. Humans react well to it especially when it is applied to a head. Models are often hired because of their facial symmetry. What’s more, when building a 3D head, working symetrically can save you SO MUCH TIME.

So, start with half a head and get that half looking pretty darn close to how you want it. Add the eyes. The eyelids. The eyebrows. The lips. The teeth. The tongue. The cheeks. The ears. Get all of your material IDs set up. Get the texture mapping right. All of it.

Build Mesh – Separate Eyes and Eyebrows

It is important to note that it is MUCH easier to animate the eyes and eyebrows if they are geometrically separate from the rest of the head.

This does not mean that they should be separate pieces of geometry (ie – different objects in the scene.) Rather, no vertex of an eye should be connected to any part of the rest of the head. This allows you to more easily move the eyes around within the eye socket when building your morphs later.

Build Mesh – Anticipate Morphing

One of the biggest mistakes that first time head builders make is not giving themselves enough geometry in areas of the face that are going to move/animate later on.

For example, when building the eyelids, you can safely assume that they will be made to blink. This means that they need enough geometry to get around the full, rounded shape of the eye.

The areas of the head that require the most geometry are the eyes, mouth, nose and cheeks. By far, the highest concentration of vertices is around the mouth because it is meant to take on a myriad of emotional shapes.

Build Mesh – Cheapskate

An avatar head is the most expensive part of the avatar from a file size, download and rendering point of view. This is because it typically has the most complex geometry as well as morph targets. Each morph target makes your final, exported mesh .xmf file a little larger. For example, some IMVU heads have 72 morph targets while others have 30+. An avatar built with the larger number of morphs is roughly 300k while an avatar built with the smaller number of morphs is roughly 200k.

The point is that you need to be careful that your head mesh is not overly complex. Always err on the side of fewer polygons.

Build Mesh – Aide: Plaid is the New Black

As mentioned on the Avatar Body Parts Introduction, IMVU users expect their skin texture products to work perfectly across all clothing meshes. When their skin texture products do not work perfectly, they get upset, leave bad reviews and spread the word that your products are unreliable. So, please err on the side of delighting your customers and use the texture mapping IMVU has already lovingly built for you.

To the left is the 256×256 plaid texture we use to make sure that our mapping is near perfect. When this texture is applied to the avatar head in MAX, the horizontal and vertical lines are drawn as near straight as possible. This should allow you to more easily see how the skin on your new mesh is mapped and, more importantly, whether or not it matches what is on the master meshes.

Build Mesh – Material IDs and Texture Mapping

To learn gobs about this, please go to the Avatar Material IDs and Texture Mapping Tutorial. 

The avatar head material IDs are:

Material 2 = Head (skin)
Material 3 = Eyes
Material 4 = Hair
Material 5 = Eyelashes
Material 6 = Eyebrows

When a polygon in your head is given a material ID of, say, 2, then that polygon will display the skin texture in IMVU. This is really handy for those of you who are building heads that are meant to work with existing skin, eye and eyebrow products.


The Material ID integer in MAX is different that the integer in Cal3D (the system that IMVU uses to create products). Specifically, MAX starts its IDs at the number ‘1’ while Cal3D starts its IDs at the number ‘0’. This means that a polygon with a material ID of ‘1’ in MAX is actually ‘0’ in Create Mode.

To handle this, we rely on the name of the material to dictate what ID it is. That is is why we use the following naming convention for materials:

materialName [0]

To learn more about material naming conventions, please go to the Avatar Material IDs and Texture Mapping Tutorial.

Build Mesh – Copy Initial Half

Once you have your half-head built and mapped the way you want it, its time to make the other side. Doing so is pretty easy. In fact, once you’ve done it a few times, you’ll find its easier than watching grass grow. OK…so maybe not THAT easy…

First, select your mesh and then Shift+drag. This will bring up the Clone Part of Mesh dialog box. Choose to Clone to Object, name it whatever you want and hit OK.

Build Mesh – Mirror

With your copy selected, click the Mirror button along the top panel in MAX.

This will launch the Mirror: Screen Coordinates dialog box. Since you have built, say, the right side of a face and want to now create the left side, you want to mirror the copy along the X axis only. Also, make sure that ‘No Clone’ is selected.

Then, click OK and watch the copy *MAGICALLY* fliperoo. (I don’t know if its a technical term but it FEELS good to say. Go ahead. Say it out loud….you can do it….go on…..theeeere. Now wasn’t that fun?)

Build Mesh – Select Material ID [2] of Mirrored Mesh

You are preparing to flip the mapping on the flesh of the face. In the material ID section, select all polygons that have been labeled as material ID [2].


Material [2] means you are actually selecting material ID 3 in MAX. Yes – its weird but you get used to it.

Build Mesh – Unwrap UVW & Flip Mapping

With the face mapping verts selected, set the Mirror Mapping tool to Horizontal and click it. This will flip the mapping for the selected mapping verts.

Now, set the move tool to horiz only and then drag all coordinates far off map to the left. You will put them all together later. The important thing is to get all of the mapping flipped on the mirrored head so that users can customize both sides of the face.

Follow the same process for the ears and tongue. You can leave the neck, teeth and inner mouth alone.


Eye and eyebrow mapping do not need to be flipped.

Build Mesh – Oh, Snap!

With your copy still selected, click the move tool and then turn on the Snaps Toggle again.

Now, select an edge vertex on your copy and move it to the matching edge vertex of the original. It should snap perfectly into place.

Build Mesh – Attach

Now select your parent head. Then, in the Edit Geometry drop down, enter ‘Attach’ mode. Then, click on the copy to make the two meshes into one.


Once you attach your copy, please make sure to EXIT attach mode. Otherwise, you could end up unneccessarily attaching other objects in the scene to your head mesh.

Build Mesh – Select

With the two halves now one, it is time to make sure that all of the verts along the center seam are actually in a perfectly straight, vertical line. This is so you can weld them in the next step.

Select the head and enter Edit Vertex mode. Make sure you are looking at the head from the Front view and then drag along the very center of the head. This will make sure that you get all of the vertices on the inside of the mesh as well as on the outside.

Build Mesh – Weld

With all of the center verts selected, click the Weld: Selected button. This will make all of the duplicate vertices disappear and give you one smooth mesh to work with.

If you didn’t do this step, then, no matter what you did, your head would look like it had a seam down the center of its face. This is because the smoothing groups between the two heads could not be made to be the same.

Build Mesh – Wrap it up

Now that you have one solid mesh for a head, it is time to wrap it all up. The first step is to go through the material ID [2]/3 selection process again and get the mapping straightened out. This is pretty simple, actually, as you just need to select the mapping you placed well out of the way and move it into place. When the center boundary verts are in place, you can target weld them using the Mapping Vert Target Weld tool. This will make sure that the mapping across the forehead, nose, lips and chin is seamless.

With the Mapping done, you can move on to weighting.

Test #1 – Weight & Export

Once you have a finished head mesh complete with proper material IDs and texture mapping, it is time to test whether that head, without any morph targets, works in IMVU. To do this, the head needs to be weighted using Phsyique.

To learn more about how to do this, please go to the Weighting in Physique Tutorial. 

Once the head is weighted, you can export it as an xmf as usual. To learn more about exporting .xmf files, please go to the Exporting the Mesh – .xmf Tutorial. As a reminder, this tutorial assumes you are building a new head for use on the IMVU avatar. This means that you can use the skeleton .xsf file supplied with the master weighting ZIP files when exporting your mesh .xmf file.

Test #1 – Create Mode

Open Create Mode and choose to derive from an IMVU head product like product 59412 for females or product 59087 for males. To learn more about Create Mode, please go to the Create Mode Introduction.

With a Create Mode Editor open, click on the Meshes tab and then browse to your newly exported xmf asset. Click the Apply Changes button and verify that:

  1. Your head mesh actually appears on the avatar (this lets you know that there is no issue with the mesh itself)
  2. Your head mesh moves with the head bone (this tells you your weighting is correct)
  3. The correct textures appear on your head (this tells you your mapping/material IDs are correct)

If any of the three above are not met, you need to go back and resolve the issue. If things look good, then you know your base head works great and it is time to add morphs.

Morph Basics

To learn the basics of building morphs for any product, please go to the Morph Targets Tutorial. 

Below are a few avatar head-specific morph tips.

As far as IMVU is concerned, a good set of morphs = a set of morphs that:

a) Don’t penetrate or tear pieces of the face when played back and

b) Clearly express the emotion of the character when their head takes up less than an inch on screen (no easy task).

Morph Naming Convention

Morph targets in IMVU use a naming convention that dictates what kind of morph they are. This naming convention must be used or your morphs will not play back in IMVU. An example of a properly named morph target is leftBlink.Clamped where the .Clamped suffix is the morph type. The prefix of the name can be anything you like. Here is a breakdown of what the four morph types are and what they mean:

.Clamped – allows multiple morph animations to affect the channel but clamps the sum of their effects to 100%

.Averaged – allows mutlipe morph animations to affect the channel, averages the result.

.Exclusive – allows only one morph animations (the most recent one applied) to affect the channel, no cap on value (i.e. allows values greater than 100%)

.Additive – allows multiple animations to affect the channel, values are added together.

For the purposes of this tutorial, we will name our Morph Target ‘Morph.Exclusive‘.

Avatar Head Morph Names

Below is the full list of morph names IMVU uses in its base avatar heads. There are 79 of them. These are the morph names available to you if you want to make a morph animation using the IMVU base avatar heads. See them in all their glory:












There is an 80th morph target, Face.Average, but that is not used for animation. To learn more about how to utilize this morph target, please go to the Avatar Heads Tutorial.

The blinks are very important. Along with the eye morphs, they imply the most sentience as well as help convey a large range of emotion. Here are some things to keep in mind when building blink morphs.

Use morphs on your morphs – Build an extra copy of the head and make one eye blink completely (both lids). For this example, we’ll use the left eye blinks. After you’ve made a head with one eye’s lids fully closed, select your left blink lower mesh, go into vertex mode and select only the vertices of the lower lid.

Then, apply a morpher modifier to the left blink lower mesh. After the morpher is applied, you will see a list of target spots that say ’empty’. Right click on the top one and select ‘choose from scene’. Then, click on the extra copy (mentioned in the first sentence). When you do this, the name of your extra copy will appear in the morpher list. Drag the slider of this entry all the way to 100% and you will see the lower lid of your mesh morph to the position of the morph target. COOL.

When you have the shape exactly how you want it, collapse the stack on your left blink lower mesh in order to reduce file size and make it possible to use this mesh as a target for your master head later. Follow the same process for the upper lid (of course, selecting only the upper lid vertices on your left eye upper mesh)

Sock-et To Me

For each of the four blink morphs, move the eyeballs back into their sockets a little so that the eyeballs don’t penetrate the eyelids as they animate. Not too far, though, or your head will look like its going through withdrawal each time it blinks.

Eye Morphs

The eye morphs are tricky for two reasons. They CAN contain bits from other morphs to make the av feel more alive (if you care about such things). They also need to be tweaked to not look cross eyed in IMVU.

I’ll handle the latter first: The IMVU avatars move their eyes because our code tells them what morphs to play, at what percentage, for how long and when. Our system has been built to accommodate our first two avatar heads: the male and female anime heads.

As is true with humans, the left and right eye movements are not necessarily the same amount of movement from the default position. Said another way, when the left eye looks left, it turns to the left a little more than when the right eye turns left. The amount of adjustment is miniscule but can make the eyes look less cross eyed at run time.

Now for making the avies look more alive: we have two tricks we use on our eye morphs to help the avies look more alive. The first is that we raise the eyebrow a bit on both the right eye right and left eye left morphs. This helps hammer home the illusion that the eyes lead the head before the head turns – a nice effect. We also lower the upper lids on both eye down morphs. Otherwise, the avatars look like they are frightened for their lives every time they look down.

Mouth Morphs

The mouth morphs are the hardest to build and hardest to get right. They are the hardest to build because they affect the most geometry. They are the hardest to get right because it is likely that you will get penetration when several mouth morphs are played in IMVU…if your morphs are not built correctly.

Give Yourself Some Room

Considering the close proximity (and the likelihood of penetration) of the tongue, teeth, and cheeks, it is a good idea to pull the teeth and tongue away from each of the open mouth morphs. By ‘away’, I mean pull them into the mouth.

Fill the Mouth

Although this contradicts the above recommendation, when building the smile morph, you ought to fill the mouth with teeth. Remember, you are not necessarily building the world’s perfect smile. Rather, you are building a smile that will look recognizably like a smile when the head is only an inch tall on screen.

One Side First

using the mirror/align/snap process described above for building blink morphs, you can build out only one side of your face to save time. Then, make a copy of the one-sided smile or frown or whatever – mirror it, align it to your master smile, frown, whatever – and then use the snap tool to move the verts of the unedited side of the face into place. You will have to tweak the center line of verts, of course, but you will end up with a symmetrical smile, frown, whatever.

Morph Groups

You can see in the example head files that we use a standard morph set up. You can have your file set up any way you like. However, we recommend this way of working: separate the eyes, eyebrows, nose, blink, and mouth morphs into separate groups. At the same time, keep your face.average morph close to the parent head mesh so it is easier to see how different from the parent your changes are.


Before you go diving into making a whole new head from scratch, I should tell you that there is a MUCH simpler way to build a new head.

There is a morph target included in the IMVU head files called “face.Average“.

By simply moving some verts around on this morph target, you can build a new, fully animated head that works with all existing skin, eyebrow and eye products in the IMVU catalog (VERY cool and more likely to make a customer happy).

Sometimes, you don’t want to take the time to build an entire morph set just to get a new head into IMVU. If you just want to test how a head shape or just want to make a quick head, you can do so by just changing the face.Average morph target.

Just make your changes to face.Average, select the head and then export a new XMF. Load this XMF into your derived product and hit apply changes to see a very different avatar!

Test Combinatorics

The real trick to building a believable head with morph targets is to make sure that all of the morph targets work well together. Do the teeth poke through the cheek when the av smiles? What about when the av smiles and winks? and puckers? and looks angry? Arguably, this is the longest phase of building a head as you really want to avoid ugly penetration at all costs in your final head product. Hint: heads with lots of geometric penetration sell poorly and are reviewed…unfavorably.

To learn more about loading morph targets into a Morpher modifier, please go to the Morph Targets Tutorial.

If there is any penetration, you need to adjust the morph targets themselves and then reload and test the morphs until you get it just right.


If all of your morphs work together, it is time to link them to the parent. Click the ‘Select and link’ tool, drag over all of the morphs and then click on the parent head mesh. In wireframe mode, you will see the parent head mesh blink white to let you know the link took.


To make sure you link your morphs to the right mesh, it’s a good idea to hide the hair, glasses and earrings first.

Then, just select all of the morphs and link them to the Parent head.

To learn a little more about linking, please check out the Bone Parenting Tutorial.


To verify that the linking worked, click the Select by Name button to bring up the Hierarchy dialog box.

The hierarchy ought to have the Head on top with all of the morphs indented underneath it like the image below.

Export – Test Animation

You can export and test your .xmf as many times as you like. I typically test my head after every ‘set’ of morphs is completed.

For example, I test the head when the eyebrows are built, then when the blinks are built, then when the mouths are built, etc. Sometimes, I will test with an incomplete set (because it can take a long time to complete all the mouths. UGH!)


 It takes a long time to export a head with 79 morph targets linked to it. I always just let it do its work when exporting…I don’t even touch the computer for fear of robbing the export process of precious static electricity.

When all of the morphs are done and your head file is working in a Create Mode Editor – SAVE THAT BEEYATCH! Whew. Then submit it and show the world what you’re capable of.

Updated on July 21, 2023

Was this article helpful?

Related Articles

Discuss this!
Ask questions and get answers in our Creator Discussions.