MART Term 1, Lecture 5
Modelling from Curves

Modelling with Curves

The small amount of modelling that we did a couple of weeks ago used primitive objects for its base. Even when we went in and modified the components of the primitives, we still started from primitives in the first place. There is another way to model. We can start with curves (single lines in space, rather than surfaces), and combine them in some way to form surfaces. Today's lecture will introduce you to some of the methods for using curves to make surfaces.

Creating Curves

Before we start:

Now let's draw our first curve. Go to the Create menu, and select CV Curve Tool (about a third of the way down). When drawing a curve, it is best to start out in an orthogonal view: we'll use our front view. Make it full screen, so that we can see what we're doing.

[screenshot: MART_T1L05_html_47459ef6]Now draw a curve. Start clicking on points: the points will be connected by straight lines, and when four points are down it will start to draw the curve. If you put a bad point in and want to remove it, press delete or backspace: this will remove the last point entered. When you are happy with your curve, press enter.

The CV in the "CV Curve" that we have just drawn stands for control vertex: this should give you a good indication that what we've created has a lot in common with NURBS surfaces. Click the RMB on the curve and pop up the mask: select Control Vertex. This allows us to move the control vertices around in the same way that we did with NURBS surfaces. Look in the channel box when you have CVs selected: a little "CVs (click to show)" appears. Click on it: it will show you the co-ordinates of the control vertices you have selected, and let you enter them more precisely. This works with NURBS surface CVs too, as well as polygon vertices.

Now we'll try the EP curve tool. Delete the other curve, get the EP Curve Tool from the Create menu and try drawing with this. This tool is a little more intuitive, as the curve goes through all of the points that are clicked. You should notice though, that the curve that comes out at the end is exactly the same: both have control vertices and edit points, and both allow you to change either. Choosing between the two is a matter of personal preference. In my experience, CV drawn curves tend to come out smoother than EP drawn curves.

These tools are fine if we want a smooth curve, but what if we want a linear curve, with completely flat sections? Delete the smooth curve, and go to the options box of either curve drawing tool to pop up the tool settings. Under Curve Degree, select 1 Linear. Now try drawing: the curves are drawn as straight lines. But the problem is that we might want to have part of the curve smooth and flowing, and part of it sharp and jagged: there isn't a way to change the order of the curve after we've drawn it, let alone half way through.

[screenshot: MART_T1L05_html_m789d121b]What we can do is use the Attach Curves tool. With your sharp curve still on screen, draw a smooth curve. It is worth noticing at this stage that the curves you draw start out with their pivot point at the origin, so it makes sense either to draw your curves around the origin, or move their pivot points once you have finished drawing them. Select both curves, and go to Edit Curves → Attach Curves ... ❐. In the options box, click the RMB on the title bar (that says Attach Curves Options), and select On Top. Now click Apply. Depending on your starting curves, you'll see that it loses quite a lot of the ends of your curves in order to merge the curves. Reselect the two curves (you might have to use the outliner), and click Insert Knot (in the Attach Curves Options dialog box), then click Attach. Keeping the tool box open and always on top is one way of adjusting the settings: an alternative (and usually better) way is to change the options in the inputs section of the channel box later.

Move the attached curve upwards. Click on one of the initial curves: you'll notice that the attached curve turns purple when we click on either of the original curves. This is because the attached curve still depends on the original curve: in its construction history it refers to the original curve. Try moving the points of the original curve around, and you should find that the equivalent points on the new curve also move.

You can also detach curves in a similar way, but we have a bit more control. Try selecting Curve Point from the mask, and choosing a point on the curve. Then go to Edit Curves → Detach Curves ... and try clipping the end off it.

You can make the ends of a curve meet by choosing Edit Curves → Open / Close Curves ❐. Try it now, but undo it when you've finished.

