Blog
Modo Animation with Morph Maps
More musings on Modo
It’s been a busy first half of the year, including a trip to the Industrial Designer’s Society of America Western Region meetings in Portland last month where we had a great time demo’ing Modo and the integration with Rhino. Many thanks to Bob Bennett and Luxology for their help with that, by the way!
I finally got some time to kick back and explore more Modo, digging through the excellent help files and learning more about how Modo does Animation. All 3D animation applications handle things a little differently and it takes a little practice to get acclimated to each, but the experience also points out how useful it is to use multiple applications in a pipeline. All of the basic Transforms are easy to animate and practically everything in Modo can be Keyed, but Modo has a really cool Morph Map function that can be easily animated, and with it you can really speed up a project.
What is a Morph Map?
Maybe the easiest way to conceive of Morph Maps is to consider an model (”Mesh” in Modo) that can exist in more than one state. For example, a ball floating above a floor is a perfect sphere, but when it is dropped it squashes out into a different shape, but it’s still the same object. The perfect sphere is your basic primitive, and the squished ball can be deformed state of that same ball saved as a “Morph Map”Another way to think of it is this: “This is your mesh, and this is your mesh with a morph applied.” You can create a bunch of maps for each deformed state that you might want to use in a project, whether it’s an animation or experimentation for a still shot.
Example: Animating a Bend Deformation
Let’s start with a simple project. We’ll create a few simple meshes, in this case alphanumeric letters, and apply a bend deformer to a couple of the meshes. We’ll save the bent states of the letters as Morph Maps then animate the bends. Once you get the idea, you can expand on the concept to come up with more sophisticated applications of Morph Maps. Here’s the simple scene that we’ll work with:
This is about as simple as you can get! Just a few letters extruded, beveled, and a simple shader applied. What we’re going to do is to make each of the lower case “i’s” bow towards the viewer. To do that, we’ll simply select each i individually, apply the Bend deformer so that the i is bowing down as low as it will go, then save that position as a Morph Map. We’ll bend each i to the point where you can see the back of the “head”. To start, select the first “i”, then select the “Lists” tab (it’s usually located underneath the item list on the right side). Then, click on the triangle next to the words “Morph Maps”, then select the words “(new map)”. Give the morph a name that is easy to remember and keep organized - such as “Bow 1″. Then you just bend the letter over at the waist using the “Bend” deformer until it looks right to you. Now, if you’re in the “Model” window and you click on the Morph Map, you should see the “i” toggle between it’s original position and it’s bent position. The original position has 0% morph applied, and the bent position has 100% morph applied. Yes, you can also go beyond 100% and into negative %’s, so feel free to experiment! Here’s what that Morph list looks like:
We’ll need to select the second “i” and do the same thing to it, saving the bent position as “Bow 2″. Now, if we wanted to create a still image using these Morph Maps, we can simply select each “i” individually and use the “Apply Morph” command listed under the Vertex Map Menu, tweak it until it looks right, then render the frame. Here’s what that might look like:
Instead, we’re going to add these Morph Maps as items underneath each mesh in the item list. Like a lot of things in Modo, the easiest way to do that is to select the mesh you want to work with, right click on the Morph Map you want to apply, and then choose “Add Morph Deformer”. Then underneath the mesh in the items list, you’ll see the Morph Map listed. Here’s a picture of the assignment and the subsequent listing:
Now, for the Animation
So we have our letters and morph maps ready to go. The morph maps are listed underneath their respective mesh, so we can select and work with the attributes of the morph maps just like we can with any other item such as a mesh, shader, camera, light, etc. Here’s the conceptual part: to “see” the effect of the morph map being applied, we have to adjust it’s “opacity”. That’s kind of a wierd concept at first, but it does make sense. In this example, the “i” standing upright has no visible morph applied, or in other words has a zero opacity for the morph map. When the “i” is fully bowed, it has 100% of the visible morph applied, or a 100% opacity. When it’s in the process of bowing or raising back up, it’s opacity is somewhere between 0 and 100%, and that’s how we can control the bowing in the animation.
Change over to the Animation Window and get ready to set some keys. Give some thought as to when you want things to happen, set your frame rate, duration, etc. Once you have the plan for the animation done, it’s a simple matter of setting and adjusting keys. In this example, I’ve selected all the meshes in the list and set a key for everything at frame 0. Then I move the playhead on the timeline out to a frame (e.g. 30) and set another key for everything so that I establish the beginnning point of the motion. Then I move to the next frame I want for keying (say, another 30 frames), select the item “Bow 1″, set the opacity for it at 100% (fully bowed), then right click on the Opacity tab to choose “Add Key”. Here’s a picture of that process:
Repeat that process, setting the Opacity back to 0 after a number of frames so that the “i” stands back up, then repeat the whole thing for the second “i”. You can grab the playhead on the timeline and scub back and forth to get a feel for how it looks, adjust as necessary. One tool that makes it much easier to adjust the animation is the Graph Editor, and here’s how it looks for the Opacity Curve on the Morph Map:
Here’s the completed sample:
Posted in Uncategorized









