ChinaVFX   

::::::  Curse of the NURBS  ::::::

by Chris Maraffi


" I personally prefer lofting directly off a surface, and animating all the surfaces using skeletons. You could instead, however, use a fillet to create an interactive connection between the torso and arm that would not be skinned to the bones. "

In Maya: Delete the history on your lofted arm by selecting the arm and choose Edit|Delete by Type|History on the top menu bar. Then to remove excess surface curves, choose Edit|Surfaces|Rebuild Surfaces [] (see Figure 18-right). Uniform parameterization spaces the isoparms in the most even manner, but in some cases may remove detail. Choose Reduce or Non-Rational if this happens, and Keep, U and V for Direction. In some cases, you want to specify the Number of Spans in U and V, which you can determine by opening your objects attribute editor. Make sure you are creating a cubic NURBS surface, and click Apply.

Figure: 18: After freezing to delete history in Softimage|XSI, you may need to clean up surface curve placement by using Reparameterize (left), while in Maya use Rebuild (right).

Step 4: Using a Fillet Instead of Lofting

I personally prefer lofting directly off a surface, and animating all the surfaces using skeletons. You could instead, however, use a fillet to create an interactive connection between the torso and arm that would not be skinned to the bones.

In Softimage|XSI: To create a fillet in Softimage, you must have the arm intersect the torso surface. Do this by adding an isoline near the shoulder, and select the points around the open edge, and translate them through the torso. You can also loft the arm from a curve inside the torso to make them intersect. Then select the torso, choose Create|Curve|Fillet Intersection, and click the intersecting surface. You will probably want to use a Constant Radius Type, and increase the U Subdivisions. The start radius can also be increased to make a larger connection, which is preferable on organic characters.

Another fillet-like command in Softimage|XSI is Blend, which creates an interactive connection between two open surface poles. It is not possible to do a blend between a shrink wrapped surface curve and an open pole at this time. To create a blend choose Create|Surface|Blend on the left menu bar, and click on each open edge so that it is highlighted in red. In the resulting blend property page, adjust the subdivisions as needed for a smooth connection.

In Maya: You can create a fillet intersection by selecting two intersecting surfaces, and choose Edit Surfaces|Surface Fillet|Circular Fillet []. Turn on Create Curve On Surface if you want to trim the intersecting surfaces. A circular fillet creates an interactive surface that smoothly covers the intersecting surfaces. It is ideal for a simple cartoonish character.

Another fillet in Maya that creates a surface between a curve on your torso and an isoparm on the shoulder edge of your arm surface, is a freeform fillet. Once you have a curve on your torso surface, shift select the two isoparms, and on the top menu bar choose Edit Surfaces|Surface Fillet|Freeform Fillet []. Type in .5 for Depth and 0 for Bias, and use small tolerance levels. These numbers can also be adjusted as needed in the Input channels on the fillet after applying.

Lastly, you can choose Surfaces|Surface Fillet|Fillet Blend Tool** to create a fillet surface between surface curves. After activating the tool, click the torso surface curve and press Enter, and click the open shoulder isoparm and press Enter. This creates an interactive connection with several Input channels that can be adjusted.

**Note: The difference between a "tool" in Maya, and other commands called "actions", is the selection order. An action requires you select all object components before applying the command, while a tool requires you to select the tool command first, and then pick the object components.

Figure: 19: You can create an interactive fillet in Softimage|XSI by intersecting surfaces (left), and create an interactive fillet in Maya between a projected surface curve and an edge by using either Freeform Fillet or the Fillet Blend Tool.

" ...the features of the face must not only be accurate in structure, but also must be able to deform into all the facial expressions that the character will use to communicate. "

Step 5: Connect a Neck to the Top Pole of the torso.

Depending on how you create your head, you may be able to connect the top pole of your torso to the bottom pole of your neck. This would create a single surface for the torso and head. The only time you would not want to do this is if your head has many more surface curves than your torso. If you connect them, you will create a dense torso that is not necessary. In this case, it would be more efficient to keep them separate surfaces.

In Softimage|XSI: To connect your torso to your neck, first make sure both objects have open poles that structurally line up. If necessary, cut the top of the torso or the bottom of the neck to open them, by selecting a V Isoline, and choose Modify|Surface|Snip. Before connecting, it is also important to turn on View|Boundaries to make sure the closed seam lines up on both surfaces, to avoid twisting problems. Adjust the position of the seam if necessary, and use Modify|Surface|SwapUV to swap the UV if they are not the same on both surfaces. Then to connect the two open edges, select the torso and choose Create|Surface|Merge (see Figure 19-left). The command line prompts you to select the open edges with the left mouse button, and then right click to open the merge properties. Adjust the Clean, Subdivision, and Shape properties as needed. You may want to adjust the Clean Tolerance, or manipulate the Shape Start and End Surface sliders. The resulting surface will be one piece of geometry. Freeze the history on the surface, and hide the original surfaces.

