Second LifeとOpenSIM(JOG)のLSLの挙動の違い

Second LifeとOpenSIM(JOG)のLSLの挙動の違い

- 堀田 海月 の投稿
返信数: 1

まだ少しですが、LSLを使っていて確認した、SLとJOGとでの挙動の違いを書き留めておきます。

1) touchイベントの違い。
touch系イベントには3つ(touch_start, touch, touch_end)があるのですが、そのうちタッチしてる状態が続いていることを検出する、touch(integer total_number)の挙動が、SLとは少し違っていました。

SLではとにかくオブジェクトを選択したままクリックした状態であれば、イベントがどんどんキューに入っていきますが、JOGだとクリックしたままオブジェクト上でカーソルを動かさないとイベントが発生しません。なので押しっぱなしで何か処理する場合、マウスカーソルを動かすよう説明しておかないといけませんね(^_^;)

2) http通信
http通信の際のメディアタイプを指定できる、llSetContentType( key request_id, integer content_type ); はJOGだと無視されるようで、メディアタイプはtext固定です(無視されるだけでエラーは出ない模様)。SLですと、メディアタイプにhtmlを指定できるので、簡易Webサーバーが作れてしまいます。

3) テンポラリアタッチの挙動が変
飲み物とかにも応用出来そうな、一時的に装着できて、外すと消えてインベントリには残らない、llAttachToAvatarTemp( integer attach_point ); の挙動はかなり変です。Wiki通りに定数でアタッチポイントを指定すると動きません。直接整数値を入れると動きますが、持ち物ウインドウの装着先等にも表示されませんし、直接そのオブジェクトを右クリックしてメニューから外すを選択しても外れません。当然インベントリの中にもないので、スクリで強制的にデタッチするか、リログする以外に外す方法がありません。今のところは使わないほうがベストかもしれません。

今のところ発見したのはこれだけです。あとは、座る位置を動かすことで300mまでジャンプできるsit位置移動型テレポーターは問題なく動きました。
また何か見つけたら報告したいと思います。

堀田 海月 への返信

Re: Second LifeとOpenSIM(JOG)のLSLの挙動の違い

- Xpyoda Janus の投稿

2) の llSetContentType() は、OpenSimのWikiを見る限りはまだ未実装のようです。

http://opensimulator.org/wiki/LSL_Status/Functions

llAttachToAvatarTemp()は、Function名のエントリーはあるものの、記述がありませんw。
Wikiの情報は、古いこともあるので、必ずしも正しいとは限りませんけど...。

 

あと、llDialog()で、次のように空のリストを渡して、ボタン無しの確認ダイアログを出そうとすると、

llDialog(avatar_key, "Dialog Message", [], channel);

SLではうまくいきますが、OpenSimでは、「 llDialog: At least 1 button must be shown 」 というスクリプトエラーがでます。

忘れないうちに、報告いたします。