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.