In Maya: To connect your torso to your neck, first make sure both objects have open poles that structurally line up. If necessary, cut the top of the torso or the bottom of the neck to open them, by right clicking to select an isoparm, and choose Edit Surfaces|Detach Surfaces. Discard the detached poles. Before connecting, it is also important to turn on surface origins to make sure the closed seam lines up on both surfaces, to avoid twisting problems. Adjust the position of the seam if necessary, and use Edit Surfaces|Reverse Surface Direction to swap the UV if they are not the same on both surfaces. Then to connect the two open edges, shift select the edge isoparms on each surface, and choose Edit Surfaces|Attach Surfaces (see Figure 19-right). In the attach options box, make sure Blend is checked on, and choose .5 Blend Bias. You can adjust the Blend Bias and Insert Knot settings in the channels after attaching. The resulting surface will be one piece of geometry. If you turned on Keep Originals, then delete the history on your new surface, and hide the original surfaces.

Figure: 20: Use Merge to connect a neck to your torso in Softimage|XSI (left), and use Attach Surfaces to do the same in Maya (right).

Three Methods for Modeling a NURBS Head

One of the most difficult body parts to model using NURBS surfaces is a human head. The reason for this is that the human head is very distinct in its structure, with specific indentions and cavities that are extremely recognizable to all viewers. Also, the features of the face must not only be accurate in structure, but also must be able to deform into all the facial expressions that the character will use to communicate. To do this, you need to model a head with specific surface curve placement that contours the muscles of the face. This should be efficiently done, without adding too many surface curves, which will make it difficult to animate the face by creating target face shapes. There are three main methods for creating a NURBS head, based on edge placement. These are called radial, vertical, and patch methods. Each method has specific advantages and disadvantages.

" The horizontal curves that define this head make it difficult to deform the edges of the mouth into expressive shapes. This is more of a problem for the mouth than the eyes, since the eyes do not require extreme deformations. "

The radial method has one edge pole inside the oral cavity, with the surface curves radiating out from the mouth to the back of the head (see Figure 20-left). The other edge pole is either placed in the back of the head, or cut open and rotated down to create the base of the neck. The advantage of a radial head is that the mouth is well defined with evenly spaced surface curves, which makes it very suitable for creating expressive mouth shapes. The disadvantage occurs in the eye area, where surface curves are not quite vertical. To carve out a good eye cavity from the radiating curves, you need to make them vertical, and add many more across the surface. This will cause the surface curves to bunch up around the upper lip area, as the added curves are condensed into the mouth. To avoid complicating the mouth structure, it is usually better to add the eyes as separate revolved patches that sit on top of the base head. Try to place the seam between the eye patches and the base head where the eye socket has a natural indentation. This will contour the "bags" under the eye, and be hidden in the shadowed area under the eyebrow.

The vertical method places the poles at the top of the head and the bottom of the neck (see Figure 20-middle). This enables you to attach the open neck pole to the open top of a similarly oriented torso. The advantage to this type of head is that it is a single piece of geometry. This makes it easier to texture and animate, as you dont have to worry about seams coming apart. However, the problem with this kind of a head is that the surface curves do not contour around the eye and mouth cavities very well. The horizontal curves that define this head make it difficult to deform the edges of the mouth into expressive shapes. This is more of a problem for the mouth than the eyes, since the eyes do not require extreme deformations. In addition, the extra horizontal curves required to carve out these areas tend to bunch up on the cheeks, causing striations that are sometimes difficult to smooth out.

The patch method for creating a head requires that you cut the head up into many separate NURBS patches. This is like creating a patch quilt of surfaces, where the surface curves line up across all the surfaces to create tangency. The advantage of this method is the orientation of the surface curves can be different on each patch, so that local detail can be created in particular areas of the head without adding extra curves across the whole head. Rather than changing the number of surface curves, the orientation of the curves is usually changed so that they can go in the direction necessary for creating details that would be impossible on a single NURBS surface. In addition, seams can be partially opened between surfaces to create openings that would also be impossible on a single surface (see Figure 20-right). The main disadvantage is that you have to keep the seams between patches from opening when the character animates. Because of the complexity of creating tangency between many separate surfaces, this method for modeling a head is usually considered the most difficult.

Figure: 21: Here are examples of a radial (left), vertical (middle), and a simple patch head that separates at the seams to create the mouth and eye openings (right).

" ...add surface curves gradually to create facial details such as the nose, lips, and forehead. The surface curves should contour all the structures of the face. Be careful not to add too many surface curves in any one area..."

Tip #4: Creating a Radial Head

