I'm having trouble getting an IK rig to work how I want it to. My goal is to have a hammer in my characters arm that I can move and rotate have the arm and hand rotate properly like it would for a real person, where the forearm rotates forward and backward mostly with the wrist being pretty much still and maybe a bit of upper-arm action if the forearm goes above a certain angle forward/backward.

The position part of the ik is pretty good, but I'm struggling with the rotation. I've set up my hammer model with a child bone in it going from the handle near the point where it intersects with the hand to the head of the hammer. The IK of my hand is set to the 'hammer bone' with location and rotation applied and a chain of 4 (shoulder is the end). It sort of works, but is un-natural in that the wrist rotates instead of the arm. I'm sure it is just my fault at not being an expert. I've tried different rotation constraints, but can't seem to figure out the one that works/the right way to do it.

I've found some good tutorials on IK, but I couldn't find any sort of forum posts or tutorials that cover how to do it with a hammer or bat or similar tool where the tool drives the rig. I would really appreciate it if someone could direct me on this.

  • 1
    $\begingroup$ including pictures in your post makes it much more clear and easier to grasp at a glance, on windows you can use the Snip and Sketch app to grab part of the screen, draw on it if needed, and you can Ctrl+V it straight into your post and format appropriately. $\endgroup$ Feb 8 at 3:30
  • $\begingroup$ even better and simpler - put your blend file here $\endgroup$
    – Chris
    Feb 8 at 9:38

A character using a hammer - (Blend file below - Vers 2.77, will work in 2.8+)

I'm assuming it's the IK 'using' the hammer or sword that you're having trouble with...

Getting the swing appearing natural is probably best achieved using a curve to guide the wrist or hand and the hammer parented to the hand bone so there'd be no slippage. Other situations might be best served using the tool to drive the rigged arm and hand.

The setup in this example uses a vertical curve (arc) to guide the swing, but to avoid quirky behavior the left arm's handle (an Empty) is not forced to follow the curve directly.

Instead, a dummy plane follows the curve and that's what gets the curve modifier. (Called 'Curve Follower' in the file)

That dummy plane is made a parent for the arm's handle and this takes the arm down the curve but without glueing the arm to it. The arm can still be moved about whilst it's following the curve

The hammer is made a child of the hand bone so there'll be no slippage.

The curve itself is given it's own handle so it also can be moved during the process. (the circle empty) This is a parent to both the curve and the curve follower. It keeps the curve and follower together when the curve is moved forward and back during the swing.

The forward movement of the curve is to force the arm to extend a little and change the hand and hammer's angle. The wrist wouldn't look too hot if it was twisted to do this.

With all that working properly the arm and hand will be seen to take the hammer down in an arc shaped swing.

On impact, because the backbone is in the process of bending forward and the wrist can't go anywhere, the elbow joint is forced to fold some more and change it's angle, automatically adjusting the hand and hammer's angle as well. The curve is also moving back and that enhances the elbow's folding angle.

The hammer appears to kick up from the impact as though from a recoil. This only last for a frame so the curve's follower is animated in the reverse direction to take the hammer and arm back up a little further.

Note that impact and rebound behavior is fashioned in the Graph editor. Those keyframe handles are used to change the Bezier curves into linear style reactions so the hammer, hand, and arm, appear to bounce a little. The impact approach and bounce is actually accelerated a little.

  • $\begingroup$ Thanks, this is perfect! $\endgroup$
    – mberna
    Feb 9 at 2:18
  • $\begingroup$ Glad I could help :) I should mention, objects are locked out from selection in the Outliner. (Inadvertent selection can ruin a lot of work) Press "Home" to expand and hold your mouse button over the first shaded arrow , drag it down to open them all up again. $\endgroup$
    – Edgel3D
    Feb 9 at 2:43

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.