Animator on parent affects animation for children animators with different controllers

I have an animator on a menu that pops up at the end of a minigame to show the player’s score, and an animator on the menu’s children to display the amount of stars earned, they both have different controllers and only 1 layer. (I have 3 objects named “star” with a shared controller that is a child to menu with another controller).

The animation for the star is supposed to scale from 3 to 1 and its transparency from 0 to 1 however it only plays the transparency part and does not change the scale whatsoever. I disabled the parent animator right before playing the children to see if that was affecting it and lo and behold the scale part started working, but I ran into another problem. Now when I enable the menu animator and reverse it to hide it, the values for the stars no longer keep the values modified from the animation and completely disappear before the menu fades out. This did not happen when I didn’t disable and re-enable the parent animator, the stars would stay at 100% opacity while the menu animation was being reversed.

I tried:
setting parent of children to null before disabling parent animator
keeping the animator state of parent and child before disabling parent
using state machine bool to stay on last state before disabling parent

I have attached images to show my problem, images with 1 are the effects of playing the child animation without disabling and re-enabling the parent animator (scale doesn’t work) and images with 2 are when i do (doesn’t keep animation transparency values).

How can I play the animation of the children properly and keep the values from the animation? Any help is greatly appreciated!





Edit: In the first screenshot I noted the parent animator was anims[0] but it was anims[1], the one below it, so I fixed it.

Try this: 1) Uncheck “Animator Apply Root Motion” on the parent so it doesn’t override the children’s values. 2) Change the child’s “Animator Update Mode” to Unscaled Time—that way, it keeps its own timing. 3) Use animation events on the parent to trigger the child animations at the right time, so you can keep the stars’ transparency/scale intact when the menu fades out.

Hope this helps!

Thank you so much for taking the time to reply, unfortunately none of these solutions worked for me :frowning:.
I couldn’t try the first two because the root motion for both was already checked off and before I show the menu animation I pause the game meaning I had unscaled time already enabled for the parent and children animators. I did try to use events and had a script attached to the menu animation however it had the same effect as images 1, where the scale wouldn’t change but the transparency values were fine.

Ok I found the solution! It’s a really weird and oddly specific approach so if anyone can explain why this works, that would be awesome but either way I’m just glad I got it to work. Keep in mind both menu animator and children animators were set to unscaled time with root motion unchecked. Here’s what I did

When the animation for showing the menu was complete, I switched it’s update mode to animate physics, this will NOT work if you set it animate physics before the animation plays. I then play the children animations and wait for it to complete, then set the menu animator back to unscaled time. The image attached shows my code and a video shows what my result was, I did not need to disable and re-enable the menu animator for it to work.