Rigify - saving pbone custom properties to metarig #104695

Merged
Alexander Gavrilov merged 6 commits from Andrej730/blender-addons:rigify_custom_props into main 2023-09-25 21:52:59 +02:00
Showing only changes of commit 076763507e - Show all commits

View File

@ -426,25 +426,26 @@ def write_metarig(obj: ArmatureObject, layers=False, func_name="create",
for custom_property, current_value in custom_properties.items(): for custom_property, current_value in custom_properties.items():
props_data = pbone.id_properties_ui(custom_property).as_dict() props_data = pbone.id_properties_ui(custom_property).as_dict()
code.append(f" rna_idprop_ui_create(") code.append(f" rna_idprop_ui_create(")
code.append(f" pbone, ") code.append(f" pbone,")
code.append(f" {custom_property!r}, ") code.append(f" {custom_property!r},")
code.append(f" default={props_data['default']}, ") code.append(f" default={props_data['default']!r},")
if 'min' in props_data: if 'min' in props_data:
code.append(f" min={props_data['min']}, ") code.append(f" min={props_data['min']},")
if 'max' in props_data: if 'max' in props_data:
code.append(f" max={props_data['max']}, ") code.append(f" max={props_data['max']},")
if 'soft_min' in props_data: if 'soft_min' in props_data:
code.append(f" soft_min={props_data['soft_min']}, ") code.append(f" soft_min={props_data['soft_min']},")
if 'soft_max' in props_data: if 'soft_max' in props_data:
code.append(f" soft_max={props_data['soft_max']}, ") code.append(f" soft_max={props_data['soft_max']},")
if 'subtype' in props_data: if 'subtype' in props_data:
code.append(f" subtype={props_data['subtype']!r}, ") code.append(f" subtype={props_data['subtype']!r},")
if 'description' in props_data: if 'description' in props_data:
code.append(f" description={props_data['description']!r}") code.append(f" description={props_data['description']!r}")
code.append(f" )") code.append(f" )")
if 'precision' in props_data: if 'precision' in props_data:
code.append(f" pbone.id_properties_ui('{custom_property}').update(precision={props_data['precision']})") code.append(f" pbone.id_properties_ui({custom_property!r}).update(precision={props_data['precision']})")
code.append(f" pbone[{custom_property!r}] = {current_value}") if props_data['default'] != current_value:
code.append(f" pbone[{custom_property!r}] = {current_value}")
# Constraints # Constraints
for con in pbone.constraints: for con in pbone.constraints: