Using Blender’s Non-mesh Primitives - Creating Detailed 3D Scenes - Blender For Dummies (2015)

Blender For Dummies (2015)

Part II

Creating Detailed 3D Scenes

Chapter 6

Using Blender’s Non-mesh Primitives

In This Chapter

arrow Working with curve objects and NURBS surfaces

arrow Understanding the benefits of metaball objects

arrow Using text in Blender

Although polygon-based meshes tend to be the bread and butter of modelers in Blender, they aren’t the only types of objects that are available to you for creating things in 3D space. Blender also has curves, surfaces, metaball objects, and text objects. These objects tend to have somewhat more specialized purposes than meshes, but when you need what they provide, they’re extremely useful.

Curves and surfaces are nearly as general purpose as meshes; they’re particularly handy for anything that needs to have a smooth, non-faceted look. They’re also important for models that require mathematical precision and accuracy in their appearance. Metaball objects are great at creating organic shapes that merge into one another, such as simple fluids. You can also use them to make a roughly sculpted model from basic elements that you can detail further in Sculpt mode. Text objects are exactly what they sound like: You use them to add text to a scene and manipulate that text in all three dimensions. This chapter tells you more about working with all these types of objects.

Using Curves and Surfaces

So, what’s the biggest difference between curves and surfaces when compared to meshes? Math! Okay, I’m sorry. That was mean of me; I know that math can be a four-letter word for many artists, but don’t worry; you won’t have to do any math here. What I mean to say is that you can describe curves and surfaces to the computer as a mathematical function. You describe meshes, on the other hand, using the positions of all the individual vertices that they’re composed of. In terms of the computer, curves and surfaces have two advantages:

· Curves and surfaces are very precise. When you get down to it, the best that a mesh can be is an approximation of a real object. A mesh can look really, really good, but it’s not exact. Because curves are defined by math, they’re exactly the correct shape, which is why designers and engineers like them.

· Curves and surfaces take up less memory. Because the shape is mathematically defined, the computer can save that shape by saving the math, rather than saving all the individual points. Complicated curves and surfaces can often take up quite a bit less hard drive space than the same shape made with meshes.

Of course, these advantages come with some caveats, too. For one, curves and surfaces can sometimes be more difficult to control. Because curves and surfaces don’t really have vertices for you to directly manipulate, you have to use control points. Depending on the type of curve, control points can sit directly on the shape or float somewhere off of the surface as part of a control cage.

Even though curves and surfaces are perfect mathematical descriptions of a shape, the computer is actually an imperfect way of displaying those perfect shapes. All 3D geometry is eventually tessellated when the computer processes it (see Chapter 5). So even though curves and surfaces can take less memory on a computer, displaying them smoothly may actually take more time for the computer to process. To speed up things, you can tell the computer to use a rougher tessellation with fewer triangles. As a result, what you see in Blender is an approximation of that perfect curve or surface shape. Do you find yourself thinking, “But hey, I thought curves were supposed to be perfect mathematical descriptions of a shape. What gives with these facets?” Well, the curve is perfect. It’s just hard for the computer to show it to you directly.

But despite these minor disadvantages, using curves and surfaces is a really smart move in quite a few cases. For example, most designers like to use curves for company logos because curves can scale in print to any size without looking jagged or aliased around its edges. As a 3D artist, you can easily import the curves of a logo design and give the logo some depth, dimension, and perhaps even some animation.

And speaking of animation, curves have quite a few handy uses there as well. For example, you can use a curve to define a path for an object to move along. You can also use curves in Blender’s Graph Editor to display and control the changes to an object’s properties over time. For modeling purposes, curves are great for pipes, wires, and ornate organic shapes. Figure 6-1 shows a park bench. Only curves were used to model its sides.

image

Model credit: Bob Holcomb

Figure 6-1: With the exception of the slats for the seat and back, this entire park bench was modeled with curves.

A set of curves used to define a shape in three dimensions is a surface. In some ways, curve surfaces are very similar to meshes that have the Subdivision Surface modifier applied because they both have a control cage defining the final shape that’s created. The difference is that the curve surface has space and precision benefits that meshes don’t have. Also, surfaces are a little bit easier to add textures to because you don’t have to go through the additional step of unwrapping, or flattening the surface, so you can apply a two-dimensional texture to it. When you use a surface, you get that unwrapping for free because it’s already done for you.

remember For these reasons — especially the precision — architects, industrial designers, and engineers prefer to work with surfaces. Someone designed just about everything in your house, including your water faucet, your coffee maker, your television, your car, and even the house itself. If an item was manufactured within the last 20 years, chances are good that it was designed on a computer and visualized with surfaces. Also, before the advent of subdivision surfaces, early characters for computer animations were modeled using curve surfaces because they were better at achieving organic shapes. Of course, if you’re seen using curves to build a character these days, you may be viewed as a bit of masochist … especially if you try to do it in Blender.

Understanding the different types of curves

In Blender, you can add curves by using Shift+A⇒Curve and choosing the type of curve you’d like to use from the menu that appears. As shown in Figure 6-2 , you can use two main kinds of curves: Bézier curves and NURBS curves. (The Path curve is a specific type of NURBS curve.)

image

Figure 6-2: The Add⇒Curve menu.

You generally use Bézier curves more for text and logos. Bézier curves work in three dimensions by default, but you can get them to lock to a single 2D plane if you need to. You can tell that you’re using a Bézier curve because if you tab into Edit mode to look at it, each control point has a pair of handles that you can use to give additional control over the curve’s shape.