Create a radial head (see Figure 22) from a NURBS sphere on which you manipulate the points to pull back a mouth opening, gradually adding detail to define the head features. When the necessary surface curves for creating the basic structure of the head is in place, copy the surface curves in one direction to generate object curves for half the head, and loft the curves. Duplicate the resulting lofted surface as an instance, and scale it in C1. This creates a second half of the head that interactively updates when manipulating points on the lofted surface. A history connection between the curves and the lofted surface enables you to refine the surface by manipulating the curves. When finished, use surface sculpting tools to finish the surface, and use connect-surface commands to make one head from the two halves. Lastly, add separate eye patches by lofting curves snapped to surface.

Figure: 22: Create a radial head from a primitive sphere, and then loft eye patches from curves snapped to surface.

Step 1: Model All Facial Features from a Primitive Sphere

Rotate the sphere so it is facing forward in Z. Then select CVs near the front pole, and pull them back to define a mouth cavity. Create a clipping plane in the front view to hide the vertices on the back of the head. Lastly, add surface curves gradually to create facial details such as the nose, lips, and forehead. The surface curves should contour all the structures of the face. Be careful not to add too many surface curves in any one area, or they might start to bunch up and cause surface problems.

In Softimage|XSI: Create a primitive sphere with 8 subdivisions in U and V, and rotate it 90 degrees in X, so its poles are facing forward in Z. Scale the sphere in object mode so it has the oval shape of a head. Choose Transform|Freeze All Transforms on the right menu bar to set your rotation and scaling adjustments. Then switch selection mode from Subsurface mode to V Isoline, and add a surface curve to the front of the sphere between the second and third isoline. This creates the edge of the lip, and will stabilize the mouth area. Add the isoline by choosing Modify|Surface|Inset Knot Curve. Then to create a mouth cavity, switch to point mode and select CVs in front of the surface curve you added, and translate them in negative Z. You want to move them far enough back so you wont see them when you add a clipping plane to the front view.

To add a clipping plane so you will only see the front area of the sphere, click on the camera icon on the front views top menu bar, and choose Properties. Under Clipping Planes, set the Far Plane values from 20,000 to 10,000. You may want to open the script editor by clicking its "!" button in the lower-mid-left area of the interface, and copy the history script for each clip plane setting to a custom toolbar. Do this by first creating a custom toolbar named Clip-planes by choosing View|Custom Toolbars|New Toolbar­ Then highlight the script code for each command, and drag it using the left mouse button into the new toolbar. Name it and click OK, which creates a button that can be clicked to invoke each setting as needed.

At this point you are ready to start adding surface curves and manipulating CVs to gradually shape the features of your head. Start by scaling the mouth CVs down to create a small mouth shape, and then begin adding surface curves to sculpt a nose. At this stage, add surface curves to each side of the head, but be aware that you will discard one side later. Also remember that you need a curve for every bump and indention on the surface, but you want to avoid adding too many surface curves to an area, or it will become difficult to manage. Use the example picture as a guide for placement of your surface curves (see Figure 24). Notice how the surface curves must contour the features of the face to produce a good result. On the nose, for example, you need three vertical surface curves for the bridge, and at least three vertical curves for the nostril. If you add too many vertical curves, however, the points will start to bunch up on the upper lip. At this stage, it is important to rough out the face entirely with all the surface curves that will be needed to define the face. Delete history when you have roughed out the head to your satisfaction.

Figure: 23: In Softimage|XSI rotate a sphere so the poles are facing forward, and then select and translate CVs on the front of the sphere to create a mouth cavity.

 "On the nose, for example, you need three vertical curves for the bridge, and at least three vertical curves for the nostril."

In Maya: Create a primitive sphere with 8 subdivisions in U and V, and rotate it so its poles are facing forward in Z. Scale the sphere in object mode so it has the oval shape of a head. Then press F8 to go into component mode, and right click to add an isoparm towards the front of the sphere in the top view. This creates edge of the lip, and will stabilize the mouth area. To create a mouth cavity, select CVs in front of the isoparm you added, and translate them in negative Z. You want to move them far enough back so you wont see them when you add a clipping plane to the front view.

To add a clipping plane so you will only see the front area of the sphere, choose View|Camera Attribute Editor on the front views top menu bar. Change the Far Clip Plane from 1000 to 100. You may want to open the script editor by clicking its button in the lower right corner of the interface, and copy the history script for each clip plane setting to your shelf. Do this by highlighting the MEL code for each, and drag it using the middle mouse button to your shelf. This will create a button that can be clicked to invoke each setting as needed.

You are now ready to start adding surface curves and manipulating CVs to gradually shape the features of your head. Start by scaling the mouth CVs down to create a small mouth shape, and then begin adding isoparms to sculpt a nose. If you need to select an entire row of CVs, it is sometimes easier to right click and choose Hulls, to select and manipulate the hulls. Lastly, when manipulating individual CVs, it is helpful to use the arrow keys to select the next CV on the surface.

