Hey all,
I've been working on some animation sets for a half-man, half-snake character and I've run across a couple of issues that I was hoping you fantastic human beings could help me work through.
To preface: I'm no animator, so to animate this creature I've been importing existing human animations for the upper body and then using a fantastic little Maxscript called "Spring Magic" (
http://www.scriptspot.com/3ds-max/scripts/spring-magic) to have the tail follow the movements of the upper body in a slightly delayed, slither-like, motion. It's a fantastic little script and the results look much better than I could do by hand--it's very fast and once the simulation has been run, it keys all of the joints in the tail. Best of all, it's easy to undo and the simulation only runs on all of the joints in the tail below the bone that you select.. so I can manually animate some of the upper bones in the tail and re-run the simulation and it'll adjust.
The problem I'm running into is that with some of the animations, the tail drops below where the ground would be. Thus far, I've been manually adjusting the upper bones in the tail and re-running the simulation to try to keep all parts of the tail animation above where the floor would be, but it's time consuming and there has to be a better way!
Would it be possible to use built in max physics/collision to make the creature/tail and the floor hard bodies, and then use that collision in conjunction with Spring Magic to generate the keyed animation for the tail? Is there a better way to constrain the tail from moving below where the floor would be? I've never even touched max physics so I'm not sure how complicated it would be to set up.
Any tips/suggestions would be appreciated!
Replies
Though that sounds pretty similar to what I've been doing.. I've been manually animating the upper links in the tail and then adjusting them after running the simulation on the lower links, and then re-running it.
It would just save a great deal of time if I could just use some sort of physics system or constraint to keep the tail from dropping below the floor. Pipe dream?
EDIT: Maybe it would be possible to set up some sort of rotation constraint to the tail links on the ground to keep the tail grounded and only rotating along the horizontal axis?
I don't even know if that would work or how to go about setting something like that up.
A physics based sim would need running after the fact and would probably require just as much cleanup as you're doing now plus the effort of dicking around with parameters.
I'd say take a look at the script and hack it but its encrypted so that's out the window. You should be able to alter whatever controllers it creates to prevent movement in whichever axis you're interested in. I imagine they're just simple script controllers that inherit and delay rotations.
definitely try TAO - there's a whole lot of brains on there.
it's worth pointing out that whatever you do can be collapsed to keys/single controller so don't let the fact you're exporting to a game engine limit your options
I realize it's a bit late to be responding, but I'll do so for anyone else who may be looking for an answer. I was just working with this, and the limit controllers do work with the Spring Magic script. For those unfamiliar with limit controllers: