Modeling with NURBS
Surfaces
In both Softimage|XSI and Maya, the two main
surface types available for modeling characters are
polygon meshes and Non-Uniform Rational B-Spline
(otherwise known as NURBS) surfaces*. High-resolution
organic characters (see Figure 1) are often modeled
using NURBS surfaces, because such characters have a few
distinct advantages over similar polygon-based
characters. To some people this may seem like a curse,
because of the limitations imposed by NURBS surfaces.
However, once you fully understand the properties of
NURBS surfaces, creating characters will become much
less painful, and maybe even enjoyable.
*Note: There are also subdivision
surfaces in each software package, but for now these can
be classified as a special subset of polygon meshes. I
will discuss the advantages and disadvantages of
subdivision surfaces in a future article.

Figure 1: Here is an example of a
high-resolution NURBS gladiator character.
Strengths and Limitations of NURBS
Surfaces
A NURBS surface consists of intersecting
one-dimensional NURBS curves that create a
two-dimensional surface with UV coordinates. The UV
coordinates can be displayed as red and green
perpendicular surface curves that define the start edges
of the two directions on the surface. Open surface
curves create an open surface while closed surface
curves create a closed surface. A three-dimensional
surface is created when the surface is closed in one or
both of the UV directions. Closing one direction will
create a cylinder, while closing both directions will
create a torus (see Figure 4). A sphere is a cylinder
with the open top and bottom edges, called poles,
pinched to appear closed. You can create NURBS surfaces
by choosing pre-made primitives, or by using commands
such as Lofting, Revolve, or Extrude on
curves.
One distinctive feature of NURBS surface curves
is that the curve itself does not pass through the
points or control vertices (CV¡¯s) that define the
curve. Instead, the CV¡¯s are located off the curve on
Hulls that can be displayed, and sometimes manipulated.
The curve is affected by each CV through weighting, with
a default value of 1. This creates a smoothly
interpolated surface curve that is good for organic
modeling, and requires less points than a similar
polygon mesh. Increasing the weighting of a single point
creates a more sharply defined edge on the curve. In
Softimage|3D, you could interactively adjust the
weighting of a single point on a curve or surface to
harden an edge. In Softimage|XSI and Maya, however, this
is done by adding additional surface curves to the same
area of a surface.
"The difference between a NURBS surface and a
polygon mesh is similar to the difference between vector
and bitmap images Because
NURBS surfaces are interpolated from curves, their
resolution can be changed interactively. The difference
between a NURBS surface and a polygon mesh is similar to
the difference between vector and bitmap images. A
vector image is based on resolution independent curves,
which is similar to how curves create a NURBS surface. A
bitmap image¡¯s resolution, however, is totally
dependent on pixels-per-inch, in a similar way that a
polygon mesh¡¯s resolution is dependent on the amount of
polygon faces (subdivisions). NURBS surfaces can be
interactively set to low or high resolution for
interface display, as well as set separately for
rendering. Also, in some renderers, you can set the
surface to change resolution based on proximity to the
camera. This can be useful when rendering an object that
moves close to the camera, so that you don¡¯t ever see
linear subdivisions on the edges. Also, since NURBS can
have a high resolution with a low number of CV¡¯s, fewer
vertexes require point weight adjustments for skeletal
deformations than an equally smooth polygon mesh.
One limitation caused by being based on curves is
that NURBS surfaces always unwrap to some kind of
rectangular grid. Unlike polygon meshes, you cannot add
local detail or vary from the uniform UV structure. This
quality requires that a complex branching model, such as
an organic character with limbs, be made of many
separate NURBS surfaces ( patches). Patches can only be
combined into a single surface by connecting their open
edges at the poles, to create a larger patch. To do this
requires careful alignment of the open edges, and a
similar isoparm orientation. Many places on an organic
character will require, however, surfaces that branch
out from a closed or internal part of the surface, which
cannot be connected. If the branching surface is
supposed to appear as being seamlessly connected to the
base surface, then you must use methods for creating
tangency between the two surfaces. You must also place
the seam in an optimal place for skeletal
deformations.
Lastly, some additional difficulties on
manipulating NURBS surfaces are caused by their curve
based structure. One is that you cannot add detail to a
small section of a NURBS surface, but must add isoparms
across the whole surface in U or V. This often results
in isoparms being too dense in some areas, causing
unwanted wrinkling and hardening of the surface. Also,
the downside of having CV¡¯s on the hulls instead of the
surface is that it is often confusing to model areas
such as a mouth, where hulls often cross each other to
define the lip structure (see Figure 2).

