Keeping bones from affecting others in the skeleton

Wondering how to accomplish a certain animation task? Ask here.

Moderators: Víctor Paredes, Belgarath, slowtiger

Post Reply
Xelah
Posts: 4
Joined: Tue Oct 27, 2009 3:26 pm

Keeping bones from affecting others in the skeleton

Post by Xelah »

I've got a couple of work arounds for this, but I think they're silly and don't work exactly how I need them to, so I thought I'd ask.

I've got a figure that consists of a long string of bones. It doesn't branch off, it's just one long unbroken line of them. (It's for a train snaking through some mountains)

The catch is that the bones further down shouldn't affect more than a few behind them at a time. If I have one long string of them, the chain gets unwieldy and starts screwing up the whole animation. The two work arounds I have are to put the links further down in their own skeleton that is a part of another skeleton or two pick various intervals and add a bone that isn't connected to any of my layers and re-parent it at a spot where I want the parent bones to not move.

Both methods are a little annoying, surely there is a better way to exhibit bone control than that, anyone?
User avatar
slowtiger
Posts: 6246
Joined: Thu Feb 16, 2006 6:53 pm
Location: Berlin, Germany
Contact:

Post by slowtiger »

Do you move the bones with the train, or do you slide a layer over the bone chain (the so-called "snake hack")?

The thing is, if you have a chain of bones, any rotation of the top bones will also rotate all other child bones. That's the way it works, and normally that's very useful.

Now your problem is (I assume) that you want to move a couple of items (wagons) undistorted from side to side, following a path (the track) and each item rotating for itself so it stays on the track. Two possible solutions:

1. (without bones) Have all wagons be separate (group) layers. Set the origin of each layer right in the middle of the wheels at the height of the track, so a layer rotation will rotate the wagon quite easily on the track.

Select "Rotate to follow path" in the layer properties. Use the translate tool (1) to create keyframes (smooth) for the rolling wagon. You'll see that the wagon will rotate every time the motion path changes direction. You can further adjust the exactness with the rotate layer tool (3) (be careful to first set keys for the normal rotation!).

Once you're satisfied with the animation, you duplicate the layer for each wagon and change its content. Now all wagons follow the track, but at the same spot ... all you need to do now is to move each layer in time (sequencer in vers. 6) or move the motion keys in each layer (vers. 5).

2. (with bones) Create a bone layer with a straight line of bones (use the grid). Put your train into a group layer and this inside the bone layer so the train is exactly the height of the bone chain. Now in frame 1 rotate all bones so they match the track. Use the translate tool to move the train layer from side to side. The bones will distort the train so it matches (hopefully) the track. (This is what I call "the snake hack".)
User avatar
jahnocli
Posts: 3471
Joined: Fri Oct 29, 2004 2:13 pm
Location: UK

Post by jahnocli »

As with so many aspects of animation, there is more than one way of doing something. Take a look here:
viewtopic.php?t=1443&highlight=deform
-- it's a way of pulling a shape though a deforming mesh. Could be useful for a train...
You can't have everything. Where would you put it?
Xelah
Posts: 4
Joined: Tue Oct 27, 2009 3:26 pm

Post by Xelah »

It's a bird's eye view, so matching with the wheels is out, but that might still work. I didn't even think of that. Thanks.
Post Reply