1
$\begingroup$

i have downloaded a free zombie model and made some animations/actions for it in action editor like, walk, die, attack and so on. but now, when i select and play different actions, my model's position and scale randomly changes, like every animation/action is playing on different position and scale.

I'm Pretty sure that when i was making different actions, the model was in middle of the screen.

here are a few pictures that shows the problem

walking action, perfect position

attack action, messed up position

another attack attack, wrong scale and position

i animated like 5 other models before and everything worked perfectly, and I'm pretty sure that i did everything like before.

i spent like 4 hours on this model, Please help me fix this problem.

$\endgroup$
  • $\begingroup$ maybe, in some of your animations, the position of the bones are far from the origin of the object, so, jumping from an animation to another, it will make the character go away from its previous position. Could you share your file so that we can take a look (at least the armature)? blend-exchange.giantcowfilms.com $\endgroup$ – moonboots Jan 25 '19 at 8:15
  • $\begingroup$ @moonboots <img src="https://blend-exchange.giantcowfilms.com/embedImage.png?bid=5793" /> here's my file, i still can't fix it myself, thanks for your time. $\endgroup$ – Amirreza Yegane Jan 25 '19 at 12:47
  • $\begingroup$ yes that's weird, I'm searching... $\endgroup$ – moonboots Jan 25 '19 at 16:24
  • $\begingroup$ ok I see a series of problem, I will answer $\endgroup$ – moonboots Jan 25 '19 at 17:22
0
$\begingroup$

Here are some points that will fix (or at least explain) a lot of your issues in my opinion. I've tried to be clear but I may come back to make it clearer:

  • Reorganize a bit your armature. Give it a root bone (a big bone that you create on the ground, at its feet level), then parent (Keep Offset option) the hips to the belly bone, and parent the belly to the root. Also parent all the IK targets/pole targets that you’ll create to this root. It will ease your work with all your armature animations as it gives it a static bone that you won't move in Pose mode most of the time.

  • In the Dopesheet/Action Editor mode, in the same action, don't mix keyframes of your armature (created in Object mode) with keyframes of the bones (created in Pose mode). Actually, most of the time you won't need to insert keyframes for your armature itself in Object mode, unless you want the whole object to move, along a road for example (example : bird flying, walk cycle, car...), or if you want to exceptionally scale it up or down for a reason or another, and anyway don't mix it with bones keyframes in the same action. If you want to scale your object up or down because you think it’s too small or big compared to the scene scale, just select the armature in Object mode and scale, don’t insert any keyframe, either in Object or in Pose Mode. In your case, if you check your actions in the Dopesheet, you’ll see the keyframe tracks for all your bones but sometimes you will also see the LocRotScale track for the whole armature. It means that in the same action you sometimes mixed keyframes of the whole armature in Object mode, and bones keyframes in Pose mode. Example: you’ll see a LocRotScale track for the action called Wake. Select and delete it with X. You’ll see that your character will become huge, perhaps because, to compensate the tiny size you’ve given to the whole armature with this keyframe you’ve created in Object mode, you had to scale up the bones, or something like that happened. To sum it up: If you need to move your whole armature in the scene, first make sure that it will be a new action in the Dopesheet, so that this whole armature animation won't be part and interfere with a bone animation, so close the action you were working on, or push it down in the NLA Editor if you want it to be played at the same time, then work on your object action.

  • In Pose mode, when you insert keyframe, do it for all the bones and with LocRotScale, this way you’ll be sure that when it plays another action, it won’t keep from the previous animation some values or some bone poses that you wouldn’t like to have for the new one. Not sure it is a problem here though.

$\endgroup$
  • $\begingroup$ at first i didn't quite understand what you were talking about, i opened my file and went to dope sheet and deleted all LocRotScale as you told me to, then i moved my object to middle of the screen (in object mode) and gave it a keyframe of LocRotScale( in object mode again) just like you said "unless you want the whole object to move" because i wanted it to be in the middle so i did that in object mode, then i switched to pose mode and played the animation and it worked perfectly, i also pressed "i" again on armature keyframes again to make sure it's all OK, thank you so much :-)) $\endgroup$ – Amirreza Yegane Jan 26 '19 at 0:08
  • $\begingroup$ you can give it a position in Object mode and press i to insert keyframe to make it stay at this position, but make sure in the Dopesheet that this action you're created in Object mode is not mixed with bones animation actions that you've created in Pose mode, that it's a totally new action. You need to understand that object animation and bones animation within the object are 2 different things and you'd better not mix the two if you don't want to confuse or you don't want bad surprise like armature going away / scaling up suddenly, etc... $\endgroup$ – moonboots Jan 26 '19 at 5:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.