animation.Play(); plays anim but in wrong position

animation.Play(); plays anim but in wrong position.

When animation.Play(); is called on my instantiated object, it snaps to a different position and plays. The object is a rigid body and I need it to play animation at it's current position. Is there a way to ignore the position from the animation clip?

Is there a way to solve this without parenting to another object?

Thx for any tips! Peter

I think that for a cinematic scene you can use character animation that moves in space, But when you want to do some sort of walk loop or jump or whatever it might be a good idea to control movement by script and create the animation as static. Like moonwalk. so the object is always on 0.0.0in local coordinates, with sliding feet. If you do a sequence of animations like walk, run and idle for example that move in space your idle animation will be far off center, since walk and run will move your character somewhere else. Even though I don't understand the mechanics behind i found that it was much easier to create animations in 0.0.0 with feet sliding and match the velocity so it seems that it walks properly etc. Hope that helps.

The solution is to parent it to another object or do not animate the root of your object. Why can't you parent it to another object?