Search Issue Tracker
By Design
Votes
0
Found in
2018.4
2019.4
2020.3
2021.1
2021.1.1f1
2021.2
Issue ID
1326650
Regression
No
The last frame of a animation is cut off when looping the animation
Reproduction steps:
1. Download and open the attached "Horror3D" project
2. In the Project window, go to "Characters" > "girl.fbx"
3. In the Inspector window, change the clip to "Armature|Walk"
4. Press the "Play" button in the Preview window
Expected result: The last animation frame isn't cut off
Actual result: The last animation frame is cut off
Reproducible with: 2018.4.35f1, 2019.4.27f1, 2020.3.11f1, 2021.1.9f1, 2021.2.0a18
-
ell1e
May 28, 2021 14:19
Just to add this small tidbit of info, it is probably useful for some use cases, like mo-cap, that the last frame is ignored when looping. However, for others it simply isn't. So I think a great way to address this bug/limitation/... would be an additional option to control whether the loop will incorporate the last frame as standalone anim data (NOT how it is right now) or whether it'll be trashed under the assumption it's an imperfect mo-cap repeat of the first that should be ignored (CURRENT behavior). That would make also backwards compatibility of this fix very easy, if the default of this new option was the old behavior of ignoring the last frame.
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
- Articulation Body with 'Revolute' Joint Type has erratic behavior when Upper Limit is set to above 360
- WebGL Player fails to render Scene when Terrain with Detail Mesh is added and WebGPU Graphics API is used
- Inconsistent errors are logged when different types are passed into the Query "Q<>" method in UIToolkit and the ancestor VisualElement is null
- Crash on GetMaterialPropertyByIndex when opening a specific Scene
- Discrepancies in the styling are present when using a TSS file instead of a USS file in custom EditorWindow
Resolution Note:
Loop pose is working as intended in this case. The loop pose feature is designed to help remove small errors between the start and end frame by subtracting the difference between the last frame and the first frame and slowly applying this error correction over the length of the animation. This is useful when you are trying to make looping animations out of e.g. motion capture data where the poses at the beginning and end of a clip to not exactly loop. This means by definition the final frame of the animation will not be seen.
For the case described in this bug, the way to achieve the desired outcome would be to copy the keys on the first frame to the end of the clip. This could be done in a DCC tool or could be done inside Unity's animation window. To do inside of Unity, first duplicate the clip (since clips in side fbx are read only), and then select all the keys on the first frame of the animation. Press ctrl+c to copy these keys, move the scrub to 1 frame past the end of the animation and then pasting them with ctrl+v.