branchrust_reboot/main/PhysicsLayerRevamp/ServerSideRagdollscancel
66 Commits over 30 Days - 0.09cph!
Gave server-side ragdoll a bigger head collider
Fixed physics silliness when a client-side ragdoll had multiple arrows in it that overlapped each other
Merge main -> ServerSideRagdolls
Fixed empty sourceBonePos array on load from save
Fixed momentary invisible player when corpse spawns while player was parented
Fixed interpolation issues, new system now working correctly
Revamp ragdoll bone position and initial lerp, fix limb trouble between client and server. Broken right now, but committing this mostly-complete WIP
Don't copy bone positions on client when ragdoll sim is on server, since the server doesn't know about any of the non-rigidbody bone positions, so it just confuses things (and most noticeably messes up the neck if the player was looking down)
Only use bodyRotation for the up axis of the corpse, since it's really more like eye rotation
Sort bones for perfect data sync
Merge main -> ServerSideRagdolls
Fixed more init issues when loading server-side ragdolls from a save. Limbs are not positioned correctly
Server loads limb positions from save files
Further improvements to kinematic ragdoll sleep activating when it should, even on vehicles. Shh bby is ok
Be a bit more aggressive with ragdoll and dropped item sleep
Code gen, fix missing ragdoll code
Merge main -> ServerSideRagdolls
Fixed lerp no longer working on SS ragdolls due to parent ent assignment order bug
Server-side ragdolls now collide with the AI layer (horses etc)
- Fixed body position and rotation not being set correctly when player dies while mounted.
- Only store bone names once.
- Assign missing param.
Combine all bone pos data into one parent ScraptableObject as it was getting out of hand with all the mounted poses. Refactoring etc.
Added bone position data for all 31 mounted poses, and updated the others.
Merge Main -> ServerSideRagdolls
- Disable ragdoll parenting in scrap heli, behaviour seems a little better overall this way. Also matches dropped item behaviour.
- Adjust scrap heli prevent movement colliders.
New PreventMovement colliders for submarines. These occupy a niche between the big chunky world colliders for physics and the very detailed colliders for bullets, helping with player, dropped item, and ragdoll physics interactions.
Enable Prevent Movement layer collision when server-side ragdolls are enabled
Merge main -> ServerSideRagdolls
Revert to letting corpse getting destroyed if parent is destroyed, due to errors on the trigger when destroying parents. "Cannot set the parent of the GameObject '{corpse}' while activating or deactivating the parent GameObject '{parent}'."
Improve dropped item behaviour when parent is destroyed
Don't destroy ragdolls when parent is destroyed
Serversideragdolls convar now also adjust physics layer collisions, and is properly replicated + saved
More solver iterations for server-side to compensate for 16Hz. Greatly reduced jitter
Simplified ClientInit, less duplication
Finally fixed player neck bone issues properly for both client and server side ragdolls. Will try to clean this up a bit more.
Revert
90141, fix client-side ragdoll neck issues
Merge main -> ServerSideRagdolls
Add a ray check like DroppedItem has
Use the same kind of kinematic disabling system on ragdolls as I recently implements for dropped items. Allows parented ragdolls on moving objects to sleep.
Merge main -> ServerSideRagdolls
Simplified BaseCorpse ClientInit, things seems to be stable now.
Take a break from interpolation if we're not getting new data anyway (rigidbody sleeping)
Merge Main -> ServerSideRagdolls
Minor edits (make fields readonly)
Removed Update method from Ragdolls, use a call from Client.cs instead for reduced overhead