Root motion position jumps back when clip loops or blends

Forums 💬 Slate Sequencer ⚙️ Support Root motion position jumps back when clip loops or blends

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #20093
    tor
    Participant

      Hi, root motion works fine for rig animation type humanoid, but I have issues with rig animation type generic. The position jumps back when the animation clip loops or when the animation clip blends. Any idea what could cause this issue? I veryfied that the animation itself is ok, e.g. the animation root motion works fine for this animation using the animation controller when I disable SLATE. I use starting transform mode Auto Match Transforms on all clips, but it also happens on long SLATE animation clips when the assigned animation clip loops.

      #20098
      Gavalakis
      Keymaster

        Hello there,
        Are the “offsets” in each Slate Animation Clip inspector set to 0?
        Can you please post a gif or video showcasing this behaviour?

        Thank you!

        #20097
        tor
        Participant

          I wonder if the issue is caused by by the configured ‘root node’ that is not the ‘actor’ transform:

           

          I guess animator does handle the Avatar’s ‘root node’ but SLATE isn’t.

          #20096
          tor
          Participant

            Here is one more useful finding: Everything works fine if I turn on ‘Apply Root Motion’ on the Animator component after SLATE gets activated (I just use scrubbing in SLATE). The thing is that SLATE turns ‘Apply Root Motion’ off when it gets activated.

            #20095
            tor
            Participant

              Aha, after some debugging of the SLATE code it makes sense why it fails. When SLATE does BakeRootMotion it only stores the pos and rot from the animators transform. But thing is that Animator also modifies the ‘Root Motion Bone’. In practice Animator will set the ‘Root Motion Bone’s local pos and rot to zero. A workaround is to delete the ‘Root Motion Bone’ keys from each animation clip, but that needs to be fixed by SLATE. A quick fix that works for me is to temporarily enable ApplyRootMotion on the animator when calling graph.Evaluate(…) in Slate.AnimatorTrack.OnUpdate

              #20094
              Gavalakis
              Keymaster

                Thank for the information. Having different root node could be the problem of this as you found out. I will have to dig a bit deeper into this to find out the exact cause and solution.
                Thanks again 🙂

              Viewing 6 posts - 1 through 6 (of 6 total)
              • You must be logged in to reply to this topic.