NURBS stands for Non-Uniform Relational B-Spline. The control points in NURBS curves don’t have handles like Bézier curves do. By default, NURBS control points don’t normally even touch the curve shape itself. Instead, the control points are weighted to influence the shape of the curve. Control points with higher weights attract the curve closer to them. Figure 6-3 shows the same curve shape made with Bézier curves and with NURBS curves.

image

Figure 6-3: An arbitrary shape created with Bézier curves (left) and NURBS curves (right).

warning Although curves can work in three dimensions and can even create three-dimensional shapes like the park bench in Figure 6-1 , you can’t arbitrarily join them to create a surface. If you want to create a surface, you need to actually navigate to the Surfaces menu (Shift+A⇒Surface), as shown in Figure 6-4 . Notice that NURBS Curve and NURBS Circle are also options on this menu. Be aware, however, that Blender treats these types of NURBS differently than the NURBS curves available in the Curve menu. In fact, Blender doesn’t even allow you to perform a Join (Ctrl+J) between NURBS curves and NURBS surface curves. This limitation is a bit inconvenient, I know, but the situations where you’d actually want to do something like that are rare enough that you don’t need to worry about it that much.

image

Figure 6-4: The Add ⇒Surface menu.

Working with curves

Surprisingly few specialized controls are specific to curves. Grab (G), rotate (R), and scale (S) work as expected, and, like with meshes, you can extrude a selected control point in Edit mode by either pressing E or Ctrl+left-clicking where you would like to extrude to. You can join separate curves in Edit mode by selecting the end control points on each curve and pressing F, like making a face with meshes.

remember When working with curves, the extrude operation (E) only works on the end points (the first and last control points of the curve). If you try to extrude a control point that isn't an end point, Blender just does the grab operation.

If the two control points you select are at the start and end of the same curve, pressing F closes the curve, or, in Blenderese, you're making the curve cyclic. You can also make a curve cyclic with any control point selected (not just the start or end) by pressing Alt+C while in Edit mode or going to Curve⇒Toggle Cyclic in the 3D View’s header. Figure 6-5 shows a cyclic (closed) and non-cyclic (open) Bézier curve.

image

Figure 6-5: The same Bézier curve, cyclic (left) and non-cyclic (right).

remember If you make a 2D curve cyclic, it creates a flat plane in the shape of your curve. And putting one cyclic curve within the borders of another curve actually creates a hole in that plane. However, this trick doesn’t work with 3D curves because they aren’t planar. In those situations, you want to use a surface.

Changing 3D curves into 2D curves

Curves are initially set to work in three dimensions by default. Working in three dimensions gives you the ability to move curve control points freely in the X-, Y-, or Z-axes. You can optionally lock curve objects to work in any arbitrary two-dimensional plane you want. In this case, the control points on the 2D curve are constrained to its local XY plane.

To lock the curve to working only in two dimensions, go to Curve Properties (see Figure 6-6 ) and left-click the 2D button.

image

Figure 6-6: The controls for editing curves.

When you tab to Edit mode on a 3D curve, you may notice that the curve has little arrows spaced along it. These arrows are curve normals and indicate the direction of the curve. To adjust the size of these curve normals, change the Normal Size value in the Properties region of the 3D View (N) in the Curve Display panel. You can hide curve normals altogether by deactivating the Normals check box that is also in the Curve Display panel. In 2D curves, curve normals aren’t displayed.

That said, all curves have direction, even cyclic ones. The direction of a curve isn’t normally all that important unless you’re using the curve as a path. In that situation, the direction of the curve is the direction that the animated object is traveling along the curve. You can switch the direction of the curve by choosing Curve⇒Segments⇒Switch Direction from the 3D View's header, clicking the Curve⇒Switch Direction button in the Tools tab of the Tool Shelf, or pressing W⇒Switch Direction.

Figure 6-6 shows Curve Properties when a curve is selected.

The controls in Curve Properties are relevant to all curves, regardless of type. Some of the most important ones are in the Shape panel. You’ve already seen what the 2D and 3D buttons do. Below them are the Preview U and Render U values. These values define the resolution of the curve. Remember that Blender shows you only an approximation of the real curve. Increasing the resolution here makes the curve look more like the curve defined by the math, at the cost of more processor time. That’s why you see two resolution values:

· Preview U: The default resolution. It’s also what you see in the 3D View.

· Render U: The resolution that Blender uses when you render. By default, this resolution is set to 0, which means Blender uses whatever value that is in Preview U.

Extruding, beveling, and tapering curves

The controls in the Geometry panel pertain primarily to extruding and beveling your curve objects. The Offset value is the exception to this rule. It’s pretty interesting because it allows you to offset the curve from the control points. The effect of the Offset value is most apparent (and helpful) on cyclic curves. Values less than 1 are inset from the control points, whereas values greater than 1 are outset.

tip The ability to inset or outset your curve with the Offset value is a quick way to put an outline on a logo or text because Blender doesn’t have a stroke function for curves like what's available in Inkscape or Adobe Illustrator.

The Extrude value is probably the quickest way to give some depth to a curve, especially a 2D curve. However, you don’t want to confuse the curve Extrude value with the extrude capability you get by pressing E. The Extrude value affects the entire curve in Object mode, rather than just the selected control points in Edit mode. On a cyclic 2D curve, the flat planar shape that gets created extends out in both directions of the local Z direction of the curve object, with the caps drawn on it. And you can even control whether Blender draws the front or back cap by using the Fill drop-down menu in the Shape panel. If you extrude a non-cyclic curve, you end up with something that looks more like a ribbon going along the shape of the curve. The ribbon look is also what happens when you increase the extrude value on a 3D curve. Figure 6-7 shows some of the different effects that you can get with an extruded curve.

