Age | Commit message (Collapse) | Author |
|
Otherwise this can break generation of deliberately asymmetric rigs.
|
|
This function seemed to be doing a lot of unneccessary stuff, including mode switching, so it seemed worthwhile to optimize a bit.
No functional changes.
Reviewed By: sybren
Differential Revision: https://developer.blender.org/D8514
|
|
This class exists specifically for the purpose of defining and drawing the UI for bone layer assignment parameters, as seen in other rig types like super_chain, limb_rigs, simple_tentacle, etc. Only super_face was missing it for some reason.
Although the way it is used may be questionable, it's consistent with the rest of the codebase.
No functional changes.
Note for future: I would also like to use the ControlLayersOption class in even more places, and also maybe rename it and make improvements to it as needed. This would also be part of a bigger design of how Rigify handles bone organization, which I should write down.
Reviewed By: sybren
Differential Revision: https://developer.blender.org/D8802
|
|
Instead of implementing the 2 rows of layer boolean toggles, we can just use the 'LAYER' subtype on the BoolVectorProperty.
No functional changes.
Reviewed By: sybren
Differential Revision: https://developer.blender.org/D8801
|
|
Just removes an empty file and redundant function definition. No functional changes.
Reviewed By: sybren
Differential Revision: https://developer.blender.org/D8804
|
|
|
|
|
|
|
|
|
|
|
|
It is not really safe to assume that by swapping ORG to DEF you will
get a deform bone derived from the given ORG bone. The new base rig
API already tracks copying of bones, so polish it up and use here.
Note however that this tracking doesn't work with bones created
without self.copy_bone, e.g. by legacy rigs.
|
|
|
|
Currently there is 'subtype', but allow everything to future proof.
|
|
Just removing some unused imports.
I tested generating every built-in metarig to make sure I didn't remove any imports that were actually used. I also tested installing and using a feature-set.
Reviewed By: angavrilov
Differential Revision: https://developer.blender.org/D8026
|
|
Allow feature sets to register their own operators, in case
e.g. they want to add a button to the metarig UI panel.
|
|
This implements Ivan's suggestion: all the constraints on
spine bones have to be moved from ORG to its DEF bone. All
the spine ORG-bones have to be unconnected-children of their
corresponding tweak.
This is actually how chain rigs work in my own Rigify feature set,
so as far as I'm concerned this is a tried and viable solution.
The result is that, if you want to parent something to your chain
rig, you can do it in two ways: If you parent it to the ORG bone
(ie. by default), it will not inherit any squash and stretch induced
by the "tweak" bones. If you parent it to the DEF bone however,
it will behave the same as before.
This raises a backwards compatibility concern; If you want the old
behavior, you have to express that in your metarig explicitly, by
parenting your bone to the DEF bone in some way. This patch also
only affects the spine rig, which makes it inconsistent with other
chain rigs in Rigify in this regard.
Maniphest Tasks: T74483
Differential Revision: https://developer.blender.org/D7801
|
|
|
|
`context.object` can be None, so a poll function should not access
`context.object.type` without prior check.
|
|
|
|
instead of tools.
|
|
|
|
|
|
The expression {'y' or '-y'} was reduced to {'y'}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Add a separate rig aimed at transferring bones from the metarig
completely verbatim without the ORG prefix, and remove the hacky
copy_chain/super_copy option for renaming ORG to DEF. Share the
constraint retargeting feature between super_copy and raw_copy.
|
|
This will likely be useful in the upcoming new face rigs.
Also fix a bug in the bones module.
|
|
Basic IK support in fingers could be useful for easily
avoiding fingertips sliding when animating minor movement
between the hand and an object it is holding.
As there are 10 fingers, to limit the performance impact the
IK itself is implemented using just one extra control, one
constraint, and one driver. The parent switch adds one more
bone, constraint and driver.
This simple implementation requires applying IK as a correction
on top of the FK shape to share the FK controls for precisely
defining the shape, which means that stretch can't be implemented
without giving up on exact IK<->FK snapping. This also means
that unlike limbs this IK is not indended for independent use,
and must always be used as a local anti-slide fix on top of
primarily FK animation.
The parent switch is designed to work with the extra wrist
control and/or a held object pivot, demonstrating the tag
feature of SwitchParentBuilder.
|
|
|
|
|
|
|
|
The name palm is already associated with another control in Rigify.
|
|
|
|
Allow replacing the parent bone and constraint targets after all
bones have been generated. When enabled, constraints with a '@bone'
notation in their name will have their target bone replaced with
the one from the name. Using just 'MCH' or 'DEF' will replace the
prefix of the existing target. The parent bone can be replaced via
a string input field in rig options.
Tested by wrapping the simple muscle system of MB-Lab.
|
|
Implement options to generate a parent switch mechanism for the
main pivot control, and to register the pivot as a parent for other
rigs to use (including support for one level parent injection).
|
|
The control itself is simply a pivot around the end of the hand
bone, similar to those in the foot and paw. However, the main
point of it is that it allows future finger IK to use the IK
control as the parent, while still allowing the wrist to be moved
relative to it.
|
|
For better compatibility, support the Tweak layer assignment
in super_finger for the detail controls, and allow changing
the B-Bone resolution.
|
|
|
|
|
|
|
|
|
|
This is necessary to fully preserve complex custom rigging
(especially with B-Bones) included directly in the metarig.
Doing this otherwise would require implementing correct
copying of all possible constraints and bone settings.
|
|
Allow tagging parents with arbitrary strings to be later used
in selecting the best default parent for a child control.
Also add a tagged parent point at the limb IK control.
|
|
The operator itself simply snaps a chain of bones to a different
chain, so nothing in it in fact is specific to IK or FK. To make
this even more explicit, rename the operator and add some extra
options to control the tooltip and which properties are changed.
Also include some other minor enhancements in the script utilities.
|
|
|
|
|