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
diff options
context:
space:
mode:
authorAlexander Gavrilov <angavrilov@gmail.com>2020-12-21 12:29:17 +0300
committerAlexander Gavrilov <angavrilov@gmail.com>2020-12-21 15:23:04 +0300
commit1ada831ca1981c028a0a2b2983c0c384b2656ea5 (patch)
tree564f3ecb31458d29014903e495baa2512633c415 /rigify/rigs/basic/raw_copy.py
parenta7c0667baa646896d676ad154c66aed914cc560c (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.py27
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