Ability to attach an avatar to an object (eventually for "sit")

In SL, "sitting" is implemented effectively as linking the avatar to an object. They become part of the object, from the perspective of the physics engine. This is especially valuable for vehicles and is why people don't fall off them in SL.

I'm about to start creating a series of vehicle scripts. But practically, it's going to require that vehicles have invisible cages to keep people from falling off. And a vehicle that swivels or even goes upside-down will be awkward, as avatars will stay standing completely upright instead of tilting with the vehicles.

Right now, the position of an avatar is represented as a point between the feet on the ground. So if you local-teleport someone (via script) to, say, <0, 0, 0>, that's where their feet will be, not their torso, head, or other part. This is great for standing and walking. When it comes to sitting, we have no knowledge of where their posteriors will be in a seated position. Nor their arms. Nor any other part of them. They are just that one point, from a scripting perspective.

I know that this is a significant problem that Linden Lab needs to put a lot of careful thought to. In SL, lining people up with furniture is a significant challenge that is fundamentally unsolvable using the current model there. And so I'm not asking you to solve this problem just yet.

What I am specifically asking for is the ability to attach someone, still limited to the standing pos, to the "floor" of some vehicle or other static or dynamic object. Mainly to keep them from falling off of it. This obviously entails some user interface mechanism for users to voluntary attach and detach, of course.

Another key reason for this would be to take over the WASD controls in script for the vehicle. Right now, I can respond to those key-presses, but the agent will also walk around, which doesn't make sense on many vehicles.

I'll also make a proposal for how to think about the sit-pose problem that may influence your thinking about my present attachment proposal. Consider adding to the AgentPrivate class (for scripting) a set of predefined vectors representing key positions on the avatar. Imagine two for the elbows, for example. Two for the wrists. One for the center of the pelvis. And so on. If the system can report the positions relative to the avatar's overall position (between feet) and orientation, there's a lot that designers of vehicles, furniture, and attachments can do with that.

Moreover, I really want to advocate strongly for the ability to articulate avatar joints via script. I believe that feature should come out at the same time as support for avatar animation files. Why do this? Because ideally, a piece of furniture (via script) would implement forward kinematics or inverse kinematics to get an avatar to perfectly sit on, say, a motorcycle seat and have their hands firmly on the handlebars, even as the wheel turns left and right. In short, rather than design furniture around animations, I'd rather design body kinetics around furniture so everyone can fit on it properly.

All this aside, for now, I would be happy just being able to glue someone's feet to the floor of a vehicle.


Please sign in to leave a comment.