Page MenuHome

Rigify limbs needs enhancements to better support unguligrade animals (horse) setup
Needs Triage, NormalPublicDESIGN

Description

As reported by @J. O. (Papercut) in T78217 paw rig type appears to have limitations on the unguligrades rear limbs.

There is a patch D8154 submitted by @Demeter Dzadik (Mets) that solves the issue on the lower part of the limb by replicating the front limb setup.
This has some critical issues need to be solved:

  • the ik is now ending before the knee.
  • adding a shoulder-like bone corresponding to human thigh to extend the ik will not extend the b-bone and tweak setup. Tweaks are often used to simulate muscles and fix deformation issues and in this kind of setup the part with more muscle mass will not be tweakable at all. Moreover all the parenting/switching mechanism will not consider this pseudo-shoulder bone as real limb root for the domain options. If @Demeter Dzadik (Mets) setup should stay it will probably require either:

    ~~ - [ ] modify the basic copy (or add a new rig type) to support a simple b-bone split + tweak chain. In this case we could end having overlapping tweak controls on the knee.~~

    Or better:

    - [ ] Create a rear_paw separate sample based on 5 bones as input including the first fk extra control that will inherit all the b-bone split parameter and tweaks from the general properties. - [ ] (double check) main control and all the parenting/switching mechanism should be moved to the first bone.

There are also some minor issues that needs to be tackled:

  • the foot ik control is not positioned correctly.
  • Code the new rear_paw sample following design from attached blend file
  • Replace the sample in horse metarig
  • Test if other animal metarigs can benefit an upgrade

side note:
The controls naming is open to discussion. In my opinion naming should follow comparative anatomy (so human centric) because will make easier for the user understand the supposed usage of controls. Naming bones as in the animal anatomy can be confusing since most of terminology is obscure for basic users.

Event Timeline

Ivan Cappiello (icappiello) renamed this task from Rigify limbs needs enhancements to better support unguligrades animal (horse) setup to Rigify limbs needs enhancements to better support unguligrade animals (horse) setup.Tue, Jun 30, 5:20 PM
Ivan Cappiello (icappiello) updated the task description. (Show Details)
Ivan Cappiello (icappiello) updated the task description. (Show Details)
Ivan Cappiello (icappiello) updated the task description. (Show Details)
Demeter Dzadik (Mets) added a comment.EditedThu, Jul 2, 1:12 PM

It's interesting that there is already a rear_paw rig type in Rigify, but it's just a copy of the paw rig type. Perhaps that could be extended to support 5-length chains?

Do you have an example of how exactly the rigging should be done though? It's not entirely clear to me what would be the best control setup for the end of the limb. Which segment or segments should have this "reversed" control, which in the current paw rig type is called "bonename_heel_ik.L".

On somewhat of a side note, I'm interested what you think of the control setup that Juan Pablo made for the legs of Autumn, the dog from the shortfilm Spring:


I didn't dive into how this works under the hood, but it feels really nice imo, and it doesn't use an IK constraint with a chain length of more than 2. But it being a dog, I'm not sure how relevant it is here. Just thought it might be useful.

Also note that while I am definitely interested in working on this, I'm not working with any quadruped characters at the moment at the studio, so I don't promise that it's something I will do in the near future :x

The rear_paw as sample exists just to give the user a placement idea. It's basically exactly the same super_limb>paw type.

Autumn leg seems to handle the thing quite well from what i see but it seems there is a combination of automation and some ik_toes that are involved. Rigify it's considering just the limb connected chain and fingers, palm and all the rest are considered separate sub-rigs.
The issue with unguligrades like horses is that ideally they are walking on the last finger's digit.
So that's the complication for unguligrades whose need to include a sort of digit bone to their chain in rigify.

from some quick tests i did it can be done including one more connected digit bone to the end of chain and extending the same ik_heel setup to the digit, but we will need to create a proper rear_paw sub_rig in limbs to achieve that.

so this is my proposal to handle the rear_paw. i am attaching a blend file with both metarig and reference rig to be generated.

Awesome, the rig in that file looks good to me. I'd be happy to submit a patch that implements this in a rig type when I have time, unless someone beats me to it. Added it to my TODO list!

Since Design is done in my opinion, i am assigning the code part to @Demeter Dzadik (Mets) unless @Alexander Gavrilov (angavrilov) can find some time to handle it before him.