The Shark-Man
NURBS Modeling

For this tutorial, I'm going to go step-by-step through the creation of a NURBS creature I'm simply calling a "Shark-Man." It goes over a number of NURBS modeling methods and procedures, and I hope you find it useful. :)

It was originally written quite some time ago to be included in a Maya book which has since been pushed back indefinitely, and I have been given permission to publish the tutorial here on my site.

The way this tutorial works, is that the first, bold-face sentence is what that step will be. If you need additional info, you can read the paragraph that accompanies that section.

1. First, download the scene sharkman_start.mb HERE (205k).

This scene contains two image planes with our reference drawings to be used to create the creature. They are situated off of the axis and aligned with their respective camera view (Front and Side).


2. Create a NURBS sphere, renaming it “Sharkman”.

It is located in the Modeling Menues under Create > Nurbs primitives > Sphere > Options. In the options, select Edit > Reset Settings. When you first create it, it will be in low-resolution. Press the “3” key to make it high-resolution. (Fig 1) Rename the sphere to Sharkman by typing its new name at the top of the Channel Box.

figure 1
3. Detach and delete the top and bottom sections of the sphere.

RMB (right mouse button) on the sphere and select "Isoparm" from the menu items that appear. The sphere will turn blue, indicating it is in Component Mode. Select the top-most isoparm, hold the shift key, and select the bottom-most isoparm. Under the Edit Nurbs menu, select Detach Surfaces. Some of the pieces will revert to a low-resolution. Press the “3” key to return to high-res. Delete the top and bottom pieces that result. (Fig 2 and 3)

figure 2figure 3
4. In the Front View, situate the detached sphere in the center of the chest, scaling it to relatively match the drawing’s size in both the Front and Side Views.

Modify the sphere in the following way (Fig 4 and 5):

  • Translate Y: 5
  • Translate Z: 0.7
  • Rotate X: 10.9
  • Scale X: 1.9
  • Scale Y: 3.3
  • Scale Z: 1.5
figure 4figure 5
5. Modify the sphere to match the contours of the drawing’s shoulders by inserting isoparms and rebuilding the surface.

Insert an isoparm in the top half of the sphere by RMB on the sphere and selecting “Isoparm” from the menu items that appear. LMB (left mouse button) on an existing isoparm and drag to the position you want the new isoparm to be. Release the LMB and a dotted, yellow line will appear (Fig 6). Under the Edit NURBS menu, select Insert Isoparms. The dotted, yellow line will be replaced with a new isoparm. To modify the isoparms position, RMB on the sphere and select “Hull” from the menu items that appear. The Hulls are rows of Control Vertices (CVs) that make up an isoparm. Move, scale, and rotate the Hulls to get a shape similar to that seen in Fig 7 and 8. Return to Object Mode (F8 or deselect and reselect the object) and Rebuild the Surface. Under Edit Nurbs, select Rebuild Surface > Options. In the options, Edit > Reset Settings. In the Keep section, check the CVs box. Rebuilding with these settings:

  • Parameter Range: 0 to #Spans
  • Direction: U and V
  • Keep: CVs

will optimize your surfaces. You want to rebuild in this manner each time you insert an isoparm(s).

figure 6figure 7figure 8
6. Continue to modify in this manner, adding isoparms, modifying the position of the Hulls, and pushing and pulling CVs. You can detach the surface down the center, halving the shape for mirroring later (Fig 9).

To modify the model’s CVs, RMB on the shape and select “Control Vertex” from the menu items that appear. You can then select one or more CV and modify their position. When you get a shape you are pretty happy with, save your file as sharkman1.mb.

figure 9
7. Eventually, you’ll get to a point similar to Fig 10 which is the general shape of the torso. Create the abdomen-tail.

Now, to stretch the shape to the tail, we will insert an isoparm at the very edge, pull the last hull to the tail, and rebuild the surface (with the settings to optimize). (Fig 11 and 12)

figure 10figure 11figure 12
8. Insert isoparms, adjust, and rebuild (with the settings to optimize) to fit the new tail portion of the body to the images.

Insert a couple of isoparms; move, rotate, and scale the hulls to position it according to the images in both the Front and Side views; and rebuild the surface with the settings for optimization. Also, continue to modify the shape to get a more completed, refined form by inserting isoparms, pushing/pulling CVs, etc. (Fig 13 and 14)

figure 13figure 14
9. Create the gills.

Insert about 7 or 8 isoparms in the area the gills will be created. Rebuild to optimize. Using your hulls to guide you, select the CVs of the side of the creature and push inwards and upwards, creating a fold. Repeat until you have the desired number of folds or gills (Fig 15). Save your scene as sharkman2.mb.

