FANDOM


Scripters_cafeログ


08/04/12 編集

Second Life Wiki のライブラリに WarpPos という有名なスクリプトがあります。

このスクリプトで移動先が隣接SIMとなるような移動も可能、という話なのですが、実際どういう動きになっているのか?という話。


WarpPos では llSetPrimitiveParams のパラメータに PRIM_POSITION を指定して移動させています。llSetPrimitiveParams に渡すリスト変数に複数の PRIM_POSITION パラメータを追加するとすべて一度に処理されるという仕様を利用しています。

PRIM_POSITION で指定する座標はリージョン座標なので、SIM境界を越えた後は、越えた先のSIMの座標を使わないといけないように思われますが、WarpPos ではそういったことは考慮しなくても越えた先の SIM で目的の座標まで移動します。


このことから、1回の llSetPrimitiveParams 呼び出しは、呼び出された時点での SIM ですべて処理が行われると考えられそうです。

★一瞬で終着点まで移動する動きからも、上のように考えるのが ★自然です。


ちなみに、隣接している2つのSIM上の特定の座標間をWarpPosで移動する場合、2つの座標の差分ベクトルが必要になりますが、コレを求めるためには、座標を一旦グローバル座標に変換します。

SIMの南西の角のグローバル座標を llRequestSimulatorData によって求め、リージョン座標と結合した後、2つの座標の差分をとります。

広告ブロッカーが検出されました。


広告収入で運営されている無料サイトWikiaでは、このたび広告ブロッカーをご利用の方向けの変更が加わりました。

広告ブロッカーが改変されている場合、Wikiaにアクセスしていただくことができなくなっています。カスタム広告ブロッカーを解除してご利用ください。

FANDOMでも見てみる

おまかせWiki