物質瞬間移動^^ テレポのことかな-前編

ねこねこ

2008年01月13日 17:00




  よく、簡易テレポートとして、SitTarget という関数が使われているのですが、それについての考察。
  普通に椅子に座る時、向きとか位置とかを調節するために llSitTarget() という関数が使われます。座るアバターによって、位置とか変わってしまうので、座るひと本人にしかあまり意味がないのですが、個人用に作る時には重宝します。モデルは久しぶりの妹^^ の登場。




  スクリプトの Z 座標をプラス1メートルにしてみました。すると、このように浮いた位置に座れます。これを応用して、たとえば2階に移動したり、違う場所に移動したりすることができます。



  その前にまず、座るとはどういうことなのか考えて見ましょう。円筒形を建造して座りました。



  オブジェクトを置ける最高点は以前ブログで「どこまで上がれる?」として書いたのですが、その値768メートルを入力して、実際に上がってみました。写真の上の座標で768メートルまであがれたことが確認できます。



  こんどは Y 座標をマイナス100メートルしてみましょう。



  無事、平行移動できました。このことから、オブジェクトに座っていれば、そのオブジェクトを瞬間移動させたときに、その上に座っているアバターも一緒に移動させることができることがわかります。いうなれば、アバターも特殊なオブジェクトのひとつであり、リンクさせることで一緒に移動できるわけです。リンクさせるということが座るということだったんだとわかります。飛行機に乗ったり、自動車に乗ったりと物理にしている違いはありますが、移動の基本は座るということが分かると思います。



  いよいよ本題の llSitTarget() に入ります。図のようなスクリプトを書いて、Z 座標の位置をいろいろと変えて試してみました。



  結論から言うと、llSitTarget() の最高到達点は300メートルでした。図のように400を入れても、オブジェクトが元あった位置の37メートル+300メートルの337メートルまでしか上がっていないのが分かると思います。SIMの幅は256メートルなので、同SIM内なら、この関数で瞬間移動できます。



  300メートル上空で椅子のないところに座った状態から立ち上がると、正確に元の位置に落ちてきます。
  テレポートの使えない近距離の移動や、店舗の2階や3階にあがるときのエレベータ代わりに使えると思います。ちなみに瞬間移動なので、この llSitTarget() や llSetPos() は、壁や天井があってもオブジェクトは突き抜けて移動できます。但し、移動先にオブジェクトがあった場合はそこにはまります^^ 注意しましょう。


ものづくり