Rigify - Experimental Rigs - experimental.super_chain (deletes other samples within rig object when added) #104535

Open
opened 2023-04-10 01:16:43 +02:00 by Avid-Lebon · 6 comments

System Information
Operating system:
Graphics card:

Blender Version
Broken: (example: 2.80, edbf15d3c044, master, 2018-11-28, as found on the splash screen)
Worked: (newest version of Blender that worked as expected)

Short description of error

Attempting to add "Samples" from "Feature Set" of experimental.super_chain if 10+ other samples have previously been added will delete all samples in the object

Exact steps for others to reproduce the error
Based on the default startup or an attached .blend file (as simple as possible).

  1. Install fresh version of Blender3.5.0
  2. Go to Preferences, Add-ons, Rigging: Rigify and click the checkbox to enable it
  3. Install Feature Set from File... Experimental Rigs by Alexander Gavrilov (https://github.com/angavrilov/angavrilov-rigs). Once this is done close the Blender Preferences window.
  4. In 3D view press Shift+A, select Armature, then single bone
  5. With the bone selected, tab into edit mode, select the Object Date Properties tab, scroll down the Rigify tab, and expand the Samples category.
  6. Add 10+ of any bone. For this example feel free to select body_ik.leg and click Add sample 10 times to add 10 samples.
  7. Select experimental.super_chain and click Add sample
  8. Expected Result: all prior samples are retained, and experimental.super_chain is added.
    Actual Result: all prior samples are deleted, and experimental.super_chain is added.
    No error code is generated.
**System Information** Operating system: Graphics card: **Blender Version** Broken: (example: 2.80, edbf15d3c044, master, 2018-11-28, as found on the splash screen) Worked: (newest version of Blender that worked as expected) **Short description of error** Attempting to add "Samples" from "Feature Set" of experimental.super_chain if 10+ other samples have previously been added will delete all samples in the object **Exact steps for others to reproduce the error** Based on the default startup or an attached .blend file (as simple as possible). 1. Install fresh version of Blender3.5.0 2. Go to Preferences, Add-ons, Rigging: Rigify and click the checkbox to enable it 3. Install Feature Set from File... Experimental Rigs by Alexander Gavrilov (https://github.com/angavrilov/angavrilov-rigs). Once this is done close the Blender Preferences window. 4. In 3D view press Shift+A, select Armature, then single bone 5. With the bone selected, tab into edit mode, select the Object Date Properties tab, scroll down the Rigify tab, and expand the Samples category. 6. Add 10+ of any bone. For this example feel free to select body_ik.leg and click Add sample 10 times to add 10 samples. 7. Select experimental.super_chain and click Add sample 8. Expected Result: all prior samples are retained, and experimental.super_chain is added. Actual Result: all prior samples are deleted, and experimental.super_chain is added. No error code is generated.
Avid-Lebon added the
Priority
Normal
Type
Report
Status
Needs Triage
labels 2023-04-10 01:16:44 +02:00
Avid-Lebon changed title from Rigify - Experimental Rigs - experimental.super_chain deletes other samples within rig object to Rigify - Experimental Rigs - experimental.super_chain (deletes other samples within rig object when added) 2023-04-10 01:23:19 +02:00
Member

i believe experimental.super_chain rig should be removed from master. We used it in the studio for a very long time but since @angavrilov added the skin types (which were designed to better implement our my designs) we are not using super_cain anymore, so we are also not actively maintaining it.

the only main difference between skin_chain and super_chain is that the latter has a faster (but less powerful) way to create aggregated tail targets (i.e. Convergence Bone). If this feature is so needed we can discuss about how to enhance skin_chain.

i believe experimental.super_chain rig should be removed from master. We used it in the studio for a very long time but since @angavrilov added the skin types (which were designed to better implement our my designs) we are not using super_cain anymore, so we are also not actively maintaining it. the only main difference between skin_chain and super_chain is that the latter has a faster (but less powerful) way to create aggregated tail targets (i.e. Convergence Bone). If this feature is so needed we can discuss about how to enhance skin_chain.
Ivan Cappiello added
Status
Needs Information from User
and removed
Status
Needs Triage
labels 2023-05-09 12:23:40 +02:00
Member

@icappiello hi, any plans to remove experimental.super_chain? :)
We can close this report if plan is to remove it and workaround/alternative is available too.

@icappiello hi, any plans to remove `experimental.super_chain`? :) We can close this report if plan is to remove it and workaround/alternative is available too.
Member

