UMA could be adding/changing colliders and/or layers. The layers on the character are controlled by the “UMARendererAsset”, so if you have supplied a default one, or a slot has defined one, then that could be modifying something.
As well, UMA has several physics slots (a simple capsule collider, and a couple more comprehensive collider setups for hitboxes/ragdolls.
There is also a component that UMA uses to setup collider layers. So you might also want to make sure you are not using that inadvertantly in one of your scenes.
None of these things should be on by default (except maybe the capsule collider), so shouldn’t be there unless you based some of your stuff on one of the physics scenes.
Take a look at the “Additional Utility Recipes” to make sure that you aren’t inadvertantly including some of the physics recipes (“PhysicsHDRecipe”, “PhysicsStandardRecipe”). As well, make sure you have not included the “CollisionMatrixFixer” prefab or component.
Thanks for the tips. It took some digging but I feel confident that…
No additional colliders are being added
The existing colliders don’t have their layers changed
No additional layers are added
The collision matrix isn’t altered
Physics recipes aren’t being used
A second problem, that also goes away when the UMA components and UMA renderer are removed from my prefab, is that ray casts and sphere casts, performed from the first person viewpoint transfom, are not finding things with a position having a positive Y value relative to global X-Z plane translated to the player’s Y position. It’s as if the casts are blind to half the space. Once again, if I remove UMA from the prefab, everything works properly.
Quick follow-up. I made a non-dedicated Windows build and ran the server with “-batchmode” but without “-nographics”. This worked. The physics problems went away. The physics problems were present when running with “-nographics”.
I’ll post something to the physics group. If anything comes to mind, please share your thoughts. Thanks.
I’m really at a loss here - I’ve not seen any issues with Physics. Maybe related to the Unity version?
Maybe a collider has been moved or something?
Are you seeing any issues with the physics in the sample ragdoll scene?
I found the problem thanks to your suggestion. There’s a mismatch in the collider positions between the client and the server. The game object’s root transform is properly synced, but all of the subordinate transforms are shifted up (Y axis) by about 1 meter on the client, which explains what I’m seeing. The physics system is working fine.
I think I know why, but I need to confirm. When I constructed the player prefab, I started by adding the UMA and setting the animator controller. The controller’s start state doesn’t have a motion, since the actual animation to start with is conditional. UMA wants to use the initial motion to pose the character but in the absence of one, the avatar is translated to what appears to be the mesh center, which is a Y-axis discrepancy of about 1 meter. I’ve attached some pictures illustrating.
This is still a theory. Rebuilding my player prefab is going to take a bit of work. I’ll post findings.
Problem solved. My animator controller was to blame. The initial state was defaulting to a sort of T pose that had the origin for the mesh in the middle as opposed to the feet. UMA interpreted that correctly and used it as the basis for laying itself out and shifted all of the rig transforms, including my sight line for casting and the colliders. At runtime, UMA would translate everything back to the feet based on the current animation. But on a dedicated server that translation doesn’t happen, so everything was thrown off between the server and client. I don’t know why it doesn’t happen on a dedicated server, but I suspect it’s because rendering is turned off.
The fix was to get a proper animation plugged into my starting state in my animator controller. I then rebuilt the player prefab from the ground up. Since all of the animations are now based on a common origin, everything stays synchronized.