|
Home : Animating : How do I? : Create animated deformed surfaces :
The Deformation Control window lets you set parameters for a deformation frame, then attach that deformation frame to an object. For a Curve, Axis, Skeleton, or Character Builder deformation, once the deformation frame has been attached to the object, the surface of the object can be modified interactively by manipulating the deformation frame.
![]() | Previous: Change the form of original object in an animation |
When an object is required to change shape, the CVs controlling the surface shape can be modified, usually one CV at a time. This gives you flexibility when changing the shape of an object, but it quickly becomes tedious and time consuming when a surface or object is constructed from many CVs.
Deformation control provides a higher level of manipulating CVs by letting you create groups (or clusters) of CVs. It's like pushing and pulling on the surface, as in clay modeling.
There are four types of deformation frames:
Axis Frame
Curve Frame
Skeleton Frame
Character Builder Frame
To attach a deformation frame to a model, the Deformation Control window should be displayed on the screen. Once a deformation frame has been attached to the model, the window can be closed.
Note
Deformation control tools do not work on instanced objects. This is because deformations are achieved through clusters, and clusters apply to the CVs of objects. Instances share the same CVs as the object they instance, and so the deformation can not be distributed across instances.
Deformation control tools do not work on objects with construction history. This is because construction history already controls the shape of the object.
Choose
Animation > Editors > Deformation control to open the Deformation Control window.
The Deformation Control window updates to reflect the parameters that apply to any of the four types of deformations. The following shows the Deformation Control window with the default settings.
All the parameters that are set in the window are applied to the frame that will be attached to the model. Once the frame is attached, altering the parameters does not affect any changes to a frame already attached to a model.
If you want to change parameters to vary the deformation effect, the window for the SKELETON and CHARACTER BUILDER Frame Types contain a Modify option. Otherwise, the frame currently attached to the object must be detached first, the new parameters set, and then the new frame attached to the model. In some cases you may want to leave the original frame attached to a model, set new parameters and then also attach the new frame to the model.
The Frame Control and Edit buttons are located at the bottom of the Deformation Control window. Click and hold on a button to display the associated menu.
A frame's type defines the kind of deformation clusters created. For some frame types, you need to create a frame object to attach the clusters to.
For example, for a curve frame type, the frame is a curve. For a skeleton or character builder frame type, the frame is a skeleton. The axis frame type requires no explicit frame.
The menu items that are displayed depend on the frame type you specify. The following are applicable to all frame types:
If no objects are active at the time the Attach function is invoked, the system prompts you to select the objects you want to attach a frame to.
When a frame is detached from a model, the frame is retained, but all associated deformation clusters are deleted, including any bulging clusters for CHARACTER BUILDER frames.
Note
The detach function for an AXIS deformation is essentially the same as selecting or picking the associated cluster and deleting it with Delete > Delete active.
This way, if the frame is deleted, the deformation effects on the model are retained. The SKELETON, CURVE, or CHARACTER BUILDER frame is retained, but all associated clusters are deleted.
If you choose the SKELETON frame type, the Frame Control menu includes the Modify option. For CHARACTER BUILDER frame types, the Frame Control menu includes the following options:
This is convenient when you change some of the options in the Deformation Control window and want the attach you already performed to reflect the new settings. This operation is essentially identical to doing a Detach followed by an Attach.
If Hierarchy Depth is set to BELOW or PARTIAL BELOW, attributes are also stored on all the joints below the picked joint according to the Hierarchy Depth setting.
Lets you specify the frame type you will use for the deformation. Click to the right of the Frame Type heading to display a menu of available frame types.
When the type of frame is selected, the Deformation Control window automatically updates to reflect the parameters applicable to that type of frame.
The following describes the different parameters that are displayed for each selected Frame Type.
An AXIS deformation is the simplest of the deformations to use. It creates a single cluster to achieve the deformation effect. The most obvious use of AXIS deformation is for bend, twist, or tapering operations.
The system computes the percentage effects to be used on the CV members of the cluster based on their distance from a plane. The position of this plane is defined by the deformation AXIS parameters.
When Frame Type is set to AXIS, the Deformation Control window updates as shown in the following.
The Deformation Axis parameters are used to specify the direction in which the percentage effects will change.
Click and drag at the bottom of these sliders to select a value, or click to type a new value then press Enter.
The interpolation distance is computed as the world space distance between the object's CV and a plane that is normal to the deformation axis. The origin of this plane is computed by projecting a bounding box in the axis direction and finding the point at which there will be 0% effect. The easiest way to picture this is to imagine a cylinder as the deforming object. The deformation axis lies in the direction of the long axis of the cylinder. The origin will be at the center of the bottom of the cylinder when the percentage range is 0.00 to 100.00. Each of the Deformation Axis parameters are editable and any deformation axis can be specified.
The Percentage Effect Parameters for Interpolation and the Min/Max Percentage values are the same for the AXIS and CURVE frame types.
Determines how the percentage effect will be distributed among members of CV clusters. Click to the right of the Interpolation heading to display the following menu.
The following diagram shows these three interpolation types.
Determines the range of percentage effects that the CVs in the clusters can have. These values can be positive or negative, including a value of 0.00. Although the slider controls have a range of -100.00 through 100.00, values outside of this range can be typed directly into the parameter fields. Reversing the values so the Min Percentage is greater than Max Percentage effectively reverses the direction of the curves shown in the previous illustration.
1 Create a cylinder primitive and place it at 0,0,0.
Note
This positioning is for illustrative purposes only. The actual geometry can be located anywhere in space and an applicable deformation axis specified.
2 Choose Transform > Nonp scale to non-proportionally scale the cylinder to approximately eight units in height.
3 Pick nothing to ensure that no geometry is active.
4 Choose Animation > Editors > Deformation control to display the Deformation Control window and make sure that the Frame Type parameter is set to AXIS. All other default settings should be in effect.
5 Click the Frame Control button at the bottom of the window and choose Attach from the menu. A Go icon is displayed and the system prompts:
Pick uninstanced surface(s) to deform, then GO.![]()
6 Select the surfaces you want to deform. Once selected, the surfaces are highlighted.
7 When all the surfaces you want to deform are selected, click GO. The system responds with a prompt indicating that it is creating an axis deformation.
Once the prompt clears, the axis deformation frame has been attached to the active objects (the cylinder in this example).
1 Choose Transform > Rotate and use the middle mouse button to rotate along the Y axis. Take note of the effect on the surface. Try other axis rotations and scale functions to experiment.
2 Pick nothing to ensure that no geometry is active.
3 Choose Animation > Pick > Cluster and select any CV on the surface of the model to select the cluster.
Clusters can also be selected directly in the SBD window using either Pick > Object or Animation > Pick > Cluster.
4 Choose Delete > Delete active to delete the active cluster, returning the model to its original state.
You can also try a Min Percentage value of 100 and a Max Percentage value of 100.
1 Click the Edit button and choose Reset to reset the Deformation control parameters.
2 Change the Deformation Axis parameters to 0,1,0 and attach the new deformation frame to a cylinder.
3 Click and drag with the middle mouse button to apply a rotational deformation around the Y axis. The cylinder now twists around the Y axis.
1 Click the Edit button and choose Reset to reset the Deformation control parameters.
2 Change the Deformation Axis parameters to 0,1,0 and attach the new deformation frame to a cylinder.
3 Non-proportionally scale the cylinder along the X or Z axes using Transform > Nonp scale and the cylinder will taper in the respective direction.
In a CURVE Frame Type application, a normal NURBS curve is used as a CURVE frame that influences the deformation. Once the CURVE frame curve is attached to the object, manipulating the CURVE frame deforms the object in the same manner. In a complex deformation, a number of CURVE frames can be attached to an object, each controlling a layer of the deformation. After the initial shape is "roughed in," it can be easily fine-tuned and applied to the larger model.
When a CURVE frame is attached to an object, a deformation cluster is created for each of the CVs on the frame curve. The frame's CVs then become handles which can be used to manipulate the frame.
If the Effect Range of a curve deformation is set to MULTIPLE CLUSTER then every handle on the frame affects every CV on the surface, with the handles closets to each CV having more effect than those further away.
If the Effect Range is SINGLE CLUSTER then each CV on the surface is only affected by the handle closest to it.
When clusters are created, the handle CV of the CURVE frame curve is included in the cluster. In this way, any cluster can be selected easily using Animation > Pick > Cluster and clicking the handle CV that affects the cluster you want to manipulate.
Note
Deformation of the object varies depending on the position of the CURVE frame in relation to the object at the time it is attached. This is because the pivot point of individual clusters are located at the CV location of the handle that affects the cluster.
As you experiment to get a feel for CURVE frame deformations, try aligning the CURVE frame with the center of the object initially, then experiment by attaching the CURVE frame to the object from other locations. Alternately, the pivot point for any cluster can also be repositioned, by picking the handle of the cluster you want to affect and choosing Transform > Local > Set pivot.
When a CURVE Frame Type is selected, the Deformation Control window updates as shown in the following.
Click to the right of the heading to display the Effect Range menu.
The handle closest to a CV has the most effect, with a diminishing effect from handles that are farther away from the CV.
Determines how the percentage effect is distributed among members of CV clusters.
The Interpolation options are the same as for the AXIS Frame Type.
The CV closest to the frame CV gets the maximum percentage. The CV furthest from the frame CV gets the minimum percentage. If the minimum is 0, the furthest CV is not clustered.
1 Create a cylinder primitive and place it at 0,0,0.
2 Choose
Transform > Nonp scale to non-proportionally scale the cylinder so that it is approximately eight units in height.
3 Choose
Curve Edit > Create > Duplicate curve to duplicate the vertical isoparametric curve on the cylinder surface that is aligned with the vertical axis at 0,0,0. (Any other vertical isoparametric curve could be duplicated, then moved to 0,0,0 in world space).
4 Pick nothing to ensure that no geometry is active.
5 Choose
Animation > Editors > Deformation control to display the Deformation Control window and make sure the Frame Type is set to CURVE in the menu. All other default settings should be in effect:
6 Click the Frame Control button at the bottom of the window and choose Attach from the menu. A Go icon is displayed and the system prompts:
Pick uninstanced surface(s) to deform, then GO.![]()
7 Select the surfaces you want to deform. Once selected, the surfaces are highlighted.
8 When all the surfaces you want to deform are selected, click Go. The system prompts:
Select curve(s) to use as frame, then GO![]()
Select the curves you want to use as the frames, (the duplicated isoparametric curve in this case). Once selected, the curves are highlighted.
9 Click Go, then pick nothing to ensure that no geometry is active.
10 Choose
Pick > Object and drag a pick box over at least part of the cylinder surface and the CURVE frame curve to make both objects active, then click directly on an edge of the cylinder surface to deselect it to make only the CURVE frame curve active.
1 Choose
Transform > Move and use the middle mouse button to move the CURVE frame curve off to the right side of the cylinder surface, where it will be easier to manipulate.
2 Pick nothing to ensure that no geometry is active.
3 Choose
Animation > Pick > Cluster and select the CV attached to the second handle from the top of the CURVE frame curve.
Once the cluster is selected, the handle is highlighted as well as all CVs that this handle controls.
4 Choose
Transform > Scale and use the left mouse button to scale the cluster up to deform the surface.
Observe the effect of the deformation in the other modeling windows. All CVs in the clusters are an equal distance from the frame, therefore there is no percentage effect difference between the CVs.
1 Pick nothing to ensure that no geometry is active.
2 Click the Frame Control button at the bottom of the Deformation Control window and choose Detach from the menu.
The system prompts:
Pick frame(s) to detach, the GO![]()
3 Select the CURVE frames to be detached from their respective objects. As a CURVE frame is selected, it is highlighted.
4 When the frames you want to detach are selected, click Go to proceed with the Detach operation.
5 Once Go is clicked, the selected frames are detached from the objects to which they were attached and the objects themselves return to their original shape. The original CURVE Frame curve is retained.
1 Leave the CURVE frame curve in its current location off to the side of the cylinder surface and reattach it to the cylinder again.
2 Make sure that no geometry is active, choose Animation > Pick > Cluster and select a CV attached to the second handle from the top of the CURVE frame curve.
Once the cluster is selected, the handle is highlighted as well as all CVs that this handle controls.
3 Choose
Transform > Scale and use the left mouse button to scale the cluster up to deform the surface.
Notice how the percentage effect of the scale ranges from a Min Percentage of 0 to 100 around the periphery of the cylinder because all CVs are no longer an equal distance from the frame curve.
4 Detach the CURVE frame from the cylinder, returning the cylinder to its original shape.
5 Attach the CURVE frame to the cylinder again.
6 Select individual handles and use Transform > Move to deform the surface. Experiment with Transform > Rotate and Transform > Nonp scale.
Note
Keep in mind that if you achieve an effect that you want to retain and no longer need the clusters, the CURVE frame can be detached from the object without the object losing its deformation transformations by choosing Collapse from the Frame Control menu.
A shearing effect can be simulated using either of the following deformation techniques.
A SKELETON frame deformation lets you attach an existing skeleton to an object, effectively creating a flexible body. The body can then be manipulated by modifying only the skeleton, resulting in much faster feedback. One cluster is created for each joint or bone on the SKELETON frame. These clusters consist of all the CVs that surround the joint or bone.
Note
Typically, the SKELETON frame is manipulated using IK handles
When a SKELETON Frame Type is specified, the Deformation Control window is updated:
Click to the right of the heading to display the Effect Area menu.
These options let you select whether CVs are grouped by JOINTS or by BONES.
Click to the right of the heading to display the Hierarchy Depth menu.
These options let you specify how many joint levels to consider during an attach.
For instance, picking a joint and specifying a depth of PARTIAL BELOW with two levels will affect a maximum of three joints.
Determines the percentage of effect that all CVs in the clusters will have. This value can be positive or negative. A value of 0.00 will result in the deformation frame having no effect at all.
The CHARACTER BUILDER Frame Type extends the SKELETON deformation and lets you specify how the geometry attached to a skeleton bends around a joint and how it bulges between two joints.
For example, bending around a joint provides smooth deformation of arm geometry at an elbow (complete with bending and tucking), and bulging between two joints simulates the biceps as it flexes and influxes due to arm bending.
When the CHARACTER BUILDER Frame Type is specified, the Deformation Control window is updated as shown below.
If the CHARACTER BUILDER Frame Type is selected, when you click the Frame Control button, the menu contains these extra items.
This is convenient when you change some of the options in the Deformation Control window and want the attach you already performed to reflect the new settings. This operation is essentially identical to doing a Detach followed by an Attach.
Note
The Modify operation in the Character Builder may not work correctly if the Skeleton hierarchy has been used in multiple Attach operations, or if the hierarchy to be modified encompasses a larger hierarchy than was used in Attach.
In Animation > Editors > Deformation Control, do the Modify operation on only one part of the skeleton at a time if all of the following conditions exist:
You use Frame Control > Attach with the Hierarchy option set on the upper part of the skeleton
You then do another Frame Control > Attach with Hierarchy set on the lower part of a skeleton
At least one joint belongs to both hierarchies.
If Hierarchy Depth is set to BELOW or PARTIAL BELOW, attributes are also stored on the joints below the picked joint according to the Hierarchy Depth setting.
These options are the same as for the SKELETON Frame Type and let you specify how many joint levels to consider during an attach. See Skeleton Deformation for details.
This toggle indicates whether bulging effects should be applied to the joints in the selected hierarchy. Bulging on a joint means that bulging clusters are created for the geometry between that joint and the next lower joint.
When Bulging is ON (indicated by a check mark), the Deformation Control window expands to include joint and bulging attributes, bulge definitions, and the bulge section editor.
These options let you control how smoothly geometry CVs around a joint will bend and tuck at that joint.
The Upper Bound and Lower Bound values provide a way of specifying how much the transformations at the joint will affect the CVs within those bounds. In other words, these bounds define the region around the skeleton joint where the bending and tucking will occur.
The Upper Bound defines a percentage along the bone from the current joint to its parent joint.
The Lower Bound defines a percentage along each of the bones from the current joint to each child joint.
CVs at the upper bound receive 0% of the transformation (full effects of the upper bone) and CVs at the lower bound receive 100% (full effects of the lower bone). The percentages of the CVs in between are ramped according to the chosen interpolation. It is this ramping of percentages that produces the smooth bending and tucking of geometry as joints are rotated.
Values range from 0.0 to 1.0 and represent percentages of the lengths of the upper and lower bones. For example, if the upper and lower bounds for a joint are 0.25 and 0.333, respectively, all CVs from the bottom quarter of the joint's upper bone joint to the upper third of the joint's lower bone are assigned ramped percentages.
Interpolation between the Upper and Lower bounds of the joint refers to how the percentage effects are ramped among the CVs clustered under the joint. The interpolation options are the same as the Percentage Effect Parameters for the AXIS and CURVE deformation Frame Types.
Bulge definitions are maintained on a project-by-project basis and are stored in the bulge_types file in the current project's misc_data directory. All wire files in a project access the same bulges. If this file does not exist when the Deformation Control window is opened, it is created with default bulge types.
Since bulges basically define the way geometry behaves at different locations around a bone, they are comprised of degree sections. Each section represents a profile curve of what the bulge effect will be at a given angle around the bone.
Click to the right of the heading to display the Bulge Type menu.
The menu displays the current bulge from the bulges defined in the bulge_types file. Pick the bulge name to select it.
This slider is used to intensify or diminish the effects of a given bulge.
Tells you which direction around the bone represents zero degrees. This is a way for you to specify which slice along a bone will receive the bulge profile that is drawn in the Bulge Section Editor in the Zero Degree Section. Click to the right of the heading to display the Zero Degree Section menu.
The X, Y, and Z LOCAL AXES choices refer to the local axes of the next lower joint (see
Transform > Local > Set local axes in Basic Tools for more information).
Determines the location of the clusters that get created during an Attach with Bulging. Click to the right of the heading to display a menu from which you can select the following:
When you choose EVENLY SPACED from the popup menu, the Bulging Attributes section of the window expands to include the Sections Around and Sections Along parameters.
Click to the right of the heading to display the Relate to menu.
Click to the right of the heading to display the Relate Transform menu.
The menu displays the X, Y, and Z ROTATE, TRANSLATE, and SCALE options from which you can choose to specify which transformation of the chosen DAG node causes bulging.
This slider is used to specify a valid range of transformation values from the initial state (at Attach time) that result in bulging. For example, a value of 75 degrees for an upper arm bulge (with Relate set to LOWER JOINT and Relate Transform to Y ROTATE) means that bulging occurs when the y-rotation of the lower joint has values between its current value at the time of attach and that current value plus 75.
The Bulge Definitions lister is another way of specifying which bulge should be applied on a joint.
clicking an entry in the bulge lister selects that bulge and displays it in the Bulge Section Editor. To change the name of a bulge, double click in the field, type a name, then press Enter.
Caution! Bulge definitions are stored by code in the bulge_types file and referred to by code in the wire files. If a joint in the current or any other wire file refers to a bulge code that no longer exists, you will not be able to do an Attach.
The Angle Selector shows the positions of the sections of a bulge (looking at the Angle Selector is like looking down the bone).
The red pointer indicates which section around the bone is being viewed in the Section Editor. The pointer can be moved around to view different sections of the bone's bulge definition in five degree increments by clicking and dragging with the mouse. If a section has a curve defined for it, a white "handle" is drawn at that section. This handle can be dragged around and repositioned.
When Add is selected (or Shift is pressed), clicking in the Angle Selector adds new sections. A new section curve will be created as an interpolation of the two curves on either side of it.
When Delete is selected (or Alt is pressed), clicking in the Angle Selector removes sections.
When neither one is active, clicking in the Angle Selector repositions the pointer.
The Section Editor shows the bone with a profile curve.
The profile curve's position around the bone is shown in the Angle Selector. This suggests what the bulge effects look like at different places around the bone. When the Angle Selector points to one of the bulge's defined sections, the profile curve in the Section Editor turns white and can be modified. Otherwise, the curve is dark and represents an interpolation of the bulge's effects at that position.
When neither button is selected, keypoints can be dragged around with the mouse.
There are two kinds of keypoints in the Section Editor, those represented by x and those by o:
In most cases, the bulge direction will be to be perpendicular to the bone. If the line between o and x is not perpendicular to the bone, the bulge slides along the bone as well as move away from the bone.
In the following example, this is represented in the Section Editor by keypoint A having a perpendicular dropped to the bone. If you grab the o's along the bone and drag them with the mouse, you change the direction of the bulge. Keypoint B, for instance, will bulge somewhat along the bone axis, toward the lower end of the joint.
For example, a simple biceps bulge could contain two sections: one above the bone-at zero degrees- with the profile curve resembling a flexed biceps, and the other at 180 degrees with a flat profile curve signifying no bulge below the bone.
The following are restrictions on keypoints in the Section Editor.
The following basic steps show you how to create an arm with smooth bending at the elbow and bulging at the biceps.
1 Choose Animation > IK > Draw skeleton to create a joint hierarchy of three joints. The top joint will be the shoulder, the middle the elbow, and the lower the wrist.
2 Create arm geometry that surrounds the bones and the joints, and pick nothing to ensure that no geometry is active.
3 Choose Animation > Editors > Deformation control to display the Deformation Control window, then choose the CHARACTER BUILDER Frame Type. The default settings should be in effect at this time. To be sure, click the Edit > Reset button at the bottom of the window.
Follow these steps to specify bulging on the upper arm. Assume that you have already defined a bulge that has the effects you want and that you've called it "biceps."
1 Since you only want to apply bulging to one joint, choose Hierarchy Depth NONE. (In this example, joint attributes are being set only for the shoulder joint.)
2 Click the Bulging toggle to turn bulging on.
3 Choose Pick > Object and then pick the entire skeleton. This selects the shoulder joint of the skeleton.
4 Choose Set Attributes from the Frame Control menu. The system prompts:
Modify joint attributes, then press GO![]()
A Go icon is displayed at the bottom right of the current window.
Because you are in Set Attributes mode, any modifications you make in the Bulging Attributes or Joint Attributes sections of the window are stored on the selected joint hierarchy and will be reflected in the representation of the bulge effects displayed in the modeling windows.
5 Select your "biceps" bulge from either the Bulge Type menu or the Bulge Definitions lister.
6 Change the options in the Deformation Control window until you're happy with the way the bulge looks in the modeling windows.
Notice that even though Bulging has been turned off in the window, bulging attributes on the shoulder joint have already been set. The state of the options in the window when Attach is selected shows what attributes are used on joints in the hierarchy that don't have attributes explicitly stored on them already.
7 Click Go to exit the Set Attributes mode.
8 With the skeleton hierarchy still picked, pick the arm geometry as well.
9 Toggle Bulging off and set Hierarchy Depth to BELOW.
Note
You are still getting smooth bending around the elbow, even though you didn't set Upper and Lower Bound attributes on the elbow joint; those attributes are coming from the current values displayed in the window. (Naturally, the arm should have enough CVs around the elbow to permit smooth bending, and the displayed Bound values should sufficiently bracket those CVs.)
10 Choose Attach from the Frame Control menu.
When the Attach operation is completed, apply the desired rotation to the elbow joint and watch the upper arm bulge.
Note
To see the effects of the bulge as you rotate the elbow joint (instead of when you release the mouse button), turn on Expression Updates: During Transform in the Preferences > Performance options window.
The CHARACTER BUILDER Attach operation automates two tedious tasks: creating all the bending and bulging clusters and generating the expressions linking bulging clusters to transformations on a DAG node. It is important to remember:
![]() | Next: Apply a time warp |