Rigify: Shin twists when armature deform with automatic weighs is added #77829

Closed
opened 2020-06-13 12:14:41 +02:00 by Henrik Goldsack · 8 comments

Operating system: Windows 10
Graphics card: GTX 1080

Broken:
2.83 release, 2.90 Alpha
Worked:
Shin twisted less in older versons, tested 2.74

If metarig leg joints is moved sideways, the model is deformed when parented with automatic weight.
Expected results: Model is not deformed since generated pose should be in rest pose.

Gif of shin twisting: rigifyShinTwist.gif

Steps to reproduce:
1: Create a Basic Human Metarig from rigify
2: Create a cylinder mesh represent a leg (Add loopcuts to see the twist)
3: Move the knee joint a bit in the X axis, (Not required, but it exaggerate the issue)
4: Generate rigify rig
5: Set generated armature to be parent of mesh with automatic weights

Leg mesh has now twisted a bit, when it should not have been deformed in rest pose.

The issue is fixed with tool "Apply pose as rest mode" when in pose mode on generated rig.

Bug can also be seen in this rigify tutorial:
https://www.youtube.com/watch?v=pAhbO7U1ID8&feature=youtu.be&t=365

Gif from tutorial (Look at legs):
rigifyShinTwistInTutorial.gif

rigifyShinTwist.blend

Operating system: Windows 10 Graphics card: GTX 1080 Broken: 2.83 release, 2.90 Alpha Worked: Shin twisted less in older versons, tested 2.74 If metarig leg joints is moved sideways, the model is deformed when parented with automatic weight. Expected results: Model is not deformed since generated pose should be in rest pose. Gif of shin twisting: ![rigifyShinTwist.gif](https://archive.blender.org/developer/F8614887/rigifyShinTwist.gif) Steps to reproduce: 1: Create a Basic Human Metarig from rigify 2: Create a cylinder mesh represent a leg (Add loopcuts to see the twist) 3: Move the knee joint a bit in the X axis, (Not required, but it exaggerate the issue) 4: Generate rigify rig 5: Set generated armature to be parent of mesh with automatic weights Leg mesh has now twisted a bit, when it should not have been deformed in rest pose. The issue is fixed with tool "Apply pose as rest mode" when in pose mode on generated rig. Bug can also be seen in this rigify tutorial: https://www.youtube.com/watch?v=pAhbO7U1ID8&feature=youtu.be&t=365 Gif from tutorial (Look at legs): ![rigifyShinTwistInTutorial.gif](https://archive.blender.org/developer/F8614955/rigifyShinTwistInTutorial.gif) [rigifyShinTwist.blend](https://archive.blender.org/developer/F8614971/rigifyShinTwist.blend)

Added subscriber: @HenrikGoldsack

Added subscriber: @HenrikGoldsack
Henrik Goldsack changed title from Rigify: Shin twists when armature deform with automatic weighs are added to Rigify: Shin twists when armature deform with automatic weighs is added 2020-06-13 12:20:15 +02:00

Added subscriber: @NoBlahBlah

Added subscriber: @NoBlahBlah

Can confirm happens to me as well and is very annoying. Didn't even realize this was happening at first thought it was my bad sculpting.

Can confirm happens to me as well and is very annoying. Didn't even realize this was happening at first thought it was my bad sculpting.

Added subscriber: @jemian

Added subscriber: @jemian

I had already pointed this out but I was told it was normal. The leg bones have to be aligned straight with just an x-axis rotation for the knee. The small y-axis rotation results in a 50° rool of the bones.

I had already pointed this out but I was told it was normal. The leg bones have to be aligned straight with just an x-axis rotation for the knee. The small y-axis rotation results in a 50° rool of the bones.
Member

Added subscriber: @icappiello

Added subscriber: @icappiello
Member

Changed status from 'Needs Triage' to: 'Archived'

Changed status from 'Needs Triage' to: 'Archived'
Ivan Cappiello self-assigned this 2020-10-05 10:25:06 +02:00
Member

@HenrikGoldsack please attach a blend file with the issue.
Usually a small twist is generated by the automatic roll detect when leg is bent on more than one axis.

The placement described in the video is not supported. All IKs require an active angle to let rigify detect where the limb is supposed to bend. This means that you should point knees and elbow to a direction. More rotations are implied more errors are produced. In the linked video the real problem is that the leg is straight. This means that rigify (and any other ik system based on bone position/orientation) can't detect automatically where it should point.
The manual makes pretty clear what's the requirement:

Rigify Manual

For the leg you can follow a similar process. Start by aligning the leg bones creating a straight line from the hips to the ankle, then place the foot and the toe accordingly. Remember to add a slight bend to the knee. This can be easily done by going in the side view, entering armature Edit Mode and sliding the bone junction between thigh and shin slightly toward the world’s Y axis.

If having an aligned leg it's not an option for you, in limb settings you can define manual alignment (usually x manual) then orient roll on the shin bone as the thigh bone manually (in edit mode first click on shin, then shift-click on thigh, then align to active bone through shift+N shortcut).
Remember that the knee bend is mandatory to make it work in both cases since even manual mode needs to know if it has to bend on positive or negative x.

I am closing this as invalid unless further issues pops up inspecting the attached file.

@HenrikGoldsack please attach a blend file with the issue. Usually a small twist is generated by the automatic roll detect when leg is bent on more than one axis. The placement described in the video is not supported. All IKs require an active angle to let rigify detect where the limb is supposed to bend. This means that you should point knees and elbow to a direction. More rotations are implied more errors are produced. In the linked video the real problem is that the leg is straight. This means that rigify (and any other ik system based on bone position/orientation) can't detect automatically where it should point. The manual makes pretty clear what's the requirement: [Rigify Manual ](https://docs.blender.org/manual/en/latest/addons/rigging/rigify/bone_positioning.html#limbs-bones) > For the leg you can follow a similar process. **Start by aligning the leg bones creating a straight line from the hips to the ankle**, then place the foot and the toe accordingly. **Remember to add a slight bend to the knee**. This can be easily done by going in the side view, entering armature Edit Mode and sliding the bone junction between thigh and shin slightly toward the world’s Y axis. If having an aligned leg it's not an option for you, in limb settings you can define manual alignment (usually x manual) then orient roll on the shin bone as the thigh bone manually (in edit mode first click on shin, then shift-click on thigh, then align to active bone through shift+N shortcut). Remember that the knee bend is mandatory to make it work in both cases since even manual mode needs to know if it has to bend on positive or negative x. I am closing this as invalid unless further issues pops up inspecting the attached file.
Sign in to join this conversation.
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender-addons#77829
No description provided.