Difference between revisions of "Avatar Position Adjustement to Avatar Height When Sitting"

From Second Life Wiki
Jump to navigation Jump to search
Line 2: Line 2:


This is a piece of code, that is meant to be putted inside a changed event (what is initialized when avatar sits).<br><br>
This is a piece of code, that is meant to be putted inside a changed event (what is initialized when avatar sits).<br><br>
This snippet is for a prim that is AT THE FLOOR LEVEL. If you need a snippet for a chair, you need to adjust the parameters according. <br><br>
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. <br><br>
That is to minus the height of the seat from this equation below.
 





Revision as of 11:32, 16 April 2014

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.


<lsl>

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


</lsl>