Enforcing a child bone to retain a position in world space

I’m trying to animate a view weapon reload animation for a FPS game. The weapon is bound to a bone, which is a child of the right arm. At one point of the animation, I want to move the right arm while keeping the weapon resting on the left arm. This is difficult, because of the bone hierarchy.

Is there a way to enforce a bone retain certain position and orientation in the world space, regardless of the motions of the parent bones (i.e. the right arm)?

Given three bones: Arm.R, Arm.L and Gun.
Gun is parented to Arm.R.
Give Gun a Copy Location/Copy Rotation/Copy Scale Bone Constraint targeting Arm.L and use set the influence to 0.00 or 1.00 on a keyframe, depending on whether you want it to follow Arm.L or Arm.R.

Hope that helps.

Thanks! It worked.

If I just change the influence during making keyframes, it seems that the influence is not actually recorded to the keyframes.

Sorry, I wasn’t completely clear on the process. I’m assuming your using 2.57, as this will probably only work with 2.57.

You have to right click on the Influence slider and select insert keyframe. Now, when you press Alt+A to test your animation in 3D view, you’ll notice the influence slider advance to 1.00 or decrease to 0.00.

I’m using 2.49b, but there is a “key” button next to the slider, which appeared to do what you suggested. For me it is quite non-intuitive that the animation stuff, which is usually handled in action editor, is controlled from the modifiers per keyframe. Well, if it works…