LSL関数の使い方 第80回 カメラ制御編(3)カメラコントロールをオン・オフするには(llSetCameraP

PR
カメラコントロールをオン・オフするには、llSetCameraParamsを使用します。

●関数解説
llSetCameraParams
・概要
llSetCameraParams関数は、カメラを制御するための関数です。
引数に様々な定数と値をリスト型で設定することにより、カメラを自由自在に操ります。

スクリプトでカメラコントロールをオン・オフするには、定数 CAMERA_ACTIVE、値 TRUE または FALSE を設定します。
・書式
llSetCameraParams(list rules)
・パラメータ
定数 : CAMERA_ACTIVE
定数の値 : 12
型 : integer
単位 : isActive
デフォルト値 : FALSE
値の範囲 : TRUE or FALSE
記述 : スクリプトでのカメラコントロールをオン・オフ

リスト型によりカメラのパラメータ(定数と値)をセットします。
複数のカメラパラメータ(定数と値)を一度にセットすることができます。

・戻り値
なし
・使い方
llSetCameraParams([
CAMERA_ACTIVE, TRUE
]);

※ CAMERA_ACTIVE, 1 と設定しても問題ありません。この場合、CAMERA_ACTIVE, TRUE と同じ意味になります。

●サンプル
アバターの正面にカメラを移動させるサンプルです。
サンプルを実行した時にカメラが移動しない場合は、Alt + Zoom などで、カメラコントロールが支配されている状態にあります。
ESCキーを2回押して、カメラコントロールを解放すると、正常動作します。
この動作は、カメラコントロールの仕様なので、覚えておきましょう。

set_camera(vector vPos, vector vFwd){

    integer perm = llGetPermissions();
    if (perm & PERMISSION_CONTROL_CAMERA) {
        llSetCameraParams([

            // スクリプトでのカメラコントロールをオン
            CAMERA_ACTIVE, TRUE,
            CAMERA_POSITION, vPos + vFwd, 
            CAMERA_POSITION_LOCKED, TRUE,
            CAMERA_FOCUS, vPos,
            CAMERA_FOCUS_LOCKED, TRUE
        ]);
    }   
}

front_camera(){
    vector vFwd = llRot2Fwd(llGetRot());
    vFwd += vFwd;
    vector vPos = llGetPos();
    set_camera(vPos,vFwd);
}

default
{
    state_entry(){
        if (llGetAttached() != 0){
            llRequestPermissions(llGetOwner(), PERMISSION_CONTROL_CAMERA);
            front_camera();
        }
    }

    attach(key agent){
        if (agent != NULL_KEY){
            llRequestPermissions(agent, PERMISSION_CONTROL_CAMERA);
            front_camera();
        }else{
            integer perm = llGetPermissions();
            if (perm & PERMISSION_CONTROL_CAMERA){
                llClearCameraParams();
                llReleaseCamera(llGetPermissionsKey());
            }
        }
    }

    on_rez(integer param){
        llResetScript();
    }
}



■参照

CAMERA_ACTIVE
CAMERA_BEHINDNESS_ANGLE
CAMERA_BEHINDNESS_LAG
CAMERA_DISTANCE
CAMERA_FOCUS
CAMERA_FOCUS_LAG
CAMERA_FOCUS_LOCKED
CAMERA_FOCUS_OFFSET
CAMERA_FOCUS_THRESHOLD
CAMERA_PITCH
CAMERA_POSITION
CAMERA_POSITION_LAG
CAMERA_POSITION_LOCKED
CAMERA_POSITION_THRESHOLD
Ads by Google

SLguide.jp 最新スポット情報