2024.9.12.772 - Footstep sound effect system, animation improvements

Resonite

Enter a novel digital universe with infinite possibilities. Whether you resonate with people around the world in a casual conversation, playing games and socializing or you riff off each other when creating anything from art to programming complex games, you'll find your place here.

Got another build with more improvements and additions for the locomotion system. There's a number of tweaks which should make it behave and look better and fix some of the weirdness. I think it's pretty ready to get some of the community made tunings integrated, so if you're helping to fine tune the parameters, give this build a try, I'll be looking at them soon. There's also more additions to the footstep system - it's now super easy to setup worlds with footstep sounds! You just need to create footstep sound definitions for various materials - you can select/modulate them based on the foot impact velocity and other parameters and then you just need to apply a single component to the collider surfaces for this to work. It works with submeshes (so you can match different sounds to different materials) and there's a component to work with splatmaps too! There's still more to do with the system, but this should be adding a bunch more polish and giving you some extra goodies at the side as well! [h2]New Features:[/h2] - Added FootstepSoundDefinition for defining a single footstep sound "material" -- You can have multiple clips for each definition, where one is chosen randomly based on the footstep specifics and weight -- Each sound can be limited to play only if the footstep impact velocity is within MinVelocity & MaxVelocity - this lets you use different sound effect clips depending on how fast the player is walking/running -- Each sound can also be limited to play only for walking on the ground or only when the player lands after falling/jumping. You can also limit clips to play only for the left or right foot -- You can modulate the sound pitch and volume based on the velocity and add a random variation to each as well -- The idea of this component is that you can easily reuse it for lots of colliders and parts of the world - e.g. by creating a preset for walking on grass, wood, metal and so on - Added FootstepSoundPlayer component -- Place this on any collider that you want to produce sound effects when players walk on them -- You can reference one or more "sound materials". Use multiple if you want each submesh of a mesh collider to produce a unique sound effect -- If only a single material is defined, it will be always used, regardless if the foot lands on a submesh -- The sound material component can be individual FootstepSoundDefinition or a component that handles further selection - Added FootstepSoundSplatmapSplitter -- This component is a sound material that can be plugged to FootstepSoundPlayer -- It allows you to reference a splatmap and then play appropriate sound effect depending on which part was hit - selecting unique sound effects for R, G, B or A, depending which channel has highest value -- The splatmap needs to be a readable texture for this to work -- This only works with UV mapped mesh colliders - Add SelfFootstepEventRelay (requested by @jackthefoxotter, issue #2927) -- Placing this in the hierarchy of the user lets you receive all footstep events generated by that user -- You can use this directly as the source for the FootstepEvents node [h2]Tweaks:[/h2] - Add landing velocity to the velocity of a footstep event after falling -- This will more accurately represent the impact velocity of the foot on landing - Improve forward movement reference handling to be smoother and prevent rapid flipping between front/backwards movement when moving sideways (based on report by @zyro1331, issue #2922) - Reworked knee effector calculation to produce better knee poses and avoid the leg randomly twisting around -- Note that it can still misbehave when crouching, particularly depending on the avatar and how the IK is configured [h2]Fixes:[/h2] - Fix locomotion forward reference flipping when looking up - Fix LocomotionState not being marked as data model type -- This fixes DebugLocomotionSimulator causing crash when added in a session with users (reported by @moonbase__, @draconas_rayne, Orion_Moonclaw, issue #2927) - Fix footstep events being missed when landing at high velocity