スクリプターズカフェ/ログ/長距離移動HackのPosJumpについて
出典: Second Life in Japan
[編集] 08/09/20
LSLでプリムを移動させる場合、llSetPosで移動させると移動距離10mの制限があります。この制限を回避する手段として、WarpPosという手法(一種のHack)があります。
→Second Life Wiki WarpPos
最近wikiの更新を眺めていたところ、さらに記述の単純なHackが見つかったようです。
→Second Life Wiki PosJump
実際に試したところ、このコードで長距離移動が可能でした(2008/09/24 SIMバージョン1.24.5)
ただし、PosJumpのページに書き込まれたSoft Lindenのコメントにもあるように、この挙動はバグだろうとのことです。
Don't rely on this behavior without first discussing it with a Physics Linden. It's certainly a bug, and likely to be fixed.
[編集] なぜPosJumpが可能になるのか?
PosJumpの挙動は、「移動距離の10m制限が効かない」ということなのですが、なぜこのようになるのでしょうか。
Fakeさんの検証によると、x^2 + y^2が短精度で扱える大きさを超えた場合にオーバーフローして制限が効かなくなるらしいとのことです。
なぜxとyだけの距離演算のようなものがあるのか、なぜそこでオーバーフローしてしまうのかは、サーバー側のコードが公開されていないため検証できません。
Soft Lindenによると、1.26で修正とのことです。
(上記wikiページの編集履歴参照)
--Fake Fitzgerald 2008年12月25日 (木) 08:35 (UTC)
1.26.0で一旦修正されて使えなくなりましたが、かなり文句が出たようで1.26.1で再度使用可能になりました。[1]但し、将来的には廃止予定で、何か他の形で機能追加が行われる可能性はあります。SVC-4089のAndrew Lindenのコメント参照 --Fake Fitzgerald 2009年4月11日 (土) 14:50 (UTC)
このページのTinyURL:http://tinyurl.com/SC-PosJump
