The code looks good except for 2 things:
1.
Code:
if((vVel[0] && vVel[1] && !vVel[2]) && ...)
This will make footsteps not work if a player is running perfectly horizontally on the X or Y axis, such as against a building.
Should be:
Code:
if(((vVel[0] || vVel[1]) && !vVel[2]) && ...)
2. I think the volume of footsteps while a player is walking should either be removed or half the normal volume.
__________________