Search Issue Tracker
By Design
Votes
0
Found in
2017.4.0f1
2017.4.14f1
2018.3.0a1
2019.1.0a1
2019.2.0a1
Issue ID
1112484
Regression
No
Animation transitions with "Exit Time" of 1 happen without regard for the animation's "Normalized Time" parameter's value
How to reproduce:
1. Open attached project "case_1112484-NormalizedTime" and scene "SampleScene"
2. Enter Play Mode
3. Select "Cube" to see its state machine in the Animator Window
4. Move focus to the Game View and press spacebar to trigger the transition
5. Observe the "Sliding" state's duration before transitioning back into the "Rotating" state
Expected result: transition back to state "Rotating" happens when the parameter "NormalizedSlidingTime" reaches 1 i.e. after 10 seconds
Actual result: transition to state "Rotating" happens when the normalized value of the original animation reaches 1 i.e. after 1 second
Reproducible with: 2017.4.21f1, 2018.3.7f1, 2019.1.0b4, 2019.2.0a6
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- “Remove Unused Overrides” available on not loaded Scene and throws “ArgumentException: The scene is not loaded” warning
- Adaptive Probe Volume occlusion edge is calculated incorrectly when viewing probes near geometry edges
- Sampling a texture using an HLSL file throws shader errors and the code does not compile
- "Graphics.CopyTexture called with null source texture" error when Base Camera of an Overlay Camera is removed with DX11 Graphics API and Compatibility Mode enabled
- WebGL sends wrong value with large numbers when SendMessage function is used
Resolution Note:
Closing by design as this is actually the expected behavior. Otherwise, if you set a transition to be time based but mess up your code at all on setting the Normalized Time Parameter, it is very easy to get "stuck" in a state permanently. As it stands, you can control playback while still allowing transitions to work based on time in a natural way. If you wants to have the behaviour described in this bug report you can use Time.timeScale or create another float parameter in your state machine that is plugged to the speed multiplier input. Using the Normalized Time parameter is for precisely controlling the clip's playback. Time scale / speed is for altering the flow of time for the whole state/clip combination.