We’ve been using a motion capture suit to capture body animations, and importing them into Unity to add to the Slate timeline. Sometimes, when these animations are not fully cleaned up or perfectly centred, we can find that, although the cutscene plays fine in preview and play modes, when we scrub the Slate timeline in the editor and release the mouse, the character seems to ‘snap’ beyond their original root motion position. Then, any time we click anywhere in the Slate window, the character’s root position will keep being shifted.
Below is a link to a sample Unity project demonstrating the issue. Try scrubbing to a point in the timeline, keeping the mouse held down, and note the position of the character. Then, release the mouse and notice that the character seems to ‘jump’ to an incorrect position. Then click on any empty space in the Slate window, and notice that the character will jump again. The project is using Slate 1.7.0, Unity 5.5.0f3.
After investigating this, there is indeed a bug here, when the clip starts at time 0 and there is a negative ClipOffset set in the Animator clip. I will of course fix this (still investigating), but until then, you can avoid this bug from appearing by either doing one of the following:
1) Don’t use a negative ClipOffset.
2) Place the clip start time at anything other than 0.
3) introduce a slight BlendIn for the clip.
Doing one of the above will avoid this bug. Please let me know if that works for you.
Once again, I am already looking into fixing this as I write this post.
By the way, please do not publicly post links that include paid assets. I have removed your link because the download package included Slate. If you want to send me something, please do so to support_AT_paradoxnotion.com
We have just run into this bug again. Is there any update on when a fix might be made available for this issue, or when the refactored / performance-optimized root motion system might be released?
I am currently working on an update, so I take another look at this, but meanwhile, here is a quick fix to avoid the root motion being re-applied:
Please open up AnimatorTrack_2017.cs file and change line #237 to be like this:
The change here, is actually var time = startTime - float.Epsilon.
This avoids the root motion from jumping around, but a better fix is required to the rest of the code to work more in harmony.
Let me know if that works for you.
Thanks!
Join us on Discord: https://discord.gg/97q2Rjh
Author
Posts
Viewing 5 posts - 1 through 5 (of 5 total)
You must be logged in to reply to this topic.
Login
Register
By registering on this website you agree to our Privacy Policy.