Figure 2: On a NURBS surface, vertices are
located off the surface curves on hulls. Although this
facilitates a smooth surface, it makes it difficult to
manipulate points in complex areas where points
overlap.
"...while building your characters, you will want
to turn on visual representations of the placement of UV
edges on your
surfaces." Tip #1:
Preparing to Model with NURBS
When manipulating NURBS surfaces, you will want
to vary the display resolution to maximize efficiency
while working. In wireframe view, setting your surfaces
to a low display resolution enables you to see the main
surface curves that define the surface, and speeds up
machine performance. You should occasionally switch to
high resolution to check your work in shaded view,
however. Also, while building your characters, you will
want to turn on visual representations of the placement
of UV edges on your surfaces. Occasionally you will need
to manually move the edge of a closed surface to a
location on the model where it will be the least
noticeable. Lastly, you may need to add detail to a
model by adding surface curves across the U or V of the
surface.
Step 1: Setting Display and Render
Resolution
Create a NURBS primitive, such as a sphere, and
adjust the display resolution.
In
Softimage|XSI: In the Model module, create a
primitive sphere by choosing
Get|Primitive|Surface|Sphere. Keep the default settings,
and close the property page by pressing the Ctrl + ~
keys. Then to change the display resolution of the
sphere, with the sphere still selected click the
Selection button, and click the icon to the left of
Geometry Approximation. When the Confirm Make Local
property page appears, click Yes to make a local copy,
and adjust the Surface U Step and Surface V Step sliders
(see Figure 3). The lower you set the step setting, the
less smooth the edges of the sphere will appear. A step
of 1 in U and V creates a sphere with linear
edges.
Keep in mind that this only changes the Hardware
Display resolution, and not the rendering resolution. To
change the rendering resolution, in the same property
page click the Surface tab, and change the Parametric
Step settings to 1. If you switch to the Render Module
and do a Preview|All Layers, you will see a linear
sphere. Set it up to 3 or 4 to render a smooth
surface.

Figure 3: Set the display resolution in XSI
by adjusting the UV Surface Step sliders in the Geometry
Approximation property page.
In
Maya: In the Model module, create a
primitive sphere by choosing Create|NURBS
Primitives|Sphere on the top menu bar. Then to change
the sphere¡¯s display resolution, choose Display|NURBS
Smoothness|Rough, Medium, or Fine (Hotkeys = 1, 2, or
3). If you choose Hull [] (options), and set the Hull
Simplification to 1 in U and V, the resulting sphere
will have linear edges in wireframe and hardware shaded
view.
To
actually change the render resolution of the sphere, you
must change the Degree setting in the INPUTS channel
node from Cubic (smooth step of 3) to Linear (step of
1). This can also be changed in the makeNurbsSphere1 tab
in the sphere¡¯s attribute editor (see Figure
4).
![]()
Figure 4: Set the render resolution of a
NURBS surface in Maya by changing between Cubic and
Linear in the input node¡¯s attributes.
Step 2: Displaying UV Edges
To
clearly see where the UV edges are located on your
surfaces, turn on the red and green UV edge highlights.
You may also want to check the direction of the Normals
after creating a surface, to determine if it will render
correctly with backculling turned on.
In
Softimage|XSI: To display the UV edges of all
surfaces, choose View|Boundaries on the top menu bar.
The red indicates the U start edge, and the green
indicates the V start edge on each surface. Choose
View|Normals to see which side is the "outside" of the
surface, where the light is reflected perpendicularly
from the surface. It is important to make sure the
normals of each surface are pointing in a consistent
manner in relation to the camera, so they render
correctly if backculling is turned on. Notice that
turning on view settings, such as boundaries and
normals, affects all surfaces in your
scene.
In
Maya: To display the UV edges of a
surface, choose Display|NURBS Components|Surface Origins
on the top menu bar. The red indicates the U start edge,
and the green indicates the V start edge (see Figure 5).
To see the reflective "outside" direction of the
surface, choose Display|NURBS Components|Normals (Shaded
Mode). This is important for your object to render
correctly if backculling is turned on. Also notice that
turning on display origins and normals only affects the
selected objects. You can also set surface origins to be
displayed for all new objects by opening the NURBS
category in the Preferences editor. Click the
Preferences button in the lower right of the interface
(next to the Autokey button), and click the NURBS
category to bring up the global display settings. Click
on Origins, and save the settings.

Figure 5: Turn on Surface Origins to display
UV edges in Maya on several primitives. Notice that a
cylinder is a grid that has one closed edge, while a
sphere is a cylinder with the top and bottom edges
pinched, but not closed. A torus is the only 3D object
closed on both UV edges
"Adding detail to a surface requires that you add
isoparms across the U or V of the
surface." Step 3:
Moving an Edge on a Closed Surface
Often you may need to move a closed edge to a
different place on your model. This is often necessary,
so as not to project a curve over a closed UV
edge.
In
Softimage|XSI: To move the closed edge of a
selected object, choose Modify|Surface|Shift UV on the
left menu bar. If necessary, you may need to first
change selection mode from Subsurface to V Knot Curve,
and manually select the surface curve. Then open the
shift property page and drag the Position slider to
shift the selected edge to a different position on the
surface (see Figure 6). If you specify an open edge,
notice that an it will not shift.
In
Maya: To move a closed edge, right click
the object and choose Isoparm, and click on an surface
curve where you want to move the edge. The isoparm
should be highlighted in yellow. Then choose Edit
Surfaces|Detach Surface []. Make sure Keep Original is
NOT checked, and click Detach. If you do this on an open
edge, the geometry will actually be cut in
two.

Figure 6: Interactively shift the closed
edge of a NURBS surface in Softimage|XSI by choosing
Modify|Surface|Shift UV.
Step 4: Adding Detail to a Surface
Adding detail to a surface requires that you add
isoparms across the U or V of the surface.
In
Softimage|XSI: To add a surface curve in U or V,
first change your Subsurface selection filter on the
right menu bar to V or U Isoline, and use the left mouse
button to click and drag on a U or V isoparm on the
surface (see Figure 7-left). The isoparm should be
highlighted in red. Then to insert the knot curve,
choose Modify|Surface|Insert Knot Curve. If you need to
adjust it¡¯s location, use the Position slider. Close
the property page. You can also remove a surface curve
in a similar way by choosing Modify|Surface|Remove
Knot.
In
Maya: Add surface curves to the surface
by right clicking the sphere and choose Isoparm. You can
also turn on the Lines selection filter on the top shelf
under Component Type (see Figure 7-right). Then left
click on a U or V isoparm and drag to where you want to
add the isoparm. You should see a dotted yellow line on
the surface. Then choose Edit Surfaces|Insert Isoparms
to add the surface curve. To remove an isoparm, simply
select it in the same manner, and click the Delete
key.

Figure 7: Adding a surface curve in one
direction on a surface in Softimage|XSI requires you
select the appropriate isoline selection filter, and
click-drag to where you want to insert it (left). In
Maya you can right click and choose Isoparm, or turn on
the Lines component selection filter, and click-drag to
where you want to insert the surface curve
(right).
"You can place NURBS spheres like pieces of clay
to rough out the main shape and contour of the body part
you are creating." Creating
NURBS Surfaces from Curves
Aside from creating and manipulating NURBS
primitives to use for your character¡¯s body parts, you
can also create surfaces from NURBS curves. Using
extruding, revolving, and lofting commands on a closed
or open curve enables you to create a variety of
surfaces. Although these and other commands are useful,
the single most useful method for organic characters is
lofting. Lofting a set of curves that represent all the
surface curves in one direction on the surface gives you
a history connection to each part of the resulting
surface. This lets you adjust the curves to refine the
entire surface in a more detailed manner than any other
method. When lofting a NURBS surface for an organic
character, normally you should create it as a uniform
Cubic NURBS surface. This will give you the most even
spacing of points on the surface, which will be
predictable for manipulating and texturing. Later, you
may need to change these settings, called
reparameterizing, if you are required to add isoparms in
an uneven manner to define your surface. Changing to a
Chord length setting will texture better under these
conditions.
Tip#2: Lofting a NURBS Torso from Primitive
Spheres
When creating organic characters, it is often
useful to rough out shapes using simple primitives.
Although there are many NURBS primitives available in
each program, the most useful for roughing out an
organic shape is a NURBS sphere. You can place NURBS
spheres like pieces of clay to rough out the main shape
and contour of the body part you are creating. The
spheres can represent bulges produced by muscles and
bones. You can place a lattice on several of the spheres
to deform them together. Once the body part is defined
with spheres, you convert them to a single polygon mesh
object, and use this as a guide for creating a NURBS
surface. This technique is useful for creating NURBS
individual body parts, such as arms, legs, torsos, and
fingers. In the following example, you will see how to
create a muscular NURBS torso (see Figure 8).

Figure 8: Here is an example of a
single-surface NURBS torso that was created by roughing
out the muscle placement with spheres, to create a
polygon guide object.
Step 1: Place Image Scans as
Guides
When creating a character, you will want to use
drawings from your Model Sheet as guides. This should
include a front, side, and possibly back view of your
character in the default pose. Scan each image into the
computer, saving as a bitmap or jpeg. Then import the
files into Softimage or Maya, and open them as guides in
the front and side views.
In
Softimage|XSI: To use a drawing as a
modeling guide in the front view, click on Wireframe on
the view¡¯s top bar, and choose Rotoscope. Before you
can load an image file, you must first import the image
using a Browser view. Click on View|Views|Browser on the
top menu bar, and locate an image file. Drag the image
into an empty area of any view with the left mouse
button. Close the browser, and in the FrontCamera
rotoscope property page, click New|New From Source and
load your image. Right click on the image to crop it by
choosing Crop Tool (see Figure 9-left). Close the
property page, and press the Z key and middle mouse
button in the front view. Notice that the image is not
locked to the view. To lock the image to the view, press
the Shift + Z keys, and drag a selection box around the
image. You can then pan and zoom around the view to see
parts of the image. To unlock the rotoscope view, click
the magnifying glass icon on the views top
bar.
In
Maya: To use a
drawing as a guide for modeling, create an image plane
in the front view by choosing View|Camera Attribute
Editor¡ on the view¡¯s menu bar. Open the
Environment section, and click the Create button next to
Image Plane. In the attribute editor, load an image file
by clicking the folder next to the Image Name field (see
Figure 9-right). Open the Placement Extras section to
adjust the image placement in the view. To crop the
image, reduce the Coverage in X and Y, and slide the
image around by adjusting the Coverage Origin in X and
Y. Lastly, move the image plane back slightly in Z by
typing in ¨C5 in the third Center field. This should
move the plane 5 units back in Z. Delete an image plane
by selecting it¡¯s node in the Hypergraph (turn on
Upstream and Downstream Connections).

Figure 9: In Softimage|XSI crop an image to
be used as a modeling guide in the rotoscope property
page by right clicking it and choosing Crop Tool (left).
In Maya, create an image plane as a modeling guide in
the view camera¡¯s Environment attribute, and adjust
Placement Extras for cropping.
"To make a single guide object out of all your
spheres, you must first convert them to polygons, and
then make them into a single polygon mesh.
" Step 2: Rough out the Body Part
With NURBS Spheres
Create muscle and bone detail for your torso by
placing and manipulating individual NURBS spheres. It is
not necessary to be concerned about surface curve
placement, because all the spheres will be converted to
polygons. Concentrate on achieving correct proportions,
and clear surface details.
In
Softimage|XSI: In the
Model module, choose Get|Primitive|Surface|Sphere. Set
the number of subdivisions as needed, and close the
property page. Manipulate individual spheres in Object
and Point mode. You can also hold down the M key to move
individual CV¡¯s. Manipulate several spheres at a time
by shift selecting them, and choose
Get|Primitive|Lattice (see Figure 10-left). You can even
make a lattice around selected CV¡¯s in Point mode for
detailed adjustments. In the lattice property page, use
Curve interpolation, and set the Subdivisions to set the
resolution of the lattice. Use low numbers for overall
shaping, and high numbers for fine detail. When finished
with the lattice, you must bake the deformations on the
spheres by shift selecting them and click the Freeze
button on the bottom of the right menu bar. Then you can
select and delete the lattice.
In
Maya: In the
Model module, choose Create|NURBS
Primitives|Sphere[].Set the number of Sections as
needed, and close the options box. Manipulate individual
spheres in Object and Component mode (use F8 hotkey).
Manipulate several spheres at a time by using a lattice.
To do this, shift select the spheres, and in the
Animation module, choose Deform|Create Lattice [] (see
Figure 10-right). You can also make a lattice around
selected CV¡¯s in Component mode for detailed
adjustments. Set the resolution of the lattice by
setting the number of Divisions. Use low numbers for
overall shaping, and high numbers for fine detail. When
finished using the lattice, you must bake the
deformations by shift selecting the spheres and choose
Edit|Delete by Type|History. This will automatically
delete the lattice as well.

