"Add Custom Shapes" fails with traceback (in Blender 3.0.0)

Issue #559 resolved
Luke Graybill created an issue

Adding custom rig shapes fails as of commit 56ecd1a, after adding the custom shape objects to the blendfile. Only the hip shape gets added properly before the error.

Edit: this happens in Blender 3.0.0 alpha, but works fine under 2.93, so maybe it’s not a concern right now 🤷‍♂️

Here’s the traceback:

Python: Traceback (most recent call last):
  File "C:\Users\killa\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\Diffeomorphic-import_daz-56ecd1a1a7be\error.py", line 247, in execute
    self.run(context)
  File "C:\Users\killa\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\Diffeomorphic-import_daz-56ecd1a1a7be\figure.py", line 1449, in run
    self.makeSpine(pb, 2*spineWidth)
  File "C:\Users\killa\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\Diffeomorphic-import_daz-56ecd1a1a7be\figure.py", line 1498, in makeSpine
    pb.custom_shape_scale = s
AttributeError: 'PoseBone' object has no attribute 'custom_shape_scale'

location: <unknown location>:-1

Comments (8)

  1. Luke Graybill reporter

    Almost there with 65bcfb7, but it looks like the expected value should be a vector now as well:

    Python: Traceback (most recent call last):
      File "C:\Users\killa\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\Diffeomorphic-import_daz-65bcfb746cde\error.py", line 247, in execute
        self.run(context)
      File "C:\Users\killa\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\Diffeomorphic-import_daz-65bcfb746cde\figure.py", line 1463, in run
        self.makeSpine(pb, 2*spineWidth)
      File "C:\Users\killa\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\Diffeomorphic-import_daz-65bcfb746cde\figure.py", line 1512, in makeSpine
        setCustomShapeScale(pb, s)
      File "C:\Users\killa\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\Diffeomorphic-import_daz-65bcfb746cde\figure.py", line 1646, in setCustomShapeScale
        pb.custom_shape_scale_xyz = scale
    ValueError: bpy_struct: item.attr = val: sequence expected at dimension 1, not 'float'
    
    location: <unknown location>:-1
    

  2. Luke Graybill reporter

    A follow up here, this change does seem to effectively make a rig constructed with custom shapes in blender 3.0 unusable (for bone posing, at least) in 2.93 because the custom_shape_scale is obviously not being set. This means that blender 2.93 interprets the custom shapes as having a scale of 0 and the bones cannot be seen in the viewport. As far as I can tell, the rig still works properly, in that it loads poses from the library and deforms the meshes, but invisible bones makes the pose mode useless.

    I don’t see what could be done about this from the addon, but just wanted to point that out. I don’t know what the plan is with blender 3.0 as far as dealing with that backwards incompatibility, but hopefully they’ll come up with something (a property method seems useful for this, but I assume addons can’t add properties to the PoseBone object).

    Edit: the workaround I’m using when I need to go back to 2.93 is to turn off custom shape display for the armature:

  3. Log in to comment