I have a issue about Animation Layer syncing (Documentation).
I implemented the controller, added layer(with ‘sync’ and layer name), and I want to use it with the animation layers (WALK and RUN). In my script i use the Animator.SetLayerWeight method for switching between layers. That is ok and working.
But the animations are played at different speeds, the animation of the first layer is fine, but the animation of the second layer is very fast. When I put the exact same animation on both layers - they also played at different speeds. ‘speed’ parameter of the State affects both layers at once.
How to use layers? What are the requirements for an animation? How to adjust?
We’re seeing some issues with this as well. We have two walk cycles, one per layer. The animation on the 2nd layer is essentially half as fast, however it plays double the speed we expect (matching the first layer’s animation). We would expect to be able to blend smoothly between the two animations by changing the weight of each layer accordingly. However it (mecanim) appears to be manipulating the animation speed under the hood to have the 2nd animation match the 1st.
Perhaps our expectations are out of alignment… The documentation is not exactly clear on what should happen.
I want to UP this question because i’m having the same issue and still haven’t found a solution
EDIT :
I have found that enabling “Timing” in the layer’s settings solves that problem.
-Of couse this is assuming that you have syncing enabled-
Apparently if the “Timing” is set to false, Mecanim will himself decide how long the animation should last, and therefore adjust it’s speed accordingly. it does that to make sure that the animation duration on the 2nd Layer is the same as the one on the Base Layer.
If “Timing” is set to true, the animation length will be a balance for both animations.
This is explained in the doc here under the section “Animation Layer syncing”.
Hope somebody who’s facing the same issue finds this useful.