Find Out How to Turn Custom Text to Realistic Metallic Objects


   

This is for those of you interested in working with custom curves exported from Illustrator or created in Maya to make a custom logo or raised text for a reel or for work. I’m actually doing this type of thing for some extra cash and maybe I will throw a little into my demo reel at some point just to have some more professional looking animated text. Have fun, and I hope you find it useful! You can even download the curves to get started. Read on!

   

This:

   

custom curves

   

To this:

   

   

Getting Started with Nurbs Curves


   

Here’s kinda where we start. These are linear curves that are perfectly capable of being extruded. They were custom made in Illustrator using a reference image. Using the flat image of the text, I absorbed what makes the shapes work and made my best attempt at reproducing the lines in a way that unifies the whole design. The whole design of Ride the Lightning album cover is awesome but there are knock-offs that are completely weak looking like someone drew it on a napkin and that’s unfortunately what I had to use to start with.

 

Download the actual curves if you wanna try it out yourself!

   

   

custom curves

   

The final output I’m going for is similar to the Ride the Lightning cover. These are the curves. If you are using your own curves, it is important to save them as an Illustrator CS file and turn off all the options as you save.

   

   

…and what I get from doing a Bevel Plus directly on those curves.

   

A Pretty good version of 3d text using Bevel Plus, but what’s missing? Filleted corners you say? Yeah! Here’s how to go about doing that. Because I use Vray in Max for final render output, I need to find a way to fillet the corners to add the solid, heavy, metal, realistic feel to block letters for a project. I’m thinking of my final output and render software at this stage and Mental Ray has the mia_roundcorners node, recently demoed here at around 34:30, that’ll produce a similar result, but I prefer Vray and Vray doesn’t really have anything (built-in) that’s comparable. The technique I will show is good since I can tweak the result many times, zoom in and out to really inspect what’s happening, and be very specific about the values without being too limited. Maybe later I can try to write a shader to do the same thing in Vray.

   

   

Example: The M with rounded corners.

   

   

Determine the curve that needs to be beveled. Here’s an example of one done already.

   

   

The letter for beveling comprised of one continuous curve built in Illustrator. They are purposely linear so that it’s easier and cleaner to round the corners.

   

   

Select all the curve corners edit points. Do not select intermediary edit points.

   

   

Detach Curves with preferences set at default.

   

   

Sometimes you have to delete the original curve after detaching, but not the detachedCurve(s).

   

   

Fillet Curve Options
  • Trim on = delete what’s left over automatically
  • Circular on = easier
  • Radius = your preferred radius

   

   

Filleted curve example. There are a total of three curves after doing a fillet.

   

   

After all corners are filleted, delete one edge, preferably the straight one.

   

   

After selecting all the curves at once Attach Curves with the default settings tweaked slightly. Connect is turned on and Keep Originals is off.

   

   

Unhide the attached curve and Open/Close Curves to close the curve. This step is essential for getting the edit points right.

   

   

Of course delete history and rename your curve to something manageable.

   

Bevel Plus Options


   

Open up Bevel Plus Options, Output Options. The important part is the sampling controls, but make sure setting for output get is set to Polygons and Tessellation is set to sampling. Under Along Extrusion Samples put something like 5, and under Along Curve Samples pick a higher number usually if your letters are fat like mine. It’s all relative to the bevel depth and extrude distance. The default leaves letters looking blocky and low res.

   

   

   

Some good settings to get started with creating really blocky letters with nice rounded fillets, fine tuning with be needed with the bevel width etc. If you want a script to help you adjust the attributes on multiple bevels simultaneously, then read on!

   

   

Final Fillet.

   

Bevel Plus Possible Issues


   

   

Keep in mind: Keep it clean. Remember to keep the outliner clean of clutter so that things don’t get unnecessarily complex. Stages of creation process get a little hairy because of all the nodes Maya doesn’t do a good job of cleaning up. You always need to keep an eye on that plus selection order does count sometimes so if curves are coming out funky, check the order of selection and deleting of history.

   

   

