LlSetCameraParams
De DigiWiki.
You can either set the camera in region relative coordinates or you can make the camera follow your avatar.
Region relative coordinates, an example:
lookAtMe( integer perms ) { if ( perms & PERMISSION_CONTROL_CAMERA ) { vector camPos = llGetPos() + (relCamP * llGetRot() * turnOnChair) ; vector camFocus = llGetPos() ; llClearCameraParams(); // reset camera to default llSetCameraParams([ CAMERA_ACTIVE, 1, // 1 is active, 0 is inactive CAMERA_FOCUS, camFocus, // region relative position CAMERA_FOCUS_LOCKED, TRUE, // (TRUE or FALSE) CAMERA_POSITION, camPos, // region relative position CAMERA_POSITION_LOCKED, TRUE // (TRUE or FALSE) ]); } }
Note that Focus and Position are both locked. This first example makes the camera look at camFocus from camPos.
Camera follow avatar, an example:
lookAtMe( integer perms ) { if ( perms & PERMISSION_CONTROL_CAMERA ) { llClearCameraParams(); // reset camera to default llSetCameraParams([ CAMERA_ACTIVE, 1, // 1 is active, 0 is inactive CAMERA_BEHINDNESS_ANGLE, 30.0, // (0 to 180) degrees CAMERA_BEHINDNESS_LAG, 0.0, // (0 to 3) seconds CAMERA_DISTANCE, 10.0, // ( 0.5 to 10) meters //CAMERA_FOCUS, <0,0,5>, // region relative position CAMERA_FOCUS_LAG, 0.05 , // (0 to 3) seconds CAMERA_FOCUS_LOCKED, FALSE, // (TRUE or FALSE) CAMERA_FOCUS_THRESHOLD, 0.0, // (0 to 4) meters CAMERA_PITCH, 10.0, // (-45 to 80) degrees //CAMERA_POSITION, <0,0,0>, // region relative position CAMERA_POSITION_LAG, 0.0, // (0 to 3) seconds CAMERA_POSITION_LOCKED, FALSE, // (TRUE or FALSE) CAMERA_POSITION_THRESHOLD, 0.0, // (0 to 4) meters CAMERA_FOCUS_OFFSET, <2.0, 0.0, 0.0> // <-10,-10,-10> to <10,10,10> meters ]); } }
Note that in this second example Focus and Position are NOT locked and not even set. This is appropriate for making the camera follow a pilot on a vehicle.