Select your attached curve (but don't delete the others yet), and we'll try making surfaces from it.

Creating NURBS Surfaces From Curves

1. Extrude

[screenshot: MART_T1L05_html_m55dd55af]Extrudes are the simplest way to create a surface from a curve. You can think of it as squeezing playdoh through a hole that's the shape of your curve.

Go into four views, select your curve, then click Surfaces → Extrude ❐. For Style, select Distance, and make the Extrude Length about 20.

The resulting object again remembers the steps that were used to create it: if you click on the extrude in the Channel Box, you can see all the options that we had the choice of. It is also linked to the curve that we used to make it: if you move that curve up and down, the surface moves too. We can even go back one stage further: try moving the control vertices of the original (unattached) curves. The change propagates through to our surface.

In order to get rid of any dependencies that an object might have, you have to delete its construction history. Select it and go to Edit → Delete by type → History: do this with the surface now. It is a good idea to do this after every few steps, when you are sure you won't want to go back and change anything: deleting the history will speed up Maya's response time considerably. If you are sure that you will never need the construction history for an object, you can click the construction history (the picture of the scroll) off before you create it.

[screenshot: MART_T1L05_html_m12b97591]Now let's use the extrude tool in a different way. Draw a new curve, this time in the top view, that's fairly straight but with some obvious curves in it (if that makes any sense). Draw it sticking out of the side of our other curve. Now select the curve we extruded before, and then add our new curve to the selection (ctrl-LMB). Go to the extrude options, and this time reset the settings and use the default. This time the extrusion follows our new curve. Try and figure out the difference between "Tube" and "Flat" (they look fairly similar at first glance).

2. Revolve

[screenshot: MART_T1L05_html_m40dc8c6a]A revolve is essentially a way to create objects in the same way as you would with a lathe. I'll show you an example.

Start a new scene. Draw the profile of half of a wine glass in the front view, as pictured right: use whichever curve drawing tool you're most comfortable with.

[screenshot: MART_T1L05_html_m3b8b9cf9]We are going to revolve this curve around the thick black line (x = 0). In order to do this, we want to make sure the final points are exactly on that line. Click Snap to Grid (looks like a grid with a magnet on it) on the top row of icons, and then move the end points of your curve: you'll notice that they will only move to points on the grid. Make sure they're both on the vertical thick black line.

[screenshot: MART_T1L05_html_m168bbfa3]Now click Snap to Grid off. Select the curve (in object selection mode), and then click on Surfaces → Revolve: this should result in on object that looks something like a wine glass. Try selecting the curve and moving it around or moving the control vertices around: you'll notice that the glass still has a construction history.

Also in the history, try changing some of the parameters that we could have found in the options box. Like the hemispheres that we made in our first lecture, we can change End Sweep to have less than a full wine glass, or we can change the axis that the glass is rotated around (the y axis by default).

3. Loft

[screenshot: MART_T1L05_html_m44804cd0]The loft is a slightly more tricky tool to use. It is a tool whose origins are in boat building; we shall use it to create a boat.

In a new scene, create a 'U' shape using about 6-8 CVs . If you want to add a point to a curve after it has been drawn, there is a way to do it: choose Curve Point from the marking menu, select the point on the curve to add a CV, and then click Edit Curve → Insert Knot. A CV can be removed by selecting it and pressing delete. Note, though, that this is quite likely to drastically change the shape of your curve.

Move the pivot point so that it is in the centre of the opening of your U shape.

This is the first rib of our boat, so we're going to duplicate it to make more. Select the rib, then click Edit → Duplicate Special ❐. Reset the settings, set the z value of Translate to be 4, Number of Copies to be 6, and click Duplicate.

[screenshot: MART_T1L05_html_m57177e0f]Now rescale your ribs so that they form a basic boat shape: make them smaller at the front than the back, with a bulge in the middle. I've scaled my very front one to 0, so that my boat comes to a very sharp point: if you do this, then when we come to select them you'll have to use the outliner. Don't worry too much about the shape, you can always adjust it later if you want to improve it.

Select all the ribs in directional order (it doesn't matter which direction) using the shift key. Now click Surfaces → Loft, and you will see our "boat" is formed. Obviously it will need quite a bit of fiddling, but that's where the history comes in: move the lofted surface to one side, and you'll see that your ribs are still there. You can now fine-tune them to adjust the shape of the boat, and delete the construction history when you're finished.

4. Trim

One of the problems with NURBS surfaces is that they are square. They may not look it, but this is the reason that a NURBS sphere has many control vertices at the north and south poles: it is simply a square, neatly folded. This makes for easy texturing and nice deformations when animating, but it means that it is very difficult to make irregular shapes. This is where the trim tool comes in.

[screenshot: MART_T1L05_html_744f83d8]Trim allows us to create irregular holes in NURBS surfaces. In a side view, draw a hole to cut out of the side of your boat. Now select both the curve and the boat, and go to Edit NURBS → Project Curve on Surface ❐. Before clicking Project, though, make sure the the side view is the active view (MMB-click in it): otherwise the curve will be projected at a very strange angle.

Now select the surface, and go to Edit NURBS → Trim Tool. You are asked to select the areas that you wish to keep: either click just on the main hull, or on that and the hole on one side. When done, press enter, and a hole will magically appear in the side of the boat. That part of the surface is actually still there, but it is invisible.

    5. Planar

Now let's make a back for our boat. Of the curves that we used to loft it, select the back-most one, and duplicate it. Now, with the duplicate selected, go to Edit Curves → Open / Close Curves. This gives us a "back" for our boat in curve form: in order to make it into a solid NURBS object, select the curve and go to Surfaces → Planar.

[screenshot: MART_T1L05_html_m5d0d8ed5]This works, but the back is much too high. What we can do is detach the surface. Unfortunately, this is complicated by the fact that the Planar function creates a trimmed surface, and trimmed surfaces can't be detached. The first thing we have to do is recreate the surface in its "untrimmed" form. In order to do this, we click on Edit NURBS → Untrim Surfaces.

[screenshot: MART_T1L05_html_m3f2b7391]Now go to component selection mode (F8), select isoparms from the RMB masking menu, and bring an isoparm down at the point on the surface where the boat's hull stops. Now go to Edit NURBS → Detach Surfaces to split the surface in two: delete the top half. Now we will have to project the curve on the surface again in order to re-trim it: this time, though, go to the options and select Surface Normal as opposed to Active View. That way, we don't have to worry about which viewport is active when we do it.

Finally, click the surface and go to Edit NURBS → Trim Tool, and again click on the bits you want to keep (the bit inside the curve) to leave our beautiful boat (with a hole in the side).

    6. Birail

The last NURBS modelling tool that we're going to look at today is probably the most powerful, but also the most difficult to use. The birail lets us extend the "extrude along a curve" principle to produce more complicated shapes.

[screenshot: MART_T1L05_html_m865ebca]Get a new scene. Create two curves in a front view. In a side view, move them apart by approximately their length in the z dimension. These are our two "rail" curves, and we now need to create the curve that we will move along these rails. Click to create a new CV curve, and click on Snap to Curves (the magnet with a curve). Make sure you're in a four view for this. Now click on a point near one end of one curve in a perspective view, turn off snap to curves, draw the inbetween CVs in a side viewport, and turn on snap to curves before drawing the last point on the other rail curve in a perspective viewport.

Click on the profile curve (the last one we made), and then go to Surfaces → Birail → Birail 1 Tool. You should see a surface created, but you'll probably notice that it's not very nice: it probably won't make the nice square that we expected. That's where the Birail 2 and Birail 3+ tools come in: with those, you can add as many profile curves as you like for the ultimate control. Have a play with them now. Note that you don't have to worry about what to select before going to the tool: if nothing is selected, it will prompt you to select each in turn (at the bottom of the screen).