Difference between revisions of "LlLookAt/ja"

From Second Life Wiki
Jump to: navigation, search
 
(3 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{LSL Function/damping/ja|damping}}{{LSL_Function/ja
+
{{Issues/SVC-1903}}{{LSL Function/damping/ja|damping}}{{LSL Function/strength/ja|strength}}{{LSL_Function/ja
 
|func_id=105|func_sleep=0.0|func_energy=10.0
 
|func_id=105|func_sleep=0.0|func_energy=10.0
 
|func=llLookAt|p1_type=vector|p1_name=target|p2_type=float|p2_name=strength|p3_type=float|p3_name=damping
 
|func=llLookAt|p1_type=vector|p1_name=target|p2_type=float|p2_name=strength|p3_type=float|p3_name=damping
|func_footnote=同じやり方で位置を変えるには{{LSLG/ja|llMoveToTarget}}を使用します。
+
|func_footnote=同じように位置を変える場合は、 {{LSLG/ja|llMoveToTarget}} を使用してください。
|func_desc=オブジェクトの''''''軸(zの正)を、'''target'''の方向に向ける要因です。
+
|func_desc=オブジェクトの '''up''' 軸 (z 軸正方向) を、 '''forward''' 軸 (x 軸正方向) を水平に保ったまま、 '''target''' に向けさせます。
 +
{{LSLG/ja|llStopLookAt}} が呼ばれるまで、 '''target''' を追跡し続けます。
 +
|return_text
 +
|spec=オブジェクトが物理ではない場合、この設定は力が 0 より大きくなるはず、ということ以外に何も効果をもたないようです。物理オブジェクトにおいては、強度は粘度のようなものであり、回転力ではないようなので、弱ければ弱いほど回転が速くなります。減衰値はどの程度素早く回転を減衰するかをコントロールします。強度の割に低い値を指定するとそれは飛び跳ねるようになり、しばしば目標地点を通り越したりします。高い値を設定するとゆっくりした動作になります。強度と減衰値はオブジェクトの質量に関係ないようです。
  
{{LSLG/ja|llStopLookAt}}が呼ばれるまで、'''target'''を向き続けます。
+
|caveats=*スクリプトが入っているオブジェクトが対象を指して終わる保証はありません。オブジェクトの形状、強度と減衰力によって、最終地点に到達する前に減衰力が回転を止めてしまったら、他の方向を指す違う回転で収束してしまうかもしれません。
 +
*プリムがルートでない場合、 '''target''' はルートプリムの回転に対する補正を行う必要があります (下の例を見てください) 。
 +
*オブジェクトがアタッチメントの場合、'''target''' は装着者の回転に対する補正を行う必要があります。
 +
*スクリプトが入っているオブジェクトが物理オブジェクトで非対称である場合、反跳効果を引き起こして、オブジェクトが元々の位置から離れていってしまうと同時に、最終的に収束する回転は正確でないものになるでしょう。
  
オブジェクトが物理ではない場合、引数による設定は(回転しようとする)フォースが0以上である、と言うこと以外に、何らかの効果を持つようには見えません。物理オブジェクトにおいては、strengthは回転する力ではなく、その方向を向き続けようとする粘性のようなものであり、この値が弱いほど素早い回転を起こします。dampingは、どの程度素早く回転を減衰するかをコントロールします。strengthに比例する低い値は目標をしばしば通り過ぎて、それを弾力性のあるようにし、高い値はそれを不活発にします。strengthとdampingはオブジェクトの質量とは無関係であるように見えます。
+
|constants
 +
|examples=
 +
<source lang="lsl2">//オブジェクトを一番近くのアバターに向かせます。
 +
default
 +
{
 +
    state_entry()
 +
    {
 +
        llSensorRepeat("", "", AGENT, 20.0, PI, 0.2);
 +
    }
  
|return_text
+
    sensor(integer total_number)
|spec
+
    {
|caveats=これは物理オブジェクトが完全にターゲット方向に向くことを保障するものではありません。オブジェクトの形状次第で、またはstrengthとdampingにより最終目標に達する前にdampingによる減衰が回転を停止してしまった場合、オブジェクトは異なるtarget方向を向く、異なる回転位置に留まるでしょう。
+
        llLookAt( llDetectedPos(0) + <0.0, 0.0, 1.0>, 3.0, 1.0 );
 +
    }
 +
}</source>
  
オブジェクトが物理で非対称な場合、オブジェクトは精度の低い最終回転を決めるのと同じように、根源的状態から流れるように打ちあがる、反跳効果を引き起こすでしょう。
+
<source lang="lsl2">
|constants
+
// 上と同じですが、子プリムの中やアタッチメントの中で使用するためのものです。
|examples
+
// 子プリムやアタッチメントを一番近くのアバターに向かせます。
 +
 
 +
default
 +
{
 +
    state_entry()
 +
    {
 +
        llSensorRepeat("", "", AGENT, 20.0, PI, 0.2);
 +
    }
 +
 +
    sensor(integer total_number)
 +
    {
 +
        vector p = llGetPos();
 +
        llLookAt(p + (llDetectedPos(0) + <0.0, 0.0, 1.0> - p) / llGetRootRotation(), 3.0, 1.0);
 +
    }
 +
}
 +
</source>
 
|helpers
 
|helpers
 
|also_functions=
 
|also_functions=
 
*{{LSLG/ja|llRotLookAt}}
 
*{{LSLG/ja|llRotLookAt}}
 
*{{LSLG/ja|llStopLookAt}}
 
*{{LSLG/ja|llStopLookAt}}
 +
 
|also_events
 
|also_events
 
|also_tests
 
|also_tests
Line 28: Line 60:
 
|cat1=Physics
 
|cat1=Physics
 
|cat2=Target
 
|cat2=Target
|cat3
+
|cat3=Rotation
 
|cat4
 
|cat4
 
}}
 
}}