Figure 10: To
manipulate several spheres together create a lattice
around them in Softimage|XSI (left), and Maya
(right).
Step 3: Convert Spheres to a Single Polygon
Object
To
make a single guide object out of all your spheres, you
must first convert them to polygons, and then make them
into a single polygon mesh.
In
Softimage|XSI: To convert
your NURBS spheres to polygons, drag a selection box
around all the spheres, and choose
Create|Poly.Mesh|Nurbs To Mesh on the left menu bar. In
the resulting property page, set the UV steps to 3, and
close the page. With the polygon spheres still selected,
choose Create|Poly.Mesh|Merge (see Figure 11-left).
Close the property page, and delete the old polygon
spheres in an Explorer view. Lastly, hide all the
original NURBS spheres by shift selecting them, and then
press the h key. You should have remaining only a single
polygon guide object that resembles your multi-surface
torso.
In
Maya: To convert
your NURBS spheres to polygons, drag a selection box
around all the spheres, and choose Polygons|NURBS to
Polygons [] on the top menu bar. In the options box,
choose Quads and Standard Fit, then Apply. With all the
new polygon spheres selected, choose Polygons|Combine to
create a single polygon guide object (see Figure
11-right). Lastly, choose Edit|Delete by Type|History,
which deletes all the polygon spheres except the single
guide object. Hide the original NURBS spheres by shift
selecting them, and press Ctrl h.

Figure 11: Convert
all the spheres into polygons, and make them into one
guide-object, by merging them in Softimage|XSI (left),
and combining them in Maya (right).
"When modeling the various body parts of your
character, keep in mind that the surfaces must not only
look good when rendered, but must also deform well when
animated. Step 4: Use
the Polygon Guide to Create a Single NURBS
Surface
Once you have a single polygon guide object, you
can use it to create a single NURBS
surface.
In
Softimage|XSI: To create
a single NURBS torso using the polygon guide-object, you
should use Shrinkwrap. To do this, create a NURBS sphere
with a pretty high number of subdivisions, such as 20 in
both U and V. Then scale the sphere so it completely
surrounds the polygon object. Make sure the poles of the
NURBS sphere are oriented at the top and bottom of the
torso, and completely outside of the polygon mesh. This
object is called the Outer Wrapper. Then duplicate the
NURBS sphere and scale it so it is completely inside the
polygon guide object. This second NURBS sphere is called
the Inner Wrapper. To do a shrinkwrap, select the outer
wrapper and choose Modify|Deform|Shrinkwrap. Pick the
polygon guide object, and then pick the inner wrapper,
which opens the shrinkwrap property page. Make sure
Toward Inner Object is checked. An amplitude of 1 is as
close to the surface of the guide object as possible.
Adjust if necessary, and close the property page. The
trick to doing a good shrinkwrap is the orientation and
resolution of your wrapper objects. They must have
enough surface curves in the right places to define the
detail on your polygon guide-object.
*Note: An alternative to using
shrinkwrap is to use snap to surface to draw curves on
the surface, and loft the curves to create the torso.
Since Maya does not have a similar command to
shrinkwrap, you will use the snapping to surface method
(called Make Live) to create a torso from a polygon
guide object.
In
Maya: To create
a NURBS torso using the polygon guide object, select the
polygon and choose Modify|Make Live on the top menu bar,
which allows you to draw a curve so the points snap to
the "live" surface. Then choose the Create|EP Curve Tool
and use the perspective and orthographic views to draw a
curve across the polygon surface. Draw from the top of
the torso to the bottom, placing points for each
indention and surface change. Click Enter when finished.
Duplicate the curve and rotate and translate the copy so
it is next to the previous curve. Click F8 to go into
component mode, and select and move each point so it
snaps to the live surface. Continue in this way around
the entire torso. Once you have curves for half the
torso, shift select each curve in order and choose
Surfaces|Loft [] on the top menu bar. In most cases you
will want to create a uniform, cubic NURBS surface, and
click Apply.