Letters like this A, select the outer curve and then the inner curve before hitting Bevel Plus. The inner curve needs to be beveled differently from the outer curve so setting this before hand is a good tip or just change it afterwards in the channel box inputs by clicking Style and changing it to Concave In. Remember to delete history before beveling and all unnecessary objects after beveling. Keep the bevel history on your objects so that you can tweak the attributes on them. It’s easy to create a script to tweak them all at the same time if you want to. I also recommend version-ing up after each letter to avoid having to start all over again. The process can get tedious if you don’t know what you’re doing at first.

   

   

Here’s another problem that you may encounter. If a letter appears reversed after doing a bevel then select the curve that made the bevel and hit Reverse Curve Direction in the Edit Curves Menu.

   

If you have to recreate a fillet by duplicating another fillet then be sure to freeze transforms on the duplicated curve before proceeding to Attach Curves. This will lead to unpredictable results.

   

   

When working with Nurbs Curves in Maya things are inevitably going to get wierd. Try not to panic and use Reverse Curve Direction, Attach, and Detach Curves, Delete History, and Freeze Transforms till you get the results you want. Sometimes it’s impossible to know which way the curve is going and it makes a difference when you’re trying to create the final filleted curve. So persevere, you have to jostle Maya a little bit for it to want to cooperate and till there’s an easier solution, like if Vray had a good auto fillet shader which is why I had to do this, then this solution works just fine.

   

For speeding up workflow, use the G key to repeat the last command.

   

The semi-final result (viewport screenshot):

   

   

Here’s an image of an earlier attempt with the reference image as well just so you have a shot of the reference I used:

   

   

After I made a change to have the text extrude a little deeper, if you look you can see it in the reference image that it is indeed deeper than my image, there is funkiness going on with the faces not knowing where to attach themselves to. A simple tweak to the bevel depth can fix that. But is it going to take forever to select each object and apply this simple change? No, not if you have this simple script! Here’s how you do it:

   

Break out the pymel and do a:

   

from pymel.core import *

   

Then type some code like this. These lines are just setting attrs directly on ALL bevelPlus nodes in the scene at one. If you have more than one instance of text, then you better be sure that you know that this is going to change everything globally.

   

for b in range(len(ls(type='bevelPlus'))+1):
    if b == 0: continue
        bevnode = PyNode('bevelPlus' + str(b)
        setAttr(bevnode+'.width', .009)
        setAttr(bevnode+'.depth', .010)
        setAttr(bevnode+'.extrudeDepth', 2.7)
        setAttr(bevnode+'.polyOutExtrusionSamples',5)
        setAttr(bevnode+'.polyOutCurveSamples',25)

   

Take a look at the width attr and bump that down a hundredth. Now take a look:

   

   

Awesome I say! But it’s too high res, no need for all those polys. So tweak the script again and in seconds have the result you want.

   

for b in range(len(ls(type='bevelPlus'))+1):
    if b == 0: continue
        bevnode = PyNode('bevelPlus' + str(b)
        setAttr(bevnode+'.width', .008)
        setAttr(bevnode+'.depth', .010)
        setAttr(bevnode+'.extrudeDepth', 2.7)
        setAttr(bevnode+'.polyOutExtrusionSamples',5)
        setAttr(bevnode+'.polyOutCurveSamples',11)

   

Probably the most important attributes to tweak are going to be the polyOutExtrusionSamples and the polyOutCurveSamples so fine tune those to get the cleanest result. Keep the extrusion samples higher for curved surfaces because polys will quickly become blocky. Tweak those objects separately and, if more than one, have a separate script to handle just those.

   

   

Now THAT’s butta! Also, check your bevels especially on the inner curves, they can sometimes flip and not be right.

   

Render time!

   

   

Stay tuned for more tips on rendering with Vray later.