View Daniel Harjanto's profile on LinkedIn

Flipping Sosro Crown

by Daniel Harjanto a.k.a misterdi

This tutorial will discuss on several issues, how to build the geometry for the crown, how to bake rigidBody simulation, and how to adjust the result.

 

The setup

As usual we always work with low-res object in simulation to get faster feed-back, so in this case as a proxy we will use a simple cylinder (16 segment) that approximately the size of the crown then freeze the transform. It was rename as crownProxy.

We also need a table, where the crown will fall and bounce. For the table, a simple polygon plane should be sufficient.

Position crownProxy to what your liking you can rotate and move it. (but of-course it should be higher than the table).

Select the crownProxy, and connect it to a gravity field, default gravity field should OK in this case. As we connect an object to a dynamic field, Maya will automatically create an active rigidBody for the object using current option of the Create Active Rigid Body.

Select the table, and make it a passive rigidBody, which is set as default.

As an initial state of the active rigid Body (the crownProxy), we will use some value on Velocity-Y and Velocity-Z, also Initial Spin-X.

This value is of-course a trial and error things. Initial Velocity-Y = 15, will tell Maya that when it start the simulation, the rigidBody will have that velocity which is measure as unit/sec (not unit/frame). So with positive value 15 in Y, means if there is no other influence to the rigidBody (no dynamic field, no damping, and no collision) the rigidBody will move up 15 unit in one sec.

It is the same thing for Initial Spin, except instead of unit it will use degree/sec (on my default configuration).

Let's do the simulation, just hit play you will see that the crownProxy will flip in the air and fall to the table and then settle down at one position. (If it has not settle down when you reach End Time, just increase the End Time so the it settle down).

But as you see, when you do simulation, it was nearly impossible to predict the outcome. The crownProxy is settling down near the edge of the table, while we want it to settle down at the center.

My suggestion is, if you are happy with the way it flips and tumbling except the end position, bake the simulation into key-frames.

and from select only translate X,Y, Z and rotate X, Y, Z from channel box

When we finish baking the animation into key-frames, open graphEditor and look at the result

Here what we need to adjust is only Translate X and Translate Z attribute, grab those two curves, and zoom arond at the last animation key, drag each curve (hold shift key when you drag to constraint the move on value only), until the last key value is at 0 (the Origin).

What is happening in this case is since we drag the whole curve on translate X and Translate Z, the starting point will also shift. But that's OK in my case, since the client are more specific at the end point not at the start anyway.

So look at the persp window, make sure that the crownProxy now settle down at the Origin.

Play it couple times to make sure every thing is OK, then we can start building the real crown model.

 

Building the crown model.

Create 4 curve for the side of the crown, which actually all are circle with 64 span. Grab couple of CVs on curve1 and curve2 and scale it down slightly to get the shape like below.

Create 4 more curve for the top, it should be in one plane since we want the top to be flat.

You might wonder why curve8 doesn't show up on the image above. This is because I set scale curve8 to 0 all axis as it will be the pole point of the top surface.

Select curve1, curve2, curve3 and curve4, and do Modeling->Surface->Loft with option as

Select curve5, curve6, curve7 and curve8, and do the same loft process. If you can't select curve8 from viewport, open Outliner and select curve8 from it.

The order of selecting this curve will affect the result, so make sure that you select in the order.


Now what we need to do is connect the two surface using Modeling->Edit NURBS->Attach Surfaces with option as

Blend was used so it will insert a blend between the two surface, as you can see in the following image

Since I don't really need to use NURBS surface and layout UV for texturing is easier in polygon, the NURBS result then converted into polygon and delete the history afterward

 

Texturing.

Since now the model is a polygonal object, you can use Edit Polygons>Planar Mapping to apply a UV texture coordinate to the object.

Mapping direction is use in Y-axis so it map down on XZ plane, and it was set to fit to Bounding Box.

In UV texture editor you need to do further work so the UV will look like this

When you apply the image as texture, you also need to adjust the UV so it sits nicely within the image space as,

In this tutorial I'm not really covering building material and hypershade since it will be cover in other tutorial. But basically the material is using a Blinn and texture using a file texture.

 

Fitting the real model to the proxy and adjustment.

To fit the real model into the proxy, it is a simple parent child relationShip.

Select the real model, and then shift select the proxy. Do Edit->Parent with option as

Hit "f" key to frame selection, so you can see your real model now inside the proxy. It is better to do this process at the last frame of the crownProxy animation, since in my case the real model is laying at its back when I do this. To fix the problem, select the real model, and rotate around X-axis 180 and move it with local space option on so it sits in the center of the proxy. And you might need to adjust the rotateY too so the label is facing the camera

Here is a sample of movie file for this tutorial, flippingCrown.mov

And a sample scenes (no texture), flippingCrown.mb or in zipped file flippingCrown.zip

 

Beyond This Tutorial

When you find out that the animation is a bit too slow or you need to do some adjustment for the speed, use Trax Editor to fix it.

Select the crownProxy and create a clip, put the clip in the Trax Editor, scale it down to make everything goes faster, or split it into several part, and scale one part longer than the other to get some sort of speed ramp effect.

 

<<back>>