At this stage, add surface curves to each side of the head, but be aware that you will discard one side later. Also remember that you need an isoparm for every bump and indention on the surface, but you want to avoid adding too many surface curves to an area, or it will become difficult to manage. Use the example picture as a guide for placement of your isoparms. Notice how the surface curves must contour the features of the face to produce a good result. On the nose, for example, you need three vertical curves for the bridge, and at least three vertical curves for the nostril. If you add too many vertical surface curves, however, the CVs will start to bunch up on the upper lip. At this stage, it is important to rough out the face entirely with all the surface curves that will be needed to define the face. Delete history when you have roughed out the head to your satisfaction.

Figure: 24: In Maya, set a far clip plane to hide the back vertices of your head while working in wireframe mode in the front view. Then add surface curves gradually to build up and define facial features on your head.

Step 2: Refine Half the Head using Curves

It is sometimes useful to model with curves using history to update a lofted surface. It is also more efficient to refine only half your head, using an instanced surface for the other half. To do this, you must copy or extract all the curves for half of your head, starting at the chin and ending at the middle of the forehead. Loft the curves to create a NURBS surface. Duplicate this side of the head as an instance, scaling it C1 in X. This will create the other half of the head as an instance that will automatically update as you refine the source half. Group the curves to easily select them as a whole, and proceed to manipulate the curves to refine the head.

In Softimage|XSI: With your rough head selected, change your selection filter from subsurface to V Knot Curve, and then hold the Shift key down while clicking on all the surface curves from the middle of the chin to the middle of the forehead. When all the surface curves are highlighted in red, choose Create|Curve|Extract from Surface on the left menu bar. Loft the resulting curves by choosing Create|Surface|Loft, and right click after picking each curve in order. With the lofted surface selected, create an instanced opposite half of your head by choosing Edit|Instantiate Single on the top menu bar. Scale the instanced half of the head C1 in the X axis. This creates a symmetrical instanced surface that updates while you are refining the other side of the head. Change the selection filter from Subsurface to Curve, and drag a selection box around all the curves, and change to Point mode to adjust your surface by manipulating the shapes of the curves. You can also Group the curves by clicking the Group button on the right menu bar. This does not enable you to select points, however, until you also choose Select|Select Members/Components.

In Maya: Right click on your head and choose Isoparm, and then hold the Shift key down while clicking on all the surface curves from the middle of the chin to the middle of the forehead. When all the isoparms are highlighted in yellow, choose Edit Curves|Duplicate Surface Curves on the top menu bar. Loft the resulting curves by shift selecting them in order, and choose Surfaces|Loft []. Make sure you are using Uniform Cubic NURBS in the lofting options box. With the lofted surface selected, create an instanced opposite half of your head by choosing Edit|Duplicate []. In the duplicate options box, change from Copy to Instance, and place C1 in the first X scaling field. This creates a symmetrical instanced surface that updates while you are refining the other side of the head.

**Note: One capability you have in Maya is to be able to move EP points on a curve. Since a curve passes through the EP points, this makes manipulating the curves easier than manipulating CVs on the surface directly. You can select the group of curves for your head, and in component mode, turn off CVs and turn on EPs. Then turn on shaded view in the perspective window, and make it full screen. The EP points should be visible directly on the surface of your head just like a polygon model. Simply select them to transform them as needed to refine your head.

Figure: 25: Duplicate and loft curves to create half a head, then duplicate and scale C1 in X an instance of the head. Moving CVs (or EPs in Maya) on one side of the head will automatically update on the other side of the head.

"Most organic creatures are not completely symmetrical. Adding some slight variations on each side of the head will give your character a more natural look."

Step 3: Using Surface Deformation Tools

Finish the model by deleting the history on the NURBS half-head, and model the surface directly using surface deformation tools. When the head looks close to finished, connect the two halves into one head, and continue to use surface deformation tools to make asymmetrical variations on the head. Most organic creatures are not completely symmetrical. Adding some slight variations on each side of the head will give your character a more natural look.

