View Full Version : Many, Many Legs

04-29-2005, 09:40 PM
I'm confused again....
I'm trying to produce a multilegged creature (see below) with 11 sets of legs. Its motion is a wave of flaps that proceeds from the first segment back to the tail and repeats. I want to be able to control the speed of the flapping at will, and have figured out how to do it with Cyclist pretty easily, by linking the speed of the flapping to the speed of a null, etc.
The problem is, I don't know whether or not the flapping will, under some circumstances , cause the legs to intersect or overlap, since testing this will require them all to move. If I just cut and paste the motion graphs, I could test this, but if it's wrong and requires adjustment....well, adjusting each limb, testing again, could take weeks.

I had the idea that I could make the behavior of each bone be a driven copy of the identical bone on the previous limb, offset by five frames(my calculated distance). That way, If the motion was off, the most I'd have to do is adjust one set of curves and the others would copy. Sounds great, but none of the "Copy Channel" plugs seem to behave in a rational way. SetDrivenKey offsets the angles by approximately 90 degrees, even without Cyclist. Channel Follow copies the motion, but only as keyframed, not as governed by Cyclist, and Cyclist doesn't seem to like to like that either.

It looks to me like my problem has to do with the order in which LW evaluates its plugins and motions. Is there any way to adjust that sort of stuff manually WITHOUT EXPRESSIONS? (I just want to stress that because somebody recently tried to help me out with some LScript, but I was way too ignorant to make any decent use of it, so don't waste your time.

04-30-2005, 12:50 AM
It's looking like MotionMixer. rather than Cyclist might be my solution here. Some initial fiddling seems to show that time warping may be what I need, although the ability to keep everything in sync without tedious shuffling may be difficult. We'll see. Still, any other solutions always welcome.

04-30-2005, 01:29 AM
No, I take that back. MotionMixer is creating too many bizarre motion artifacts--ignoring bone weights, even ignoring edited channels that ought not to be affecting anything. Feh.

04-30-2005, 06:59 AM
Perhaps you can use expressions for it? Christian bloch (blochi) had made one such animal for the star trek enterprise series. He made movement using expressions to control it.

You can check it out on his site. www.blochi.com

04-30-2005, 11:20 PM
Thanks! That Blochi clip is really cool. I think it's a dead-end, though, since he mentions using the Cycler plugin from Prem Subrahmanyam (sp?) HERE (http://www.premdesign.com/relativ.html)
, which was I think "bought in" by Newtek and is part of LW now, as Cyclist. It's a neat set of plugins, though, that has a slightly more flexible setup than the current arrangemet, more like an expression builder. I may have to download the trial and see if it allows the sort of flexibility I need, but it looks a little dicey. The Blochi thing would be relatively easy in this regard, since his creature's legs aren't long enough to overlap each other, it seems, so he just has to have a reasonable stride-length and go. This is not to take anything away from Blochi's stuff--he's way above me on a lot of levels, especially, it seems in designing his creatures so that setting them up doesn't make him want to tear out his hair.

05-10-2005, 12:15 PM

Thanks for the kudos, and this really IS very much like the exact creature I did back then. Even down to the antennas... And yes, I did pull my hair out ;) , because i tried cycler and it would not work as expected. Tried Expressions, but would not work either.
The tricky part is, to automate it just enough that you dont need to animate ALL the legs, and also have enough control that they dont slip or move weird. So, the first idea was to have all the legs rotation follow the frontlegs, but with a slight offset. That works pretty well, as long as its moving at a steady pace. Follower is all you need for that. BUT: if the caterpillar stops, that whole thing falls apart, because the legs in the back would keep moving. And that becomes very obvious, and looks just wrong.. So, the idea is, to have control over the lag delay. Which turned out to be impossible with follower and build in expressions.
That is why I uses Prem's RELATIVITY. Every leg has a simple expressions, that references the motion of this rows frontlegs, with and offset that is multiplied by the position of a Null. Like in pseudo-syntax: leg5.rotation(time)=frontleg.rotation(time - 0.1*controlnull.position.Y) . Where 0.1 is this legs delay, and that number would just increase down the chain.

Its still a pain to setup, but the animation is then done just with the 2 frontlegs, and the delay Null.

Good luck,

05-10-2005, 12:56 PM
Thanks for the information! The pseudocode you posted looks like just what I was looking for! I actually ended up creating a very similar effect to what that would get, but rather than do it the easy way by knowing what I was doing, I managed to hack it together from a few different utilities and expression-builder expressions. The long explanation is in this thread here. (http://vbulletin.newtek.com/showthread.php?t=36519)
But the short explanation is that I used a null's Y position to govern the speed of leg-motion, and applied Cyclist with an offset frame count to all the sets of legs so they'd move properly, but all stop and start at the same time.

I'd like to say "great minds think alike", but I'm afraid that in this case, for me, it's more like "a million monkeys at a million typewriters....".