2

So, my first model is rigged using rigify, so I am not an expert and have been coming here for answers to a few questions regarding some problems the model has and the best way to deal with them.

my latest issue is my models forearms: enter image description here

They are find in the T-Pose and most other poses. But if I use them with the hand IK, rotating the hand so it is palm up, instead of down: enter image description here

...not ideal. How do most models deal with this? Do I need to alter the bones, or does my model need to be more complex? Is there something rigify would have done about this that I configured incorrectly?

EDIT: Here is an image of the bone rotations: enter image description here

EDIT2: More loop cuts result: enter image description here enter image description here enter image description here

EDIT3: Twisting more of the arm: enter image description here

EDIT4: Changed the model for 90 degree twists: enter image description here

EDIT5: So, I have merged the duplicate verts on my model and removed the larger faces on me knees. I have added more cuts to my arm, and it looks.. ok? enter image description here enter image description here

EDIT6: reference image for bevelling enter image description here

user1539405
  • 119
  • 3
  • 11
  • This should not happen. Rigify's generated rig has so-called twist bones, that's 2 bones for the upper arm and 2 for the forearm. Check the deform bones (DEF-....) on layer 30. IIRC there is an option that controls the number of twist bones but right now I don't know where it is. – Blunder Aug 24 '21 at 20:01
  • Have a look here and compare it to your rig: https://blender.stackexchange.com/q/216326/107598 – Blunder Aug 24 '21 at 20:03
  • Hi. You appear to be referring to the blue sphere's as they are the "tweak bones". Two in the upper arm, two in the lower. How are they supposed to act? If I forget the hand IK and rotate these bones manually, I just end up moving the deformation up the arm and into the torso. – user1539405 Aug 24 '21 at 20:33
  • No, I was referencing the deformation bones. They are green colored, on layer 30 (Pose mode). But since the arm of your rig has 4 blue spheres, that's correct & it is not the reason for your problem. The forearm has 2 bones and only the lower one should rotate with the hand: https://i.stack.imgur.com/do6el.gif If you like you can upload your file to https://pasteall.org/blend/ After the upload, copy the new web address (URL) here so we can access the file. – Blunder Aug 26 '21 at 10:44
  • I edited my post with the hand twist to show the current bone rotation. I imagine enough twisting would cause it to deform eventually, but I'd prefer to be able to have a full palm down and palm up at least. https://pasteall.org/blend/6b30bb7f40e0401f873eaaa2bcaa4eeb Here is a link to the .blend file (and thank you for taking the time!). I think the issue is just that my model isn't robust enough, but I tried adding more cuts to the forearms and it still deformed with all the extra vertices to work with. – user1539405 Aug 26 '21 at 18:20

2 Answers2

3

First, your model has duplicated vertices. Remove them with a Merge By Distance (M) in Edit mode.

Furthermore, the knees have overlapping faces. You need to remove the larger ones: enter image description here

To fix the twisting, you need more loops along the forearm and legs, otherwise there's no way the geometry can 'smooth' the twisting from wrist to elbow. With more loops you can have 100% effect of the twist bone in the wrist vertices and 0% in the elbow vertices and a gradual progression in between.

Don't forget to adjust the weights after you fixed the mesh. Parent the mesh to the rig again With Automatic Weights.

Example with extra loops for the forearm, upper arm, and 2 more for the elbow:
edge flow example 1

The hand is rotated by 180° compared to the shoulder:
edge flow example 2

Example animation with the extended arm (about 270° rotation). The upper arm rotates also a little, especially when the thumb points to the floor:
turn the hand animation 1

Same movement but with bent arm:
turn the hand animation 2

Remember, for a natural range of motion the wrist can only twist about 90 degrees in each direction from the 'resting' position, that's 180 degrees total range. So any rotation bigger than that has to be complemented with upper arm rotation. If you just twist the wrist 180 degrees in one direction without also rotating the upper arm the pose will look unnatural, because it would actually be unnatural. enter image description here

Also good to know: the forearm is comprised of two separate bones, the Ulna and the Radius: enter image description here

The wrist rotation is one of these bones rotating around the other at the wrist, but not at the elbow: enter image description here

If they were to rotate more than 90 degrees to one side, they would have to bend to wrap around each other. Since bones are not that flexible, they would break.