@PratikPB2123 as i commented above, in my opinion this sample should be removed.
The current rigify maintainer i beleive is @angavrilov so it has to be techincally done by him or maybe @nathanvegdahl that originally created rigify and is also in ths A&R team.

My opinion is still that since it never came out of experimental tag, whoever used it did it at his own risk. I don’t think people out there used it so much. Anyway current policy is to keep only actively maintained feature sets in the bundled addon. So there’s no reason to keep it in, unless it is felt like a very needed rigtype and somenone goes trough the process of pulling it out of experimental state.

As side note there is a proposal for a fix from our @bettiabba that has been sitting down for a while https://developer.blender.org/D14242. Unfortunately this was never reviewed or had any feedback or comment. So we dropped it.

@PratikPB2123 as i commented above, in my opinion this sample should be removed. The current rigify maintainer i beleive is @angavrilov so it has to be techincally done by him or maybe @nathanvegdahl that originally created rigify and is also in ths A&R team. My opinion is still that since it never came out of experimental tag, whoever used it did it at his own risk. I don’t think people out there used it so much. Anyway current policy is to keep only actively maintained feature sets in the bundled addon. So there’s no reason to keep it in, unless it is felt like a very needed rigtype and somenone goes trough the process of pulling it out of experimental state. As side note there is a proposal for a fix from our @bettiabba that has been sitting down for a while https://developer.blender.org/D14242. Unfortunately this was never reviewed or had any feedback or comment. So we dropped it.
Member

I can repro on 3.6. I'll test in latest main as well once my build finishes.

But the result is even odder than the report suggests, and I believe the report is at least partially mis-attributing where the bug is. Here are simplified repro steps:

  1. Add a single sample of body_ik.leg to an empty armature.
  2. Add a sample of experimental.super_chain to the same armature.
  3. The body_ik.leg sample seems to disappear.

When doing this, notice that at step 1, before even doing step 2, the armature layers are already weird. Specifically, the armature layers indicate that there are no bones on the currently visible layer, and that there are bones on a hidden layer. And yet the bones are visible:

weird_armature_layers.png

So there already seems to be a bug just when adding body_ik.leg. It appears to put the armature in an invalid state somehow.

So on the one hand, this seems to be a bug in Blender, since it shouldn't be possible (I think?) to end up in that state via the Python API anyway. But on the other hand, it also makes me think that these samples are maybe doing something funky in their add-sample code? I haven't checked, though. So probably both angles should be investigated.

I can repro on 3.6. I'll test in latest main as well once my build finishes. But the result is even odder than the report suggests, and I believe the report is at least partially mis-attributing where the bug is. Here are simplified repro steps: 1. Add a *single* sample of `body_ik.leg` to an empty armature. 2. Add a sample of `experimental.super_chain` to the same armature. 3. The `body_ik.leg` sample seems to disappear. When doing this, notice that *at step 1*, before even doing step 2, the armature layers are *already weird*. Specifically, the armature layers indicate that there are *no* bones on the currently visible layer, and that there *are* bones on a hidden layer. And yet the bones are visible: ![weird_armature_layers.png](/attachments/ef29509f-cb52-436e-9b87-715365295c86) So there already seems to be a bug just when adding `body_ik.leg`. It appears to put the armature in an invalid state somehow. So on the one hand, this seems to be a bug in Blender, since it shouldn't be possible (I think?) to end up in that state via the Python API anyway. But on the other hand, it also makes me think that these samples are maybe doing something funky in their add-sample code? I haven't checked, though. So probably both angles should be investigated.
Member

Confirmed that it still happens in latest main as well.

Confirmed that it still happens in latest main as well.
Nathan Vegdahl added
Type
Bug
Status
Confirmed
and removed
Type
Report
Status
Needs Information from User
labels 2023-08-11 12:25:08 +02:00
Member

I've created a corresponding issue in the Blender repo to track the Blender-side investigation: blender/blender#111043

I've created a corresponding issue in the Blender repo to track the Blender-side investigation: https://projects.blender.org/blender/blender/issues/111043
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#104535
No description provided.