Skip to content

Glitching/flickering noodle-bones that has duplicated copy (via the Duplicate Bones tool) #1190

@MegaVaha

Description

@MegaVaha

Bug Report

Environment

  • Duik 17.1.8
  • Windows 64 10.0
  • After Effects 23.4, 23.6

Report

Hello!

MY GOAL WAS:

to rig character (round head with attached limbs, without body/hips - just round with limbs) with turnaround possibilities. Manipulate turnaround pose by 2D slider. In whole turnaround needs there was the limbs (hands and legs) which must to can change the order of their drawing: above the body and behind the body. The limbs is noodles.

As you can see in the attached AEP project collect - changing of the draw order of limbs I implemented through this (standart) way:

  • two copies of 3 layers of each limbs: above the body layer and behind of the body layer. At one time one of whole copy of limb is visible (100) and another is hidden (0).
  • when any of limbs is going to change it draw order - I switching opacities of the above/behind copies. I.e.: thigh R1, calf R1 opacity to 0, thigh R2, calf R2 opacity to 100 at the same time.

The process (and moment) of switching (animation keyframes of opacity) I binded to 2D controller (X axis of slider props).
Also to this slider I binded the shifting by X of position (separated x/y) of the root part (thigh/arm) of each limb when the body is turning left/right.

MY WORKFLOW AND SCHEME OF PARENTING:

  • main (body) root layer: bone of the head "B < Head >". It driven by "C < Head >" head bone autorigged controller.
  • Arm_R, Arm_L, thigh_R, thigh_L I parented to this bone ("C < Head >"). It doesn't matter to parent limbs to Bone or Controller of the head in my setup case, so to minimise the chains number of parenting ierarchy (because "B < Head >" is child of "C < Head >") I parented limbs directly to "C < Head >".

I will describe the next workflow and the bug on the example of one limb: let's say let it be the right leg: thigh R+calf R. But the bug is presenting on both of hands and right leg.

  1. Created right leg: 3 layers (thigh R, calf R, and bone < Leg_Tip >).

  2. Selected tip, than calf, than thigh, autorigged it.

  3. On the each part of leg bones I turned on "Bone Noodle", setup it appearence, turned off "Bone".

  4. Baked bone (each of 3 layers).

  5. Parented thigh R to C controller.

  6. Separated pos. dimensions of thigh R.

  7. Adjusted the horizontal position offset animation for the body rotation process on thigh R.

  8. Adjusted the switch opacity keys on both thigh R and calf R layers (for the minimum, center and maximum X position of the 2D slider/connector).

  9. Linked this pos.X of thigh R and opacity keys of the thigh R and calf R to the X value of 2D slider.

  10. Selected tip, calf and thigh (in any order of clicks on layers), then duplicated them via the "Duplicate bones" tool.
    Now I have couple copies of the right leg: [A] thigh R above, calf R above, tip R above and [B] thigh R behind, calf R behind, tip R behind. Both of them are already automated with Connector (2D slider).

  11. Switched off the visibility of Tip layer of each [A] and [B] sets.

  12. Puted [B] layers of leg copy under the Body precomp layer.

  13. IK on the leg controller is always On.

When I tested turning - at this step I noticed a bug: when moving 2D slider to the left/right by mouse - leg began randomly (?) change its position independently of leg R IK controller position. Another words - its begins to flickering/glitching. When I test changing 2D controller hor. position by keyframes - the leg still glitching it position by 1 frame duration, but not randomly - in the some definited value between x position keyframes of the 2D slider.

And this bug, as I say earlier, is present on hand R, L and leg R sets, but not on the leg L.

In the attachment there is a ZIP with AEP and rendered animation with bug. In the MP4 there is 1-frame-appeared red arrow directing to the bug\glitch position of each of the glitched limbs.
In the AEP there is a marks on the timeline - I marked the glitched moments for your convenience to catch the bugs.

WHAT I TRIED TO FIX:

  1. Tried to "duplicate limb" (by Angela tool) BEFORE autorigging. Not helped.
  2. Tried to make new layers by creating of the new limb via limb creation tool of Angela (not to duplicate existing). Then setup it keyframes for x-shifting and opacity switching. Then select leg IK controller + leg tip layer + calf + thigh, then autorig. So I have IK # 1 and IK # 2 effects on the leg IK controller. Then bind keyframes of created limb to the 2D slider. Not helped.
  3. Tried to not to bake unnecesary "Bone" appearance of the bones. No.
  4. Another many ways not helped too.

I tried to update my AE 2023 5.4 to 5.6 - this is not helped, the bug still present.

BUT I FOUND CAUSE OF THE BUG:

When temporarily switch off expressions on the binded opacity keyframes (on the both [A] and [B] sets of limb) - the bug is not present and leg movement animations is pure. Then I totally unbinded opacity keyframes from the 2D slider and tried to manual switch on\off opacities of the each of above/behind couples of limbs - but the bug is comes EVERYTIME I used opacity keyframes of duplicated/automated by Connector limbs. But I need the switching of above/behind couples of limbs!

THEN I FOUND SOLUTION AGAINST BUG:

  1. FYI: I used DUPLICATED limb copies by "Duplicate bones" tool with already binded keyframes (X-pos, opacity) to 2D slider.
  2. [A] thigh R + calf R + tip R that was ABOVE - I putted BEHIND, and [B] parts that was BEHIND I putted ABOVE the body layer.
  3. Reversed keyrames of opacity on each timeline of [A] and [B] copies of right leg.
    Another words, I changed above and behind limb copies and the bug is gone.

There is something in the expressions of opacity binding to 2D slider: if layer order of DUPLICATED limb is wrong (duplicated under the original or original over duplicated - dont know) - it begins to glitch the whole position of the limb, if switch layer order of duplicated/original sets (thigh+calf+tip) - it works fine.

In the attached ZIP with project collect there is the "yellow rig and anims test 1 --with BUG.aep" - example with bug, "yellow rig and anims test 2 --FIXED leg R.aep" - with example of fixed bug.

I noticed, that I can't attach the archive with .aep collect (github writes me "Something went really wrong, and we can't process that file. Try again"), so I uploaded it to WeTransfer: https://we.tl/t-QoSrPdAus0

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugSomething isn't working

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions