Rigify generation broken on current master
Closed, ResolvedPublic

Description

System Information
Ubuntu 14.04

Blender Version
Broken: current master (build from Nov 20th)
Worked: 2.79

Short description of error
Rigify generation broken on current master

Exact steps for others to reproduce the error

  • Enable Rigify addon
  • add Meta Rig
  • Generate --> Python error

Fetch rig.
Clear rig animation data.
Traceback (most recent call last):

File "/home/julien/Bureau/blender-2.79-784614655f5-linux-glibc219-x86_64/2.79/scripts/addons/rigify/ui.py", line 756, in execute
  generate.generate_rig(context, context.object)
File "/home/julien/Bureau/blender-2.79-784614655f5-linux-glibc219-x86_64/2.79/scripts/addons/rigify/generate.py", line 182, in generate_rig
  bone_gen.bbone_in = bone.bbone_in

AttributeError: 'Bone' object has no attribute 'bbone_in'

location: <unknown location>:-1

location: <unknown location>:-1

Works on 2.79

See rBa819ef65c07

The bbone properties for Ease In/Out were renamed (e.g. bbone_in -> bbone_easein), and there are now Rig Restpose (Bone/EditBone) vs Pose (PoseBone) versions of these. Drivers and editmode editing should use the restpose ones.

Joshua Leung (aligorith) triaged this task as Confirmed priority.Mon, Nov 20, 11:50 AM
NOTE: I started looking into fixing this, and quickly found that there were quite a few occurrences of this. So, I'll leave this for you guys to handle.
Lucio Rossi (luciorossi) removed Ivan Cappiello (icappiello) as the assignee of this task.EditedMon, Nov 20, 12:12 PM

Yes I confirm it's related to https://git.blender.org/gitweb/gitweb.cgi/blender.git/commit/a819ef65c07131ddb203a55bd8dc4e3207130b64

It looks like already made rigs are not affected. The new bbone_easein takes in the same value as the bbone_in previously defined, so it's just a matter of patching Rigify

unfortunately now we have 2 bbone prop, one for edit and one for pose bones. The pose bones one is reset to 0 and this breaks compatibility with old rigs

@Lucio Rossi (luciorossi): Could you explain how/why the rigs get broken if the setting found in the pose bone settings gets reset to 0? What exactly is the problem?

If it's just a matter of animation + drivers on old files not getting version patched to use the new properties (i.e. the settings don't work out of the box when loading old files), it's not such a big problem to fix. (While we haven't actually got version patching code that does this sort of thing anymore AFAIK, in the early 2.5 days we did have a script that could be used for easily patching files; it's also not too hard to add version patching code to fix these problems)

Or is it something else? For example, are there now problems deforming meshes if you just keep animating only the edit property and leaving the posemode one on 0 (as AFAIK, it should be ok just doing it that way?)

@¿? (edtion): Thanks for the patched addon files.

@Joshua Leung (aligorith) the problem is with the property name and fixing it in Rigify is straightforward.

As I mentioned in the concern to https://developer.blender.org/rBa819ef65c07131ddb203a55bd8dc4e3207130b64 the problem is with animations and drivers not pointing to the correct property anymore, and this is independent of Rigify.

This can be solved again - I guess - just changing the name of the property

Anyway, I don't know if patching is a good solution. Maybe good if the script is in the file loader, but It certainly is not if it's an overhead to all animators wanting to use 2.79a. The choice is up to blender coders though