So far in this chapter, you have been modeling several kinds of basic NURBS shapes to create the skin of your character with as few NURBS surfaces as possible. This approach minimizes the seams between surfaces, but often lacks tangency in areas where an open NURBS edge branches off the center of a closed NURBS surface. This occurs on your character's head where the eye patches connect to the main head, where the limbs branch off the torso, and where the fingers and toes branch off the hands and feet. Unless your character models were designed to incorporate seams whenever a limb branches off a main surface for instance, if clothing items have similar seams this method of modeling will always have tangency problems. In each of these problem areas, the underlying geometry prevents you from ultimately creating a seamless skin. In this section, you use a different NURBS modeling approach to create a skin with more surface continuity in these problem areas, called a NURBS multipatch skin. This involves cutting up your NURBS character into many smaller rectangular patches so that you can remove overlapping geometry and create open edges on the head and torso to better line up with similar open edges on the eyelids and limbs. Using multipatch modeling techniques, you can create a character skin with smooth transitions between body parts (see Figure 2.45). Multipatch skin enables you to take your character model to the next stage of the modeling process, which is a seamless polygon skin. Keep in mind, however, that there is not one right way to multipatch model a character. The methods shown in this section are just a few examples of how to approach such a task. 2.45. Using multipatch modeling techniques, you can create a character skin with good surface continuity between the eyelids and head surface, and between the limbs and the torso (character model by Nick Miulli).Converting a Radial Head to a Patch HeadThe best place to begin converting your NURBS character skin into a multipatch skin is the head. Currently, your character's head is composed of a main radial head, two radial eye patches, and two radial ear patches. Most popular methods for multipatching the head keep this same basic structure, so that the mouth, eyes, and ears remain radial structures. The radial mouth is already part of the main head, so it should remain as is. To make the eyes and ears fit into the main head, you must cut out rectangular holes in the eye and ear areas. This is only possible if you cut the entire head into many pieces, so that the seams contour around each eye and ear. You can then delete the surfaces under the eyes and ears and make the edges of each eye and ear patch line up with the open edges. To create full tangency between all surfaces, you must detach each eye and ear patch at the corners into four separate but continuous pieces. The goal when multipatch modeling is to take advantage of using separate patches to change the orientations of isoparms on each surface, while still achieving continuity across all the surfaces. On a head, you ideally want the isoparms on the patches to contour the muscles and wrinkles of the face. The appearance of a continuous surface requires that you keep tangency between all adjacent patches. You can achieve this only if the patches have the right number of subdivisions so that the isoparms line up perfectly across each seam. Hopefully, your basic radial NURBS head and eye patches are not too complex, but only have the minimum isoparms necessary to define the facial features. You should continue to do this when converting your head to a multipatch model. You can add details later to the NURBS patches if necessary, or better still, after the surfaces are converted to a single polygon object. For instance, it is much easier to carve out good nostrils on a polygon than it is on a NURBS model. Keep in mind that if your face is symmetrical, you can cut your head in half again and only work on multipatching one side. If you made important asymmetrical features on your character's face, however, you will have to multipatch both sides of the head. Before going to the next step of cutting your head into many pieces, duplicate your current head and eye patches. Then convert all the duplicated pieces into polygon objects and combine them. You can use this single polygon head as a live guide object when working with your multipatch NURBS head. For now, assign the polygon guide head to a new layer named HeadGuideLayer, and hide the layer until you need to use it. You begin the process by checking the structure of your main head surface to determine whether the isoparms are oriented in such a way that they form a rectangle around the eye patch. You can add isoparms if necessary, and you should move CVs to contour the edge of the eye patch as much as possible. The rectangular hole you want to create should be rounded outward slightly, so that it fits well with the radial eye patch. Because the corners of each rectangle must match up with isoparms on each eye patch, you need to determine which isoparms on the four corners of the eye patch you are going to use. These isoparms will be where you detach the eye patch into four pieces. If the isoparms on your eye patches are not in the right place, insert new ones and delete old ones as needed. When you are satisfied with the isoparm placement on your main head, the next step is to select the isoparms that form the rectangle around the eye patch and detach the surfaces. This creates many separate patches and enables you to select and delete the rectangular area under the eye patch (see Figure 2.46). In addition, you must select the isoparms at the corners of each eye patch and detach them to create four separate patches. After doing this, select all the patches and display the Surface Origins, which will show the U and V orientations of the patches. You want the eye patches to have the same orientation as the other head patches, with all the normals facing outward. Swap or reverse the directions as needed by choosing Edit NURBS, Reverse Surface Direction . You then need to make sure all the isoparms and edges line up from patch to patch. Do this by rebuilding patches as Uniform surfaces with the correct number of subdivisions by choosing Edit NURBS, Rebuild Surfaces . Starting with the eye patches, select each patch and rebuild it as needed to have the same number of subdivisions in U and V as the adjacent patches with which it is lined up. Rebuild the patches as needed to make all the isoparms line up. To get perfect tangency between all the head patches, however, you may need to rebuild each patch as Uniform in both directions, because surface parameterization can affect the tangency. 2.46. Detach four isoparms on your head that contour the eye patch, and delete the underlying surface afterward.If many of the isoparms on your radial head are not going in the right directions for cutting up the head correctly, you need to create new patches for these areas. First, select the isoparms around the mouth area of your main head surface, choose Edit Surfaces, Detach, and discard the cheek and forehead patches. You should be left with a radial mouth, part of the nose, and the eye patches. You want to keep some of the original surface to use as a source for establishing tangency when you create new patches. Cut the mouth and eye surfaces into several sections to facilitate the new patches (see Figure 2.47). Then unhide your polygon head to use as a guide, and make it a live surface. You want to start making patches on the cheek where you have three edges of the patch already created by the nose, lower eye, and upper mouth patches. Duplicate the isoparm on the nose edge to create the fourth edge of the patch, translating it to the other side. Then in component mode, move EPs on the curve to line it up on the live polygon head. Avoid snapping CVs to the live polygon head, because CVs are not on the curve and will not produce an accurate result. At both ends of the curve, snap the end EPs to the corner CVs on the eye and mouth patches. It is important to make sure all the endpoints of the curves and isoparms that make up the edges of the new patch are snapped together; otherwise, the square command may fail. After creating the boundaries of your new patch, you can use the Square tool to create the new NURBS patch. 2.47. If the isoparms on your main head are not conducive to creating a good eye hole, you can discard that area of the head in order to re-make the patches manually using your polygon guide head.To use the Square tool to create a new patch for your character's head, switch to component mode, and Shift-select the edge isoparms on the three patches that border the new patch. Then Shift-select the curve you created on the last side of the new patch and choose Surfaces, Square . This feature has a Tangent option for the Continuity Type that should be turned on. This option creates tangency with the nose, mouth, and eye patches. The number of Curve Fit Checkpoints will add isoparms for a setting above 2. Higher settings may give you a more accurate result, however, and you can always rebuild the surface after creating the patch. Set a .1 value for the Local End Point Tolerance option, and make sure you are creating a NURBS surface. It is usually not necessary to use the Rebuild curves option if you have been working with cubic NURBS surfaces and curves. After correctly setting these options, click the Square Surface button to create the new patch (see Figure 2.48). Keep in mind that this will create a NURBS patch that is accurate on its border edges, but not necessarily accurate in the middle of the patch. To make sure the middle of the patch has the same shape as your original head surface, you must copy out the curves to manipulate their EPs on the live surface and then reloft the surface from the adjusted curves. 2.48. Create curves on the live guide head, and use the Square tool to create new patches that are tangent with existing patches.When creating your multipatch head, work outwards from the center of your character's face. As you create each patch using the square command, rebuild each patch to have the same number of subdivisions as the other patches on its UV borders. Simply check the number of subdivisions in the Attribute editor, and specify the correct amount of subdivisions in the Uniform rebuild options box. Make sure that you are rebuilding both the U and the V directions on each surface, and set the Parameter Range for each patch from 0 to 1. Also, as your building your patch head, you might find that tangency is maintained in some areas, while others lose tangency. To achieve tangency between two NURBS patches, you must not only line up the edges and isoparms, but also the CVs that border each edge. Tangency is created between two surfaces by creating a straight line between the two overlapping edge points and the next row of points on each surface. This row of points is not associated with any particular isoparm, but are used specifically for creating tangency with other surface edges. Sometimes it helps to manually move the points so they line up as much as possible before using other tangency techniques. Another simple way to create more tangency is to attach and detach patches. To do this, select the overlapping edge isoparms on two adjacent patches and choose Edit NURBS, Attach . The Blend option with a low bias value creates the most tangency between two patches, but moves points on the surfaces. This can separate the attached patches from other patches. The Connect option will not change the shape of the patches as much, but will also not create as smooth a connection. Sometimes it is best to use the Remove Multiple Knots option. Extra isoparms may still be added where the two surfaces were attached. Rebuild the surface to have the correct number of subdivisions when this happens. After attaching two patches in one direction, select the isoparm where the patches were attached, and detach the surface again by choosing Edit Surfaces, Detach. You can then do the same attach-detach procedure on two adjacent patches in the other direction. As you are creating your patch head, notice that tangency is easier to create between any four patches that line up together than in areas where five patches come together. There will always be areas like this on a multipatch skin, called a star junction, where tangency problems usually occur (see Figure 2.49). To make this area as continuous as possible, try to avoid stretching or pinching the corners of any one patch too much. Another way to try and fix tangency problems is to stitch the surfaces together. As you are building your patch head, you can use the Stitch Edges tool to create tangency between any two patches. Then stitch surface points to fix any problems at star junctions where the points do not come together correctly. Finally, you can run a global stitch on all the head patches to fix any remaining surface-continuity problems. 2.49. It is always difficult to achieve perfect tangency in areas on a head where five NURBS edges come together, called a star junction.To stitch an edge, choose Edit NURBS, Stitch, Stitch Edges Tool . Set the Blending options to stitch both the Position and Tangent. If the surface edges are offset, set the Weighting Factor options for which border edge you want to move to the other. This option is based on the order of selection, with a value of 1 fixing the points on a surface, and a value of 0 moving the points on a surface. To move both edges equally toward each other, set both options to a .5 value. If you have carefully snapped edge points together, however, the surfaces should not move much at all. Make sure the Cascade Stitch Nodes option is turned on, keep the Sampling option low, and do not keep the original surfaces. Then click the adjacent border edges of the two surfaces you want to stitch. A blue edge manipulator will appear, enabling you to adjust whether the stitch will occur across the entire edge of both surfaces or to a particular isoparm to do a partial stitch (see Figure 2.50). Hold the V key down to snap it to an isoparm if you need to stitch a partial edge. Because you have cut your head into equally sized patches, however, it should not be necessary to adjust this manipulator. Just press the Enter key to complete the edge stitch. You can use the Stitch Edges Tool to stitch all adjacent edges on your multipatch head. 2.50. Use the Stitch Edges Tool to create tangency between any two open edges. Use the blue manipulator to stitch a partial edge if necessary.Use the stitch surface points command to pull together all the points involved in a star junction. If there is a point that is in the position where you want the star junction to be located, select it first. Then Shift-select all the other points, and choose Edit NURBS, Stitch, Stitch Surface Points . In the resulting options box, turn the Assign Equal Weights option off, and make sure the Cascade Stitch Node is turned on. Do not keep the original surface. Clicking the Stitch Points button should pull all the points on top of the first selected point, and close the star junction. The last command for stitching surfaces is global stitch. This command can be used periodically while you build the multipatch head, or can be done after all the patches are completed. To do a global stitch, you must select all the patches involved in creating tangency on the patches, and then choose Edit NURBS, Stitch, Global Stitch . For a multipatch skin, always choose the Closest Knot and Equal Params options, which will line up the edges and isoparms on all the patches (see Figure 2.51). You also should set the Stitch Smoothness option to Tangents, and turn the Stitch Partial Edges option to off. The Max Separation and the Modification Resistance options work together to determine how much the surfaces will be altered during the stitch operation by setting how much the points will move. 2.51. When global stitching your skins, always choose the Closest Knot and Equal Params options, which will ensure that the edges and isoparms line up.When you are doing a global stitch, it is important that the edges of all the surfaces involved are equal distance from each other. Preferably, you have already snapped all the edges together before doing the stitch. If there are some larger spaces than others between the edges, you have to increase the Max Separation value to pull them together, which causes the points closer to each other to bunch up. You can reduce this problem by turning on the Lock Surface option in the Attribute Editor for the patches that are bunching up; this option keeps the locked surfaces from being altered by the stitch operation. However, it is better to avoid this by making sure all the patch edges are equal distances from each other before doing the global stitch. After clicking the Global Stitch button, in the Channel Box you can modify the Max Separation and Modification Resistance values to improve the stitch result. Increase the Max Separation value to close any holes between patches, and increase the Modification Resistance value to reduce any wrinkling or bunching at patch edges. You can continue modeling with stitch nodes on your skin patches. The surfaces should remain together, and keep continuity, but be aware that points close to the border edges that are involved in the stitch operation can no longer be moved independently from one another. The stitch operation is continuously recomputing the tangency between patches, which will noticeably slow down your system. Because of this, just like fillets, it is best to use stitching as a modeling technique and not leave it on your surfaces during animation. When your surfaces are tangent, select them all and delete history to remove the stitch nodes. Using Patch Modeling to Connect LimbsConverting the rest of your character to a multipatch NURBS skin is done in the same way as the head. To make the open edge of an arm that has been lofted off a closed vertical torso fit together with the chest as tangent multipatches, you must cut a rectangular hole in the shoulder area by detaching isoparms. This creates eight patches on the torso, with four bordering the hole where the arm should be connected (see Figure 2.52). You also must cut the length of the limb into four patches to fit with the four open edges on the cut torso. Again, it is best to create the opening well into the torso surface, so the seams will not sit directly on the shoulder joint. Then use all the techniques described in the previous section for creating tangency between all the patches. When finished multipatching the arm, do the same in the leg area. You can even use the same technique for multipatching the hands and feet. If your character is wearing clothes, you can separate patches at the natural seams in the fabric. Just create the patches in the same way that the clothes would be made. 2.52. Multipatch the rest of your body parts in the same way you did the head. On a torso, for instance, detach a hole in the torso to create tangency with the arms.As mentioned earlier, there is no single way of multipatching a NURBS character. Using the principles described in the previous section, such as separating your character's body parts into rectangular patches that have the seams placed slightly off the joints, you should be able to create a multipatch structure that works best for your character. One useful way of preplanning how you will cut up the surfaces is to draw the seams on top of copies of your character designs.
|