image

Figure 6-7: Some of the different things you can do with an extruded curve.

Of course, one drawback to extruding a curve is that you get a really sharp edge at the corners of the extrusion. Depending on what you’re creating, harsh edges tend to look “too perfect” and unnatural. Fortunately, Bevel can take care of that for you. To give an extruded curve more natural corners, simply increase the Depth value under the Bevel label. When you do, the bevel is really kind of simple: just a cut across the corner. You can make the bevel smoother by increasing the Resolution value. Like the Preview U and Render U values, this value increases the resolution of part of the curve. In this case, it’s the resolution of the bevel. Increasing the Resolution value makes a smoother, more curved bevel. Beveling works on both cyclic and non-cyclic curves.

But say that you want something more ornate, kind of like the moulding or trim you’d find around the doorway on a house. In that case, you want to use a bevel object. Using a bevel object on your curve basically means that you’re going to use the shape of one curve to define the bevel on another.

To get a better idea of how you can use bevel objects, use the following steps:

1. Create a Bézier circle (Shift+A⇒Curve⇒Circle).

In Curve Properties, make sure that the circle is a 2D shape. Scale (S) up the circle nice and large so that you can see what’s going on.

2. Extrude the circle by increasing the Extrude value in the Geometry panel of Curve Properties.

The circle doesn’t have to be excessively thick, just thick enough to give it some form of depth.

3. Create a Bézier curve (Shift+A⇒Curve⇒Bézier Curve).

4. Tab into Edit mode and edit this curve a bit to get the bevel shape that you want.

Keep the curve non-cyclic for now.

5. When you’re done editing, tab back out to Object mode.

6. Select your Bézier circle and, in the Bevel Object field of the Geometry panel in Curve Properties, type or click the name of your Bézier curve.

If you didn’t rename it (although you should have!), it’s probably called something like Curve or Curve.001. After you select your bevel object, the corners of your Bézier circle are beveled with the shape defined by your Bézier curve. Now for fun, follow the next step.

7. Go back and make the bevel object curve cyclic (Alt+C in Edit mode).

Doing so actually removes the front and back planes from the extrusion. You’re left with a curve shape that follows the main Bézier circle’s path.

8. For extra kicks, select the Bézier circle and tab into Edit mode; select any control point and press Alt+S to shrink or fatten the beveled shape around that control point.

Slick, huh?

remember When you use a bevel object, you’re essentially handing control of the curve’s shape over to the bevel object. That being the case, after you use it, changing the values for Extrude, Bevel Depth, and Bevel Resolution has no effect on the curve for as long as you have the bevel object there.

Figure 6-8 shows the results of these steps.

image

Figure 6-8: Having fun by adding a bevel object to a Bézier circle.

tip If you’re using a curve to model anything roughly cylindrical in shape such as a pipe or a tube, you actually don’t need to use a bevel object curve at all. It’s a bit of a hidden function, but you can get the same effect by just beveling the curve. I know that sounds odd (how do you bevel something that doesn’t have any corners?), but trust me, it works. Use the following steps:

1. From Curve Properties, set the Fill drop-down menu in the Shape panel to None if you have a 2D curve. Set it to Full if you have a 3D curve.

2. Increase the Bevel Depth in the Geometry panel.

3. Increase the Bevel Resolution value to make the cross-section more circular.

I usually get good results with a value around 3 or 4. Hooray! One less bevel object to hide!

4. Thicken or make thinner your new tube-y pipe at different points along its length by selecting individual control points in Edit mode and using the Alt+S hotkey.

You can also adjust this value from the Properties region of the 3D View (N). It's the Mean Radius value in the Transform panel.

In the preceding examples, I show that you can use Alt+S on individual control points to shrink or fatten the thickness of the extrusion (or bevel). However, perhaps you’d like to have more control along the length of the curve. This situation is where you’d use the Taper Object field. Like bevel objects, the taper objects use one curve to define the shape of another. In this case, you’re controlling the thickness along the length of the curve, and it works in very much the same way: Create a separate curve that dictates the taper shape and then type the name of that curve in the Taper Object field of the curve you’d like to control. Figure 6-9 shows how a taper object can give you complete control of a curve’s shape along its length.

image

Figure 6-9: Using a taper object to control a curve’s lengthwise shape.

tip I prefer to create my bevel object and taper object curves in the top view (Numpad 7) along the X-axis. This way, I have a good frame of reference for the curve’s center line. That’s important because bevel objects use the center line to define the front and back of a curve’s extrusion. You can think of taper objects as a kind of profile that revolves around its local X-axis. Bringing your control points to the center line makes the tapered curve come to a point, whereas moving them away from the center line increases the thickness.

tip The datablock drop-down menus for Taper Object and Bevel Object can get really crowded in a complex scene. Scrolling through all of the curve objects can be tedious; even if you did a good job of using sensible naming, it can be annoying or time-consuming to type in that name or search for it. Fortunately, Blender offers two shortcuts that makes filling these fields (and any other fields like them) very convenient:

· Drag and drop: If you're using the Default screen layout, then you have an Outliner in the area above your Properties editor. If you navigate to your object in the Outliner, you can left-click its icon in the Outliner and drag it to the Taper Object or Bevel Object field in Curve Properties.

· Object eyedropper: If you hover your mouse cursor over the Taper Object or Bevel Object fields and press E, the cursor should change to appear like an eyedropper. You can then left-click on any object in the 3D View. If you left-click a curve object, its name automatically populates this field.This is a fantastic tool for complex scenes or if you (ahem) didn't give your objects good, clear names.

