Rigify Error: generate rig with custom property from external addon (bpy.props.PointerProperty) #92530

Closed
opened 2021-10-27 12:55:48 +02:00 by Ovionis · 5 comments

System Information
Operating system: Windows-10-10.0.19042-SP0 64 Bits
Graphics card: NVIDIA GeForce GTX 1650 SUPER/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 496.13

Blender Version
Broken: version: 3.0.0 Alpha, branch: master, commit date: 2021-10-26 23:24, hash: blender/blender@8d8ce64435

Short description of error
When generating the rig, an error message is given with the following printed to the console:

Fetch rig.
Clear rig animation data.
Create main WGTS: 0.002
Duplicate rig: 0.051
Instantiate rigs: 0.001
Initialize rigs: 0.001
Prepare bones: 0.001
Generate bones: 0.002
Parent bones: 0.002
Rigify: failed to generate rig.
Traceback (most recent call last):
  File "C:\Blender\Blender Foundation\Blender\3.0\scripts\addons\rigify\ui.py", line 795, in execute
    generate.generate_rig(context, context.object)
  File "C:\Blender\Blender Foundation\Blender\3.0\scripts\addons\rigify\generate.py", line 636, in generate_rig
    raise e
  File "C:\Blender\Blender Foundation\Blender\3.0\scripts\addons\rigify\generate.py", line 624, in generate_rig
    generator.generate()
  File "C:\Blender\Blender Foundation\Blender\3.0\scripts\addons\rigify\generate.py", line 518, in generate
    self.invoke_configure_bones()
  File "C:\Blender\Blender Foundation\Blender\3.0\scripts\addons\rigify\base_generate.py", line 390, in invoke_configure_bones
    self.__run_object_stage('configure_bones')
  File "C:\Blender\Blender Foundation\Blender\3.0\scripts\addons\rigify\base_generate.py", line 291, in __run_object_stage
    rig.rigify_invoke_stage(method_name)
  File "C:\Blender\Blender Foundation\Blender\3.0\scripts\addons\rigify\utils\metaclass.py", line 146, in rigify_invoke_stage
    getattr(self, stage)()
  File "C:\Blender\Blender Foundation\Blender\3.0\scripts\addons\rigify\rigs\basic\super_copy.py", line 80, in configure_bones
    self.copy_bone_properties(bones.org, bones.ctrl)
  File "C:\Blender\Blender Foundation\Blender\3.0\scripts\addons\rigify\utils\bones.py", line 405, in copy_bone_properties
    copy_custom_properties_with_ui(self, src_name, tgt_name, ui_controls=ui_controls)
  File "C:\Blender\Blender Foundation\Blender\3.0\scripts\addons\rigify\utils\mechanism.py", line 497, in copy_custom_properties_with_ui
    mapping = copy_custom_properties(src, bone, **options)
  File "C:\Blender\Blender Foundation\Blender\3.0\scripts\addons\rigify\utils\mechanism.py", line 472, in copy_custom_properties
    ui_data_src = src.id_properties_ui(key)
TypeError: IDProperty "warp" does not support UI data
Error: Generation has thrown an exception: IDProperty "warp" does not support UI data

Note: warp is the name of my custom property. It's not used, just registered, so the custom properties panel displays it as an empty dictionary {}

Exact steps for others to reproduce the error
Register a custom property to pose bones, read the property in one of the metarig bones, then generate rig.

Run this script, to do that (go into pose mode of a metarig first):

import bpy

class Custom_Prop(bpy.types.PropertyGroup):
    pass

bpy.utils.register_class(Custom_Prop)
bpy.types.PoseBone.custom_prop = bpy.props.PointerProperty(type=Custom_Prop)

print(bpy.context.active_pose_bone.custom_prop)  # Adds the API defined entry into the bone's custom properties

