“LlSetCameraParams”的版本间的差异
|  (创建页面,内容为“{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}}   {{函数详情 |函数名 = Function: llSetCameraParams( list rules );  |参数= 参数:• li…”) | |||
| 第87行: | 第87行: | ||
| {| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
| |- | |- | ||
| − | !   | + | ! Rule | 
| ! 	 | ! 	 | ||
| − | !   | + | ! Parameter | 
| + | ! Default | ||
| + | ! Value Range | ||
| + | ! Description | ||
| |- | |- | ||
| − | |   | + | | [[CAMERA_ACTIVE]] | 
| − | |   | + | | 12 | 
| − | |   | + | | [[integer]] isActive  | 
| + | | [[FALSE]]  | ||
| + | | [[TRUE]] or [[FALSE]] | ||
| + | | 打开或关闭相机的脚本控制。 | ||
| |- | |- | ||
| − | |   | + | | [[CAMERA_BEHINDNESS_ANGLE]] | 
| − | |   | + | | 8 | 
| − | |   | + | | [[float]] degrees  | 
| + | | 10.0  | ||
| + | | 0 to 180  | ||
| + | | 设置相机不受目标旋转变化约束的角度。 | ||
| + | |- | ||
| + | | [[CAMERA_BEHINDNESS_LAG]] | ||
| + | | 9 | ||
| + | | [[float]] seconds  | ||
| + | | 0.0  | ||
| + | | 0 to 3 | ||
| + | | 设置在不考虑落后角的情况下,相机被迫停留在目标物体后面的强度。 | ||
| + | |- | ||
| + | | [[CAMERA_DISTANCE]] | ||
| + | | 7 | ||
| + | | [[float]] meters  | ||
| + | | 3.0 | ||
| + | | 0.5 to 50  | ||
| + | | 设置相机与目标的距离。 | ||
| + | |- | ||
| + | | [[CAMERA_FOCUS]] | ||
| + | | 17 | ||
| + | | [[vector]] position  | ||
| + | | n/a  | ||
| + | | n/a  | ||
| + | | 以区域坐标设置相机焦距(目标位置)。 | ||
| + | |- | ||
| + | | [[CAMERA_FOCUS_LAG]] | ||
| + | | 6 | ||
| + | | [[float]] seconds  | ||
| + | | 0.1  | ||
| + | | 0 to 3  | ||
| + | | 当相机试图瞄准目标时的滞后程度。 | ||
| + | |- | ||
| + | | [[CAMERA_FOCUS_LOCKED]] | ||
| + | | 22 | ||
| + | | [[integer]] isLocked  | ||
| + | | [[FALSE]]  | ||
| + | | [[TRUE]] or [[FALSE]] | ||
| + | | 锁定相机焦点,使其不会移动。 | ||
| + | |- | ||
| + | | [[CAMERA_FOCUS_OFFSET]] | ||
| + | | 1 | ||
| + | | [[vector]] meters  | ||
| + | | <0.0,0.0,0.0>  | ||
| + | | <-10,-10,-10> to <10,10,10>  | ||
| + | | 调整相对于目标的相机对焦位置。 | ||
| + | |- | ||
| + | | [[CAMERA_FOCUS_THRESHOLD]] | ||
| + | | 11 | ||
| + | | [[float]] meters  | ||
| + | | 1.0  | ||
| + | | 0 to 4  | ||
| + | | 设置围绕摄像机目标位置的一个球体的半径,该球体的焦点不受目标运动的影响。 | ||
| + | |- | ||
| + | | [[CAMERA_PITCH]] | ||
| + | | 0 | ||
| + | | [[float]] degrees  | ||
| + | | 0.0  | ||
| + | | -45 to 80  | ||
| + | | 调整相机向前瞄准和向下瞄准的角度量,保持相同的距离;类似于‘事件’。” | ||
| + | |- | ||
| + | | [[CAMERA_POSITION]] | ||
| + | | 13 | ||
| + | | [[vector]] position  | ||
| + | | n/a  | ||
| + | | n/a  | ||
| + | | 以区域坐标设置摄像机位置。 | ||
| + | |- | ||
| + | | [[CAMERA_POSITION_LAG]] | ||
| + | | 5 | ||
| + | | [[float]] seconds  | ||
| + | | 0.1  | ||
| + | | 0 to 3  | ||
| + | | 当相机试图移动到它的“理想”位置时,它滞后了多少。 | ||
| + | |- | ||
| + | | [[CAMERA_POSITION_LOCKED]] | ||
| + | | 21  | ||
| + | | [[integer]] isLocked  | ||
| + | | [[FALSE]]  | ||
| + | | [[TRUE]] or [[FALSE]] | ||
| + | | 锁定相机位置,使其不会移动。 | ||
| + | |- | ||
| + | | [[CAMERA_POSITION_THRESHOLD]] | ||
| + | | 10 | ||
| + | | [[float]] meters  | ||
| + | | 1.0  | ||
| + | | 0 to 4  | ||
| + | | 设置不受目标运动影响的摄像机理想位置周围的球体半径。 | ||
| |} | |} | ||
2020年8月22日 (六) 03:28的最新版本
| 首页 | 函数 | 事件 | 类型 | 操作符 | 常数 | Flow Control | Script Library | Categorized Library | Tutorials | 
| 函数名 | 
|---|
| Function: llSetCameraParams( list rules ); | 
| 参数:• list rules – Format is [ rule1, data1, rule2, data2 . . . rulen, datan ] | 
| 返回值:一次设置多个相机参数。 要运行这个函数,脚本必须使用llRequestPermissions请求PERMISSION_CONTROL_CAMERA权限。 | 
| 注意事项 | 
|---|
| 摄像头控制目前(服务器1.38)只支持附件和你坐的对象。否则将导致在DEBUG_CHANNEL上显示错误。 如果代理最后使用的控件是脚本化的摄像机控件,则脚本化的摄像机参数将不会为代理设置。手动相机控制也会覆盖设置的参数。 Permission 不要依赖于权限的自动授予状态。始终使用run_time_permissions事件。 如果脚本缺少权限PERMISSION_CONTROL_CAMERA,该脚本将在DEBUG_CHANNEL上大叫一个错误,操作失败(但脚本继续运行)。 当化身从对象上站起或分离对象时,PERMISSION_CONTROL_CAMERA权限将自动撤销,并且任何脚本化的摄像机参数将自动清除。 | 
| 示例 | 
|---|
| 你可以在区域相对坐标中设置摄像机,也可以让摄像机跟随你的化身。 Region relative coordinates, an example: lookAtMe( integer perms )
{
    if ( perms & PERMISSION_CONTROL_CAMERA )
    {
        vector camPos = llGetPos() + (relCamP * llGetRot() * turnOnChair) ;
        vector camFocus = llGetPos() ;
        llClearCameraParams(); // 将摄像头设置为默认
        llSetCameraParams([
            CAMERA_ACTIVE, 1, // 1 is active, 0 is inactive
            CAMERA_FOCUS, camFocus, // 地区的相对位置
            CAMERA_FOCUS_LOCKED, TRUE, // (TRUE or FALSE)
            CAMERA_POSITION, camPos, // 地区的相对位置
            CAMERA_POSITION_LOCKED, TRUE // (TRUE or FALSE)
        ]);
    }
}
注意焦点和位置都是锁定的。第一个例子使相机从camPos看camFocus。 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
        ]);
    }
}
请注意,在第二个例子中,焦点和位置没有锁定,甚至没有设置。这是适合让相机跟随车辆上的飞行员。 | 
| 相关函数 | 
|---|
| llGetPermissions - 获得已授予的权限 llGetPermissionsKey - 获取授予权限的代理 llRequestPermissions - 请求的权限 | 
| 相关事件 | 
|---|
| run_time_permissions - 允许接收事件 | 
附录:(表格)
| Rule | Parameter | Default | Value Range | Description | |
|---|---|---|---|---|---|
| CAMERA_ACTIVE | 12 | integer isActive | FALSE | TRUE or FALSE | 打开或关闭相机的脚本控制。 | 
| CAMERA_BEHINDNESS_ANGLE | 8 | float degrees | 10.0 | 0 to 180 | 设置相机不受目标旋转变化约束的角度。 | 
| CAMERA_BEHINDNESS_LAG | 9 | float seconds | 0.0 | 0 to 3 | 设置在不考虑落后角的情况下,相机被迫停留在目标物体后面的强度。 | 
| CAMERA_DISTANCE | 7 | float meters | 3.0 | 0.5 to 50 | 设置相机与目标的距离。 | 
| CAMERA_FOCUS | 17 | vector position | n/a | n/a | 以区域坐标设置相机焦距(目标位置)。 | 
| CAMERA_FOCUS_LAG | 6 | float seconds | 0.1 | 0 to 3 | 当相机试图瞄准目标时的滞后程度。 | 
| CAMERA_FOCUS_LOCKED | 22 | integer isLocked | FALSE | TRUE or FALSE | 锁定相机焦点,使其不会移动。 | 
| CAMERA_FOCUS_OFFSET | 1 | vector meters | <0.0,0.0,0.0> | <-10,-10,-10> to <10,10,10> | 调整相对于目标的相机对焦位置。 | 
| CAMERA_FOCUS_THRESHOLD | 11 | float meters | 1.0 | 0 to 4 | 设置围绕摄像机目标位置的一个球体的半径,该球体的焦点不受目标运动的影响。 | 
| CAMERA_PITCH | 0 | float degrees | 0.0 | -45 to 80 | 调整相机向前瞄准和向下瞄准的角度量,保持相同的距离;类似于‘事件’。” | 
| CAMERA_POSITION | 13 | vector position | n/a | n/a | 以区域坐标设置摄像机位置。 | 
| CAMERA_POSITION_LAG | 5 | float seconds | 0.1 | 0 to 3 | 当相机试图移动到它的“理想”位置时,它滞后了多少。 | 
| CAMERA_POSITION_LOCKED | 21 | integer isLocked | FALSE | TRUE or FALSE | 锁定相机位置,使其不会移动。 | 
| CAMERA_POSITION_THRESHOLD | 10 | float meters | 1.0 | 0 to 4 | 设置不受目标运动影响的摄像机理想位置周围的球体半径。 | 