Adjusting curve tilt

One other thing that you can control on curves is the tilt of the control points. In other programs, the tilt may be called the twist property. To get a good idea of what you can do with tilt, try the following steps:

1. Create a Bézier Curve (Shift+A⇒Curve⇒Bézier) and tab into Edit mode.

2. Make the curve cyclic (Alt+C).

You may also want to select (right-click) the handles and rotate (R) them so there’s a cleaner arc.

3. Select one of the handles and press Ctrl+T or click the Tilt button in the Tools tab of the Tool Shelf.

Move your mouse cursor around the selection in a clockwise fashion and watch how the Tilt value in the 3D View’s header changes.

4. Confirm completion (left-click or Enter).

If you increase the Extrude and Bevel Depth values, you should now have something that looks a bit like Figure 6-10 .

image

Figure 6-10: Fun with the tilt function! Mmmmmm … twisty.

Editing Bézier curves

The most defining aspect of Bézier curves are the handles on their control points. You can switch between the different types of handles by pressing V in the 3D View or choosing Curve⇒Control Points⇒Set Handle Type. Handles on Bézier curves are always tangential to the curve and come in one of four varieties in Blender:

· Automatic: These handles are set by Blender to give you the smoothest possible result in the shape of your curve. They appear in yellow and generally form a straight line with equal lengths on either side. If you try to edit an Auto handle, it immediately reverts to an aligned handle.

· Vector: Vector handles are not aligned with each other. They point directly to the next control point. The shape of the curve is an exactly straight line from one control point to the next. Editing a handle on a vector control point turns it into a free handle.

· Aligned: Aligned handles are locked to one another, always forming a straight line that's tangential to the curve. By default, they display in a pinkish color. If you grab (G) and move one handle on a control point, the other moves in the opposite direction to balance it out. You can, however, have aligned handles of differing lengths.

· Free: Free handles are sometimes referred to as broken handles. They display in black and don’t necessarily have to be aligned with one another. Free handles are best suited for giving you sharp points that smoothly flow to the next control point.

· Toggle Free/Align: This is an additional option for quickly toggling a control point between being free and aligned.

Figure 6-11 shows four curves with the same exact control points, but each with different types of handles. And, yes, you can mix handle types in a single curve. It’s actually quite handy when you need a figure to be smooth in some parts and pointy in others.

image

Figure 6-11: The same curve with aligned, free, auto, and vector handles.

Editing NURBS curves and surfaces

NURBS are a different kind of beast in terms of controls. They also have control points, but NURBS curves are conspicuously without handles.

remember Blender treats a NURBS curve differently than a NURBS surface curve. With that caution in mind, though, whether you’re dealing with a curve or a surface curve, the following things generally apply to all NURBS:

· Each control point has a weight. The weight, which is a value between 0 and 1, influences how much that control point influences the curve. In Blender, you set the weight in the Transform panel of the 3D View’s Properties region (N). There, for any selected control point, you have the ability to directly modify the X, Y, or Z location of the control point as well as its weight, indicated by the W value. The value in the W field is averaged across all selected control points. (Note that the W field weight value affects the curve differently from the value in the Weight field below it. The latter refers to actual weight for purposes of simulating physics. Chapter 13 touches briefly on physics simulation in Blender.)

· NURBS have knots. In math terms, knots are vectors that describe how the resulting curve is influenced by the control points. In Blender, you have three settings that you can assign to knots from the Active Spline panel in Curve Properties: Uniform, Bézier, and Endpoint. By default, with the Bézier and Endpoint check boxes disabled, NURBS are assigned uniform knots. You can tell they're uniform because the curve doesn’t go all the way to the end control points. Those control points’ weights are factored in with all the other control points. Endpoint knots, in contrast, bring the curve all the way to the last control points, regardless of weight. Bézier knots treat the control points like they’re free handles on a Bézier curve. Every three control points act like the center and two handles on a Bézier curve’s control points.

· NURBS have an order. An order is another math thing. What it really means, though, is that the lower the order, the more the curve directly follows the lines between control points. And the higher the order, the smoother and more fluid the curve is as it passes the control points. You can also change the values for order in the Active Spline panel below the Bézier and Endpoint check boxes.

Figure 6-12 shows the influences that curve weights, knot types, and order can have on a NURBS curve.

image

Figure 6-12: Decreasing curve weights on a control point, differences between the three knot types, and increasing the order of a curve.

If you're using a NURBS surface, you might notice in the Active Spline panel that you can independently set the knot, order, and resolution controls for a U or a V value. If you’re dealing with just a curve, the U direction is all you need to worry about and, therefore, all that Blender shows you. However, a NURBS surface works in two directions: U and V. If you add a NURBS Surface (Shift+A⇒Surface⇒NURBS Surface), you can visually tell the difference between the U segments, which are reddish, and the V segments, which are yellow.

One really cool thing you can do easily with NURBS surfaces that’s difficult to do with other types of surfaces is a process called lofting. (Other programs may call it skinning, but because that term actually means something else for rigging, I use lofting here.) Basically, lofting is the process of using a series of NURBS surface curves with the same number of control points as a series of profiles to define a shape. The cool thing about lofting in Blender is that after you have the profiles in place, the process is as simple as selecting all control points (A) and pressing (F). The classic use for lofting is modeling the hull of a boat, as you see in the following steps and in Figure 6-13:

1. Add a NURBS surface curve (Shift+A⇒Surface⇒NURBS Curve) and tab into Edit mode.

