Hi all, first of, I hope this hasn't been posted before - I couldn't find anything on this specific issue.
I have a simple mockup character rig with 3 compositions.
01_Character is where all the controls would be.
02_Head is the head subcomp.
03_Eyes is for the different eye states. It's only 3 frames long and on each frame is a layer containing a different eye.
In 01_Character is a null object with a slider control. This will be used to switch between different eye states. 02_Head has been added to 01_Character as a layer.
03_Eyes has been added to 02_Head as a layer. This 02_Head layer has Time Remap activated. There is an expression on the time remap:
control = comp("01_Character").layer("Control").effect("Numbers")(1); framesToTime (control -1)
Now when I animate the slider in 01_Character comp the eye states (in my mockup numbers) appear and disappear as planned. However this only seems to work while the values increase. As soon as I animate decreasing values the number-states always switch one frame too soon.
That's only when I animate the switches with hold keyframes. When I animate with linear keyframes, the highest value - which should appear for one frame - doesn't appear at all, even though the animation curve shows the correct values.
In this screenshot the curve shows value "3", however eye #2 is rendered.
Here the animation curve shows the value "3" but #2 is rendered instead.
Any ideas on why that's happening? I have played around with different Math.floor and Math.round functions, but I can't seem to resolve this.
Or do you have any alternative ideas for switching asset states? I could put expressions on each layers' opacity, but that has an impact on the rig's performance if I have e.g. 5 x 2 eyes. 5x2 eyebrows, 20 mouths, 20x2 hands, etc. each with their own opacity expression.
Found it and thought I'd share!
This hint 'or you could in the advanced tab in your precomp setting click on the check mark "Preserve frame rate when nested"'
in this post Time Remapping a PreComp.
Thanks anyway and happy expressing,