This goes well beyond what Unity just added to the CharacterController. The default prefab does the same, but you have MUCH more control over which clips play and under what circumstances. The main thing is they can depend on the texture over which the character is moving.