2. Select All and Rotate -90 degrees around the X-axis (A⇒R⇒X⇒-90).

The bottom of your boat forms.

3. Model a cross-section of the boat’s hull.

You can add more control points using extrude (E or Ctrl+left-click) and move them around with grab (G). When modeling your cross-section, it would be a good idea to press Alt+C and make the curve cyclic.

Try to keep the cross-section as planar as possible. I like to work from an orthographic (Numpad 5) front view (Numpad 1).

4. Select all control points in your cross-section and duplicate it along the Y-axis (A⇒Shift+D⇒Y).

5. Make adjustments to the new cross-section to suit your tastes, but do not add or remove any control points.

Lofting requires that each cross-section has the exact same number of control points. If you add or remove control points from a cross-section, it doesn’t work.

6. Repeat Steps 4 and 5 until you’re satisfied.

7. Select All and press F.

You’ve made a canoe!

image

Figure 6-13: Using lofting to create the hull of a boat.

A quick note on paths

You might be begrudging the fact that I glazed over adding a Path curve (Shift+A⇒Curve⇒Path). The reason is that you can turn just any curve into a path. By default, when you add a path, it’s really a shortcut for adding a straight NURBS curve with one check box enabled in Curve Properties: Path Animation. By enabling this check box, Blender understands that this curve is a path that you can use to control the movement of an animated object. To make any NURBS or Bézier curve into a path, all you have to do is left-click this check box. I get more into the use of paths as animation controls in Chapter 10.

Understanding the strengths and limitations of Blender’s surfaces

When compared to other tools that work with NURBS surfaces, Blender admittedly falls short in some functions. You can extrude surface endpoints, do lofting, and even spin surface curves (sometimes called lathing in other programs) to create bowl or cup shapes. However, that’s about it. Blender currently doesn’t have the functionality to do a ton of other cool things with NURBS surfaces, such as using one curve to trim the length of another or project the shape of one curve onto the surface of another.

However, there’s hope. It’s been slow coming, but Blender gets a little progress on the integration of better NURBS tools from time to time. However, that progress ultimately is excruciatingly slow. If you want to work exclusively with NURBS, your only real choices are to wait or use a different program.

Using Metaball Objects

Metaball objects are cool little 3D surfaces that have been part of computer graphics for a long time. Sometimes metaball objects are referred to as blobbies. The principle behind metaball objects is pretty simple: Imagine that you have two droplets of water, and you begin moving these two droplets closer and closer to each other. Eventually, the two droplets are going to merge and become a single, larger droplet. That process is basically how metaball objects work, except you have complete control over when the droplets merge, how much they merge, and you can re-separate them again if you’d like.

You can also do something that’s more difficult in the real world: You can subtract one droplet from the other, rather than add them together into a merged object. They’re a ton of fun to play with, and there are some pretty neat applications for them. Figure 6-14 shows two metaballs being merged.

image

Figure 6-14: Merging two metaballs.

Meta-wha?

Metaball objects are a bit like curves and NURBS in that their entire existence is defined by math. However, unlike NURBS or even meshes, you can’t control the surface of a metaball object directly with control points or vertices. Instead, the shape of their surface is defined by a combination of the object’s underlying structure (a point, a line, a plane, a sphere, or a cube) and its proximity to other metaball objects.

There are five metaball object primitives:

· Ball: The surface in this primitive is based on the points that are all the same distance from a single origin. You can move and scale a metaball ball uniformly, but you can’t scale it in just one direction.

· Capsule: Whereas the basis for a metaball ball is a single point, the basis for a metaball capsule is the line between two points. You can scale the surface uniformly, like a metaball ball, but you can also scale it in its local X-axis.

· Plane: The metaball plane’s underlying structure is, as you may have guessed, a plane. You have both the local X- and the local Y-axis for scaling, as well as scaling uniformly.

· Cube: The metaball cube is based on a three-dimensional structure — specifically, a cube. You have the ability to scale this primitive independently in the X, Y, or Z directions.

· Ellipsoid: At first glance, you might mistake this metaball object for a metaball ball. However, instead of being based on a single point, this object is based on a sphere. So if you keep the local X, Y, and Z dimensions equal, a metaball ellipsoid behaves just like a metaball ball. However, like the metaball cube, you can also scale in any of the three individual axes.

A cool thing about metaball objects is that while you’re in Edit mode, you can change from one primitive to another on the fly. To do so, use the Active Element panel in Metaball Properties. Figure 6-15 shows each of the primitives along with the default settings for them in the Active Element panel.

image

Figure 6-15: The five metaball object primitives.

The Active Element panel always displays the Stiffness value for the selected metaball object. This value controls the influence that the selected metaball object has on other metaball objects. The Stiffness value is indicated visually in the 3D View with a green ring around the metaball object’s origin. You can adjust the Stiffness value here in the panel, or if you select the green ring (right-click), you can Scale (S) to adjust the Stiffness visually. By right-clicking the reddish, pinkish ring outside of that green ring, you can select the actual individual metaball object.

And depending on the type of metaball object primitive you’re using, other values of X, Y, and Z may appear in the Active Element panel while you’re in Edit mode. You can adjust these values here or in 3D View by using the S⇒X, S⇒Y, and S⇒Z hotkey sequences. At the bottom of the panel are buttons to either hide the selected metaball object or give it a negative influence, subtracting it from the positive, and therefore visible, metaball objects.

When you tab back out to Object mode, you can move your combined metaball object (a meta-metaball object?) as a single unit. Note, however, that even though you’ve grouped these metaball objects into a single Blender object, they don’t live in a vacuum. If you have two complex Blender objects made up of metaballs, bringing the two of them together actually causes them to merge. Just keep that as something you may want to bear in mind and take advantage of in the future.

