7,928 Commits over 1,004 Days - 0.33cph!
Added AnimatorEventLOD component, disables animation events past a distance
Applied to all animals, 100m for most, 20 to 60m for critters
For 10 wolves roaming 150m away, all events are now off:
339 B -> 0 per frame
Animation update ~0.05ms per frame cheaper
Only create the sound fade modulator once the sound starts fading, saves the allocation for sounds that never fade
So we never pay useless modulator allocation
merge from flexvirtualscroll_optim
merge from uicompass_optim
Fixed animal footstep sounds not playing until its first idle animation finished
▌▉▄▅▍▍▆▋ ▆▇█▆▍ ▇▄▉█ ▅▌▌█ ▇█▍▆▇▌▌▇
Fixed boars bulls cows and wolves having 4 left foot
merge from automated_testing/client
merge from automated_testing/client
Fixed SM_DisableHorseProceduralMotion OnStateEnter allocs...
Fixed SM_DisableHorseProceduralMotion OnStateExit allocs
Well actually lets drop the sounds from missed rays because that meant all the shit at 0,0,0 would be audible now
Fixed missed rays spawning the footstep sounds at 0,0,0 🙃
Animal footsteps raycast optims:
- On dry terrain, we read the terrain splat map instead of raycasting, one ray every 2 meters to check the animal is still on terrain
- If not on terrain (rocks, base, water) we just do one ray instead of 4
- If the animal is in water, we still play the effect past the audible range to make sure you can see the water splash effects
5 wolves running around on grass, 80% less raycasts
~0.115 -> ~0.08 ms
Skip footstep effect spawning and only keep the sound if they're fully invisible
It cuts all the effect spawning on grass for all animals
Wolf footstep playing in editor: ~0.15ms -> ~0.11ms
(this is not applied if music is enabled because aggressive animals footstep effects increase music intensity when nearby)
Fixed all wild animals in network range casting rays for their footsteps effects regardless of distance (if occlusion culling disabled)
We now match the footstep sound def max hearing distance before casting the ray (around 50 meters)
Was spending 0.5ms and 1.2KB every frame for 4 animals
Fixed UICompass copying its mat properties every frame, saves ~0.05ms a frame
Prevent FlexVirtualScroll from running its LateUpdate when its parent canvas is disabled. Saves ~0.04ms a frame
▊▅▊▍█ ▌▆▍▌▉▌█▉▉ ▉█▅ ▌█▍ ▉▌▉▇▅▆▍▊ ▋▋ ▇██ ▋▅▉▌ ▌▇▄▉▊█▄ ▋▇▉▆▄▄▇ ▇▋ ▌▆▌▉▇▋▅▌▊▆▅▅█▄▌▇ ▍▉▆█▇█▌▇ █▉ ▋▊▊▉▊ █▄▋▊█▇ ▍▉▄▅▅
We now take a screenshot when a client test fails
Container tests, opens every container in the game
Deleted furnace_static, its unused and cant be opened
Description pass and cleanup
Cows moo less: idle animations can now be weighted
Some cleanup, converted some old tests
Fixed copypaste erroring when pasting invulnerable entities
▋▆▋▆▇▄▋▆▍ ▅▅▄▇▍█▍▌▍ ▆▋▆▇ ▊▌▅▌▇▌█ ▉▌▅▍▍ ▋▍▅▉▅▅▄▅ ▍▋▄▊▉▌▄ ▌▉▇ ▉▊▊█▉▌ ▅█▊ ▍▋█▆▄▄ █▅█▋▆▌ ▄▊ ▄▇▍▌█ ▇▉ ▋▊▍▉▊ ▆▆▇ █▆█ ▊█▅██
Fixed server hip movement causing the horse to never sleep (regression from
167107
Fixed dismounted horses keeping their head turned and hip braced
Fixed pooling bugs messing with horse animations
We can now get rid of the duped ridersync in the LateUpdate now that we don't control the spine pos from the IK
Chops another 0.42ms per frame for 50 moving horses
Removed LegsAnimator on the server, we now use the existing ground normal raycasts to calculate the hip position
Hip pos calulcation on the server for 50 moving horses:
2.2ms -> 0.09ms
LegsAnimator batched raycast commands
50 moving horses: server legs 4.5 ms down to 2.1 ms per frame in the editor (still too much)
Removed so dead code in TerrainConfig following
167041