In Softimage|XSI: The main tool in Softimage|XSI for interactively sculpting a NURBS surface directly, without manipulating CVs, is to use the Paint Tool (formerly known as GAP) to create a weight map for the surface. The weight map is then connected to the Amplitude property of a deformation operator, such as Push, Bulge, Shear etc. Do this by selecting your head and choose Get|Property|Weight Map on the left menu bar. Give the weight map a name, and close the property page. Choose Get|Property|Brush Properties (Ctrl + W) to adjust your paint settings, and press the W key in the camera view to start painting. Click and drag with the middle mouse button to adjust the radius of the brush, left click to add weights, and right click to reduce weights. Adjusting the Opacity setting increases or decreases the amount of painting, while adjusting the Hardness and Softness will affect the painted edge. To actually sculpt the surface, you must connect the weight map to a deformation operator. Choose Modify|Deform|Push to connect a push operator to the current weight map. Changing the Amplitude setting will affect the surface according the weight map. Only one weight map can control a particular deformer. To layer additional weight maps, select the object (not the weight map), and add a new weight map. Connect a second Push operator to the new weight map, and set the Amplitude settings to go in a different direction and amount. Keep in mind that as you layer deformation operators the Operator Stack is increasing. When you have completed sculpting the surface, it is a good idea to Freeze the operator stack by clicking the Freeze button in the lower right menu bar, and manually delete the weight maps in the Clusters folder of your surface.

When one side of the head is complete, freeze the instance, and connect the two halves of the head. Do this by selecting the instance, and click the Freeze button to remove the connection to the other half of the head. This makes the instance into a normal piece of geometry. Then choose Create|Surface|Merge, and click twice on each half; once to select the surface, and a second time to select the open edge of the surface. Right click to merge the two halves, and close the property page. Click the Freeze button again to delete the history connection between the original halves and the new single surface head. Then make sure you close the seam at the chin by choosing Modify|Surface|Open/Close. Once the head is one piece, continue modeling with the Paint Tool or lattices to create some asymmetrical variations on the heads features.

Figure: 26: Use the Paint Tool in conjunction with a weight map and a deform operator to sculpt your head in Softimage|XSI

"Create a closed circular curve on surface to define the outer edge of a radial eye patch. Try to make the edge conform to the natural indention around the eye socket."

In Maya: There are two tools in Maya for interactively sculpting a NURBS surface directly, without the need to select CVs. These are the Sculpt Surfaces Tool and the Surface Editing tool, which are found in the Edit Surfaces menu on the top menu bar. A tool in Maya is different from other commands, in that you select a tool before picking the object you want to effect. All other commands require you to select your objects first, and then invoke the appropriate command. Choosing Edit Surfaces|Sculpt Surfaces Tool [], opens a paint-style sculpt options box that allows you to choose the brush Radius, Opacity, Shape, and operations such as Push or Pull. A couple of other useful options are the Reflection and Show Preview buttons in the Stroke and Display tabs. Painting on the surface of your head in shaded mode, as you orbit around in the camera view, will move the CVs inward or outward. Increase the Max Displacement or change the Reference Vector under Sculpt Variables to adjust the amount or direction of the deformations. This is a good method for creating bumps, and crevices on your head surface.

The Surface Editing Tool is primarily used for fine detail adjustments to the surface. It is very similar to the Curve Editing Tool, but works on the U and V surface isoparms. Choose Edit Surfaces|Surface Editing|Surface Editing Tool, and click on your head. An icon with a handle sticking out comes up that has five main parts. The center part has a colored X, Y, Z manipulator that enables you to translate that part of the surface. Along the length of the handle there is a circular icon, a square icon, and a diamond icon. Clicking the circular icon changes the direction of the handle between the U, V, and W (normal direction) of the surface. The square icon enables you to rotate the handle, while the diamond icon enables you to scale the handle. Moving any of these handles affects the highlighted surface isoparm. A second diamond icon close to the move manipulator enables you to slide the handle to a new location on the surface.

When your half head is complete, delete the instance half, and duplicate the surface again as a normal surface. Do this by selecting the surface, and choose Edit|Duplicat [] on the top menu bar. In the resulting options box, make sure Copy is selected under Geometry Type and the X axis is being scaled by -1, and click Duplicate. Then select the original half, and shift select the duplicate half, and right click to select the edge isoparms on both halves by dragging a selection box over the common edge. Once the edges are highlighted, choose Edit Surfaces|Attach Surfaces [] on the top menu bar. In the options box, make sure Blend is turned on, with a .5 Blend Bias, and Insert Knot is turned off. Once attached, make sure you close the seam at the chin by choosing Edit Surfaces|Open/Close Surfaces []. In the options box, choose Blend again for the direction across the chin (usually V), and also turn off Insert Knot. Once the head is one piece, continue modeling with the Sculpt and Surface Editing Tools or lattices to create some asymmetrical variations on the heads features.

Figure: 27: Use the Sculpt Surfaces Tool (left), and Surface Editing Tool (right) in Maya to finish modeling your radial head.

Step 5: Loft Eye Patches

Create a closed circular curve on surface to define the outer edge of a radial eye patch. Try to make the edge conform to the natural indention around the eye socket (see Figure 28). Duplicate and scale the curves to define the eyelid opening. Loft the curves to form a revolved shaped eye patch. Manipulate CVs (or EPs in Maya) on the curves to fit the eye patch snugly around the eyeball. When completed, delete the history, and clean up the surface if necessary.

