Difference between revisions of "LlMoveToTarget/ja"

From Second Life Wiki
Jump to navigation Jump to search
m (Undo revision 850002 by Mako Nozaki (Talk))
Line 1: Line 1:
{{LSL Function/damping/ja|tau}}{{LSL_Function/ja
{{Issues/SVC-2441}}{{LSL Function/physical/ja|avatar=*}}{{LSL Function/damping/ja|tau}}{{LSL_Function/ja
|func_id=70|func_sleep=0.0|func_energy=10.0
|func_id=70|func_sleep=0.0|func_energy=10.0
|func=llMoveToTarget
|func=llMoveToTarget
|p1_type=vector|p1_name=target|p1_desc=[[Viewer coordinate frames#Region|リージョン]]位置
|p1_type=vector|p1_name=target|p1_desc=[[Viewer coordinate frames/ja#Region|リージョン]] 位置
|p2_type=float|p2_name=tau
|p2_type=float|p2_name=tau
|func_footnote=維持している[[llStopMoveToTarget/ja|llStopMoveToTarget]]を使う'''target'''の位置からオブジェクトを停止します。<br/>
|func_footnote=オブジェクトに '''target''' 位置を維持するのをやめさせるには、 {{LSLG/ja|llStopMoveToTarget}} を使用してください。<br/>
[[llLookAt/ja|llLookAt]]か[[llRotLookAt/ja|llRotLookAt]]を使う同じ方法の回転を変えます。
同じように回転を変更させるには、{{LSLG/ja|llLookAt}} や {{LSLG/ja|llRotLookAt}} を使用してください。
|func_desc=(スクリプトが物理の場合)'''tau'''秒で'''target'''に著しく勢いを落とします。
|func_desc=(スクリプトが物理の場合) '''tau''' 秒かけて限界減衰し、 '''target''' へ到達します。
|return_text
|return_text
|spec
|spec
|caveats
|caveats=*低い Z 値を指定してゆっくり進んでいくときは、 {{jira|SVC-2441}} に気をつけてください - SIM は誤ってオブジェクトを本来の速度よりも速く進めてしまいます。つまり、 llGetPos() + <10, 10, -10> に進めようとしている時、.x-10 と .y-10 に到達する何メートルか前に .z-10 に到達してしまうことがあります。JIRA にこの結果を示すデモがあります。
* llMoveToTarget の呼び出しは物理属性が無効にされても残るようです。これは遅い SIM では、物理属性を有効にする呼び出しと、llMoveTarget の呼び出しの間にオブジェクトを少し落とすことができる、便利なトリックです。 - llMoveToTarget を呼び出してからオブジェクトを物理に設定してください。
* {{LSLG/ja|llVecDist}}({{LSLG/ja|llGetPos}}(), '''target''') は 65 ''より小さく'' なければなりません。そうでない場合、一切移動しません。
* '''tau''' を {{HoverText|0.0|ゼロ}} にして llMoveToTarget を呼び出すと、警告もなく失敗して、何もしません。
|constants
|constants
|examples=プリムオーナーを追従するプリムに、スクリプトをドロップします。
|examples=スクリプトをプリムにドロップすると、プリムのオーナーを追跡します。
<lsl>
<lsl>
default
default
Line 19: Line 22:
         vector pos = llGetPos();
         vector pos = llGetPos();
         llSetStatus(STATUS_PHYSICS, TRUE);
         llSetStatus(STATUS_PHYSICS, TRUE);
         // Little pause to allow server to make potentially large linked object physical.
         // ちょっと間を置いて、サーバがたくさんリンクされたオブジェクトを物理にするのを待ちます。
         llSleep(0.1);
         llSleep(0.1);
         llMoveToTarget(pos,0.4);
         llMoveToTarget(pos,0.4);
         // Look for owner within 20 meters in 360 degree arc every 1 seconds.
         // オーナーを 20 メートル以内 の 360° の弧で 1 秒おきに探します。
         llSensorRepeat("", llGetOwner(), AGENT, 20.0, PI,1.0);
         llSensorRepeat("", llGetOwner(), AGENT, 20.0, PI,1.0);
     }
     }
     sensor(integer total_number)
     sensor(integer total_number)
     {
     {
         // Get position of detected owner
         // 発見したオーナーの位置を取得します。
         vector pos = llDetectedPos(0);
         vector pos = llDetectedPos(0);
         // Offset back one metre in X and up one metre in Z based on world coordinates.
         // グローバル座標で、X を 1 メートル下げ、Z を 1 メートル上げます。
         // Offset relative to owner is possible but beyond the scope of this example.
         // オーナーに対してのオフセットを取ることもできますが、このサンプルの範疇を超えています。
         vector offset =<-1,0,1>;
         vector offset =<-1,0,1>;
         pos+=offset;
         pos+=offset;
Line 38: Line 41:
</lsl>
</lsl>
|helpers
|helpers
|also_functions={{LSL DefineRow||[[llStopMoveToTarget/ja|llStopMoveToTarget]]}}
|also_functions={{LSL DefineRow||{{LSLG/ja|llStopMoveToTarget}}}}
{{LSL DefineRow||[[llLookAt/ja|llLookAt]]}}
{{LSL DefineRow||{{LSLG/ja|llLookAt}}}}
{{LSL DefineRow||[[llRotLookAt/ja|llRotLookAt]]}}
{{LSL DefineRow||{{LSLG/ja|llRotLookAt}}}}
{{LSL DefineRow||[[llTarget/ja|llTarget]]}}
{{LSL DefineRow||{{LSLG/ja|llTarget}}}}
|also_tests
|also_tests
|also_events
|also_events

Revision as of 04:15, 5 May 2010

要約

関数: llMoveToTarget( vector target, float tau );

(スクリプトが物理の場合) tau 秒かけて限界減衰し、 target へ到達します。

• vector target リージョン 位置
• float tau 臨界減衰までにかける秒数

オブジェクトに target 位置を維持するのをやめさせるには、 llStopMoveToTarget を使用してください。
同じように回転を変更させるには、llLookAtllRotLookAt を使用してください。

警告

  • アタッチメントと 物理 オブジェクトのみで動作します。
  • 低い Z 値を指定してゆっくり進んでいくときは、 SVC-2441 に気をつけてください - SIM は誤ってオブジェクトを本来の速度よりも速く進めてしまいます。つまり、 llGetPos() + <10, 10, -10> に進めようとしている時、.x-10 と .y-10 に到達する何メートルか前に .z-10 に到達してしまうことがあります。JIRA にこの結果を示すデモがあります。
  • llMoveToTarget の呼び出しは物理属性が無効にされても残るようです。これは遅い SIM では、物理属性を有効にする呼び出しと、llMoveTarget の呼び出しの間にオブジェクトを少し落とすことができる、便利なトリックです。 - llMoveToTarget を呼び出してからオブジェクトを物理に設定してください。
  • llVecDist(llGetPos(), target) は 65 より小さく なければなりません。そうでない場合、一切移動しません。
  • tau0.0 にして llMoveToTarget を呼び出すと、警告もなく失敗して、何もしません。

サンプル

スクリプトをプリムにドロップすると、プリムのオーナーを追跡します。 <lsl> default {

   state_entry()
   {
       vector pos = llGetPos();
       llSetStatus(STATUS_PHYSICS, TRUE);
       // ちょっと間を置いて、サーバがたくさんリンクされたオブジェクトを物理にするのを待ちます。
       llSleep(0.1);
       llMoveToTarget(pos,0.4);
       // オーナーを 20 メートル以内 の 360° の弧で 1 秒おきに探します。
       llSensorRepeat("", llGetOwner(), AGENT, 20.0, PI,1.0);
   }
   sensor(integer total_number)
   {
       // 発見したオーナーの位置を取得します。
       vector pos = llDetectedPos(0);
       // グローバル座標で、X を 1 メートル下げ、Z を 1 メートル上げます。
       // オーナーに対してのオフセットを取ることもできますが、このサンプルの範疇を超えています。
       vector offset =<-1,0,1>;
       pos+=offset;
       llMoveToTarget(pos,0.4);     
   }

}

</lsl>

関連項目

関数

•  llStopMoveToTarget
•  llLookAt
•  llRotLookAt
•  llTarget

特記事項

All Issues

~ Search JIRA for related Issues
   Slowish llMoveToTarget path inconsistent when moving to a target at a -z position vs moving to +z

Signature

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