Alexandre Marcati
  • 1,805
  • 8
  • 31
  • Added an edit2 to the main image showing the result of this. I think you are right, but my hasty test looks like a twizzler and I have no idea how I'd need to edit the model to make it look natural – user1539405 Aug 26 '21 at 18:58
  • Well that's because you are twisting the wrist 180 degrees to one side, it doesn't look natural because that movement range is not natural in humans. If you make sure your upper arm and elbow are perfectly still and only twist the wrist, you will notice it only has a range of about 90 degrees to each direction. So from the T pose, it should only rotate in one direction until the palm is facing forward and in the other direction until the palm is facing backwards (actually a little less cause the range is smaller in this direction). – Alexandre Marcati Aug 26 '21 at 19:43
  • If you stand in a T pose and try to rotate your hand so your palm faces up, you'll see your whole arm up to your sholder will also rotate, cause you can't make your palm face up by only twsting your wrist. – Alexandre Marcati Aug 26 '21 at 19:46
  • Added Edit3 of my twisting more of the arm to accommodate for the movement with the twist moving into the upper arm and shoulder. I noticed I could perform this movement with my upper arm near the shoulder hardly moving at all. I attempted to just rotate the first 3 tweak bones in the arm to mimic this. But I just ended with the twist in the upper arm. So I'm still at the point where I can perform a real action that causes a distortion in the model. I don't expect it to be perfect, but it hurts the most basic motions. – user1539405 Aug 26 '21 at 20:51
  • As an example, hold your hand up to the right of your head as if you're holding a hammer, about to swing down on a nail. If you then unfold your arm into a T-Pose, your hand is palm-up. So my current model can't hold a hammer without either the forearm twisting from the default kinematics or my upper arm and shoulder twisting from manual edits. I know this is an issue with my model, but I'm not sure how to fix it. – user1539405 Aug 26 '21 at 20:53
  • Also, added an edit4 for a "palm-forward" model. It'd accommodate holding a hammer, but I am assuming it would have other limitations, or every T-Pose would do this? – user1539405 Aug 26 '21 at 21:27
  • 2
    The T-pose is fine. The limbs of your model just need more edge loops as suggested by Alexandre. I've added an example animation. It's just the hand IK and upper arm IK that are keyframed. For a better deformation at the elbows and knees, you can give them extra loops as you did for the knees and change the topology a bit. Have a look here https://youtu.be/jByzklhVwH8 and here https://youtu.be/UvjRA0gqhWo – Blunder Aug 27 '21 at 12:11
  • @user1539405 the T-pose is not the problem, the problem is that in your exemple you twisted the wrist more than 90 to one side. To TOTAL range of motion of wrist rotation should be 180, 90 degrees to each side from the resting position. – Alexandre Marcati Aug 27 '21 at 13:13
  • The resting position is one in which the wrist is aligned with the elbow. For exemple, if you stand in a T-Pose and rotate your hand so the palm faces straight up you will notice your elbow is pointing down. You can then twist your wrist so your palm is (almost) facing straight down without rotating the elbow, but if you try to keep rotating in that direction your elbow will also rotate. – Alexandre Marcati Aug 27 '21 at 13:14
  • @AlexandreMarcati Thanks a lot for the update! I'll have a go at making the changes tomorrow. Is there any way to integrate the range of motion for rotation into the IK of the hand? It'd be nice to have the example animation you have be possible as the IK matches the rotation of a held object, for example. – user1539405 Aug 28 '21 at 03:48
  • @AlexandreMarcati So, I added an "EDIT5" in the original post with the changes. Compared to the edits you made to the model it still looks worse, so I'm wondering if that's down to additional modifiers for your own convenience? Aside from that it'd be great to know if there's a good way to set up the elbow target IK to work with hand rotation – user1539405 Aug 28 '21 at 15:19
  • You could use drivers to automate the bone rotations (https://youtu.be/_T9RURzspP4). But I have no idea if this is a good idea for a Rigify rig. I know you can customize Rigify but you should know what you're doing else things can break. For the question about "the IK matches the rotation of a held object" I suggest posting another separate question. – Blunder Aug 28 '21 at 21:44
2

(Addendum in addtion to the Alexandre Marcati's answer)

Your "Edit5" looks good. Keep in mind that your model is really low poly. It has only 484 vertices and faces.

When the palm of the hand points up the faces of the edge loop must rotate by about 90° around the X-axis at the elbow and roughly another 80° to reach the armpit. That's about 170° over the full length of the arm. And there are only 3 faces in the forearm and another 3 in the upper arm to do the job:

low-poly version

Please note, in the animated GIFs in Alexandre Marcati's answer which I've added the model has Shade Smooth enabled. In your screenshots the model is Shaded Flat and the Cavity shading option is enabled which highlights the edges even more. The screenshot above is closer to yours because it has only a different matcap and is flat shaded.

If you don't want to have your model so "blocky" add a Corrective Smooth and a Subdivision Surface modifier (+ Shade Smooth)

smooth + subdivisions

One last note: The rig in your provided blend file is bugged! The Rigify layer buttons for the right arm are missing. I've recreated it with the script in the linked question: Rigify->Generate Rig doesn't create all rig layers in the properties ui

Here the blend file with the animation as shown in the GIFs: https://pasteall.org/blend/c9c3e90e67f14b1cb9b3d069cd292734 The left knee has a different topology to improve the bending.

To see the IK pole target of the elbow have a look here: why are rigify's IK pole targets Hidden in pose mode

Blunder
  • 13,925
  • 4
  • 13
  • 36
  • Thanks for the additional notes, I really appreciate them. I am certainly not great with modelling and animating and am just getting properly into it, so I really appreciate how helpful people are being with these issues. I've downloaded the fixed model and had a look at the knee and I can see why that would work a lot better, though I'll have to fiddle around with how to do it (learning process!). – user1539405 Aug 29 '21 at 14:09
  • I'm not quite sure what you mean by bugged though. In the Rig Layers of the item panel on my original model I have Arm.R for the IK, FK and Tweak bones. Perhaps my upload was corrupted in some way? Or am I looking at the wrong area? Also, thank you for the smoothing tip. I like the idea of blocky, but it may not work. Although, if there an easy way to cut an edge into a new face? e.g. two faces meet at a corner, and you "cut" the corner, forming 3 faces, the two original, and the third which joins them instead of a corner (I'm explaining this badly..). – user1539405 Aug 29 '21 at 14:13
  • Added an Edit6 as an example image in the original post. The word I was looking for was Bevelling xD. And don't feel like you need to answer all this. I already consider everyone here to have given more than enough of their time. These are very much "if you feel you have time" questions – user1539405 Aug 29 '21 at 14:16
  • You're welcome. For topology have a look here and here. -- Strange, the Rig Layers in my Blender looked like those in the linked question. The buttons "Arm.R (FK)" and "Arm.R (Tweak)" are missing. I don't why this now and then happens. -- BSE is a question and answer site, it's not like a common forum. One "thread" has ideally one question and one or more answers. Feel free to post another question about the bevel (or have a look at the Bevel modifier & set the mode to percentage. ;-) – Blunder Aug 29 '21 at 17:06