Figure 12: Create a
NURBS surface using the polygon guide-object by using
shrinkwrap in Softimage|XSI (left), and snapping curves
to the guide-object and lofting by using Make Live in
Maya (right).
Animation Considerations
When modeling the various body parts of your
character, keep in mind that the surfaces must not only
look good when rendered, but must also deform well when
animated. This involves making sure that the areas where
deformations will occur, such as joints on limbs, have
enough surface curves crossing perpendicular to the
joint. Special consideration should be given to place
the surface curves so they cross the deformation area in
a logical manner, and are not stretched too much. This
can be seen in the way to model a foot so it bends well
when stepping (see Figure 13). A well-made foot has
surface curves that cross perpendicular to the main
deformation areas at the ankle and ball of the foot. A
less well-made foot may look good when static, but will
not bend as well in the deformation areas because of the
orientation of the surface curves.

Figure 13: Here you
can see two examples of a foot. The foot on the left has
good surface curve placement for bending at the ankle
and ball of the foot, while the one on the right may
look good when static, but won¡¯t animate as well due to
the surface curve placement
"It is better to place seams off the joints, and
in the middle of bones, so that the points on the
surfaces on each side of the seam are weighted to a
single bone. " Another
animation consideration is that seams between surfaces
should not be placed directly on deforming joints. When
skeletons are applied to the surfaces, parts of a seam
placed on a joint will be assigned weighting to bones on
each side of the joint. This may cause the seam to come
apart when the bones deform the surfaces. It is better
to place seams off the joints, and in the middle of
bones, so that the points on the surfaces on each side
of the seam are weighted to a single bone. If you build
your character with this in mind, then you will have
much less work manually adjusting point weighting after
skinning (see Figure 14). Also keep in mind that
wherever you place seams, you will need to make them as
transparent as possible by integrating them into your
character¡¯s design. Do this by making the seams contour
distinct surface changes, like natural indention¡¯s
created from bones or muscles. Another way of
integrating seams would be to place them where there are
distinct material or textural changes on your character,
such as an area that changes from fur to skin.

Figure 16: When
designing a character as a NURBS model, try to place
seams between surfaces so they will cross the joints.
Notice how this character¡¯s seams are placed slightly
off the joints.
Connecting Surfaces
There are three types of connections you may
encounter when creating a character using multiple NURBS
surfaces. If two open edges line up perfectly, you can
connect them into one object. An example of this would
be to connect the top pole of a torso to the bottom pole
of a neck. To do this requires that the two surfaces
have similar subdivisions in the direction of the open
edges, and that the closed seams line up.
With some connections, however, the open edges
should not be merged. If the two surfaces have radically
different number of surface curves, due to more detail
needed on one of the surfaces, then it is best to leave
them separate pieces. Also, when one surface appears
open but is really closed, because the edge needs to be
separated for some reason, then it cannot be connected
to a similar surface that is closed in the same
direction. Lastly, you may want to connect an open edge
of a surface to the internal closed part of another
surface, which is not possible. An example of this is
connecting two arms to a torso that has the open poles
on the top and bottom (see Figure 15). Since a NURBS
surface must be continuous, there is no way to combine
an open surface to a closed surface. They must remain
separate surfaces that only appear to be one piece. Even
if you trim a hole in the surface, the two surfaces
cannot be combined. The reason for this is that a trim
is purely visual, and does not change the UV structure
of the trimmed surface. It simply creates a curve on
surface that can be used for lofting a seamless
appearing branch.

