Difference between revisions of "LlLookAt/ja"

From Second Life Wiki
Jump to navigation Jump to search
 
Line 15: Line 15:
|constants
|constants
|examples=
|examples=
<lsl>//オブジェクトを一番近くのアバターに向かせます。
<source lang="lsl2">//オブジェクトを一番近くのアバターに向かせます。
default
default
{
{
Line 27: Line 27:
         llLookAt( llDetectedPos(0) + <0.0, 0.0, 1.0>, 3.0, 1.0 );
         llLookAt( llDetectedPos(0) + <0.0, 0.0, 1.0>, 3.0, 1.0 );
     }
     }
}</lsl>
}</source>


<lsl>
<source lang="lsl2">
// 上と同じですが、子プリムの中やアタッチメントの中で使用するためのものです。
// 上と同じですが、子プリムの中やアタッチメントの中で使用するためのものです。
// 子プリムやアタッチメントを一番近くのアバターに向かせます。
// 子プリムやアタッチメントを一番近くのアバターに向かせます。
Line 46: Line 46:
     }
     }
}
}
</lsl>
</source>
|helpers
|helpers
|also_functions=
|also_functions=

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 は装着者の回転に対する補正を行う必要があります。
  • スクリプトが入っているオブジェクトが物理オブジェクトで非対称である場合、反跳効果を引き起こして、オブジェクトが元々の位置から離れていってしまうと同時に、最終的に収束する回転は正確でないものになるでしょう。

サンプル

//オブジェクトを一番近くのアバターに向かせます。
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の関連した項目が参考になるかもしれません。