figure 15
10. Create the front surface of the tail fin using a Boundary Surface.

A Boundary Surface requires 3 or 4 curves, all snapped together at their corners, forming a closed shape. For the fin, we’re going to use 4 curves.

In the Front view, select the CV Curve Tool. Draw a curve, using the drawing as a guide from the end of the body to the tip of the fin (Fig 16). Activate Snap to Curve (“C” key). With Snap to Curve active, click on your curve and drag along it until you get to the tip. This is where the first CV of a second curve will be created. Turn Snap to Curve off and continue to the left, using the image as a guide, drawing a curve. For the last CV, turn on Snap to Grid (“X” key) and snap the last CV to the center grid line (Fig 17). Go to the Side View and adjust your curves to line up in that direction, as well (Fig 18).

Again, turn on Snap to Curve (“C” key) in the Perspective View. With Snap to Curve active, click and drag on the last curve you created, dragging along it until you reach the tip of the curve. This will be the first CV of another curve. Go to the Side View and draw a curve upwards to meet the body, curving along the contours of the image (Fig 19 and 20).

For the last curve, we’re going to duplicate the isoparm at the edge of the body as a curve. RMB on the surface and select “Isoparm” from the menu items that appear. Select the last isoparm on the edge of the surface. With it selected, go to Edit Curves > Duplicate Surface Curves. A new curve will appear. Hide the NURBS surface by opening the Show menu in the Perspective Panel and un-checking “NURBS Surfaces” in the list. You should have a result as in Fig 21.

The last curve is too long, as it wraps complete around the surface. We are going to cut it and use only the portion we need. RMB on the curve and select “Curve Point” from the menu items that appear. LMB and drag on the curve. You should see a small red dot move along with your cursor. Place this dot at the approximate position where the first curve will intersect it. A small yellow dot will appear (Fig 22). With the yellow dot still active, go to Edit Curves > Detach Curves. Don’t delete the back portion, as we will use it in a future step. Now, RMB on both the fourth and first curves, selecting “Control Vertices” from the menu items that appear. Both will be in component mode at the same time. Select the end point of the first curve and turn on Snap to Point (“V” key). By dragging on the center yellow box of the translation tool, snap it to end point of the fourth curve (Fig 23).

We now have our 4 curves, snapped at their ends. Before creating the Boundary Surface, however, we need to ensure that the action brings predictable results. Select one of the curves and open the Attribute Editor (Ctrl + A). In the Attribute Editor, you should see a section called “Spans.” Your situation may vary, but for my curves I have the following:

  • Curve1: 7 Spans
  • Curve2: 8 Spans
  • Curve3: 3 Spans
  • Curve4: 10 Spans
With this in mind, select each curve in either clockwise or counter-clockwise order, holding the Shift key to add to your selection. With all four selected in the correct order, go to Surfaces > Boundary > Options. In the Options, Edit > Reset Settings. You’ll get a result similar to Fig 24 (You may need to return to your Show menu in the Perspective Panel and check NURBS Surfaces to display the created surface). The surface that results, while usable, is not very efficient. For the sake of comparison, let’s delete the boundary surface’s history (Edit > Delete By Type > History) and move it down, out of the way.

Select all four curve again and go to Edit Curves > Rebuild Curves > Options. In the Options, Edit > Reset Settings. You’ll remember that each curve had a different number of spans. In my example, the two curves that are opposite from each other have spans of 10 to 8 (curve4 to curve2) and 7 to 3 (curve1 to curve3). Take the highest number in these two pairs and rebuild them both to match the higher. While the higher curve has the correct number of spans, it’s a good idea to rebuild it to maintain the efficiency of the shape. So, in my case, I’ll rebuild curve2 and curve4 to be 10 spans and curve3 and curve1 to be 7. Select each curve in turn, and in the Rebuild Curves Options box, make the following changes:

  • Parameter Range: 0 to #Spans
  • Keep: Ends
  • Number of Spans: higher number in the pair (in my case 7 or 10)
After Rebuilding the two pairs of curves to match each others’ spans, select each in clockwise or counter-clockwise order and again, create a boundary surface. Note the difference between the two (Fig 25). With all of the curves rebuilt to have their spans match, you can easily see the more efficient geometry. Rename the boundary surface to be tailFront. Save your scene as sharkman3.mb.

Whew! Long step! ;) Continue on next page of the tutorial.

figure 16figure 17figure 18figure 19figure 20
figure 21figure 22figure 23figure 24figure 25

PAGE 1 -- PAGE 2 -- PAGE 3 -- PAGE 4 -- PAGE 5

Michael McKinley