Figure: 15: Here is an
example of lofting arms from a closed NURBS torso. This
requires that the arms be separate surfaces.
"Once you have a curve on surface, loft across
the curves, and fix twisting on the surface by adjusting
the source curves using history.
" Tip #3:
Connecting Surfaces to Your Torso
Create an arm in the same way you created a
torso, with the open pole at the shoulder. To make this
arm appear to connect to your torso, you must project a
curve on surface, and loft to the shoulder curve. Often
it is best to duplicate all the surface curves across
the length of the arm, and loft the entire arm directly
off the torso. This creates only two separate surfaces,
rather than three. To create a seamless appearing
connection, try to make your projected curve large
enough to create a surface curve on a large area of the
torso. By making the arm surface start on the chest,
instead of on the shoulder, you can sometimes achieve
better tangency with the torso. You also want to make
sure the seam between surfaces does not sit directly on
the shoulder joint, which could pull them apart when the
arm animates.
Step 1: Copy the Curves that Define the
Arm
Duplicate the surface curves of your arm to loft
from the torso across the whole arm.
In
Softimage|XSI: To
duplicate surface curves on your arm, select the arm
surface and change the selection filter from Subsurface
to V Knot Curve (see Figure 16-left). Your object will
turn yellow, and if you left mouse click on a surface
curve, it will be highlighted in red. Hold the Shift key
down and drag selection box across the entire arm, from
shoulder to wrist. Once all the surface curves are
highlighted, choose Create|Curve|Extract from Surface on
the left menu bar. New curves will be created that
contour the entire arm.
In
Maya: To duplicate surface curves across the length of
your arm, select the arm surface, and right click to
choose Isoparm as your selection component. Then hold
the Shift key down while clicking on each isoparm from
shoulder to wrist. The surface curves should be
highlighted in yellow. Then choose Edit Curves|Duplicate
Surface Curves to create new curves that contour the
entire arm (see Figure 16-right). If you know you are
going to do all the curves in U or V, then you can open
the options box for Duplicate Surface Curves, and copy
check one direction and apply it.

