multiple objects on a motion path
PeterH
Posts: 0
Hi everyone
I suspect I may have missed something obvious in the manual, but I can't find how to get more than one object to follow a motion path. I'm trying to animate a rigged snake/worm-type object, and thought that maybe if I could have each bone follow its own THO along a winding path, then that would at least be a start.
Any ideas welcome - thanks.
Comments
Hi PeterH.
The way Carrara's motion path is currently setup, you would animate the rigged figure(or snake) first, then assign that figure, or its group, to follow a path. If you are trying for a roller coaster type effect(objects linked on a path), this usually won't work using a figures bones, due to constraints and IK tracking conflicts that would occur.
EDIT: You could animate the figure first(was a suggestion), and you can adjust a groups animation along the path as needed.
Hi - thanks for your reply.
Although it's a really clumsy way of dealing with this, I find that if I assign a motion path to a THO, then get bone 1 of the model to track it, and then duplicate the THO and its path, and then get bone 2 to track the second THO, and displace the time along the paths - well, you see how this will go, carrying on with a nearly-similar path for each bone - then it looks as if I can fake up something that will work for the sequence I want.
Obviously I have to get the movement right at the outset, as I don't want to have to edit a path-per-bone to change it later. (Though I have a distinct feeling this might happen...)
It's one of those "swimming swan" techniques, I suppose - looks smooth on the surface but there's a lot of frantic effort going on out of sight. I did an earlier sequence by animating each bone, and it eventually worked pretty well; but it took ages, and I'd like to get the next sequence done before the heat death of the universe...
Perhaps Fenric's "Enhanced Remote Control" plug-in could be used to create this motion.
http://www.daz3d.com/carrara-enhanced-remote-control
It's not cheap, but if you do a lot of complex animations it may be just what you need.
Thanks for that Dean. Looks interesting, but probably rather an extravagance for my hobbyist needs. Anyway, I'll see how I get on with my lo-tech/hi-effort approach first.
Peter
Alternatively, if you're on Windows and know a little of programming, the answer is Pycarrara. Given those two preconditions, animating a snake is relatively straightforward, mainly a matter of propagating a move along a chain with a delay (+ a little something to have the motion look more natural :-) ).
PS : This is a free plugin (as in free beer).
Thanks Philemo - sounds like a useful bit of kit, but I'm busy wearing out my (fairly) trusty old Mac.
I thought it might be possible, thus the precondition :-)
So, to animate by hand :
Each part of the snake reach the position its predecessor had after a delay. So, you could animate the head and, for instance every second, move the other parts to match the position previously occupied by the predecessor in the chain.
You can specify different bezier tweeners to make the move look more natural (natural moves are seldom linear).
Having an IK chain from head to tail will help you in that process.
Also using target helper to mark the position every part has to reach
Thanks again. This is more or less what I did with the previous sequence, and though pretty labour-intensive, it worked fairly well. Thanks for the tip about using Bezier tweeners, which would probably be an improvement on the ease in/out linear ones I used.
I'm pressing on with the inelegant and cumbersome multiple motion path experiment at present - it may well not be suitable for what I'm currently trying to do, but I think the technique might turn out to be of use in other contexts. Or maybe I'm just plain stubborn.
I agree it would be nice. I was merely trying to find a workaround while Daz was processing your feature request :-).
The problem is interesting me and I've started some experiments. I have to stop now (back to work :-( ), but I'll carry on tomorrow.
I'm experimenting along two lines :
1 Using target helper : I create a target helper with a motion path. I need to have the complete path (from head to tail). I then duplicate it as many times as there are bones and have the tweeners of the duplicated objects move along the time line, each one as a particular bone would arrive there. Eventually, I add a "inverse kinematic" modifier to each bone and set it to follow its own particular target helper. It works well, but I have some alignment issues (because the alignment given by the motion path is not reported via the inverse kinematic modifier).
2 Using constraints. I set constraints on each bone to allow rotation and prevent translation. I then set a "point at" modifier to each bone with the next bone in line as a target. I assign the motion path to the head and everything is following. The issue is that the snake tends to go straight as a stick.
I think the solution is a mix of those two lines. I'll tell you tomorrow.
Hi again. The method I've been trying is very similar to your first one, except that rather than IK, I'm using the "track" modifier on the bone, with X,Y,Z and rotation checked, so that in theory it can follow the THO (which is aligned to the motion path) more accurately. It looks reasonably promising so far, so I'll carry on for a while and see where I get to.
I've been working along those lines and it works, sort of. I'm not sure I like the result I'm getting, but it maybe my motion path which is not good to begin with.
I have another idea, but it requires another plugin :
BVH/PZ2 Exporter for Carrara. This one is cheaper, but still not free. The idea is to generate a BVH with the motion path and then to replicate the first bone rotations to the other with a delay. I can easily program a python script doing just that (an external script, not Pycarrara). Maybe a tool like BVH hacker can also help.
An other variant is to generate only the first bone, use a text editor or bvh hacker to change the name of the bone and reimport it.
To find out why I didn't like the result of my simulation, I went back to reference material :
How Do Snakes Crawl?.
I understand better now.
Thanks for the update. I'm afraid you are reaching the limits of my knowledge here (doesn't take long), and I know nothing of these python scripts of which you speak (unless they involve dead parrots). They do however seem particularly apt for the matter in hand.
As the object I am attempting to animate is neither reptile nor worm - to further increase the slightly surreal nature of this reply, it is in fact a crawling candle, based on a Magritte picture - I'm not too worried about realistic snake motion (although to accurately simulate it would be an interesting/challenging exercise). I think I'll be able to get somewhere close to what I want using the techniques we have discussed, and I appreciate your help.