4
$\begingroup$

Lets say I have two bones, A "Root" bone and a "Child" bone, the "Child" bone has the "Root" bone set as its parent. How can I make it keep its world position while the parent moves?

Now, the reason I ask is because I want to create some "root motion" animations for UE4 (which I have gotten working) but since the root bone moves during the animation, its really hard(or as far as i can see; impossible) to keep the IK targets I use in the same place while the "Root" bone moves.

As an example see webm-related: http://webmshare.com/nq8qa (I'm aware that this animation is horrible for root motion and in this case it won't be used)

But in that rig I have the head as the root bone, when it bobs up and down I'd still like to be able to keep the IK targets located at the feet still without bobbing with the head bone!

Any suggestions on how to do this? The easiest thing would obviously be if I could copy the world position of a bone and then paste it on the next keyframe, but I can't for the life of me find that sort of functionality!

$\endgroup$
  • $\begingroup$ I think the problem is with your ik target bones. Did you disable them from deforming the mesh? Do they have constraints on them? $\endgroup$ – eromod Jun 7 '16 at 1:06
  • $\begingroup$ They do not have deformation on, and they do not have any constraints of their own. The problem is that in UE4 I can only have one root bone, the head in this case, so even the IK targets have to be parented to it. $\endgroup$ – The Good Book Dev AIV Jun 7 '16 at 1:09
  • $\begingroup$ Maybe the problem is the root bone then. Does it have deformation disabled? $\endgroup$ – eromod Jun 7 '16 at 1:11
  • $\begingroup$ This question isn't about deformation but about the position of the bones. It used to have deformation on but tried turning it off; no difference. The question is about BONES inheriting locations from their parents, not the mesh incorrectly deforming. $\endgroup$ – The Good Book Dev AIV Jun 7 '16 at 1:14
  • $\begingroup$ Oh yes ofcourse. Maybe try disabling in the Properties Editor-->Bone-->Relations-->Inherit location $\endgroup$ – eromod Jun 7 '16 at 1:16
0
$\begingroup$

This can be done with bone constraints

  1. Add an Empty to the Scene at the base of your child bone.

  2. Disconnect the child bone from its parent (AltP) in Armature Edit Mode.

  3. In Pose Mode select the child bone, go to the Bone Constraints context Bone Constraints Context Button, and add a Copy Location Constraint targeted at the Empty.

Here is an example of the result:

An armature object being moved while one of its bones remains stationary

Above: An armature object being moved while one of its bones remains stationary

$\endgroup$
  • $\begingroup$ Actually a new problem surfaced, i can't key the position of the 4 different empties within the action editor! When I input a key for one of the empties it instead keys its LocRotScale to the armature object! $\endgroup$ – The Good Book Dev AIV Jun 7 '16 at 12:37
  • $\begingroup$ @TheGoodBookDevAIV That doesn't make sense. Can you post the .blend? $\endgroup$ – Mentalist Jun 8 '16 at 4:35
-1
$\begingroup$

It looks like it is already disabled for that bone enter image description here

$\endgroup$
  • $\begingroup$ Indeed. But when i move the root bone in pose mode this still happens: webmshare.com/qAoA0 $\endgroup$ – The Good Book Dev AIV Jun 7 '16 at 1:29
  • 1
    $\begingroup$ But isnt that the whole point of a root bone? The bone that controls them all? $\endgroup$ – eromod Jun 7 '16 at 1:33
  • $\begingroup$ It is indeed. docs.unrealengine.com/latest/INT/Engine/Animation/RootMotion But for effects like that to work, i'd need to animate the whole underlying armature AND the root bone, which gets very hard if all IK targets move as soon as I move the root bone. Thats why I also wondered if it would be possible to rather copy the world position of a bone and paste it on a later frame. $\endgroup$ – The Good Book Dev AIV Jun 7 '16 at 1:35
  • $\begingroup$ But the IK targets move relative to the target bone. So in the local space, the pole targets dont move at all. Im confused what you are trying to achieve, you want the root bone to go forward but the ik targets to stay behind ? $\endgroup$ – eromod Jun 7 '16 at 1:40
  • $\begingroup$ Yes that's precisely what I'm trying to do: Imagine having a person walking forward across a plane, the IK targets for one of the feet would then, in world space, always be still whilst the center of weight of the character(the root bone) would continue to travel forwards (then the other IK target would be still once the other foot touched the ground). As it is right now, everytime the root (center of weight) moves forward the foot touching the ground lurches forward with it: I want it to stay in the same location in worldspace one way or another. $\endgroup$ – The Good Book Dev AIV Jun 7 '16 at 1:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.