Latest revision as of 12:41, 25 February 2016

要約

関数: llLookAt( vector target, float strength, float damping );

オブジェクトの up 軸 (z 軸正方向) を、 forward 軸 (x 軸正方向) を水平に保ったまま、 target に向けさせます。 llStopLookAt が呼ばれるまで、 target を追跡し続けます。

• vector target
• float strength
• float damping 臨界減衰までにかける秒数

同じように位置を変える場合は、 llMoveToTarget を使用してください。

仕様

オブジェクトが物理ではない場合、この設定は力が 0 より大きくなるはず、ということ以外に何も効果をもたないようです。物理オブジェクトにおいては、強度は粘度のようなものであり、回転力ではないようなので、弱ければ弱いほど回転が速くなります。減衰値はどの程度素早く回転を減衰するかをコントロールします。強度の割に低い値を指定するとそれは飛び跳ねるようになり、しばしば目標地点を通り越したりします。高い値を設定するとゆっくりした動作になります。強度と減衰値はオブジェクトの質量に関係ないようです。

警告

  • スクリプトが入っているオブジェクトが対象を指して終わる保証はありません。オブジェクトの形状、強度と減衰力によって、最終地点に到達する前に減衰力が回転を止めてしまったら、他の方向を指す違う回転で収束してしまうかもしれません。
  • プリムがルートでない場合、 target はルートプリムの回転に対する補正を行う必要があります (下の例を見てください) 。
  • オブジェクトがアタッチメントの場合、target は装着者の回転に対する補正を行う必要があります。
  • スクリプトが入っているオブジェクトが物理オブジェクトで非対称である場合、反跳効果を引き起こして、オブジェクトが元々の位置から離れていってしまうと同時に、最終的に収束する回転は正確でないものになるでしょう。
All Issues ~ Search JIRA for related Bugs

サンプル

//オブジェクトを一番近くのアバターに向かせます。
default
{
    state_entry()
    {
        llSensorRepeat("", "", AGENT, 20.0, PI, 0.2);
    }
 
    sensor(integer total_number)
    {
        llLookAt( llDetectedPos(0) + <0.0, 0.0, 1.0>, 3.0, 1.0 );
    }
}
// 上と同じですが、子プリムの中やアタッチメントの中で使用するためのものです。
// 子プリムやアタッチメントを一番近くのアバターに向かせます。
 
default
{
    state_entry()
    {
        llSensorRepeat("", "", AGENT, 20.0, PI, 0.2);
    }
 
    sensor(integer total_number)
    {
        vector p = llGetPos();
        llLookAt(p + (llDetectedPos(0) + <0.0, 0.0, 1.0> - p) / llGetRootRotation(), 3.0, 1.0);
    }
}

関連項目

特記事項

All Issues

~ Search JIRA for related Issues
   llRotLookAt & llLookAt do not update the object's bounding box

Signature

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