Figure: 16: Duplicate
surface curves on your arm by selecting isolines in XSI
(left), and isoparms in Maya (right).
Step 2: Place Curve on Surface of Torso, and Loft
Curves
To
loft your arm from your torso, you must first place a
curve on your torso. Once you have a curve on surface,
loft across the curves, and fix twisting on the surface
by adjusting the source curves using history. Keep in
mind that it is best not to create a new surface curve
over a closed edge or pole, so you will want to shift
the vertical seam on your torso so that it runs down the
middle of the back. This will insure that you don¡¯t
shrinkwrap or project a curve over the seam, which will
cut the surface curve in half.
In
Softimage|XSI: To create
a curve on surface, you can use the Shrink Wrap,
Intersect, or Snap to Surface commands. Shrink Wrapping
a curve is the same as shrink Wrapping a surface. This
time shrinkwrap a closed curve on to the torso by
projecting it parallel to the X axis. Do this by
duplicating one of the curves extracted from the arm,
and move it to the right of the torso. Then choose
Transform|Move Center to Vertices to easily scale and
manipulate the points of the curve to line it up with
the torso. Lastly, choose Modify|Deform|Shrink Wrap, and
click on the wrapper curve, and the target torso. Right
click to open the Shrink Wrap property page, and turn on
Parallel to Axes and Along X. It may also be necessary
to turn on Reverse to get a good projection. Once the
curve is on surface, you can translate it across the
surface, while still keeping tangency.
"Sometimes when you loft curves with differing
numbers of CV¡¯s, it produces extra surface curves that
are not needed to define the surface. To make your
surfaces more efficient, you must clean up the
surface... " Another way
to create a curve on surface is to get a primitive NURBS
sphere or cylinder, and place it so it intersects the
torso where you want the arm to be attached. Then to
create the curve, select the torso and choose
Create|Curve|Intersect Surfaces on the left menu bar.
Pick the intersecting surface, and transform it to
adjust the placement of the new surface curve.
One other method for creating a curve on surface
is to draw one with Snap to Surface turned on. Do this
by clicking the On and surface buttons under the Snap
menu on the right menu bar, choose Create|Curve|Draw CV
NURBS, and draw a circular curve on the surface. Close
the curve by choosing Modify|Curve|Open/Close. Before
you use this method, however, you should check the arm
curves that you will be lofting to, to see how many
points are on the curve, where the curve starts, and
which direction it is going. You want your curve on
surface to have the same properties as the arm curves,
so you avoid a twisted surface after lofting. If
necessary, you can adjust some of these properties after
lofting, using history, by choosing Modify|Curve|Inverse
and Shift U.
When your curve on surface is placed well, loft
all the curves to create the limb. Do this by selecting
the surface curve, choose Create|Surface|Loft, and click
on each arm curve in order from shoulder to wrist. Right
click to open the Loft properties page, and adjust
properties if necessary (you may need to reduce the U or
V Subdivisions). Also, if twisting is occurring between
the surface curve and the arm curves, then adjust the
curve or object that was originally placed on surface
using history.
In
Maya: To create
a curve on surface, you can use Project Curve on
Surface, Intersect, or Make Live. To project a curve on
to your torso, create a circle with similar point
structure to the arm curves you will be lofting to. An
easy way to do this would be to copy one of the arm
curves, and manipulate the copy so it can be projected.
If the center is not in the middle of the curve, choose
Modify|Center Pivot. Then translate and scale the curve
in object and component mode to make it cover the area
you want to project on. When positioned correctly,
select the torso, and shift select the curve. Choose
Edit Surfaces|Project Curve on Surface [] to open the
project options box. Choosing Active View usually
produces the most predictable results. For an arm, make
sure you middle click the side view to activate it for
projection. Local tolerance allows you to adjust the
accuracy of the projection, rather than using the global
tolerance in the preferences editor. Using Partial Curve
Range creates minimum and maximum channels that can be
adjusted to open the curve on surface, but this is not
really needed for lofting an arm.
Another way for creating a curve on surface is to
create a NURBS sphere or cylinder, and place it so it
intersects with your torso. Select the torso and then
shift select the intersecting object, and choose Edit
Surfaces|Intersect Surfaces [] on the top menu bar. Make
sure First Surface and Curve on Surface is turned on,
and click Apply. Use history to adjust the curve on
surface by manipulating the intersecting
object.
Lastly, you can select the torso and turn on Make
Live to draw a curve on surface. If you use this method,
make sure you check the attributes of the arm curves, so
that you draw a surface curve that has a similar point
structure.
When your curve on surface is placed well, loft
all the curves to create the limb. Do this by selecting
the surface curve, and then shift select each arm curve
in order from shoulder to wrist. Choose Surfaces|Loft []
to open the options box, and make sure you are creating
a uniform cubic NURBS surface. Also, if twisting is
occurring between the surface curve and the arm curves,
then adjust the curve or object that was originally
placed on surface using history.

Figure: 17: Snapping
to surface in Softimage|XSI (left) is similar to Make
Live in Maya, while projecting a curve on surface in
Maya (right) is similar to shrink wrapping a curve
parallel to an axes in Softimage|XSI.
Step 3: Delete History, and Clean Up the
Surface
Once your arm has good tangency with your torso,
you will want to rebuild it if there are any unusual
distribution of surface curves. Sometimes when you loft
curves with differing numbers of CV¡¯s, it produces
extra surface curves that are not needed to define the
surface. To make your surfaces more efficient, you must
clean up the surface by reducing and re-distributing the
surface curves. Before you do this, however, make sure
you delete the history connection between your lofted
limb and it¡¯s source curves.
In
Softimage|XSI: Delete the
history on your lofted arm by clicking the Freeze button
in the Edit section of the right menu bar. Then to
remove excess surface curves, choose
Modify|Surface|Clean, and adjust the tolerance levels as
desired. A larger number reduces the number of isoparms
in U or V. Then, if you want to distribute the surface
curves in a more even manner, you can choose
Modify|Surface|Reparameterize (see Figure 18-left).
Uniform is the most even distribution of surface curves.
If this changes the structure of your surface too much,
then add isolines selectively by choosing
Modify|Surface|Insert Knot Curve.
¡¡
|