Game Development Community

Move Parent Bones, w/o moving Children

by Ben Jones · in Artist Corner · 01/16/2006 (11:10 am) · 16 replies

Hey, I recently have had some great success in creating a non biped skeleton, so make out of max bones. I can get the dts to export and i can load my own dsq animations onto it.

But I was wondering if there was a way to keep the child bones still when you just want to move the parent bones. I know that this can be done with a biped but I haven't been able to do it with just max bones.

Thanks
Ben Jones

- Oh if you haven't noticed already I'm using 3ds max.

#1
01/16/2006 (11:25 am)
You probably want to set things up so that you can do FK/IK flipping on the fly based on how you want to control the node as well as some extra scripted controls for keeping target goals locked onto a particular location in world space.

Logan
#2
01/16/2006 (2:35 pm)
Hmmm how would i switch it to FK?
#3
01/17/2006 (10:33 am)
I was told from someone that you can do it with manipulators, but i don't know how to do either IK/FK flipping or use the manipulators.
#4
01/21/2006 (8:57 pm)
Alright, i think i found my own solution. I just separated the bones from each other and then linked them to a helper, I havent tested it to see if it will export yet but i will tomorrow.
#5
01/22/2006 (3:30 am)
..an IK handle is just an object that controls bones.. it is not actually a bone.. it helps set keyframes for animations quicker... if you have an ik handle though standard fk will not work!
but you can delete it from the animations that dont need it in and revert back to fk...
ik handles are put in the "neverexport:" section of your config file anyway as they are mere controllers...

as for moving parents without moving children.. you can do that to a point..
in the hierarchy rollout (i think) there is a section on inherit that is setup like this

rotate
x[] y[] z[]

basically unclick the boxes and the children bones wont inherit that attribute.. so unclicking all rotation boxes means the children will move with the parent ..but not rotate with it...

get it?
#6
01/22/2006 (8:08 am)
Thank you Barry! :)
You cleared up a few things for me and your way works much better than my own.

Edit: oh one more thing, how do I make the animation like Linear?. When i do the keyframes it tries to smooth out the animation which makes all the bones jump around when I'm just trying to move one parent bone.
#7
01/22/2006 (10:41 am)
Go to the curve editor ...
find the object/bone you animated..
select a keyframe and then right click it..
you should have in and out options for each keyframe displayed as curved and non-curved lines...
these demonstrate what way the space between keyframes is interpolated..
you want the straight diagonal line.. the fact that its a straight diagonal line signifies it moves straight to the other keyframe in a mechanical fashion..

***tip: select the bone you want to adjust in the viewport before going into the curve editor and the editor will automatically expand to it..
***tip2: select all keyframes and right click to affect them all at same time..

hope ur good to go!
#8
01/22/2006 (1:01 pm)
I followed your instructions barry but it doesn't seem to work. when I did it the curves on the curve editor were still curved, so i set all the lines to linear but that didn't work either. here is a gif of what is happening.
www.geocities.com/wc3images2/Anim.gif
#9
01/22/2006 (1:58 pm)
I am unsure as to what u want? ...

the bone is moving in a straight line from point to point.. i even checked with a makeshift ruler pressed against the screen (a pen)..

the very start of a bone is its pivot point.. a bone chain is merely a number of pivot points linked together.. the visual you see is for your convenience

...ik chains restrict movement if it is the connected children bones that you are worried about..
i use ik chains to keep feet facing straight when doing run cycles and such...


if you could describe the type of animation you are trying to re-enact i would have a better idea of how to help you..
#10
01/22/2006 (7:31 pm)
I have a green pointer helper for reference, its not connected to anything.

In the Gif above on my 2 key frames, you can see that on one the parent bone is straight and on the other it is raised upwards. On both keyframes the children are pretty much in the exact same place and it is just the parent bone that has changed.

But if you watch the animation (above) you can see that the children and the parent move. If you watch where the bones are and use the point helper as reference you can see what I'm talking about.

The entire model is moving when it should just move the parent.

Here is what I want, without all those inbetween keyframes: www.geocities.com/wc3images2/Good.gif

The reason behind this is being able to make a custom skeleton and being able to have fewer bones and have more control over which way they move. I'm not using this for a specific problem at the moment but I would like to know how to do it incase I want to do something with it in the future.
#11
01/23/2006 (7:55 pm)
Highly unlikely that scenario will ever happen to be honest..