As a single Blender object, though, you can control a few more things using the Metaball panel, as shown in Figure 6-16 . This panel is always available to metaball objects, whether in Object mode or Edit mode, and it sits at the top of Metaball Properties.

image

Figure 6-16: The Metaball panel.

The first two values in the Metaball panel are resolution values:

· View: Controls how dense the generated mesh is for the metaball object in the 3D View. Lower values are a finer mesh, whereas higher values result in much more of an approximation.

· Render: Does the same thing as the View value, except it has an effect only at render time. The reason is that metaball objects can get really complex quickly, and because they’re generated entirely by math, these complex combinations of metaball objects tend to use a lot of computer-processing power.

tip Working at a larger View size in the 3D View helps keep your computer responsive while you work, whereas a finer Render value keeps things pretty on output.

The Threshold value is an overall control for how much influence the metaballs in a single Blender object have over each other. This value has a range from 0 to 5, but in order for a metaball object to be visible, its individual Stiffness value must be greater than the Threshold value.

At the bottom of the Metaball panel are four buttons that control how the metaball objects get updated and displayed in the 3D View:

· Always: The slowest and most accurate, this setting is the default. Every change you make in the 3D View happens instantly (or as fast as your computer can handle it).

· Half: This option reduces the resolution of the metaball object as you move or edit it, increasing the responsiveness of the 3D View. When you finish transforming the metaball object, it displays in full resolution again.

· Fast: As the name implies, this setting is nearly the fastest. When you enable this button, Blender hides the metaball objects when you perform a transform and then re-evaluates the surface when you finish. Fast works very nicely, but the downside is that you don’t get the nice visual feedback that Always and Half give you.

· Never: This method is certainly the fastest update. Basically, if you try to edit a metaball object, it hides everything and never updates in the 3D View. Although Never may not seem useful at first, if you decide to bind your metaball object to a particle system as a way of faking fluids, turning this setting on definitely increases performance in the 3D View.

What metaball objects are useful for

So what in the world can you actually use metaball objects to make? I actually have two answers to this question: all sorts of things, and not much. The reason for this seemingly paradoxical answer is that you can use metaball objects to do quick, rough prototype models, and you can also use them with a particle system to generate simple fluid simulations. However, with the advent of advanced modeling tools like sculpting and subdivision surfaces, metaball objects don’t get used as often for prototyping. And with more advanced fluid simulation and rendering technology, metaball objects are also used less for those applications as well. They have a tendency to use a lot of computer-processing power and don't often give good topology by themselves.

That said, even though metaball objects are used less for these purposes, that doesn’t mean that they’re never used. In fact, not too long ago, I used a set of metaballs with a glowing halo material to animate the life force being forcefully pulled out of a guy in a scene for a local filmmaker. I could probably have used a particle system or fluid simulator to do this effect, but using metaballs was actually faster to set up, and I had more direct control over where everything was placed on the screen. So don’t count metaball objects out just yet. These little suckers still have some life left. Besides, they’re still fun to play with!

Adding Text

Over the years, working with text in Blender has come a long, long way. The way you work with text in Blender has quite a few differences from what you might expect of word-processing software like LibreOffice or Microsoft Word. What you may not expect is that Blender’s text objects share a few features in common with desktop publishing programs like Adobe InDesign or QuarkXPress.

Blender’s text objects are really a specialized type of curve object. Nearly all the options I describe for curves also apply to text. (See the section “Using Curves and Surfaces,” earlier in this chapter.) For example, you can quickly bring text objects into the third dimension using the Extrude, Bevel, and even the Bevel Object and Taper Object fields. Figure 6-17 shows an example of the interesting things you can do with a single text object in Blender.

image

Figure 6-17: Taking advantage of the curve-based nature of Blender text objects.

Adding and editing text

You add a text object in Blender the same way you add any other object. Press Shift+A⇒Text, and a text object appears at the location of your 3D cursor with the word “Text” as its default content.

To edit the text, you tab into Edit mode. After you’re in Edit mode, the controls begin to feel a bit more like a word processor, although not exactly. For example, you can’t use your mouse cursor to highlight text, but if you press Shift+← and Shift+→, depending on where the text cursor is located, you can highlight text this way.

tip Shift+Ctrl+←/→ highlights whole words at a time. Backspace deletes text and pressing Enter gives you a new line.

In addition to the curve-like controls, formatting controls also are available in Text Properties, as shown in Figure 6-18 .

image

Figure 6-18: Text Properties.

In the Paragraph panel is a block of alignment buttons to help you align your text relative to the origin of the text object. You have the following options:

· Left: Aligns text to the left. The text object’s origin serves as the left-hand guide for the text.

· Center: All text is centered around the text object’s origin.

· Right: Aligns text to the right. The text object’s origin serves as the right-hand guide for the text.

· Justify: Aligns text both on the left and on the right. If the line is not long enough, Blender adds spacing, or kerning, between individual characters to fill the space. This option requires the use of text boxes. (See the next section, “Working with text boxes,” for more details.)

· Flush: This option works similar to the way Justify does, but with one exception: If the line is the end of a paragraph, it forces the text to align both sides. Like Justify, this option requires the use of text frames.

Working with text boxes

Both the Flush and the Justify options require the use of something called text boxes. The Left, Center, and Right align options all work relative to the location of the text object’s origin. However, if you want to align your text on both the left and the right side, you need more than one reference point. Text boxes are a way of providing those reference points, but with a couple of additional benefits as well. Basically, text boxes are a rectangular shape that defines where the text in your text object lives. Text boxes are similar to the frames you might use in desktop publishing programs. They’re also one of those things that you normally don’t see in 3D software.

