Age | Commit message (Collapse) | Author |
|
The line was missed when updating in rBA448eeb681 after rBf29a738e2.
Also remove an unneeded import.
|
|
This patch removes the Legacy Mode checkbox from the addon preferences and all associated code.
Ability to convert old legacy metarigs is not removed.
LegacyRig wrapper class is not removed.
Various legacy-only functions and imports were not removed, with the reasoning that they are still used by [this unmaintained feature set](https://github.com/cessen/cessen_rigify_ext).
Initially discussed in T88711, let's put any further discussion here, since that thread has many topics.
Reviewed By: angavrilov
Differential Revision: https://developer.blender.org/D11516
|
|
|
|
|
|
This or something like this is necessary because the new search menu doesn't search the sidebar nor the properties panel for UI buttons. I think the ability to run Add Sample and Generate from the search menu is useful, so being able to do it without having Developer Extras enabled is important.
I would also like to propose some new operators in the future, and this patch sets up a nice spot for them to go into.
I didn't remove any buttons in this patch, but would like to do in future, so these things will once again only exist in one place (which would be the header).
Reviewed By: angavrilov
Differential Revision: https://developer.blender.org/D9094
|
|
Use new properties introduced in rBfc5bf09fd88c33.
|
|
37af7e130b99865575f1fa2315ef806f815b0f42 missed this change.
|
|
|
|
The built-in layer button UI only draws dots if the property
belongs to an Armature, as a special behavior hard-coded in C.
This returns to drawing the UI from Python but using cleaner code.
|
|
|
|
|
|
|
|
Normally properties are copied to controls and made accessible
in the rig UI, so they should be overridable. Properties created
via make_property are already marked as such.
|
|
The issue is that if a different object has a constraint or driver
targeting a control of the rig, renaming the bone after join when
re-generating the rig would change that target to the ORG bone.
To fix this, apply the renames to the temporary copy of the metarig
before joining it to the rig armature object. This also requires
moving the driver freeze to this stage.
|
|
|
|
Improve auto-generated UI naming and update basic.pivot, basic.raw_copy
and basic.super_copy. Also allow raw_copy to generate builtin widgets.
|
|
|
|
Exceptions when the list is empty, and failing to clear the list.
|
|
This preserves the standard widget naming even with custom widgets.
|
|
|
|
Use DEF: or CTRL: prefix on constraint names to move them during relink.
|
|
Register the most generic widgets in the list and add a few more.
Use it to assign a nicer looking shoulder widget in human metarigs.
|
|
Since rigs like super_copy already support using widgets assigned
directly to metarig bones, implement adding them with the metarig.
|
|
As pointed out in comments to T73114, using the same name has downsides.
In addition, remove the widget parent object that was inherited
from the old pre-collection way Rigify worked and has no other
purpose than grouping objects like the collection already does.
Rename the widgets and the collection when renaming the rig.
Finally as an aside add a couple of options to create_widget.
|
|
Also make error handling more robust and extend constraint relink mixin.
|
|
- Don't try to add an update callback to CollectionProperty.
- Restore exact alignment of the super_finger master control to 1st bone.
- Add an option to run a sub-object after all methods of the parent.
- Fix wrong identifier in SideZ.from_parts.
|
|
This is for convenience of more complex utilities, since
the functions themselves immediately force the closures.
|
|
Add a LazyRigComponent class that has to be explicitly enabled
to start receiving callbacks.
Support calling GeneratorPlugin instance callbacks in the same
stage they were created.
|
|
|
|
Originally the raw_copy rig used a standard API of rigify to rename
the bone after generate already added an ORG prefix. However, if the
bone already had that prefix, generate didn't add the second one to
avoid 'ORG-ORG', and thus raw_copy removed the only remaining prefix.
As the simplest solution, hard-code handling of this rig in generate.
This isn't that bad, because this rig is special by definition, and
the special handling consists in doing nothing.
The original API based code is kept commented out as an example.
|
|
Also fix metarig Inherit Scale support in limbs.super_finger.
|
|
Add support for 5 bone chains to the limbs.paw rig.
Implement a new limbs.rear_paw rig, which provides a three bone IK
mechanism designed to keep the first and third bones nearly parallel
by default (based on a YouTube video by @Pieriko as suggested by
@icappiello).
Implement a limbs.front_paw rig with automation that aims to
keep the angle between second and third bones mostly stable
by default (has influence option), as suitable for front paws.
The horse and wolf metarigs are updated to use these new rig
types, with the horse rig further overhauled by @icappiello.
Maniphest Tasks: T78463
Differential Revision: https://developer.blender.org/D8496
|
|
It has been long enough since 2.82 when Swing was added to use this.
|
|
|
|
In 2.90 derived bone lookup was tightened to fix certain issues when
bone names use the .001 suffixes by using explicit data about which
bone is derived from which one. Unfortunately, legacy rigs don't
provide that info, so add a special case using matching by name.
Also fix incorrect error reporting method name.
|
|
This patch removes the two drop-down menus from the Rigify addon preferences, replacing it with a checkbox and a UIList.
Before:
{F8766280}
After:
{F8791382}
There is also a small bit of new functionality. The following keys are now recognized in the rigify_info dictionary, similar to Blender addons:
`'link', 'doc_url', 'tracker_url', 'description', 'author', 'version', 'warning'.`
They will be displayed underneath the UIList when the feature set is the active one in the list.
**Ideas for future**
I think this UI better enables us to do some cool things in the future:
- Disable feature sets without uninstalling them.
- Have a base set of feature sets in the list that aren't actually installed. Instead, selecting them would just reveal a button that opens their repository URL. This could be used for officially supported but external feature sets, such as what Legacy should be.
Feedback welcome.
Reviewed By: angavrilov
Differential Revision: https://developer.blender.org/D8519
|
|
It seems like the make_constraint() function was designed to allow fully
defining a constraint with a single call, but currently when creating
Armature constraints, its targets have to be created separately after
the make_constraint() call.
This patch addresses this, allowing you to pass a "targets" dictionary.
Armature constraint targets only have three properties, which are "target",
"subtarget" and "weight". For convenience, since 99.99% of the times the
"target" will be the rig, that doesn't have to be specified, but it can be.
Differential Revision: https://developer.blender.org/D9092
|
|
This operator used to demand a huge chunk for itself as the sole inhabitant of the Rigify panel in the sidebar with a bunch of options that are only relevant when the operator is actually ran. Also for some reason it was split up to two separate operators for the sake of having "convert all actions" vs "convert current action" buttons.
So, I removed that UI from the sidebar entirely, turned all the options into parameters on a SINGLE operator which asks for those options when ran using invoke() and draw(). This operator now lives in the Pose drop-down menu, which is where you would expect to find it. This is also searchable with the new search menu, unlike the sidebar.
Also note that this operator has precisely //nothing// to do with Rigify, and should be a separate addon. I would split it out in a separate patch.
Reviewed By: angavrilov
Differential Revision: https://developer.blender.org/D9096
|
|
rig script
In days of old, Custom Properties couldn't store datablock pointers, so a driver variable was used to reference the script datablock, thereby keeping it attached to the rig when the rig is linked or appended. This can now be achieved much more elegantly with one short line of code.
Reviewed By: angavrilov
Differential Revision: https://developer.blender.org/D9082
|
|
It seems the order changed, maybe because of a Python version
upgrade. To fix, ignore the position of the 'utils' module.
|
|
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
|
|
|
|
|
|
|
|
|
|
|