Skip to content
lsl.devlsl.devLSL Dev

Avatar Position Adjustement to Avatar Height When Sitting

Animation Adjustement According to Avatar Height Snippet

This is a piece of code, that is meant to be putted inside a changed event (what is initialized when avatar sits).

This snippet is for a prim that is AT THE FLOOR LEVEL mainly for standing and walking animations. If you need a snippet for a chair, just use zero.

integer agentlinknum = llGetNumberOfPrims(); // when avatar sits it becomes the last child on the linkset

  vector size = llGetAgentSize(llAvatarOnSitTarget()); // we measure the avatar size
    
    
    float adjustement = (size.z / 2 );  // size.z is avatar height, pelvis is halfway the avatar
     
      
      
     float avup = (adjustement + ( size.z/10)) + 0.08; // half of avatar + one tenth of avatar + your own tweak (depends on various things, so you have to test what works for you)
            
llSetLinkPrimitiveParamsFast(agentlinknum,[PRIM_POS_LOCAL,<0,0,avup>,PRIM_ROT_LOCAL,llEuler2Rot(<0,0,0>)]); // here we move the avatar to the new position, the rotation part is the target rotation in euler
Original wiki source

Some wiki templates and tables need their original context. View this article on the Second Life Wiki. Technical wording and examples are retained from the source; historical guidance may differ from current behavior.