To work with text boxes, you use the block of values in the panel labeled Text Boxes. The X and Y fields under the Offset label determine where the top-left corner of the text box is located, whereas the Width and Height fields define its size. As you adjust these values while in Edit mode, you should see a dashed rectangle in the 3D View.

Now, the cool thing about text boxes is that you can actually define more than one and place them arbitrarily in your scene. Add a text box by left-clicking the Add Textbox button in the Text Boxes panel. If you have more than one text box defined, the text can overflow from one box into another. Using multiple text boxes is an excellent way to get very fine control over the placement of your text. You can even do newspaper-style multi-column text this way, as shown in Figure 6-19 .

image

Figure 6-19: Using text boxes to get multi-column text layouts.

tip A particularly cool feature for text objects is Paste File (from Edit mode, Text⇒Paste File). If you already have a bunch of text created and don't feel like retyping it in Blender, choose Paste File and use the File Browser to find the text file you want to load. After you do, the content of whatever is in that text file is added from the location of the text cursor. This is also a bit of a cheat you can use to get special characters (like π) in a text object; many of them are difficult to type on a standard US-layout keyboard.

If you’re working with a lot of text, you may find that Blender doesn’t perform as speedily as you’d like while editing. If you left-click the Fast Editing check box in the Shape panel, Blender uses just the outline to the text in the 3D View while in Edit mode. This adjustment gives Blender a bit of a performance boost so that you’re not waiting for characters to show up seconds after you finish typing them.

Controlling text appearance

The block of buttons in the Font panel control how the text appears in the selected text object:

· Size: This field allows you to adjust the font size on a scale from 0.010 to 10. Changing the font size value is generally a better way to change the size of your text rather than simply scaling the text object.

· Shear: Shearing is a quick-and-dirty way to fake italic on a font. Values between 0 and 1 tilt characters to the right, whereas values between -1 and 0 tilt them all to the left.

· Object Font: Using this field, you can actually define Blender objects as characters in a font. I cover this later in the “Changing fonts” section.

· Text on Curve: If you need your text to flow along the length of a curve object, use this datablock field to choose that particular curve object.

tip To use an eyedropper for picking an object from the 3D View, press E with your mouse cursor hovered over this field (as I described earlier in this chapter for Taper Objects and Bevel Objects).

· Underline Position: Adjust this value to control the position of the underline, if enabled (Ctrl+U on highlighted text). This value has a range from -0.2 to 0.8.

· Underline Thickness: From this field, you can control the thickness of the actual underline, if enabled (Ctrl+U on highlighted text). You can set this value between 0.01 and 0.5.

· Character: The three check boxes under the Character label — Bold, Italic, and Underline — add those attributes to the selected text in your 3D View, if you've defined fonts for those font variations (see the “Changing fonts” section).

You can adjust the appearance of your text using still more controls in the Paragraph panel:

· Spacing: You can customize the amount of spacing between characters and lines in your text. To do so, you have the following three values available to adjust:

· Character: The global distance between all characters in your text object, also known as tracking. This value has a range from 0 to 10.

· Word: Globally defines the space between words in your text object. This field also has a range from 0 to 10.

· Line: Line distance, also referred to as leading (pronounced “leding”). This value defines the distance between lines of text in your text object and it also has a range from 0 to 10.

· Offset: These values offset the text object from its default position. X values less than zero shift it left and Y values less than zero shift down, whereas values greater than zero shift it right (X) or up (Y).

technicalstuff If you’re familiar with typography, you may notice two things right off the bat. First, the terms used here are not the standard typography terminology, and second, the values are not in your typical percentage, point, pica, or pixel sizes. These differences exist for two primary reasons. First, Blender is a 3D program intended for 3D artists, many of whom may not be familiar with typography terms and sizes. The second reason dovetails with the first one, but it’s a bit more on the practical side. Blender text objects are 3D objects that can be just about any size in virtual 3D space. Sizes like points, pixels, and picas don’t really mean anything in 3D because there’s not a frame of reference, like the physical size of a printed piece of paper.

Changing fonts

Another thing that’s different about Blender’s text objects is the way they handle fonts. If you’re used to other programs, you may expect to see a drop-down menu that lists all the fonts installed on your computer with a nice preview of each. Unfortunately, Blender doesn’t currently have that ability. Instead, what you need to do is left-click the Load button to the right of the Regular Font datablock in the Font panel of Text Properties. Blender then shows you a File Browser where you can track down the actual font file for the typeface that you want to use.

Here are the standard places you can find fonts on Windows, Mac, and Linux machines:

· Windows:C:\Windows\Fonts

· Mac OS:/System/Library/Fonts or /Library/Fonts

· Linux:/usr/share/fonts

After you load a font, it’s available for you to use in that specific .blend file whenever you want it from the font drop-down list. You always have Blender’s built-in font available as well.

Now you would think that after you have a font loaded, you should be good to go, right? Well, not quite. See, Blender’s method of handling bold and italic in text is also kind of unique. You actually load a separate font file for each one (hence the four separate Font datablocks: Regular, Bold, Italic, and Bold & Italic). Typically, you use these datablocks to load the bold and italic versions of the font file you choose in the Regular datablock. However, that’s not a hard-and-fast requirement. You can actually use an entirely different font altogether. While the ability to choose different fonts in the Bold and Italic datablocks is perhaps a mild abuse of the terms, that ability does provide a pretty handy workaround. Technically speaking, Blender doesn't allow you to arbitrarily change fonts in the middle of a text object. However, using the different font datablocks, you can get around that problem by making your Bold or Italic font the other fonts you want to use. To choose a font file for any style of font is pretty straightforward:

