Page 1 of 1

Tricks for slower walking animations on tilemaps?

Posted: Sat Sep 18, 2021 4:18 am
by Eglaios
I set up a walking animation (1 step per tile), but my character walks as if it was a penguin, or its shoelaces were tied together :rofl: :


Of course, I'd want the character to walk slower while moving at the same speed, so I quickly thought about possible solutions :
-Make it skip a tile 50% of the time (That's what I saw in some RPGmaker games). Could possibly look weirder the more frames I add to the animation.
-Make the animation based on time instead of per-tile. It will last a bit after the player stops, but this would be my choice so far

Would anyone know other tips to make my char walk slower?


Thank you!

Re: Tricks for slower walking animations on tilemaps?

Posted: Sat Sep 18, 2021 11:28 am
by pgimeno
Moving the arms as the character walks would go a long way in avoiding the "penguin walk" look. Observe yourself while you walk; we usually advance the left arm and the right leg at the same time, and vice versa.

I think the animation speed is fine, but if you really want the animation speed to be adjustable, you can employ video playing techniques. Have a variable with the time mark (it can be fractional) and convert it to an integer, appropriately scaled, with the frame number. Reset it when the character starts to walk.

Re: Tricks for slower walking animations on tilemaps?

Posted: Sat Sep 18, 2021 1:45 pm
by BrotSagtMist
Your char does not seem to have legs, how else is it supposed to walk if not like a penguin?
The hands should swing a bit, dont overdo it, for one game a graphic designer gave me a char that swings its arms like running a marathon, yet it walks, so it constantly looks like a comedy act, running at place.

The stuttering is annoying, it can be avoided by using a timed walking yes.
You can simply add that by incrementing a time keeper during update whenever you walk and then use modulo to get the frame to show, for example like:
frame= math.ceil((T*animationspeed) % nr_of_frames)
Set T to 0 if standing and have the resting frame nr 0.
That has the merit that the animation speed can be freely selected independent of the walking speed. plus, you can put a step sound on a specific frame there and it is automatically synced.

Re: Tricks for slower walking animations on tilemaps?

Posted: Sat Sep 18, 2021 7:07 pm
by Eglaios
I'll try stuff by myself considering all of that, and see what I'm good with...
I should have made a few precisions :
-The character kinda has no legs on purpose, that's how I want it to be, though I still wanted to have it walk "longer" steps
-I didn't animate the arms because I wasn't sure yet which sprites I'd keep, so I only made feet to first see how it would be. I still planned to make the animation look cleaner (and get rid of this 1-frame glitchy thing that can be seen on the video, each time it reaches a tile)

Thank you once again for your advices!

Re: Tricks for slower walking animations on tilemaps?

Posted: Sat Sep 18, 2021 10:35 pm
by Eglaios
Well... Turns out the walking speed looks definitely better whith arm movement, I sure should have followed this advice earlier, and I'll keep that in mind...

I made a sort of walking switch : I have 2 tables containing forward/backward arm movement, and it switches like this (example for forward movement) :

Code: Select all

function init()
 MoveUp = {
  {quads table containing forward arm animation},
  {backward arm animation}
 }
 moveSwitch = 1
end

if "character finishes moving to a tile" then
 moveSwitch = 3 - moveSwitch
end
if "character moves up" then
 draw(MoveUp[moveSwitch][quad index])
end
It looks a bit crafty, not sure if this would be the best way, and if it's a good choice to store my animation frames as a list of quads, but it already looks... less hyperactive lol. I'll go with that (the feet movement is currently the same for both switches, but I might change that to make it look even more natural, and maybe reduce arm swing amplitude as well).

Thank you for your support, once again!