Physics driven secondary animation

Creating solid and reliable secondary motion is always tricky!
If you have any suggestion im all ears…
What have you tried?

Usually there are 2 ways, dynamics or expressions…
Which ones have you had luck with?

Dynamics usually works well for longer animations, but as we are dealing with short looping clips, I think expressions with frameCache gets us closest to what we want. But needs alot of tweaking!

I have attached a .ma file with a handkeyed simulation (visual target). We basically want the same result simulated, to save us from doing this on thousands of files :cool:

If you have time, give it a go and see how close you can get!

Cheers guys!

I’m eager to try a delay expression - effectively a cheat where I clone a bone and have it play the same animation but with a few frames of a delay. I think this could work nicely on backpacks and some cheap cloth sims.

In the past I’ve worked with a dynamic system for wobble areas like breasts - as I recall it was a simple sine wave linked to the impact of feet to the ground plane.

I did some breast jiggle (and other bouncy elements of a character) using spring controllers and look at constraints in Max a while ago. Nothing fancy really, but I thought it was clever and it worked quite well with no complex rigging or expressions required (which is just as well as I’m no tech artist). They weren’t actually dynamically animated, but baked into the animations, but still did the job. Might not work for packs as the results would probably be too rubbery. But here’s how it worked. Might be a direction to look into.

The setup is dead easy.

Make a point helper and a bone for the body part in question. Position and orient the bone as required (in the case of the breasts it was essentially a breast bone pointing out from the rib cage). Align the point helper to the bone and move it away along the local axis. Assign the bone a lookat rotation constraint and assign it to the point helper. I made the parent of the breast bone the upnode which seemed to work to avoid twists.

Then I assigned a spring position constraint to the point helper. You can mess with mass and drag, but I don’t remember if I bothered or if the defaults were fine. The point helper is parented to the chest bone (not the breast bone). Now it moves with the chest, but lags behind with adjustable springiness (this might be a similar result to what Rick described above but probably more rubbery). The body is skinned to the breast bone which looks at the springy point helper.

The reason the point isn’t used as a bone directly is that the body could be moving quite far each frame and the point can get left far behind and if it was used as a bone directly it could have huge stretching. Not ideal for my needs. Instead the point is allowed to drag as far as it needs to, but the bone in the skeleton only looks at it so you get rotation lag, but no stretch.

Robin - prebaking works fine, but you also need to be careful in your transitions.

Yeah. Looping can be an issue too. If I remember rightly (it was a few years ago) it worked most predictably with fewer hitches to use the middle of three cycles when doing this, then the end matches the start. Otherwise there can be jumps at the beginning or end that you can’t get rid of easily (as there’s no keys generated).

The animation system we were using sampled the objects so they didn’t need keyframes to work. It also worked with other keyframeless controllers like noise.

I have used either a lag or delay controller in Max to achieve this, as well as used the spring controller like Robin. I’ve also used Max’s Reaction Manager (it’s like Maya’s SDK) to drive the rotations of bones when trying to simulate cloth predictably. It worked well but required a lot of oversight for specific situations.

Alternatively to Robin’s approach of using the middle of 3 cycles for pose book-ending, you can always use a list controller and animate the weights of that controller from the spring constraint down to a static pose of the bone for the book-ending.

We’ve done it using baked simulations that we’d later hand tweak for cycling, etc. Not the best solution for large volume like Johra mentioned, but it always worked really well for what we needed.

[QUOTE=anim8d;4138]use a list controller and animate the weights of that controller from the spring constraint down to a static pose of the bone for the book-ending.[/QUOTE]

Yeah I have used that also to great effect (non max there are other ways to blend out the constraints or the effects but same ideas). The game is going to be blending /jumping between states anyway so even if its not perfect it should get smoothed out enough and then just fix the ones that are really standing out.

In an ideal situation those items would get some ingame simulation applied to them so it would not have to be baked down, so that you have the simulation happen regardless of the animation blend sate…but that is not always possible.

[QUOTE=bclark;4144]In an ideal situation those items would get some ingame simulation applied to them so it would not have to be baked down, so that you have the simulation happen regardless of the animation blend sate…but that is not always possible.[/QUOTE]

Fortunately for us, it is possible, so we use it as often as possible (See Red Faction: Guerilla- fellow forum member Randall Hess was primarily responsible for creating the simulations for that title to great effect). We still have the baked-down solutions for situations like realtime cinematics where we may want a very specific behavior to occur.

[QUOTE=anim8d;4151]Fortunately for us, it is possible, so we use it as often as possible (See Red Faction: Guerilla- fellow forum member Randall Hess was primarily responsible for creating the simulations for that title to great effect). We still have the baked-down solutions for situations like realtime cinematics where we may want a very specific behavior to occur.[/QUOTE]

The cloth sim worked really well on Masons jacket, top job on that. Did you guys blend out of sim and into pure skinning only at any points?

Thanks, the only time we turned simulation off was while the characters were in the interior of vehicles. That way we didn’t have to worry about setting up proper collision inside the vehicles when you wouldn’t see it anyways. Samanya, the player character for our latest DLC has much more simulation running than Mason’s coat and it turned out nicely. http://tiny.cc/rfg_dlc_clothsim

As far as the in DCC app simulation goes I was actually watching a video from a 2007 Autodesk Masters class the other day. The guy was demonstrating how they were able to get a lot of secondary motion using Max’s spring controllers. I used them very minimally a long time ago but what he was able to accomplish was rather impressive.

We use a hybrid version of both dynamic and keyframe methods. Apply spring ctrls in max or dynamic secondary animation(bonus tools) in maya, whichever software we are asked to work on from clients. And then bake the animation and tweak it to make it loopable or to fix the penetration. It works well for us since the dynamics give us a pretty gud motion, all u need to do later is tweak it, which in most of the cases works fine. Where it doesn’t work is if u are having a joint based clock system. We had to almost reanimate all of the clock animation since the sims were no where close to what we were lookin for.