I have created a 3D model with appropriate animations in 3ds max and imported them successfully to Unity , I have separated out my walk cycle and it all looks good but when I put it on loop the character takes his two steps while walking forward then snaps back to the start of the loop. I had read you are able to use Mecanim to remove root motion either by toggling it off in the “Animator” section of the inspector or after switching the rig to humanoid through the animation inspector and then baking Root transforms into the pose.
I have tried both of these options and neither has solved my issue, any ideas would be fantastic! On a side note How can I have a loop match on everything apart from Root Transform Position (XY), surely I would only ever want to remove root motion if the last frame did not match the first? If there was a match why would I need to remove root motion?
Did you use biped to develop the animation?
If so - in the motion panel under Modes & Display rollout, click In-Place Mode and re-export the animation. This removes the root motion (transformation only not rotation) of the bip even though the animation was created using root motion.
If you didn’t use biped, simply zero out or remove the forward transformation of the root bone - then re-export.
Not sure about your second part of the question - it’s worded oddly.
Here is what I found in the forum that might help (copied from a post in the forum)
This is a setup to control the character by code by removing root motion.
*Check the Root Transform Position (Y) + and (XZ) too. Try setting both as Baked into Pose + Original. What this seems to mean (trial and error here…) is that root of this clip is not moved at all during playback of this animation clip.
This seems to be only setting making sense for animations that should be placed into world exactly, animated move across box platform and such, I think this can be thought as animation moving relative to 0,0,0 of Maya/Max/Blender world origin. This also negates the use Root Motion of Animator, with this setting it doesn’t matter as clip settings itself already do this.
I did use the same settings for hanging and idle - Root Transform Rotation, Root Transform Position (Y) and Root Transform Position (XZ) too all are set as Bake into Pose + Original. With this I eliminated Unity from trying to add some calculated offsets during animation playback, making it hard to see what happens with translations.*