Hi, 2009/11/10, Justin Clark-Casey <jjusti...@googlemail.com>: > There was a bit of discussion last week in the OpenSim dev's office hour and > on > irc that changing av_capsule_tilted = false in OpenSim.ini.example would be a > good idea in the master branch for avatar related physics for ODE.
The av_capsule_tilted=false should generally be safe. Please let me mention some general things to watch out for. These shouldn't be a problem now, but were problems that I encountered and hopefully fixed: 1) Avatar falling through terrain 2) Extremely rapid changes of direction and movement could conceivably cause the avatar capsule to become unstable. Note that these items are refer to poor behavior in terms of the physics engine itself (visualized with drawstuff), as opposed to ways that poor behavior might manifest itself in the viewer (such as bendy-knees). Regarding 1, terrain collisions, reducing the avatar tilt seems to increase the tendency of the avatar to fall through the terrain - this has something to do with the ODE terrain collider, which I wasn't able to fully debug - anyone wanting to give it a shot, let me know. As a workaround, currently a small, experimentally-determined tilt is maintained (even with tilt=false) to prevent falling through the terrain. This isn't ideal, but seems to work well enough. Regarding 2, rapid changing of avatar direction: The tilt rotates with the avatar, snapped in 90-degree increments to one of four directions (NE,NW,SE,SW), so that the direction of the tilt always is opposite the direction of movement. In other words, if your avatar is moving forwards, the avatar is leaning slightly backwards. The reason the tilt is rotated with the avatar is to reduce/remove direction-dependent behavior, such as being only able to climb over prims from a certain direction. The reason the tilt rotation is snapped to 90-degree increments, instead of smoothly rotating with the avatar, is to prevent extremely rapid changes in tilt orientation, which is done by setting ODE motor stops. If you change ODE motor stops too rapidly, the avatar capsule may "explode" and go flying several hundred meters into the air. Conceivably, if your avatar walked directly straddling a line facing northeast and constantly did a zig-zag motion above and below the NE line, this could cause the avatar orientation to change rapidly enough to cause avatar instability. In practice I doubt that this will be an issue. (Still, would be interesting to write a bot to try to provoke this behavior.) More generally, however, this dynamically rotating tilt is not ideal. I think there are 2 avatar physics issues that need further investigation: 1. Removing the tilt completely instead of just reducing it. Currently not workable because the terrain collider then allows the avatar capsule to fall through sometimes. Fixing this would allow complete consistency (direction-independence) in avatar physics behavior, close avatar interactions like hugging, and no need for changing the motor stops while the avatar is moving, reducing risk of explosion. 2. Allowing flexible height of steps that the avatar can step over. Currently the bottom-most hemisphere of the avatar capsule always drags against the terrain or any objects it collides with. This has the limitation that the height of obstacles that can successfully be stepped over cannot be directly tuned, as it depends indirectly on the size of the hemisphere and the specifics of collision handling (things like ERP, CFM, bounce). Ideally we would want to be able to directly tune the height of "steppable" objects in OpenSim.ini, or perhaps have this be different per avatar (dependent e.g. on the avatar height). But it looks like we would probably have to implement a new avatar physics mechanism to handle this flexibly: something like a floating capsule, capsule+sphere, or using mesh collisions instead of primitive capsules. -nlin _______________________________________________ Opensim-dev mailing list Opensim-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/opensim-dev