How to make footsteps accurate?

Hey, so recently I’ve been playing this game on roblox called Apeirophobia, and the footsteps used in that game sound very accurate to when the player’s foot actually hits the ground, opposed to the roblox default which will always play at the same speed no matter the player’s walkspeed, does anybody know how to do that ?

3 Likes

Are you talking about this?

1 Like

You could wait for particular key frames with AnimationTrack.KeyframeReached and play a sound.

Or do it physically, by raycasting a short distance out of the foot every frame.

4 Likes

Only part of it, custom sounds I already got, what I’m looking for is… well, accurate footsteps, that won’t play constantly no matter what the Walkspeed is, like the default running sound

1 Like

I don’t really know how to do some sounds stuff but is this it?

1 Like

Try using the Animation.KeyFrameReached event or GetMarkerReachedSignal how do I unreply

1 Like

Try using wait(0.27/(humanoid.WalkSpeed/16))

4 Likes
for _, obj in pairs(character:GetChildren()) do
if obj.Name:match("Foot") or obj.Name:match("Leg") then
obj.Touched:Connect(function()stepSound.Playing = true end)
end
end

I don’t think this will work but I think raycasting might.

2 Likes

This is the one. Have a lookup table of the animation and footstep keyframe, hook it. Edit im doing something similar with my metaverse entry, i want players to use their animations, but want accurate sounds for each choice. The method @nicemike40 mentioned is epic because you can apply it to every avatar!

2 Likes

its probably animation event on the run like adding animation event on the run and re uploading or its good timing

1 Like

I would personally recommend the footstep system included in ACS 2.0.1, they feel accurate to speeds and are material based. They also matched my custom walk animation… Delete everything besides their footstep system, and put it into the designated parents. In the RbxCharacterSounds LocalScript they provide, delete the following at line 202 and 203: * Players.LocalPlayer.Character:WaitForChild("ACS_Client"):WaitForChild("Stances"):WaitForChild("Loudness").Value. These work for R15 and maybe R6, however I did not test R6. I hope I was able to help you. If you have any questions or issues, make sure to send me a message.

4 Likes