General Enveloping Reference notes:

After building and parenting your skeleton into a logical hierarchy, you'll need to attach it to the character's geometry you've created.

This is called enveloping. Your skin is the envelope and the skeleton systems are the deformers.

Before you begin the enveloping stage, it is advisable to freeze all of the other operators you may have on the various pieces of your character, unless they serve a specific animation purpose, such as a push deformer applied to the stomach area to enable the character to breathe. In any event, I prefer to add additional levels of control and detail such as muscle flexing, breathing, cheeks bulging etc. after I've completed the weighting of the character.

To create an envelope, you need to select your pieces of geometry that you wish to become a part of the envelope. They can be selected a node at a time, or as a branch of a hierarchy. Generally, you'll want to leave non-deforming accessories such as teeth, eyes, fingernails, items such as backpacks or watches out of this stage. These sorts of items usually get parented to the characters skeleton later. Parenting objects to a skeleton is very different from enveloping. Even though you could envelope these items, you'll find it easier to deal with them as simple children of a particular bone.

When you've made your decision as to which items should be included in the envelope, select them, and then in the Animate module click on Deform>Envelope>Set Envelope. XSI will enter you into a pick session where you can pick all of the skeletal objects you wish to use as deformers.

Since my skeletons are usually parented into a hierarchy, I'll usually select the top parent object of the skeleton hierarchy as a tree or branch. You don't need to have your skeletons all parented though, You can pick as many deformers as you like in your pick session. The skeleton chains can be a part of a single hierarchy, or they can be completely separate hierarchies. Remember that you aren't only limited to bones either. Any object in XSI can become a deformer. Nulls, primitives, are all fair game when it comes to controlling your character.

When you've finished picking your deformers use your right mouse button to accept the picked items and end the enveloping mode. XSI may take a few moments to calculate the envelope. Complex skeletons and highly detailed characters will obviously take a longer time to calculate.

After the envelope has been calculated, XSI displays an Automatic Envelope Assignment Box. Here is where you choose the maximum number of bones or deformers that can affect any given point on your characters mesh. The higher the number of skeleton objects, the more complex the envelope will be, and the more confusing things can become when you begin to edit the envelope weights of your character. I'd recommend leaving this number at 2, until you're more comfortable with weighting.

The second option you need to determine is the Assignment method. Leave this at its default of Distance based. The other assignment method, Normal-based considers the directions of the surface normals. This option is useful, for example, when enveloping things like legs and fingers. This method will never assign points from adjacent appendages to a deformer. The restriction is that the deformers must be entirely inside the envelope surface.

Normal based assignment would seem to be the way to go, however, the bones need to be completely inside of the mesh in order for this method to work properly. If even a small portion of the bones lie outside of the mesh, you will get unpredictable results. I would stick with the distance-based option for now. Distance based enveloping simply weights the points of a mesh to the closest deformer. While this may not yield predictable envelope weights in all areas, you can easily fix this when you use XSI's weighting tools .

For now, you can leave the force reassignment option turned on. If you need to add extra deformers, or add points to your mesh to smooth a deformation, XSI will recalculate the weights to update your character.

The Envelope Operator & Automatic Envelope Assignment

Select one of the enveloped meshes on your character, and expand it to view all properties in an explorer. You'll notice 2 operators have been added to the stack. They should be sitting at the very top of the stack since they were the last operators you added. Expand the clusters folder of the same object. Scroll down to the very bottom of the clusters list until you see a cluster with the name EnvelopWeightCls. Expand this cluster to see the Envelope weights and an Automatic Envelope Assignment Operator.Its is this node that stores all of the weighting information about your character. If your character is composed of many individual pieces, each piece will have its own EnvelopWeightCls. With the relevant Envelope Weights and assignment operators.

As you begin weighting your character, the information stored within these nodes will change and update as you reassign points to different bones or deformers.When you have finished the weighting stage, and you've added in all secondary deformations, such as other deform operators to control breathing or muscle flexing you will freeze the Envelope Weights node. Freezing the EnvelopeWeight will remove the envelope assignment operator from your objects stack, yet the weighting information will still be stored. The result is a character that is much easier to interact with. Posing the character is faster and more efficient than if you were to keep the envelope weights in the operator stack.

Editing an Envelopes Weight

When you assign an envelope to a skeleton chain or deformers, each of the points in the envelope receives a weight. Weight is really just another word for influence. Points can be influenced by a single bone deformer, or they can be influenced by more than one bone or deformer. Either way the weight of a point or group of points cannot exceed 100 %. If a single bone affects a group of points, their weight can be said to be 100%, that is the bone is completely controlling the deformation of those points. When 2 or more bones or deformers controls the weight of a point or group of points, it is up to you to assign the weight that each bone or deformer imposes upon those points. Keep in mind though, that the sum of the weight of each bone or deformer must add up to equal 100 % The most common areas of a character where you will need to split the weights between two different bones or deformers are in areas where hinge or ball and socket joints meet. These areas include but are not limited to, the elbow area, knee area, hips, shoulders, neck, and spinal column. When you deal with more complex characters, or need to use deformers to create facial animation, you will also need to split the weight of a point or group of points between two or more deformers.

