Difference between revisions of "LlSetCameraParams/ja"

From Second Life Wiki
Jump to navigation Jump to search
m (Undo revision 851762 by Mako Nozaki (Talk))
Line 2: Line 2:
|func_id=313|func_sleep=0.0|func_energy=10.0
|func_id=313|func_sleep=0.0|func_energy=10.0
|func=llSetCameraParams
|func=llSetCameraParams
|p1_type=list|p1_name=rules|p1_desc=[ rule1, data1, rule2, data2 . . . rule, data ]の形式
|p1_type=list|p1_name=rules|p1_desc=[ rule1, data1, rule2, data2 . . . rule, data ] の形式
|func_footnote
|func_footnote
|func_desc=一度に複数のカメラのパラメータを設定します。
|func_desc=一度に複数のカメラのパラメータを設定します。
|return_text
|return_text
|spec
|spec
|caveats
|caveats=*カメラコントロールは現在 (サーバ 1.38) アタッチメントや座っているオブジェクトでのみサポートされています。他で使用しようとすると、 エラーが {{LSLG/ja|DEBUG_CHANNEL}} で叫ばれることになります。
|examples=<lsl>llSetCameraParams([
*エージェントが最後に使用したコントロールがカメラコントロールの場合、スクリプトのカメラパラメータは設定されません。手動でのカメラ操作も設定を上書きします。
         CAMERA_ACTIVE, 1, // 1 is active, 0 is inactive
|examples=
        CAMERA_BEHINDNESS_ANGLE, 10.0, // (0 to 180) degrees
 
        CAMERA_BEHINDNESS_LAG, 0.0, // (0 to 3) seconds
カメラをリージョン座標に設定したり、カメラにアバターを追跡させたりできます。
        CAMERA_DISTANCE, 3.0, // ( 0.5 to 10) meters
 
        // CAMERA_FOCUS, <0,0,0>, // region-relative position
'''リージョン座標の例:'''
        CAMERA_FOCUS_LAG, 0.1 , // (0 to 3) seconds
 
        CAMERA_FOCUS_LOCKED, FALSE, // (TRUE or FALSE)
<lsl>lookAtMe( integer perms )
        CAMERA_FOCUS_THRESHOLD, 1.0, // (0 to 4) meters
{
        CAMERA_PITCH, 0.0, // (-45 to 80) degrees
    if ( perms & PERMISSION_CONTROL_CAMERA )
        // CAMERA_POSITION, <0,0,0>, // region-relative position
    {
        CAMERA_POSITION_LAG, 0.1, // (0 to 3) seconds
        vector camPos = llGetPos() + (relCamP * llGetRot() * turnOnChair) ;
        CAMERA_POSITION_LOCKED, FALSE, // (TRUE or FALSE)
        vector camFocus = llGetPos() ;
        CAMERA_POSITION_THRESHOLD, 1.0, // (0 to 4) meters
        llClearCameraParams(); // カメラをデフォルトにリセットします
        CAMERA_FOCUS_OFFSET, ZERO_VECTOR // <-10,-10,-10> to <10,10,10> meters
        llSetCameraParams([
    ]);</lsl>
            CAMERA_ACTIVE, 1, // 1 は有効, 0 は無効
            CAMERA_FOCUS, camFocus, // リージョン座標
            CAMERA_FOCUS_LOCKED, TRUE, // (TRUE または FALSE)
            CAMERA_POSITION, camPos, // リージョン座標
            CAMERA_POSITION_LOCKED, TRUE // (TRUE または FALSE)
         ]);
    }
}</lsl>
焦点と位置はロックされていることに注意してください。この最初の例では、カメラは ''camPos'' から ''camFocus'' を見るようになります。
 
'''カメラにアバターを追跡させる例:'''
 