think about a generic skeletal structure .. your basically dislocating a limb and hoping the children bones stay put!...

if i had to do this .. (maybe necessary for cgi?) .. i would use dummies ...

i would link the leftmost bone that u move to a dummy, as well as the one that would be its child if you set it up typically..making a point of aligning the dummy to the pivot of the child bone...

so thats
....................................dummy01
.............................................|
.................parent_bone ________child_bone

i would add ik to the parent_bone and its nubbin

align the ik to the dummies pivot

then i would set the swivel angle of the parent bone to be the dummy

basically it simulates the child-parent relationship without actually being one ... both the bones are children of the dummy in reality... :/

even then you still gotta have 3 keyframes to make the arc you want.. most rotations involve arcs..

dummies are an animators friend! :D
#12
01/24/2006 (10:45 am)
Ok lemme go through your steps.
1. Create dumm01
2. Align dummy01 to bone02 (you cant align it when its linked, it will move everything else)
3. Link bone01 to dummy01
4. Link bone02 to dummy01
*5. Add Hi Solver to bone01 and bone02
6. set the swivel on the IK solver to dummy01
7. enjoy teh pwnage

alright, so this is what I gather from your post, there is a flaw in it though, you can't make an IK solver connecting Bone01 and Bone02, 3ds max won't allow it because they aren't linked to eachother.

Now, you said to link the parent to its nubbin for hte Ik solver, so I setup this again and i gave bone01 a child, bone02. and then i had bone01 and bone 03 linked to the dummy. and i gave bone01 and bone02 a hi solver and set the swivel to dummy01, but when i tested it out it didn't work. well at least not the way I'm aiming for.

Bone01 and bone02 were completely deattached from bone03 and the rest of the children (boy this is getting to be a big family) and tehy would rotate around the ik solver and the dummy when the rest of the bones were moved.
#13
01/24/2006 (11:26 am)
...i think you got it second time around from your post...

..basically your trying to move a parent bone without affecting a child bone...

...but you want the bones to be linked... ?

heres another less messy method ...have two bone chains going in opposite directions starting from the same position... link the parent (boneA) of one of the bone chains to a dummy (dummyA), as well as the parent (boneB) of the other.. taking care to place them accordingly (use align b4 linking if needs be).... all the pivots should be aligned together ..boneB,boneA and the dummyA

this way boneB will rotate around boneA while the dummy acts as the parent.. but boneB and boneA will still move with the dummy ....

stick another dummy(dummyB) aligned to the nubbin of boneB in if u intend using boneB as an arm bicep or such... this way you can link dummyA as a child to dummyB so the dummy can still rotate it as a bicep would..

it is good practice to always leave the nubbins of bone chains in til export.. they are useful for IK and other such things.. and if you name them all with "_nub" at the end all you need to add to your cfg file is
"
neverexport:
*nub
"

we done? ..do i win a prize? (*wry smile)
the possibility of ever coming across this scenarios is slim tbh ...but hopefully u have learnt something


the thing to remember is the fundamentals:
bones are just pivot points linked.. (this is why u can use boxes, dummies etc)
to link bones they dont need to touch physically, but must have a child-parent relationship in the hierarchy...
think in terms of pivot points and child-parent ..once you do this you can understand animation and visualise how to solve the problems that occur in your own head..


let me know if I've solved the mystery of the virtual problem?
or even if you have more questions that i might be able to answer?..
#14
01/24/2006 (12:06 pm)
I figured out a way to do it, im just waiting for geocities to get back from whatever its doing so i can upload a picture of the hierarchy i have.

Edit: ok here it is:
www.geocities.com/wc3images2/Solution.gif
Ok, so the bases will move all the bones underneath them. the controls will move the bone underneath them, the links are used when a bone is moved and there si a break in the chain, at this point you just use the align tool to move the other bones into place. it might sound kinda wierd but it works really well, and keyframing works too.
#15
01/24/2006 (2:58 pm)
Hehe.. who is the pupil and who is the teacher...

cus i think i've just been schooled!

*tips hat..
#16
01/24/2006 (4:05 pm)
Lol thanks :)
it took me a little while to come up with it