XSI provides you with many tools to alter the weights of your characters. I generally prefer to work global to local roughing in my weight to get the overall deformation working correctly, before working to sculpt the fine deformation detail.

After the initial Envelope assignment, I begin to rough in the weights using a tool found in the Animate module. Start by tagging a group of points you need to rough in and click on envelope>reassign locally. XSI puts you into a pick session where you can pick a bone or deformer with your mouse button. You can choose more than one bone in a pick session, and XSI will average the weights of the selected points between the selected bones, based on their proximity to the bone. If you decide to only choose one bone while reassigning locally, the points will be weighted 100% to that bone.

After the reassign locally session, I refine the weights even further by selecting tag points and choosing envelope>edit weights. An envelope weights property editor opens up where you can assign the weights of your selected points to more than one deformer.

Weighting technique will be discussed in class, as well as the specifics of the property editor. An older tutorial I wrote in Softimage 3D discusses the options available to you in the edit weights editor. Though the software package is different, the concepts of absolute, additive and add percentage are still essentially the same. Click here to go the Enveloping tutorial.

The one main difference between XSI and soft3D is how the envelope editor affects your selection of tagged points. In soft 3D all the tagged points were included in the operation when you applied the weight command so that any weight combination you selected applied the weights to all of the tagged points. In XSI, you essentially do the same thing, except that when the envelope editor opens, you must choose which points in the tag selection receive the weight. On the right side of the editor there is a column with the heading Pnt that contains a list of all tagged points in your selection. If you wish to apply the weights to all of the tagged points, simply click on the word Pnt at the top of the column. All points in the selection will then be selected, and any changes you make will be applied to the selected group.

Alternatively, you can isolate specific points to edit in the editor, by CTRL + left clicking on a point in the column. This allows for an increased workflow by allowing you to leave the property editor open, while changing weights on different areas of your character. You can untag a bunch of points, and tag another group, and the editor will update to reflect the new selection set.

The normalize option at the top left of the editor should be left on. Normalize sets up the editor so that the sum of the weights always adds up to 100%. When you have a series of points whose weights don't add up to 100 %, you'll notice that those points tend to drift or pull away from your character when the you begin to animate it.

Bounding Volumes

Bounding Volumes are another way to control the points of your character. Upon enveloping your character, three property groups are created under each bone.

A bounding volume is essentially any object that when placed within a group affects the points in a few different ways. Drag and drop an object into one or more of these groups in an explorer to assign. Also make sure to parent the bounding objects as children to the bone, however you shouldn't assign the bounding volumes as skeletons. You can do this by making a group for your deforming objects, and selecting the group when you assign the envelope.

The three bounding groups are:

Inclusive: Points within an Inclusive bounding Volume get assigned 100% to the bone. All points outside the box are weighted with a falloff such that the further they are from the bounding volume, the less the influence.

Exclusive. Points within an exclusive volume are assigned 0 % to the bone. All points outside the volume are assigned a falloff weighting based on their distance.

Inclusive Limit: Points inside the volume are assigned a falloff percentage to the edge of the bounding volume. Points outside the box are assigned 0 % percent to the bone.

A bounding volume is essentially any object that when placed within a group affects the points in a few different ways. Drag and drop an object into one or more of these groups in an explorer to assign the points according to one of the bounding methods.

Painting weights:

Another way of assigning points is to paint their weights. Once you've created an envelope, you can select a piece of the character and then choose Get>Property>Paint tool. Your 3D viewport will turn to constant mode, and your mesh will change color to reflect the color of the bone that is controlling a particular point or group of points. To begin painting, simply left click and drag over a section of the model to paint a positive weight stroke. Right click and drag over an area to paint negative weight strokes. Middle clicking and dragging over an are of the model, resizes the paintbrush allowing you to fine-tune the area you are weighting. XSI sets the default weight stroke of the paintbrush at 100 %. To change the paint brushes weights, press CTRL + W, or Get>Property>Brush properties to bring up a paintbrush Property editor. Adjust the opacity of the brush to paint strokes with less weight. To begin painting weights for an object, you first need to select a bone or deformer to paint weights for. You can do this by clicking your D hotkey. The model will temporarily turn to Xray mode allowing you to see through the mesh to the underlying bone structure. Your mouse will enter a pick session. Click on a bone, and XSI will return to Constant shading mode allowing you to paint the weights for that bone.

Alternatively, you can open an edit>weights property editor, and select a bone in the editor to paint its weight.

In the brush property editor you can also adjust the brushes falloff to create hard edged or soft edged weights.

Editing weights isn't an easy task. It requires a good understanding of anatomy, and the movement of the body you're working with. Editing won't solve all of your mesh deformation issues, but should get you 90 percent of the way there. Any unresolved weighting issues can be solved through other means including secondary deformers, expressions, or shape animation.

Enveloping and Weights General Notes was put together by Adam Sale Technical Director at Joncrow Entertainment. Adam is a fully certified Softimage Instructor who teaches at various institutions throughout Vancouver BC. He can be reached at adam@joncrow.com