Difference between revisions of "LlSetCameraAtOffset"

From Second Life Wiki
Jump to navigation Jump to search
m
Line 1: Line 1:
{{LSL_Function
{{LSL_Function
|func_id=244|func_sleep=0.0|func_energy=10.0
|func_id=244|func_sleep=0.0|func_energy=10.0
|func=llSetCameraAtOffset|p1_type=vector|p1_name=offset|p1_desc=offset relative to the object's center and expressed in object coordinates
|func=llSetCameraAtOffset
|func_footnote=This is the point the camera looks at, not the [[llSetCameraEyeOffset|position of the camera's eye]].
|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 point the camera is looking at to '''offset''' if an avatar sits on the object.
|func_desc=Sets the point the camera is looking at to '''offset''' for avatars that sit on the object.
|func_footnote=This is the point the camera looks at, not the [[llSetCameraEyeOffset|position of the camera's eye]].<br/>This function has been superseded by [[llSetCameraParams]].
|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. In this situation it may be beneficial to use the more powerful [[llSetCameraParams]] instead.
* 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 31:
         llSay(0, "Please sit down");
         llSay(0, "Please sit down");
     }
     }
}
}</lsl>
</lsl>
|helpers
|helpers
|also_functions=
|also_functions=
{{LSL DefineRow||[[llSetCameraEyeOffset]]|}}
{{LSL DefineRow||[[llSetCameraEyeOffset]]|}}
{{LSL DefineRow||[[llSetCameraParams]]|}}
{{LSL DefineRow||[[llForceMouselook]]|}}
{{LSL DefineRow||[[llForceMouselook]]|}}
|also_events
|also_events
Line 42: Line 41:
|also_articles
|also_articles
|notes
|notes
|permission
|negative_index
|sort=SetCameraAtOffset
|sort=SetCameraAtOffset
|cat1=Camera
|cat1=Camera
|cat2=Sit
|cat2=Sit
|cat3=Vehicle
|cat3=Vehicle
|cat4
|cat4=Prim
}}
}}

Revision as of 12:54, 30 May 2008

Summary

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

Sets the point the camera is looking at to 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 point the camera looks at, not the position of the camera's eye.
This function has been superseded by llSetCameraParams.

Caveats

  • Setting this will not update the cameras of seated avatars, it will only effect avatars that subsequently sit down. In this situation it may be beneficial to use the more powerful llSetCameraParams instead.
  • 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

Deep Notes

Signature

function void llSetCameraAtOffset( vector offset );