<lsl>lookAtMe( integer perms )
{
    if ( perms & PERMISSION_CONTROL_CAMERA )
    {
        llClearCameraParams(); // カメラをデフォルトにリセットします
        llSetCameraParams([
            CAMERA_ACTIVE, 1, // 1 は有効, 0 は無効
            CAMERA_BEHINDNESS_ANGLE, 30.0, // (0 180)
            CAMERA_BEHINDNESS_LAG, 0.0, // (0 3)
            CAMERA_DISTANCE, 10.0, // ( 0.5 10) メートル
          //CAMERA_FOCUS, <0,0,5>, // リージョン座標
            CAMERA_FOCUS_LAG, 0.05 , // (0 3)
            CAMERA_FOCUS_LOCKED, FALSE, // (TRUE または FALSE)
            CAMERA_FOCUS_THRESHOLD, 0.0, // (0 4) メートル
            CAMERA_PITCH, 10.0, // (-45 80)
          //CAMERA_POSITION, <0,0,0>, // リージョン座標
            CAMERA_POSITION_LAG, 0.0, // (0 3)
            CAMERA_POSITION_LOCKED, FALSE, // (TRUE または FALSE)
            CAMERA_POSITION_THRESHOLD, 0.0, // (0 4) メートル
            CAMERA_FOCUS_OFFSET, <2.0, 0.0, 0.0> // <-10,-10,-10> <10,10,10> メートル
        ]);
    }
}
</lsl>
この 2 番目の例では、焦点と位置はロックも設定もされていないことに注意してください。これはカメラで乗り物の操縦者の後を追いかけるのに適しています。
|helpers
|helpers
|also_functions={{LSL DefineRow||[[llClearCameraParams/ja|llClearCameraParams]]}}
|also_functions=
{{LSL DefineRow||{{LSLG/ja|llClearCameraParams}}}}
{{LSL DefineRow||{{LSLG/ja|llGetCameraPos}}}}
{{LSL DefineRow||{{LSLG/ja|llGetCameraRot}}}}
|also_events
|also_events
|also_tests
|also_tests=
|also_articles
{{LSL DefineRow||[[llSetCameraParams Test]]}}
|also_articles=
{{LSL DefineRow||[[FollowCam]]}}
|notes
|notes
|cat1=Camera
|cat1=Camera
Line 34: Line 75:
|cat3
|cat3
|cat4
|cat4
|constants={{{!}} class="sortable" {{Prettytable}}
|constants={{{!}} class="sortable" {{Prettytable|style=margin-top:0;}}
{{!}}- {{Hl2}}
{{!}}- {{Hl2}}
! ルール
! ルール
Line 41: Line 82:
!class="unsortable"{{!}} 初期値
!class="unsortable"{{!}} 初期値
!class="unsortable"{{!}} 値の範囲
!class="unsortable"{{!}} 値の範囲
!class="unsortable"{{!}} 解説
!class="unsortable"{{!}} 説明
{{!}}-  
{{!}}-  
{{!}} {{LSL Const/ja|CAMERA_ACTIVE|integer|12}}
{{!}} {{LSL Const/ja|CAMERA_ACTIVE|integer|12}}
{{!}} {{#var:cvalue}}&nbsp;&nbsp;
{{!}} {{#var:cvalue}}&nbsp;&nbsp;
{{!}} [[integer/ja|integer]]&nbsp;isActive
{{!}} [[integer/ja|integer]]&nbsp;有効
{{!}} {{LSL Const/ja|FALSE|integer|0}}
{{!}} {{LSL Const/ja|FALSE|integer|0}}
{{!}} {{LSL Const/ja|TRUE|integer|1}} or {{LSL Const/ja|FALSE|integer|0}}
{{!}} {{LSL Const/ja|TRUE|integer|1}} または {{LSL Const/ja|FALSE|integer|0}}
{{!}} スクリプトで組まれたカメラのコントロールをオンかオフに切り替えます
{{!}} カメラの [[script/ja|スクリプト]] でのコントロールをオンかオフに切り替えます
{{!}}-  
{{!}}-  
{{!}} {{LSL Const/ja|CAMERA_BEHINDNESS_ANGLE|integer|8}}
{{!}} {{LSL Const/ja|CAMERA_BEHINDNESS_ANGLE|integer|8}}
{{!}} {{#var:cvalue}}
{{!}} {{#var:cvalue}}
{{!}} [[float/ja|float]]&nbsp;degrees
{{!}} [[float/ja|float]]&nbsp;
{{!}} 10.0
{{!}} 10.0
{{!}} 0 to 180
{{!}} 0 180
{{!}} カメラが対象の回転によって変わることを強制されない角度のアングルを設定します。
{{!}} カメラが対象の回転に縛られないアングルを角度で設定します。
{{!}}-  
{{!}}-  
{{!}} {{LSL Const/ja|CAMERA_BEHINDNESS_LAG|integer|9}}
{{!}} {{LSL Const/ja|CAMERA_BEHINDNESS_LAG|integer|9}}
{{!}} {{#var:cvalue}}
{{!}} {{#var:cvalue}}
{{!}} [[float/ja|float]]&nbsp;seconds
{{!}} [[float/ja|float]]&nbsp;
{{!}} 0.0
{{!}} 0.0
{{!}} 0 to 3
{{!}} 0 3
{{!}} カメラが後方のアングルの範囲外の場合、ターゲットの後ろに留めるのを強制されるのをどのくらいで強いるのか設定します。
{{!}} カメラが背後以外にあるとき、どのぐらいでターゲットの後ろに戻らなければならないかを設定します。
{{!}}-  
{{!}}-  
{{!}} {{LSL Const/ja|CAMERA_DISTANCE|integer|7}}
{{!}} {{LSL Const/ja|CAMERA_DISTANCE|integer|7}}
{{!}} {{#var:cvalue}}
{{!}} {{#var:cvalue}}
{{!}} [[float/ja|float]]&nbsp;meters
{{!}} [[float/ja|float]]&nbsp;メートル
{{!}} 3.0
{{!}} 3.0
{{!}} 0.5 to 10
{{!}} 0.5 10
{{!}} カメラをターゲットからどのくらい遠ざけたいか設定します。
{{!}} カメラをターゲットからどのくらい遠ざけたいか設定します。
{{!}}-  
{{!}}-  
{{!}} {{LSL Const/ja|CAMERA_FOCUS|integer|17}}
{{!}} {{LSL Const/ja|CAMERA_FOCUS|integer|17}}
{{!}} {{#var:cvalue}}
{{!}} {{#var:cvalue}}
{{!}} [[vector/ja|vector]]&nbsp;position
{{!}} [[vector/ja|vector]]&nbsp;位置
{{!}} n/a
{{!}} n/a
{{!}} n/a
{{!}} n/a
{{!}} [[Viewer coordinate frames/ja#Region|リージョン構成]]内での焦点(対象の位置)を設定します。
{{!}} 焦点(対象の位置)を [[Viewer coordinate frames/ja#Region|リージョン座標]] で設定します。
{{!}}-  
{{!}}-  
{{!}} {{LSL Const/ja|CAMERA_FOCUS_LAG|integer|6}}
{{!}} {{LSL Const/ja|CAMERA_FOCUS_LAG|integer|6}}
{{!}} {{#var:cvalue}}
{{!}} {{#var:cvalue}}
{{!}} [[float/ja|float]]&nbsp;seconds
{{!}} [[float/ja|float]]&nbsp;
{{!}} 0.1
{{!}} 0.1
{{!}} 0 to 3
{{!}} 0 3
{{!}} カメラがターゲットに焦点を合わせようとする際の遅延の程度です。
{{!}} カメラがターゲットに焦点を合わせようとするときの遅延時間
{{!}}-  
{{!}}-  
{{!}} {{LSL Const/ja|CAMERA_FOCUS_LOCKED|integer|22}}
{{!}} {{LSL Const/ja|CAMERA_FOCUS_LOCKED|integer|22}}
{{!}} {{#var:cvalue}}
{{!}} {{#var:cvalue}}
{{!}} [[integer/ja|integer]]&nbsp;isLocked
{{!}} [[integer/ja|integer]]&nbsp;ロックする
{{!}} {{LSL Const/ja|FALSE|integer|0}}
{{!}} {{LSL Const/ja|FALSE|integer|0}}
{{!}} {{LSL Const/ja|TRUE|integer|1}} or {{LSL Const/ja|FALSE|integer|0}}
{{!}} {{LSL Const/ja|TRUE|integer|1}} または {{LSL Const/ja|FALSE|integer|0}}
{{!}} カメラの焦点を固定し、動けなくします。
{{!}} カメラの焦点を固定し、動かなくします。
{{!}}-  
{{!}}-  
{{!}} {{LSL Const/ja|CAMERA_FOCUS_OFFSET|integer|1}}
{{!}} {{LSL Const/ja|CAMERA_FOCUS_OFFSET|integer|1}}
{{!}} {{#var:cvalue}}
{{!}} {{#var:cvalue}}
{{!}} [[vector/ja|vector]]&nbsp;[[meter|meters]]
{{!}} [[vector/ja|vector]]&nbsp;[[meter|メートル]]
{{!}} <0.0,0.0,0.0>
{{!}} <0.0,0.0,0.0>
{{!}} <-10,-10,-10> to <10,10,10>
{{!}} <-10,-10,-10> <10,10,10>
{{!}} 対象と相対的な[[position/ja|位置]]にカメラの焦点を合わせます。
{{!}} カメラの焦点を、ターゲットに対する相対的な [[position|位置]] で合わせます。
{{!}}-  
{{!}}-  
{{!}} {{LSL Const/ja|CAMERA_FOCUS_THRESHOLD|integer|11}}
{{!}} {{LSL Const/ja|CAMERA_FOCUS_THRESHOLD|integer|11}}
{{!}} {{#var:cvalue}}
{{!}} {{#var:cvalue}}
{{!}} [[float/ja|float]]&nbsp;meters
{{!}} [[float/ja|float]]&nbsp;メートル
{{!}} 1.0
{{!}} 1.0
{{!}} 0 to 4
{{!}} 0 4
{{!}} カメラの位置を囲む、カメラ焦点が対象の動きに左右されない球状の半径を設定します。
{{!}} カメラの焦点が対象の動きに左右されない、カメラのターゲット位置を中心とした球の半径を設定します。
{{!}}-  
{{!}}-  
{{!}} {{LSL Const/ja|CAMERA_PITCH|integer|0}}
{{!}} {{LSL Const/ja|CAMERA_PITCH|integer|0}}
{{!}} {{#var:cvalue}}
{{!}} {{#var:cvalue}}
{{!}} [[float/ja|float]]&nbsp;degrees
{{!}} [[float/ja|float]]&nbsp;
{{!}} 0.0
{{!}} 0.0
{{!}} -45 to 80
{{!}} -45 80
{{!}} カメラの対角線上の焦点角度量を設定します。反比例の関係にあります。
{{!}} カメラの対角線上の焦点角度量を設定します。反比例の関係にあります。
{{!}}-  
{{!}}-  
{{!}} {{LSL Const/ja|CAMERA_POSITION|integer|13}}
{{!}} {{LSL Const/ja|CAMERA_POSITION|integer|13}}
{{!}} {{#var:cvalue}}
{{!}} {{#var:cvalue}}
{{!}} [[vector/ja|vector]]&nbsp;position
{{!}} [[vector/ja|vector]]&nbsp;位置
{{!}} n/a
{{!}} n/a
{{!}} n/a
{{!}} n/a
{{!}} [[Viewer coordinate frames/ja#Region|リージョン構成]]内でのカメラ位置を設定します。
{{!}} カメラの位置を [[Viewer coordinate frames/ja#Region|リージョン座標]] で設定します。
{{!}}-  
{{!}}-  
{{!}} {{LSL Const/ja|CAMERA_POSITION_LAG|integer|5}}
{{!}} {{LSL Const/ja|CAMERA_POSITION_LAG|integer|5}}
{{!}} {{#var:cvalue}}
{{!}} {{#var:cvalue}}
{{!}} [[float]]&nbsp;seconds
{{!}} [[float]]&nbsp;
{{!}} 0.1
{{!}} 0.1
{{!}} 0 to 3
{{!}} 0 3
{{!}} カメラが、望ましい位置に向かって移動しようとする際の遅延の程度です。
{{!}} カメラが「理想的な」位置に向かうまでの遅延時間
{{!}}-  
{{!}}-  
{{!}} {{LSL Const/ja|CAMERA_POSITION_LOCKED|integer|21}}
{{!}} {{LSL Const/ja|CAMERA_POSITION_LOCKED|integer|21}}
{{!}} {{#var:cvalue}}
{{!}} {{#var:cvalue}}
{{!}} [[integer]]&nbsp;isLocked
{{!}} [[integer]]&nbsp;ロックする
{{!}} {{LSL Const/ja|FALSE|integer|0}}
{{!}} {{LSL Const/ja|FALSE|integer|0}}
{{!}} {{LSL Const/ja|TRUE|integer|1}} or {{LSL Const/ja|FALSE|integer|0}}
{{!}} {{LSL Const/ja|TRUE|integer|1}} または {{LSL Const/ja|FALSE|integer|0}}
{{!}} カメラの位置を固定し、動けなくします。
{{!}} カメラの位置を固定し、動けなくします。
{{!}}-  
{{!}}-  
{{!}} {{LSL Const/ja|CAMERA_POSITION_THRESHOLD|integer|10}}
{{!}} {{LSL Const/ja|CAMERA_POSITION_THRESHOLD|integer|10}}
{{!}} {{#var:cvalue}}
{{!}} {{#var:cvalue}}
{{!}} [[float/ja|float]]&nbsp;meters
{{!}} [[float/ja|float]]&nbsp;メートル
{{!}} 1.0
{{!}} 1.0
{{!}} 0 to 4
{{!}} 0 4
{{!}} カメラの望ましい位置を囲む、カメラ焦点が対象の動きに左右されない球状の半径を設定します。
{{!}} カメラが対象の動きに左右されない、カメラの理想的な位置を中心とした球の半径を設定します。
{{!}}}
{{!}}}
|}}
|}}

Revision as of 23:06, 8 May 2010

要約

関数: llSetCameraParams( list rules );

一度に複数のカメラのパラメータを設定します。

• list rules [ rule1, data1, rule2, data2 . . . rule, data ] の形式

実行するには、llRequestPermissions による PERMISSION_CONTROL_CAMERA 権限が必要です。

ルール パラメータ 初期値 値の範囲 説明
CAMERA_ACTIVE 12   integer 有効 FALSE TRUE または FALSE カメラの スクリプト でのコントロールをオンかオフに切り替えます
CAMERA_BEHINDNESS_ANGLE 8 float 度 10.0 0 ~ 180 カメラが対象の回転に縛られないアングルを角度で設定します。
CAMERA_BEHINDNESS_LAG 9 float 秒 0.0 0 ~ 3 カメラが背後以外にあるとき、どのぐらいでターゲットの後ろに戻らなければならないかを設定します。
CAMERA_DISTANCE 7 float メートル 3.0 0.5 ~ 10 カメラをターゲットからどのくらい遠ざけたいか設定します。
CAMERA_FOCUS 17 vector 位置 n/a n/a 焦点(対象の位置)を リージョン座標 で設定します。
CAMERA_FOCUS_LAG 6 float 秒 0.1 0 ~ 3 カメラがターゲットに焦点を合わせようとするときの遅延時間
CAMERA_FOCUS_LOCKED 22 integer ロックする FALSE TRUE または FALSE カメラの焦点を固定し、動かなくします。
CAMERA_FOCUS_OFFSET 1 vector メートル <0.0,0.0,0.0> <-10,-10,-10> ~ <10,10,10> カメラの焦点を、ターゲットに対する相対的な 位置 で合わせます。
CAMERA_FOCUS_THRESHOLD 11 float メートル 1.0 0 ~ 4 カメラの焦点が対象の動きに左右されない、カメラのターゲット位置を中心とした球の半径を設定します。
CAMERA_PITCH 0 float 度 0.0 -45 ~ 80 カメラの対角線上の焦点角度量を設定します。反比例の関係にあります。
CAMERA_POSITION 13 vector 位置 n/a n/a カメラの位置を リージョン座標 で設定します。
CAMERA_POSITION_LAG 5 float 秒 0.1 0 ~ 3 カメラが「理想的な」位置に向かうまでの遅延時間
CAMERA_POSITION_LOCKED 21 integer ロックする FALSE TRUE または FALSE カメラの位置を固定し、動けなくします。
CAMERA_POSITION_THRESHOLD 10 float メートル 1.0 0 ~ 4 カメラが対象の動きに左右されない、カメラの理想的な位置を中心とした球の半径を設定します。

警告

  • 権限の自動付与に頼らないようにしましょう。常に run_time_permissions イベントを使用しましょう。
  • スクリプトに PERMISSION_CONTROL_CAMERA の権限が不足していると、スクリプトはエラーを DEBUG_CHANNEL で叫び、操作に失敗します (しかしスクリプトは処理を続けます)。
  • いったん PERMISSION_CONTROL_CAMERA 権限が付与されると、スクリプトの中で (例えば、新しい llRequestPermissions 呼び出しなどにより) 権限をはく奪することができません。スクリプトはオブジェクトが derez (削除、取り外し、取り込み) されない限り権限が失われません。
  • カメラコントロールは現在 (サーバ 1.38) アタッチメントや座っているオブジェクトでのみサポートされています。他で使用しようとすると、 エラーが DEBUG_CHANNEL で叫ばれることになります。
  • エージェントが最後に使用したコントロールがカメラコントロールの場合、スクリプトのカメラパラメータは設定されません。手動でのカメラ操作も設定を上書きします。

サンプル

カメラをリージョン座標に設定したり、カメラにアバターを追跡させたりできます。

リージョン座標の例:

<lsl>lookAtMe( integer perms ) {

   if ( perms & PERMISSION_CONTROL_CAMERA )
   {
       vector camPos = llGetPos() + (relCamP * llGetRot() * turnOnChair) ;
       vector camFocus = llGetPos() ;
       llClearCameraParams(); // カメラをデフォルトにリセットします
       llSetCameraParams([
           CAMERA_ACTIVE, 1, // 1 は有効, 0 は無効
           CAMERA_FOCUS, camFocus, // リージョン座標
           CAMERA_FOCUS_LOCKED, TRUE, // (TRUE または FALSE)
           CAMERA_POSITION, camPos, // リージョン座標
           CAMERA_POSITION_LOCKED, TRUE // (TRUE または FALSE)
       ]);
   }

}</lsl> 焦点と位置はロックされていることに注意してください。この最初の例では、カメラは camPos から camFocus を見るようになります。

カメラにアバターを追跡させる例:

<lsl>lookAtMe( integer perms ) {

   if ( perms & PERMISSION_CONTROL_CAMERA )
   {
       llClearCameraParams(); // カメラをデフォルトにリセットします
       llSetCameraParams([
           CAMERA_ACTIVE, 1, // 1 は有効, 0 は無効
           CAMERA_BEHINDNESS_ANGLE, 30.0, // (0 ~ 180) 度
           CAMERA_BEHINDNESS_LAG, 0.0, // (0 ~ 3) 秒
           CAMERA_DISTANCE, 10.0, // ( 0.5 ~ 10) メートル
         //CAMERA_FOCUS, <0,0,5>, // リージョン座標
           CAMERA_FOCUS_LAG, 0.05 , // (0 ~ 3) 秒
           CAMERA_FOCUS_LOCKED, FALSE, // (TRUE または FALSE)
           CAMERA_FOCUS_THRESHOLD, 0.0, // (0 ~ 4) メートル
           CAMERA_PITCH, 10.0, // (-45 ~ 80) 度
         //CAMERA_POSITION, <0,0,0>, // リージョン座標
           CAMERA_POSITION_LAG, 0.0, // (0 ~ 3) 秒
           CAMERA_POSITION_LOCKED, FALSE, // (TRUE または FALSE)
           CAMERA_POSITION_THRESHOLD, 0.0, // (0 ~ 4) メートル
           CAMERA_FOCUS_OFFSET, <2.0, 0.0, 0.0> // <-10,-10,-10> ~ <10,10,10> メートル
       ]);
   }

} </lsl>

この 2 番目の例では、焦点と位置はロックも設定もされていないことに注意してください。これはカメラで乗り物の操縦者の後を追いかけるのに適しています。

関連項目

イベント

•  run_time_permissions 権限取得イベント

関数

•  llGetPermissions 付与されている権限を取得します
•  llGetPermissionsKey 権限を許可したエージェントを取得します
•  llRequestPermissions 権限を要求します
•  llClearCameraParams
•  llGetCameraPos
•  llGetCameraRot

記事

•  権限/スクリプト
•  FollowCam

特記事項

Search JIRA for related Issues

テスト

•  llSetCameraParams Test

Signature

function void llSetCameraParams( list rules );
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。