Figure: 28: Loft from a curve snapped to surface to create a radial eye patch that fits over the eyeball.

"Keep in mind that lining up surface edges one-to-one, called an I junction, is usually best. This makes it necessary to cut the surface into many pieces..."

Tip #5: Creating a Patch Head from a Radial Head

The easiest way to begin a patch head is to disconnect surfaces from a previously made radial head. Most of the patches will be discarded, but the ones around the mouth and nose can be used to start the patch head. To create additional patches, you will have to draw surface curves manually on a polygon guide head. You should use curve on surface and snap to surface methods to place the new curves on the guide mesh. You can use previously mentioned techniques to create surface curves, and loft the curves to create each patch. You can also create four curves to define the edge boundaries of each patch, and use surface commands such as Square (Maya) and Four Sided (Softimage|XSI) to create patches that have tangency with neighboring patches.

Lastly, you will want to create tangency between all the separate patches, and make sure the surfaces dont come apart when animating. Do this by using automatically updating tangency commands, such as Assemble and Stitch. Some commands can be done on either a global or patch-by-patch basis. Keep in mind that lining up surface edges one-to-one, called an I junction, is usually best. This makes it necessary to cut the surface into many pieces to be able to stitch as many one to one connections as possible. Creating tangency on a T-junction, where a larger edge meets two smaller edges, is possible but more difficult. While special problems may also occur at a star-junction, where many edges come together. This is usually fixed by point snapping edge vertices. After creating tangency on all the surfaces, you can sometimes combine some patches to simplify the model.

Figure: 29: A patch head is made of multiple NURBS surfaces that have tangency to hide the seams.

Step 1: Cut the Radial Head into Separate Patches

Disconnect the surface of the radial head into several patches. Start by cutting the head in half, and discard one of the sides. Then disconnect the surface curves around the mouth, and down the edge of the nose. You want to keep the patches that surround the mouth and nose, and discard the other patches.

In Softimage|XSI: Use the surface curves on your radial head as a starting point for creating a patch head. First switch to U Knot Curve selection filter, and click on the isolines that run down the side of the nose. Then cut the head into sections by choosing Modify|Surface|Snip. Because snip forces you to keep the first or second surface and discard the rest, it is necessary to make many duplicates of your head for each snipped piece. Also, at this time, trying to snip multiple isolines will not work, and will crash the software if you try to cut the closed V edge. Once you cut one edge, select the same isoline on the other side of the nose, and snip it (see Figure 30-left). Duplicate the nose section, and then snip each piece in V on the upper lip. Keep duplicating and snipping isolines until you have a nose piece, and five mouth pieces. Discard all other pieces, but keep one full head to use as a snap to surface guide object.

"The number of surface curves on different patches should be consistent, so they will line up to create tangency. "

In Maya: Use the surface curves on your radial head as a starting point for creating a patch head. First right click on your base head and choose Insoparm, and shift-click on the surface curves that surround the mouth, and define the nose. Then cut the head into sections by choosing Edit Surfaces|Detach [] Surfaces on the top menu bar. Turn on Keep Original, so you will have the base head to use as a guide object for surface snapping. Continue detaching surfaces until you have a nose piece, and five mouth pieces. Discard all other pieces except the base head and eye patches (see Figure 30-right).

Figure: 30: Start a patch head in Softimage|XSI by selecting surface curves around the mouth and nose on your radial head, and snip the surface (left). In Maya, disconnect the head into separate patches by selecting isoparms, and detach the surfaces. Keep the mouth and lower nose sections, and discard all the other surfaces except the eye patches (right).

Step 2: Create Additional Patch Surfaces

Additional patches must be manually created for the cheek, eye, and forehead areas. Do this by using surface snapping techniques to a polygon guide head. This will enable you to draw curves that can be used with curves duplicated from existing patches to create the new patches. The number of surface curves on different patches should be consistent, so they will line up to create tangency. Change direction of the surface curves on the eye patches so they radiate out from the eyes in a similar manner as on the mouth patches.

In Softimage|XSI: Create new patches by extracting curves, snapping to surface, and Four-Sided. For example, to create a cheek patch that has tangency with the right upper lip and the right edge of the nose, first extract curves from the nose and mouth surface edges. Use the original base NURBS head as a guide object (or convert to polygons and merge with the eye patches to use the full head), and turn on Snap to Surface in the lower right menu. Then switch to Point mode and hold down the M key while dragging CVs on the extracted curves to create the outer two edges of the cheek patch. When the two new curves are in place, choose Create|Surface|Four-Sided. In a clockwise motion, click on each of the curves and both edges of the nose and upper lip patch, so they are highlighted in red. A four sided patch will be created that defines the cheek area, and its property page will be opened. Try to adjust the subdivisions on the patch so that they match the nose and mouth surface (sometimes this will not be possible for one direction on the patch). Choose Modify|Surface|Clean and Modify|Surfaces|Reparameterize to further adjust the subdivisions. Then if necessary, manually move CVs in snap to surface or snap to point modes to adjust the surface curve placement. To achieve good tangency, you want isolines to line up across the patches (see Figure 31).

