Robotic Tentacles

I’m working on a goofy little short featuring a robotic appliance with ‘Doc Ock’-style arms. Here’s a quick preview: http://vimeo.com/15217875.

I created the arm using a cylinder with a curve modifier fitted to it; I then animate a hook on the far end of the curve to move and stretch the arm (see the first attached image).

I’m having two problems with the dynamics of the arm: the first is a weird twist in the cylinder that shows up about for five frames (detailed in the second image or, if you scrub through the animation, about three seconds from the end). Has anyone encountered this and found a workaround? I’ve tried twisting the hooks on both ends of the curve, and even adjusting tilt settings within the curve; neither has had any effect.

The second problem is with the material setting of the arm: I’ve set up a repeated image as a normal map along the length of the arm, with a python driver to alter the scale of the image as the arm stretches and contracts. (Again, refer to the second image or to the animation.) As it is now, the metal segments of the arm seem to telescope in and out of the claw – and I’d like that to occur at the base of the arm.

Anybody have some bright ideas to help me out here?

Attachments



The texture problem you mentioned: Try selecting the curve, tab into edit mode, select all, W>switch direction.

As for the twist, this has been a bug in blender for a long time.
It was finally fixed in 2.5, so that’s really the only way you can get rid of it in an animation. Now, you could very carefully use Tilt (T) to get rid of it on a frame-by-frame basis, but that can cause other problems. You’re better off switching the project to 2.5, seeing as it’s really quite stable by now.

I really appreciate the quick response, but I must be missing out somehow.

When I switch directions on the curve, its endpoints no longer map to the hooks. I’ve tried this in both 2.49 and 2.52, and the ‘reset’ and ‘recenter’ buttons don’t seem to set the endpoints back in place. It appears I’ll have to completely rebuild the curve modifiers and hook animation to get the texture inverted properly.

And as for 2.52 being immune to the twist problem… well, judge for yourself.

Attachments



Try 2.53, it’s what they used for Sintel (I know, dumb answer, but supposedly it’s more stable and functional than 2.52)

hmm, it must handle offsets differently…

After a few more days of work, here’s where I’m at now: http://vimeo.com/13604294.

As I mentioned before, the solutions offered didn’t really help. I very nearly went mad trying to switch the direction of arm’s control curve. To solve the material problem, I added a python driver to the x-offset of the texture that caused the arm segments to appear stationary at the claw end.

Also, I ended up upping the arm’s subsurf level so that the twist appeared in only one frame and after adding motion blur to the final render, it’s just about undetectable (see images). I think the final result’s pretty satisfying…

Once again, I truly appreciate the input and support.

Attachments



That little pinching thing comes from the curve, I don’t think there is a way to get rid of it. Maybe you could try a lattice to animate the tentacles, or better yet just an armature.

At one point I actually used a lattice like you suggest – so I had the curve controlling the lattice which in turn controlled the cylinder – and the twist was actually a bit worse! I also experimented with an armature very early on; I never ran across the twist problem, but it didn’t give me quite the kind of movement I wanted.

Both of these are worthy suggestions, however. Right now, I just have to be very careful to watch how I’m animating the tentacles and minimize the twist as much as I can. Thanks anyway!

Been continuing work on this item, but have posted it under Animations: http://blenderartists.org/forum/showthread.php?t=195979

I hadn’t really planned on posting anything else on this thread, but an alternate way to create the tentacles was brought to my attention, and I thought I’d mention it here.

Over in a Python thread, MCHammond offered that it was possible to use an array to get the same telescoping arm effect without worrying over the material mapping. I did a quick rebuild of the blend and rendered out the same animation for a head-to-head comparison. Here’s the result:

http://www.youtube.com/watch?v=ucous53J73k

The results are mixed, in my opinion; each version has it’s own issues. I’m very curious what other blenderheads think of each arm model…

Attachments


Hi DarkFoundation

What you actually need is a cylinder shape mesh and an armature.

You can use an array to create the cylinder, with the same shape as the arm you have now.

If you use B-bones you should get nice clean bends.
You can parent a bone to an empty to get the same effect as your hooks ( for the hand end) , also use ik solver so the arm bends when you move the empty.

cheers

jon