not inplace animation

again i ask this question and i hope somebody point me to correct way.

some animations in games can not be created inplace. animations like : “evade to Left”, “ride a horse”, “climb up a wall” , …
of course you can create these animations in place and control position of character by AddForce to RigidBody or move CharacterController, but the result will not be realistic.

so the question is how to update position of character when one of not inplace animations is playing. for example “Walk” animation is inplace and you handle movement by this

CharacterController.Move(movement);

now you want to “evade to left”. as you know evade is not inplace and character moves in local space, so by playing that “Evade To Left” animation, your CharacterController do not move but your character position(root bone) going to left, and after the end of Evade animation your character position(root bone) go back to position 0(in local space) and your character is at same position before evade.

how do you handle this situation.

i asked this question in many forums and some said that this is the job of GameEngine to synchronize position of character and animations because it access animation data.
UDK do this by controlling RootMotion

what is the same solution in Unity?

I hope i could make clear my question.

Yes, you have to solve this yourself in Unity 3.5. You have to extract root motion from Unity and then drive chracter from scripts.

IIRC, Mecanim will do that for you automatically.