"A four sided patch will be created that defines the cheek area, and has tangency with the adjacent patches. You may need to rebuild the surface to create the same number of subdivisions as the adjacent patches."

In Maya: Create new patches by duplicating surface curves, snapping to surface and vertices, and squaring the curves. For example, to create a cheek patch that has tangency with the right upper lip and the right edge of the nose, first copy curves from the nose and mouth surface edges. Select the original base NURBS head as a guide object (or convert to polygons and combine with the eye patches to use the full head), and turn on Modify|Make Live. Then switch to Component mode by clicking F8 while dragging CVs on the copied curves to create the outer two edges of the cheek patch. Make sure you hold down the V key to snap the end vertices of each curve to the edges of the surface curves. When the two new curves are in place, shift select the two curves and two edge isoparms, and choose Surfaces|Square. In the options box, select Tangent, and set the Curve Fit Checkpoints to around 5, and click Apply. A four sided patch will be created that defines the cheek area, and has tangency with the adjacent patches. You may need to rebuild the surface to create the same number of subdivisions as the adjacent patches. Then switch to Make Live again, and manually move CVs on the patch to adjust the surface curve placement. To achieve good tangency, you want isoparms to line up across the patches (see Figure 31).

Figure: 31: Use snap to surface techniques to create curves on a guide surface, and create patches by lofting or squaring the curves. It is important that all the isoparms line up across all the patches.

Step 3: Setting Tangency Between Surfaces

Once all the patches are placed correctly by using surface and point snapping techniques, then you need to create tangency between the patches to remove the appearance of seams, and to interactively glue the surfaces together so they dont come apart while animating.

In Softimage|XSI: To create an interactive connection and hide seams between the separate patches, drag a selection box around them, and choose Create|Surf.Mesh|Assemble (see Figure 32-left). Set a SCM Tolerance between .15 and .3, and click OK. A new object is created that is a seamless combination of the separate NURBS surfaces. Make sure the resulting surface has no gaps between the patches. If gaps are noticeable, delete the assembled surface and repeat the process with a higher SCM setting. If some edges bunch up due to the SCM setting, smooth them out by moving CVs apart on the surface directly. Notice as you adjust CVs that the patches stay together.

In Maya: To create an interactive connection and hide seams between the separate patches, drag a selection box around them, and choose Edit Surfaces|Stitch|Global Stitch [] (see Figure 32-right). Turn on Closest Knot, Equal Params and Tangents, which will line up the surface curves and edges with tangency, and click Apply. Make sure the resulting surface has no gaps between the patches. If gaps are noticeable, select one of the patches and adjust the global stitch input channels. Increase the Max Seperation value to close gaps between patches. If some edges bunch up, increase the Modification Resistance value to smooth them out. In some cases, you may need to manually adjust the CVs to smooth out connections. Notice as you adjust CVs that the patches stay together.

Figure: 32: To interactively glue all the separate patches together, use Assemble in Softimage|XSI (left), and Global Stitch in Maya (right).

"If the palm is rotated so the poles are at the end of the thumb and on the side of the hand, with the closed edge running across the center of the palm, then you can create curves on surface for all the fingers."

Modeling NURBS Body Parts

Using all the previously shown modeling methods, you should be able to create all the body parts for your character. The legs, for instance, can be done in several ways. You could add circular surface curves to the bottom of your torso, and loft from the surface curve to create each leg (see Figure 33-left). If your character is wearing a belt, you could loft curves in a U shape from one foot to the other foot (see Figure 33-middle). A belt is usually necessary to cover up the seam between the legs and the abdomen. You could also loft an open curve that appears closed on the bottom, and opens as it reaches the torso (see Figure 33-right). This can create tangency between the torso and each leg. Because they are open surfaces, however, the two legs cannot be connected as one surface.

Figure: 33: Legs can be lofted off the torso (left), lofted from one foot to the other (middle), or separate open surfaces that join each other and the torso at the top (right)

Modeling hands are the most difficult body part when using NURBS surfaces because of the many branching fingers. There are some techniques for creating tangency between the palm and fingers, however. Pole placement becomes an issue on the palm, because you want to avoid creating curves on surface over an edge for lofting the fingers. If the palm is rotated so the poles are at the end of the thumb and on the side of the hand, with the closed edge running across the center of the palm, then you can create curves on surface for all the fingers. This would require separating the hand from the arm, as the arm would have to be oriented with the poles at the wrist and shoulder.