bpy.ops.pose.rigify_generate()
**System Information** Operating system: Windows-10-10.0.19042-SP0 64 Bits Graphics card: NVIDIA GeForce GTX 1650 SUPER/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 496.13 **Blender Version** Broken: version: 3.0.0 Alpha, branch: master, commit date: 2021-10-26 23:24, hash: `blender/blender@8d8ce64435` **Short description of error** When generating the rig, an error message is given with the following printed to the console: ``` Fetch rig. Clear rig animation data. Create main WGTS: 0.002 Duplicate rig: 0.051 Instantiate rigs: 0.001 Initialize rigs: 0.001 Prepare bones: 0.001 Generate bones: 0.002 Parent bones: 0.002 Rigify: failed to generate rig. Traceback (most recent call last): File "C:\Blender\Blender Foundation\Blender\3.0\scripts\addons\rigify\ui.py", line 795, in execute generate.generate_rig(context, context.object) File "C:\Blender\Blender Foundation\Blender\3.0\scripts\addons\rigify\generate.py", line 636, in generate_rig raise e File "C:\Blender\Blender Foundation\Blender\3.0\scripts\addons\rigify\generate.py", line 624, in generate_rig generator.generate() File "C:\Blender\Blender Foundation\Blender\3.0\scripts\addons\rigify\generate.py", line 518, in generate self.invoke_configure_bones() File "C:\Blender\Blender Foundation\Blender\3.0\scripts\addons\rigify\base_generate.py", line 390, in invoke_configure_bones self.__run_object_stage('configure_bones') File "C:\Blender\Blender Foundation\Blender\3.0\scripts\addons\rigify\base_generate.py", line 291, in __run_object_stage rig.rigify_invoke_stage(method_name) File "C:\Blender\Blender Foundation\Blender\3.0\scripts\addons\rigify\utils\metaclass.py", line 146, in rigify_invoke_stage getattr(self, stage)() File "C:\Blender\Blender Foundation\Blender\3.0\scripts\addons\rigify\rigs\basic\super_copy.py", line 80, in configure_bones self.copy_bone_properties(bones.org, bones.ctrl) File "C:\Blender\Blender Foundation\Blender\3.0\scripts\addons\rigify\utils\bones.py", line 405, in copy_bone_properties copy_custom_properties_with_ui(self, src_name, tgt_name, ui_controls=ui_controls) File "C:\Blender\Blender Foundation\Blender\3.0\scripts\addons\rigify\utils\mechanism.py", line 497, in copy_custom_properties_with_ui mapping = copy_custom_properties(src, bone, **options) File "C:\Blender\Blender Foundation\Blender\3.0\scripts\addons\rigify\utils\mechanism.py", line 472, in copy_custom_properties ui_data_src = src.id_properties_ui(key) TypeError: IDProperty "warp" does not support UI data Error: Generation has thrown an exception: IDProperty "warp" does not support UI data ``` Note: warp is the name of my custom property. It's not used, just registered, so the custom properties panel displays it as an empty dictionary `{}` **Exact steps for others to reproduce the error** Register a custom property to pose bones, read the property in one of the metarig bones, then generate rig. Run this script, to do that (go into pose mode of a metarig first): ``` import bpy class Custom_Prop(bpy.types.PropertyGroup): pass bpy.utils.register_class(Custom_Prop) bpy.types.PoseBone.custom_prop = bpy.props.PointerProperty(type=Custom_Prop) print(bpy.context.active_pose_bone.custom_prop) # Adds the API defined entry into the bone's custom properties bpy.ops.pose.rigify_generate() ```
Author

Added subscriber: @Phigon

Added subscriber: @Phigon
Member

Added subscriber: @PratikPB2123

Added subscriber: @PratikPB2123
Member

Changed status from 'Needs Triage' to: 'Confirmed'

Changed status from 'Needs Triage' to: 'Confirmed'
Demeter Dzadik self-assigned this 2021-11-03 12:18:51 +01:00

This issue was referenced by 905cfc4040

This issue was referenced by 905cfc4040e71bcc60d5526506814431bd0a8e58
Member

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'
Sign in to join this conversation.
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender-addons#92530
No description provided.