Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/rigify
AgeCommit message (Collapse)Author
2022-01-25Rigify: Add ability to disable installed feature setsDemeter Dzadik
This patch is a continuation of D8519, was also suggested in T88711#1170152. It adds a checkbox for each feature set in the Rigify Preferences, to disable/enable that feature set without having to completely remove it from the file system. Challenges that were hopefully successfully tackled: - Keep list in sync when user manually adds or removes things through the file system instead of the "add/remove feature set" buttons in the UI. - Avoid re-building the feature set list all the time so that the checkbox states can actually be stored when the user exits Blender. - Disabling a feature set means calling its unregister function, then rebuilding the rig types and metarigs lists/menus. - Some renaming slipped in because I found the variable name "feature_set" a bit confusing. If needed, I could split this change into a separate patch or just forget about it, but I think the longer names help here. Testing would be welcome, since things turned out a bit more tricky than expected. In a follow-up patch I would like to do a code quality pass, to split the code a bit better here. There is a bit too much stuff in __init__.py in particular. I will get started on that when this gets close to being finalized. Reviewed By: angavrilov Differential Revision: https://developer.blender.org/D12260
2022-01-22Rigify: fix the face convertor if nose.004 connects directly to lips.Alexander Gavrilov
2022-01-14Rigify: minor tweaks.Alexander Gavrilov
- Clear the IK toe control animation in the relevant operator. - Allow changing the euler order of finger master control via metarig.
2022-01-14Revert accidental commitDemeter Dzadik
This reverts commit f0f48da209de08d66fd9e3b311e379687c7ba699.
2022-01-14Address feedbackDemeter Dzadik
2022-01-11Rigify: refactor leg to make modifying the foot roll mechanism easier.Alexander Gavrilov
2022-01-09Rigify: enable the split toe option by default in metarigs and samples.Alexander Gavrilov
2022-01-09Rigify: support separate IK and FK controls for the toe.Alexander Gavrilov
Currently the leg rig tries to share one control between IK and FK modes, which looks as a nice optimization at first, but makes it impossible to IK/FK snap correctly if the IK foot is rolled forward. This commit adds an option to generate separate toe controls.
2022-01-05Cleanup: fix typos in source codeBrecht Van Lommel
Contributed by luzpaz. Differential Revision: https://developer.blender.org/D5801
2022-01-03Rigify: use Aligned inherit scale in the limb FK chain.Alexander Gavrilov
2022-01-03Rigify: support uniform scaling of limbs via the master control.Alexander Gavrilov
Existing IK & FK controls only allowed squash and stretch scaling.
2021-12-31Rigify: clear the script datablock when re-generating.Alexander Gavrilov
2021-12-14Rigify: Clean up "Rigify Buttons" panel UXDemeter Dzadik
The overall goal of this patch is to improve the UI/UX of the panel previously known as "Rigify Buttons" which presumably takes its name from the old "Buttons Panel" which is now known as the Properties Editor. Before: {F10511640} After: {F10511624} - Make Rigify less reliant on name matching when it comes to maintaining the link between the metarig, the UI script, the generated rig, and the widgets collection. (Use pointers only, names shouldn't matter!) - Change the "Advanced" toggle button into a real sub-panel. - Split up the "Rigify Buttons" panels into "Rigify Generation" and "Rigify Samples" panels in non-edit and edit mode respectively, to better describe what the user will find there. Changes in the Rigify Buttons panel: - Removed the "overwrite/new" enum. - If there is a target rig object, it will be overwritten. If not, it will be created. - If a rig object with the desired name already existed, but wasn't selected as the target rig, the "overwrite" option still overwrote that rig. I don't agree with that because this meant messing with data without indicating that that data is going to be messed with. Unaware users could lose data/work. With these changes, the worst thing that can happen is that your rig ends up with a .001 suffix. - Removed the "rig name" text input field. Before this patch, this would always rename your rig object and your rig script text datablock, which I think is more frustrating than useful. Now you can simply rename them after generation yourself, and the names will be kept in subsequent generations. - Single-column layout - Changed the "Advanced Options" into a sub-panel instead. On request: - Added an info message to show the name of the successfully generated rig: {F10159079} Feedback welcome. Reviewed By: angavrilov Differential Revision: https://developer.blender.org/D11356
2021-12-01Cleanup: quiet character escape warningsCampbell Barton
2021-12-01Cleanup: trailing space & tabs to spacesCampbell Barton
2021-11-25Rigify: add options to change the layer for the finger IK control.Alexander Gavrilov
2021-11-25Merge branch 'blender-v3.0-release'Alexander Gavrilov
2021-11-25Rigify: bump version before Blender release.Alexander Gavrilov
2021-11-05Fix T92530: Rigify is trying to copy addon propertiesDemeter Dzadik
The copy_custom_properties() function needs to check if a property is actually a custom property created by the user, or a property defined by an addon. I think we don't want to copy addon-defined properties here, since that's not what is usually meant by "custom property". Reviewed By: angavrilov Maniphest Tasks: T92530 Differential Revision: https://developer.blender.org/D13084
2021-11-03Rigify: Operators to copy and mirror parametersDemeter Dzadik
This patch adds two new operators to the Rigify drop-down menu: Copy Parameters to Selected Bones and Mirror Parameters. I use both of these on a daily basis when working with Rigify, and I don't know how people live without it. {F10171452} To test the more unusual cases, you can grab my [feature set](https://gitlab.com/blender/CloudRig) and this file: {F10178637} There are two sets of symmetrical bones, with totally assymetrical parameters of all kinds of types. (CollectionProperty of PropertyGroups with just a couple strings, PointerProperty at Object datablock, BoolVectorProperty, EnumProperty, FloatVectorProperty, and the basic things like bools and ints, all seems to work!) In a later patch if people like the idea, I would also add the Copy Rigify Parameters button to the Copy Attributes addon's Ctrl+C menu (that would only appear when Rigify is enabled, of course). Reviewed By: sybren, angavrilov, #animation_rigging Differential Revision: https://developer.blender.org/D11606
2021-10-27Rigify: fix two cases limb motion in rest pose.Alexander Gavrilov
The master control rotated to match the limb rest roll, because for an unknown reason the roll was reset in edit pose. Inner tweaks could rotate if roll of master tweaks wasn't matched. To fix this, compute and apply the interpolated roll.
2021-10-27Rigify: rework limb IK stretch limit and add a manual swing structure.Alexander Gavrilov
After introduction of the Custom space it is possible to easily use Limit Distance within rigs while accounting for rig scale. This allows replacing the Stretch To + Limit Scale mechanism used for the IK stretch switch in rigify. Instead, use the freed bone to manually handle limb swing before allowing the actual IK solver to handle limb contraction. This improves stability in marginal cases of limbs nearly straight in the rest pose, because previously the solver could destroy the slight knee bend in the process of swinging the limb forward, causing a flip.
2021-09-20Rigify: support generating mirrored linked duplicate widgets.Alexander Gavrilov
After the custom shape scale property was split into an XYZ vector, it is possible to generate truly mirrored widgets using the same mesh for the left and right side. The widgets Rigify generates are originally symmetrical, but in practice they usually need to be tweaked to fit the character better, and proper mirroring matters. This commit implements widget mirroring and enables it by default. When reusing widgets left from a previous generation the code tries to detect whether they were actually originally mirrored by checking object scale to avoid flipping in pre-existing rigs. As an aside, reusing pre-existing widgets is made more robust to random name changes by building a table via scanning the old generated rig before overwriting it.
2021-09-19Rigify: support executing an arbitrary script after generation.Alexander Gavrilov
Just in case the user wants to apply some custom changes to the generated rig, allow executing a text datablock as a python script after generation completes. The script is executed with the generated rig active and in object mode. When executed by rigify, the generator instance is available via `rigify.get_generator()`. Outside of Rigify generation the return value is None.
2021-08-29Rigify: unhide the rig before generation if it is hidden.Alexander Gavrilov
Rig generation fails if the target rig that is to be overwritten is hidden, either directly or via collections. To improve usability, try unhiding the object, and fail with an appropriate message if it doesn't work. In addition, slightly refactor code that selects a suitable unhidden collection to use for generation. This started as D11355 by @Mets, but was somewhat refactored.
2021-08-27Update addons for D9697 "_RNA_UI" removalHans Goudey
This is a followup patch for D9697 which applies the changes to the addon reporistory. Almost all of the changes are in rigify, but there is one change in "curve_tools" and two trivial changes in IO addons. Differential Revision: https://developer.blender.org/D9919
2021-08-18Revert "Rigify: Clean up "Rigify Buttons" panel UX"Demeter Dzadik
Accidental commit by misclicking in VSC, yikes! This reverts commit 9a7afcbcae91978db8173e205f0ec73f1d6ad440.
2021-08-18Rigify: Clean up "Rigify Buttons" panel UXDemeter Dzadik
The UX for this panel felt like it could use a facelift. It was extremely ugly to look at, nothing about it was done the correct way and it broke every possible modern Blender UI convention it could. Before/After: {F10135475} {F10159077} After generating a rig: {F10159078} - Removed the "overwrite/new" enum. - If there is a target rig object, we overwrite. If not, we create. I think that's intuitive behaviour without the extra UI element. - If a rig object with the desired name already existed, but wasn't selected as the target rig, the "overwrite" option still overwrote that rig. I don't agree with that because this meant messing with data without indicating that that data is going to be messed with. Unaware users could lose data/work. With these changes, the worst thing that can happen is that your rig ends up with a .001 suffix. - Removed the "rig name" text input field. Before this patch, this would always rename your rig object and your rig script text datablock, which I think is more frustrating than useful. Now you can simply rename them after generation yourself, and the names will be kept in subsequent generations. - Renamed the panel from "Rigify Buttons" to "Rigify Generation" in pose/object mode and "Rigify Samples" in edit mode. - Changed the "Advanced Options" into a sub-panel instead. - Single column layout. - Added an info message to show the name of the successfully generated rig: {F10159079} Feedback welcome. Differential Revision: https://developer.blender.org/D11356
2021-08-18Rigify: extract skin parent mechanism mixing into a generator class.Alexander Gavrilov
This allows cleanly avoiding reparent propagation between mirror siblings, which causes weird deformation in chains.
2021-08-15Rigify: add an operator to upgrade the old face rig to modular face.Alexander Gavrilov
Converted from the script originally included in the feature set. This operator aims to preserve compatibility with the existing weight painting, but not animations, since the latter is impossible anyway due to major differences in the rig chains.
2021-08-14Rigify: call request_reparent from build_parent to simplify skin API.Alexander Gavrilov
Realized this can be simplified while writing wiki dev docs...
2021-08-11Cleanup: strip trailing space, remove BOMCampbell Barton
2021-08-10Rigify: move new face rig components from the experimental feature set.Alexander Gavrilov
Apart from imports the files are identical to the latest version. Ref T89808
2021-07-20Rigify: clear driver errors after generation.Alexander Gavrilov
In the process of re-generating a rig, drivers that reference it from other objects can temporarily become invalid. This sets an error flag in the driver, stopping its evaluation, so the error doesn't clear out even when it becomes valid again. To fix stuck drivers, loop over all objects in the file after generation and refresh their drivers by fake modification.
2021-07-16Rigify: add utilities for working with rig instance parent chains.Alexander Gavrilov
2021-07-16Rigify: allow adding a custom root bone to the metarig.Alexander Gavrilov
If the metarig contains a bone called 'root', it is used as the root bone for the generated rig instead of creating a new one. This allows changing root location, orientation, size, widget, or adding custom properties that show up in the rig UI via raw_copy.
2021-07-13Rigify: don't print "No options" from BaseRig.parameters_ui.Alexander Gavrilov
To make it easier to call super(), instead of printing in the dummy base method, detect and special case it in the caller code.
2021-07-11Rigify: add more utility code for the upcoming face rig.Alexander Gavrilov
Move widget and driver utilities from the feature set and rewrite create_circle_widget. Also increase the line length for autopep8.
2021-07-06Rigify: add utility and operator classes for the upcoming face rigs.Alexander Gavrilov
- LazyRef utility class that provides a hashable field reference. - NodeMerger plugin for grouping abstract points by distance. - pose.rigify_copy_single_parameter operator for copying a single property to all selected rigs that inherit from a specific class (intended to be used via property panel buttons).
2021-06-27Fix T89394: update for mandatory keyword argument in Python API.Alexander Gavrilov
The line was missed when updating in rBA448eeb681 after rBf29a738e2. Also remove an unneeded import.
2021-06-23Rigify: Remove Legacy ModeDemeter Dzadik
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
2021-06-18Rigify: update to follow B-Bone property changes in D9870.Alexander Gavrilov
2021-06-08Update for changes in the Python API using keyword only argumentsCampbell Barton
2021-05-31Rigify: Make operators searchable by adding a Rigify header drop-downDemeter Dzadik
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
2021-05-11Fix addons to use PoseBone.custom_shape_scale_xyz.Alexander Gavrilov
Use new properties introduced in rBfc5bf09fd88c33.
2021-03-02Fix error in rigify property generationCampbell Barton
37af7e130b99865575f1fa2315ef806f815b0f42 missed this change.
2021-02-22Rigidy: update for internal changes to deferred property registrationCampbell Barton
2021-02-12Rigify: revert D8801 to restore dots marking layers of the active bone.Alexander Gavrilov
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.
2021-02-12Rigify version bump.Alexander Gavrilov
2021-01-25Cleanup: strip trailing spaceCampbell Barton