Animation Dynamics

Original write-up by Johnny Tai; 3D Animator at Streamline Games

Some of the characters for Unbound uses Anim Dynamics in Unreal Engine to simulate cloth and other things that require a lot of secondary motions which needs to be natural in its movement. We can use cloth simulation, but that is still experimental. Here I will show you one of the characters Anim Dynamics for its cloth, and other deco movements.


*NOTE: Important element to all these Anim Dynamics requires a float variable called Gravity and a proper angular constraint limit.

AnimDynamics1.jpg

Check out the character I’m showing as an example; he has lots of cloth pieces on the waist and arms with dangling limb decorations around the neck area and waist.

AnimDynamics2.JPG.jpg

The cloth is simulated in a way that it needs to look like it’s floating and has a movement of its own. This can’t actually be done with Anim Dynamics alone; it needs some animation driven to it.

In 3ds Max, each cloth piece is rigged with a chain of bones. The first bone and another designated mid-bone along the chain will be used for animation only. You only need to do simple random animation movement for every chain of the cloth.

Then, the bones in between and the chain bones after the mid-bone will be using the Anim Dynamics feature in the engine.

Here’s the setup for one of the chain setting:

AnimDynamics4.jpg

Any youtube video tutorial can actually show you how to setup a basic Anim Dynamic. Just make sure the Gravity Scale is turn on. Next, create a float variable and call it ‘gravity,’ click “Compile” and set the gravity value to -0.05. Note: Value of 1 is with normal gravity, the cloth will drape down and etc. -0 value is low gravity and cloth will float up.
Since this character is somewhat of a ‘ghostly’ character, we’re putting the gravity value to -0.

AnimDynamics5.jpg

Then just attached this variable to every Anim Dynamic’s Gravity scale slot in the Anim Graph.

Next is adjusting the angular limit in the Anim Dynamics constraint, this determines the amount of rotation percentage it can do. Not setting it means that it has no percentage amount of angle it can rotate.

AnimDynamics6.jpg

You can set whatever values you want, keep testing it till it meets your requirement.

AnimDynamics7.jpg

 The cones you see on the chain bones is the angular limits it can rotate. 

You can also setup a planar or spherical limit to prevent the bones from moving to any areas you don’t want it to go, a blocker you can say.

Continue setting up for the rest of the bone chains, whether some needed low gravity or normal gravity. Once you’ve done all your Anim Dynamics setup for each bone chain, just connect all of them together like a chain and link up to the character and compile. Make sure they are all connected to the gravity float. Your result would probably look like this:

AnimDynamics8.jpg

And there it is! Setting up with Anim Dynamics in Unreal Engine. 
Next topic I’ll be tackling with my other fellow animator, Fahmi, “Biped VS CAT,” which is better? So until next time.