A animação é dada por intervalo de frames. Tipo, a cada determinado número de frames o sprite do personagem é mudado para o próximo. Porém, o que complica alterar este intervalo é que ele não é um valor fixo, mas sim um valor que alterna conforme a velocidade do character. A função com o cálculo é a animationWait do Game_CharacterBase:
Game_CharacterBase.prototype.animationWait = function() {
return (9 - this.realMoveSpeed()) * 3;
};
A função retorna a quantidade de frames que devem ser esperados para trocar de sprite. Por exemplo, um evento com a velocidade 4 e não correndo:
(9 - this.realMoveSpeed()) * 3
(9 - 4) * 3 = 5 * 3 = 15
A cada 15 frames o sprite muda. Acho que o melhor elemento a se trocar, nesse caso, seria o 9 por um algarismo de menor valor.