Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
MegaVaha opened this issue Oct 31, 2023 · 4 comments
Labels
Bug Something isn't working
Milestone

Comments

@MegaVaha
Copy link

MegaVaha commented Oct 31, 2023

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

@MegaVaha MegaVaha added the Bug Something isn't working label Oct 31, 2023
@MegaVaha
Copy link
Author

@MegaVaha
Copy link
Author

MegaVaha commented Nov 1, 2023

UPDATED observations:

On some frame on one limb the bug has gone, but in another marked glitching frames of this limb is still present.

After I REopened file with fixed bugs of leg R - I found, that in the frame 210 of rigged comp "lemon" hand L has stop to flicker. On another frames (that have bug of hand L behavior) it still flickering.

  1. I did nothing to fix hand L, so in this fixed rigg I only has fixed leg R and another glitching limbs (hand R and hand L) is unfixed.
  2. Please look at attached aep in frame 210. Also for your convenience I marker glitch marker by no color. Unzip aep near the "(Footage)" folder of collect, that has been attached in my previous (upper) message.

yellow rig and anims test 3 --FIXED leg R --hand L frame 210 was stop flicker but on another frames still flickering.zip

@MegaVaha
Copy link
Author

MegaVaha commented Nov 1, 2023

UPDATED observations:

The bug (flicker) is ALWAYS appears on frame near the frame on which limb ABOVE is changing to limb BEHIND (and vice versa).

Changing = applying automated opacity keyframes on limb layers.

@MegaVaha
Copy link
Author

MegaVaha commented Nov 2, 2023

CONCLUSION:

I have a two types of limbs (all are noodles by Noodle option, Bones option are Baked):

  1. Hands, that consists of arm and forearm each.
  • Arm parented to body (Head).
  • Arm has animated opacity. Opacity keyframes are connected to 2D slider via Connector.
  • Forearm have animated opacity, which keyframes connected to 2D slider via Connector.
  1. Legs, that consists of thigh and calf each.
  • Thigh parented to Duik Null, this Null parented to body (Head)
  • Thigh has animated opacity and position. All this keyframes are connected to the same 2D slider via Connector as hands.
  • Calf has animated opacity. Opacity keyframes are connected to 2D slider via Connector.

All of libs has been Autorigged and has a corresponding controllers: C hand R, C hand L, C leg R, C leg L.

Hand R (arm R + forearm R + tip R) has a duplicated (via Duplicate Bones) copy of itself:

  1. Selected arm R + forearm R + tip R.
  2. Pressed Duplicate Bones on the Angela panel.
  3. Arm R copy has been parented, as arm R to Null, then Null to body (Head).
    Duplicated copies has already binded to 2D slider opacity keyframes.

Hand L has been Duplicated the same method.

Leg R (thigh R + calf R + tip R) has a duplicated (via Duplicate Bones) copy of itself:

  1. Selected thigh R + calf R + tip R.
  2. Pressed Duplicate Bones on the Angela panel.
  3. Leg R copy has been parented to body (Head).
    Duplicated copies has already binded to 2D slider opacity and position keyframes.

BUG behavior:

  1. If duplicated limbs (hand R copy /arm R copy + forearm R copy + tip R copy/, hand L copy/3 layers as of hand R copy/, leg R copy /thigh R copy + calf R copy + tip R copy/, leg L copy /3 layers as leg R copy/) is placed UNDER its original layers (hands R, R, legs R, L) - then behaviour of original/copies is glitchy, even if their corresponding controllers (C hand R, L, C leg R, L) has not been moved by position. Even their properties has not been automated via 2D slider.

  2. If duplicated limbs is placed OVER its original layers - there is not bug. All transforms are clear, manageable and predictable.

I attached zip with aep. Please, place aep near "(Footage)" folder of collect, that has been attached in the beginning of this thread.
This aep has already fixed described bug: I placed original limbs UNDER the "body" layer and duplicated limbs OVER the "body" layer - you'll see, that everything is ok.

yellow rig and anims test 6 --FIXED all limbs.zip

Duduf, please, tell me - is this is the bug or not? I mean dependency of duplicated limbs on their layer order relatively their original limbs.

@MegaVaha MegaVaha changed the title Glitching/flickering noodle-bones (position, automated with IK) which position has been automated by the Connector (2D slider) Glitching/flickering noodle-bones that has duplicated copy (via the Duplicate Bones tool) Nov 2, 2023
@Nico-Duduf Nico-Duduf added this to the 17.1.10 milestone Dec 23, 2023
@Nico-Duduf Nico-Duduf modified the milestones: 17.1.10, 17.1.11 Jan 2, 2024
@Nico-Duduf Nico-Duduf modified the milestones: 17.1.12, 17.1.13 Mar 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants