Rigify: choose regenerate target by rig_id, and clean WGT- objects up after generation and fix minor bug #51094

Closed
opened 2017-03-31 10:18:32 +02:00 by Osamu Takasugi · 12 comments

rigify has 'rig_id' property, but rigify makes always new armature object. this patch fix this behaviour.

and after rig was generated, many WGT object remains in scene. this patch makes rigify to clean these objects up.

and this patch makes WGT objects have unique name per metarig. if multiple metarig is in same scene, generated rig has correct bone shapes.

and this patch avoid runtime exception that I experienced. (some addon (not rigify) makes weird property, that like key exists but rna_idprop_ui_prop_get returns None)

rigify-patch.diff

rigify has 'rig_id' property, but rigify makes always new armature object. this patch fix this behaviour. and after rig was generated, many WGT object remains in scene. this patch makes rigify to clean these objects up. and this patch makes WGT objects have unique name per metarig. if multiple metarig is in same scene, generated rig has correct bone shapes. and this patch avoid runtime exception that I experienced. (some addon (not rigify) makes weird property, that like key exists but rna_idprop_ui_prop_get returns None) [rigify-patch.diff](https://archive.blender.org/developer/F529683/rigify-patch.diff)
Campbell Barton was assigned by Osamu Takasugi 2017-03-31 10:18:32 +02:00
Author

Changed status to: 'Open'

Changed status to: 'Open'
Author

Added subscriber: @SAMtak

Added subscriber: @SAMtak

Added subscribers: @cessen, @mano-wii

Added subscribers: @cessen, @mano-wii

These improvements are indeed good.
@cessen, do you still maintain the rigify? Could you take a look?

These improvements are indeed good. @cessen, do you still maintain the rigify? Could you take a look?
Campbell Barton was unassigned by Osamu Takasugi 2017-04-01 10:03:51 +02:00
Nathan Vegdahl was assigned by Osamu Takasugi 2017-04-01 10:03:51 +02:00
Author

Added subscriber: @ideasman42

Added subscriber: @ideasman42
Member

Added subscribers: @LucioRossi, @BrendonMurphy

Added subscribers: @LucioRossi, @BrendonMurphy
Nathan Vegdahl was unassigned by Brendon Murphy 2017-04-15 09:21:05 +02:00
Lucio Rossi was assigned by Brendon Murphy 2017-04-15 09:21:05 +02:00
Member

@LucioRossi hi could you have a look at this please

@LucioRossi hi could you have a look at this please
Member

Added subscriber: @icappiello

Added subscriber: @icappiello
Member

looking into the patch right now.

looking into the patch right now.
Member

from a first look i have some big concerns about rigify WGT patch proposal:

WGT objects are left in the scene because if the user wants to manually edit them, he could do it since rigify generate function will not overwrite the WGT when the object already exists in the scene. When the object is deleted from scene and the generate function is invoked again to fix or edit the rig, then the user WGT edit will be lost.

Appending the rig-id before the WGT name would create a mess for the user when he is looking for a specific WGT. The rig id is a random string (like imqsu8wj1a1d9195) that will be shown in the outliner before the WGT name itself. I think this would generate more confusion than the problem the patch is trying to fix.

About tidying up the scene and the outliner, the best solution for now is to parent all the WGTs under an empty. This is already committed for 2.79 release.

I consider at least this part of the patch as rejected.

from a first look i have some big concerns about rigify WGT patch proposal: WGT objects are left in the scene because if the user wants to manually edit them, he could do it since rigify generate function will not overwrite the WGT when the object already exists in the scene. When the object is deleted from scene and the generate function is invoked again to fix or edit the rig, then the user WGT edit will be lost. Appending the rig-id before the WGT name would create a mess for the user when he is looking for a specific WGT. The rig id is a random string (like imqsu8wj1a1d9195) that will be shown in the outliner before the WGT name itself. I think this would generate more confusion than the problem the patch is trying to fix. About tidying up the scene and the outliner, the best solution for now is to parent all the WGTs under an empty. This is already committed for 2.79 release. I consider at least this part of the patch as rejected.
Member

About the rig-id part:
Seems you are writing the rig-id on the meta-rig and then the meta-rig passes it to the rig. Even if the idea seems cool at a first glance, again, the consequence of this change are breaking other rigify features.
It seems you never generate again the rig-id on the meta-rig once is created. This is bad. Rigify metarigs are created to be shareable through blender files. For example, you have rigged your character with rigify, the next one is similar to the first, so you append your meta-rig form the first to the second file, then edit it as needed and generate. Standing to your patch in this case the metarig will bring in the second file the same rig id and - even not finding the rig itself - will always generate rigs with same rig-id. Since there is no rule to know when to re-create the rig id, you will force the user to manually delete it.
The idea behind the patch is good though.
I'll try to think a workaround for this second part, but for now -as this patch is submitted - I consider this part rejected too.

About the rig-id part: Seems you are writing the rig-id on the meta-rig and then the meta-rig passes it to the rig. Even if the idea seems cool at a first glance, again, the consequence of this change are breaking other rigify features. It seems you never generate again the rig-id on the meta-rig once is created. This is bad. Rigify metarigs are created to be shareable through blender files. For example, you have rigged your character with rigify, the next one is similar to the first, so you append your meta-rig form the first to the second file, then edit it as needed and generate. Standing to your patch in this case the metarig will bring in the second file the same rig id and - even not finding the rig itself - will always generate rigs with same rig-id. Since there is no rule to know when to re-create the rig id, you will force the user to manually delete it. The idea behind the patch is good though. I'll try to think a workaround for this second part, but for now -as this patch is submitted - I consider this part rejected too.
Member

Changed status from 'Open' to: 'Archived'

Changed status from 'Open' to: 'Archived'
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#51094
No description provided.