Other methods you could use to create a hand involve patch modeling and tangency techniques. One popular way of creating a patch hand is to loft a cylinder-like palm with an open edge at the fingers, and manipulate vertices so the edge aligns with four separate open finger edges (see Figure 34-left). This usually requires snapping points to create tangency. This method makes the knuckles and the beginning of the fingers a part of the palm, which places the seam for each finger in the middle of the first bone of each finger. Other methods for creating a patch hand can be quite complicated and just as time consuming as a patch head (see Figure 34-right).

Figure: 34: You can create a NURBS hand by creating tangency between the open edge of the end of the palm and four separate open finger edges (left). Making a complicated patch hand can be just as difficult as making a patch head (right).

"It is best while modeling with NURBS to keep your surfaces as uniform as possible. This will space out the surface curves in a predictable manner, and will texture well."

Texturing Issues

Texturing NURBS characters involves the same considerations as any other geometry type. You will want to layer your textures with a color, bump, and specular map. For small, highly complex edges, such as cloth fringe or hair, a transparency map may be a better choice than adding more geometry. One advantage of using NURBS surfaces is that the textures will automatically contour along the UV surface. Because it is not projected, but instead wrapped on the surface, it is assigned according to the point structure and normals of the surface, so it deforms well with organic deformations.

It is best while modeling with NURBS to keep your surfaces as uniform as possible. This will space out the surface curves in a predictable manner, and will texture well. If you do need to add extra surface curves to harden an edge and add detail to the surface, then you may need to reparameterize the surface for texturing. You will notice that the spacing of surface curves will cause the texture to compress in some areas, and stretch in other areas. Usually chord length parameterization is used to fix this problem, which will even out the UV texture in areas that have uneven spacing between surface curves. To check this while modeling, place a simple checkered UV texture on your surfaces, and see if reparameterization is necessary.

To reparameterize a surface in Softimage|XSI, choose Modify|Surfaces|Reparameterize. A variety of choices are available to choose from instead of the default Non-uniform setting. In Maya, you must re-loft the surface to reparameterize, choosing Chord Length instead of Uniform in the lofting options box.

Figure 35: Finish your NURBS characters with a UV color, bump, and specular map. Here you can see the UV color map for this gladiator characters radial head. It may be necessary to reparameterize the surface to get more evenly distributed texture placement.

Conclusions and Comparisons

So, perhaps creating a NURBS character is not such a curse after all. If you know how to approach NURBS modeling by understanding its inherent strengths and limitations, then it shouldnt be such a daunting task. If its still not your cup-of-tea, then perhaps polygon and subdivision surfaces would be a better choice. In an upcoming article, I will describe the advantages and limitations of using polygons and subdivision surfacesfor modeling in Softimage|XSI and Maya.

Since this article has shown NURBS modeling in current versions of Softimage|XSI and Maya, I think it is safe to make some comparisons between the two packages. Although Softimage|XSI has many good NURBS modeling features, it still is lagging behind Maya in this particular area. The fact that you can easily toggle through CVs using the arrow keys, manipulate EPs on curves, and easily cut a surface into multiple patches, makes Maya more efficient as a basic modeling tool. Also an advantage is the ease of use and robustness of the Sculpt, Surface Editing, and Stitch tools in Maya. One basic modeling advantage that Softimage|XSI has over Maya is the M key, which enables you to just click and drag a CV, rather than select the CV first. Other advantages of modeling in Softimage|XSI is the deformation commands, such as Deform on Surface, and Shrink Wrap (although I wish shrink wrap would work with a hierarchy of objects like it did in Softimage 3D). Some other things I miss from Softimage|3D is the use of Bezier curves with handles, and Cardinal patches. A Cardinal patch was easier to model with due to the points being on the surface, and because phantom edge points could be snapped to adjacent patches to achieve tangency. Then you could convert the Cardinal surfaces to NURBS surfaces, and apply the Continuity Manager. This is still a valid way of modeling, although using the old Softimage|3D interface is frustrating after using Softimage|XSI. Of course, Softimage|XSI makes up for still lagging in the modeling department by excelling over Maya in some animation abilities, as I will show in another article.

BACK

XSItutoralis

ллλһֱĹĺͰ­ṩѧǣԱܹͬ.

            Softman@Chinaxsi.com    Oicq:20056194      Icq:51554328

[ tutoralis ]  [ shaders ]  [ scripts ]  [ oups upload ]  [ links ]


ChinaXSI BBS

  

Tutoralis

  

Shaders

  

Scripts

  

Oups Upload

  

Links

  

2001 Shock3D Animtion Studio| mornnet | softman |

计数器