色々ツッコミどころがありそうですが、とりあえずSPANIMはアニメーション開始のタイミングで実行するだけで常に実行してはいけません。常に実行すると毎回頭出しのように戻ってしまい、結果アニメーションが行われなくなってしまいます。 今回、止まったときにアニメーションがされているように見えるのは、動かそうとキーが入っている時は常にSPANIMが呼び出されてしまって頭出しで変化が起きない感じになっていて、止まったときにキーが入らなくなって始めてSPANIMの効果がちゃんと現れてアニメーションされるようになっているからです。