1. In the Font panel of your text object's Object Data Properties, left-click the Load button on the font datablock you want to change.

By default, the built-in font, Bfont, is chosen for all four datablocks.

2. Navigate your hard drive using the File Browser and choose the font you want to use.

3. Use your chosen font in your text object.

As an example, say that you chose a new font for the Bold datablock. You can assign that font to characters in your text object with the following steps: a.

1. From Edit mode (Tab), highlight the text you want to change (Shift+← or Shift+→).

2. Enable the Bold check box under the Character label in the Font panel of Text Properties (or press Ctrl+B in the 3D View).

Figure 6-20 shows the results of using multiple fonts in a single text object

image

Figure 6-20: Using the Bold and Italics fonts to use widely different fonts in a single text object.

You may find that while you’re typing, you need certain special characters like the copyright symbol or the upside-down question mark for sentences written in Spanish. For these situations, you have three options:

· If the special character is common, you may find it in Text⇒Special Characters.

· You can memorize the hotkey combination for various commonly used special characters as listed in Blender’s online documentation.

· If the character is rare or just not in the menu, but you have it in a text file outside of Blender, you can use the Text⇒Paste File to get that character into your text object.

Another unique feature that Blender’s text objects have is the ability to use any other Blender object as a font character. So if you want to use Suzanne the monkey every time the uppercase S character is used, you can actually do that. If you want to model letters with metaball objects and spell something with them, like in Figure 6-21 , you can do that, using the Object Font field in the Font panel. Just use the following steps:

1. Type the name of your font “family” in Object Font.

tip You can choose any name you like. I like to end my name with a dot (.) so I can differentiate my characters later. For example, you may use MetaLetter. (ending in the period) in this case.

2. Model a character you want to use.

In this example, I’m using metaball objects, so I use Shift+A⇒Metaball⇒Ball as my starting point and work from there.

3. Name this object with the family name plus the character it will represent.

In this case, if you modeled an uppercase W, you’d call it MetaLetter.W. A lowercase W would be MetaLetter.w.

remember Now you see why I use the dot (.) at the end of the family name in Step 1. It helps keep things organized.

4. Repeat Steps 2 and 3 for each character you need.

5. Select (right-click) your text object and turn on Dupliverts (from Object Properties, Duplication⇒Verts).

6. Adjust size and spacing to fit.

And poof! You’ve got metaletters!

7. To finish, move the original font text to another layer so that it’s out of the way of your metaletters.

image

Figure 6-21: Wheeeee! Metaletters!

technicalstuff One detail to note here is that your metaletters don’t merge into each other like you might expect them to. This is a shortcoming within Blender. To my knowledge, a good workaround currently doesn’t exist.

Deforming text with a curve

Another really powerful thing you can do with Blender’s text objects is have the text flow along the length of a curve. This way, you can get text that arcs over a doorway or wraps around a bowl or just looks all kinds of funky. The key to this feature is the Text on Curve field in the Font panel. To see how this feature works, use the steps in the following example:

1. Create a text object (Shift+A⇒Text).

Feel free to populate it with whatever content you would like.

2. Create a curve to dictate the text shape (Shift+A⇒Curve⇒Bézier).

This curve is your control. You’re using a Bézier curve here, but a NURBS curve works fine as well. Also, I like to make my curve with the same origin location as my text object. Granted, that’s just my preference, but it works nicely for keeping everything easily manageable.

3. Select the text object and type or click the name of your control curve in the Text on Curve field (or use the E hotkey eyedropper trick described earlier in this chapter).

Blam! The text should now follow the arc of the curve. If you select (right-click) the curve and tab into Edit mode, any change you make to it updates your text object live.

Figure 6-22 shows 3D text along a curve.

image

Figure 6-22: Text on a curve.

remember You should keep your curve as a 2D curve. Because the text is technically a special type of 2D curve, trying to get it to deform along a 3D curve won’t work. For text to follow a 3D curve, you’re going to need to convert the text into a mesh. You can do that conversion explicitly, as described in the next section, or you can do it implicitly by giving the text object a Curve deform modifier. Modifiers work on curve objects, but internally those curves are converted to meshes. In simple cases, this may work just fine. More often than not, you'll want the control of explicitly doing the conversion yourself.

Converting to curves and meshes

Of course, while Blender’s text objects are pretty powerful, curves and meshes just do some things better. Fortunately, you don’t have to model your text by using meshes and curves unless you really, really want to. Instead, you can convert your text object into a curve or a mesh by pressing Alt+C in Object mode and choosing Curve from Mesh/Text or Mesh from Curve/Meta/Surf/Mesh. If you’re curious as to some specific cases why you’d want to do make this conversion, here are a few:

· Custom editing the characters for a logo or a specific shape (convert to a curve)

· Needing to share your .blend file, but the license of your font prevents you from legally packing it into the .blend (convert to a curve)

· Getting extruded text to follow a 3D curve (convert to a mesh)

· Rigging the letters to be animated with an armature (convert to a mesh or curve)

· Using the letters as obstacles in a fluid simulation (convert to a mesh)

· Using the letters to generate a particle system (convert to a mesh)

tip Using Alt+C also works on curve objects, surfaces, and metaball objects to convert them to meshes. Just be aware that most of these conversions are permanent. You can’t go back on them without using the undo operator.