Difference between revisions of "LlSetCameraEyeOffset"

From Second Life Wiki
Jump to navigation Jump to search
m (Reproducing the change strife did on twin page)
(My memory is a bit hazy on this but is this function based on the objects root position or the prims position?)
Line 1: Line 1:
{{LSL_Function
{{LSL_Function
|func_id=243|func_sleep=0.0|func_energy=10.0
|func_id=243|func_sleep=0.0|func_energy=10.0
|func=llSetCameraEyeOffset|p1_type=vector|p1_name=offset|p1_desc=offset relative to the object's center and expressed in object coordinates
|func=llSetCameraEyeOffset|p1_type=vector|p1_name=offset|p1_desc=offset relative to the object's center and expressed in [[Viewer_coordinate_frames#Local|local coordinates]]
|func_desc=Sets the camera eye '''offset''' for avatars that sit on the object.
|func_footnote=This is the position of the camera's eye, not the [[llSetCameraAtOffset|point it looks at]].
|func_footnote=This is the position of the camera's eye, not the [[llSetCameraAtOffset|point it looks at]].
|func_desc=Sets the camera eye to '''offset''' if an avatar sits on the object.
|return_text
|return_text
|spec
|spec
|caveats=
|caveats=
* The change will only take effect ''next'' time the avatar sits on the prim. You can't change the offset once it has already sit down.
* Setting this will not update the cameras of seated avatars, it will only effect avatars that subsequently sit down.
* If you use a sit pose rotation and want to set the camera relatively to your avatar, you must do calculations.
* The '''offset''' is [[Viewer_coordinate_frames#Local|locally relative]] to the object, if you want it relative to the seated [[Viewer_coordinate_frames#Agent|avatar]] (which likely has a custom sit rotation and offset) or the [[Viewer_coordinate_frames#Region|region]], you must do the calculation yourself.
* If you rotate the object and want to set the camera relatively to the region, you have to do calculations too.
|constants
|constants
|examples=<lsl>
|examples=<lsl>// Sit the avatar looking at an arbitrary direction
// Sit the avatar looking at an arbitrary direction
// Look over the avatar's shoulders from behind once it sits down
// Look over the avatar's shoulders from behind once it sits down


Line 32: Line 30:
         llSay(0, "Please sit down");
         llSay(0, "Please sit down");
     }
     }
}
}</lsl>
</lsl>
|helpers
|helpers
|also_functions=
|also_functions=
Line 41: Line 38:
|also_tests
|also_tests
|also_articles
|also_articles
|notes|cat1=Camera
|notes
|cat1=Camera
|cat2=Sit
|cat2=Sit
|cat3=Vehicle
|cat3=Vehicle
|cat4
|cat4=Prim
|cat5
|cat6
|cat7
|cat8
}}
}}

Revision as of 12:46, 30 May 2008

Summary

Function: llSetCameraEyeOffset( vector offset );
0.0 Forced Delay
10.0 Energy

Sets the camera eye offset for avatars that sit on the object.

• vector offset offset relative to the object's center and expressed in local coordinates

This is the position of the camera's eye, not the point it looks at.

Caveats

  • Setting this will not update the cameras of seated avatars, it will only effect avatars that subsequently sit down.
  • The offset is locally relative to the object, if you want it relative to the seated avatar (which likely has a custom sit rotation and offset) or the region, you must do the calculation yourself.

Examples

<lsl>// Sit the avatar looking at an arbitrary direction // Look over the avatar's shoulders from behind once it sits down

back_view(float degrees) {

    rotation sitRot = llAxisAngle2Rot(<0, 0, 1>, degrees * DEG_TO_RAD);
   
    llSitTarget(<0, 0, 0.1>, sitRot);
       
    llSetCameraEyeOffset(<-2, 0, 1> * sitRot);
    llSetCameraAtOffset(<2, 0, 1> * sitRot);

}

default {

   state_entry()
   {
       back_view( 208 );
       llSay(0, "Please sit down");
   }
}</lsl>

See Also

Functions

•  llSetCameraAtOffset
•  llForceMouselook

Deep Notes

Signature

function void llSetCameraEyeOffset( vector offset );