diff options
author | Alexander Gavrilov <angavrilov@gmail.com> | 2020-12-21 12:29:17 +0300 |
---|---|---|
committer | Alexander Gavrilov <angavrilov@gmail.com> | 2020-12-21 15:23:04 +0300 |
commit | 1ada831ca1981c028a0a2b2983c0c384b2656ea5 (patch) | |
tree | 564f3ecb31458d29014903e495baa2512633c415 /rigify/rigs/basic/raw_copy.py | |
parent | a7c0667baa646896d676ad154c66aed914cc560c (diff) |
Rigify: generate UI script for custom properties from metarig.
Improve auto-generated UI naming and update basic.pivot, basic.raw_copy
and basic.super_copy. Also allow raw_copy to generate builtin widgets.
Diffstat (limited to 'rigify/rigs/basic/raw_copy.py')
-rw-r--r-- | rigify/rigs/basic/raw_copy.py | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/rigify/rigs/basic/raw_copy.py b/rigify/rigs/basic/raw_copy.py index 407241cb..2ebbe133 100644 --- a/rigify/rigs/basic/raw_copy.py +++ b/rigify/rigs/basic/raw_copy.py @@ -20,7 +20,9 @@ import bpy -from ...utils.naming import strip_org, strip_prefix, choose_derived_bone +from ...utils.naming import strip_org, strip_prefix, choose_derived_bone, is_control_bone +from ...utils.mechanism import copy_custom_properties_with_ui +from ...utils.widgets import layout_widget_dropdown, create_registered_widget from ...base_rig import BaseRig from ...base_generate import SubstitutionRig @@ -156,13 +158,31 @@ class Rig(BaseRig, RelinkConstraintsMixin): def parent_bones(self): self.relink_bone_parent(self.bones.org) + def configure_bones(self): + org = self.bones.org + if is_control_bone(org): + copy_custom_properties_with_ui(self, org, org, ui_controls=[org]) + def rig_bones(self): self.relink_bone_constraints(self.bones.org) + def generate_widgets(self): + org = self.bones.org + widget = self.params.optional_widget_type + if widget and is_control_bone(org): + create_registered_widget(self.obj, org, widget) + @classmethod def add_parameters(self, params): self.add_relink_constraints_params(params) + params.optional_widget_type = bpy.props.StringProperty( + name = "Widget Type", + default = '', + description = "Choose the type of the widget to create" + ) + + @classmethod def parameters_ui(self, layout, params): col = layout.column() @@ -171,6 +191,11 @@ class Rig(BaseRig, RelinkConstraintsMixin): self.add_relink_constraints_ui(layout, params) + pbone = bpy.context.active_pose_bone + + if pbone and is_control_bone(pbone.name): + layout_widget_dropdown(layout, params, "optional_widget_type") + #add_parameters = InstanceRig.add_parameters #parameters_ui = InstanceRig.parameters_ui |