アバターの現在アクティブなグループUUID取得

Discord鯖の方で質問に上がっていた『現在アクティブなグループのUUIDの取得』が思いの外トリッキーだったので記事にしてみました。
そもそもは、スグに llGetObjectDetails関数で指定 UUID の OBJECT_GROUP フラグ指定で取得できそうに思いつくものの、その場合のUUIDがアバターのものである時は NULL_KEY が返却されるというバグではなくて仕様ですという現状で、どうやら正式にアバターの現在アクティブなグループのUUIDを取得する機能はLSLには無いらしいのです。RLVの機能を使ったり組込LUAの機能では出来そうに思いますが、それらは標準の機能ではないので、現状のLSLで出来ることは同一グループのチェック(llSameGroupllDetectedGroup)そして、グループタグ文字の取得による文字列での比較(llGetObjectDetails関数のOBJECT_GROUP_TAGフラグ)ぐらいです。SameGroupはよく利用しますがオブジェクトの割当グループとの比較なので異なるグループの検出は出来ません。またグループタグ文字の比較においては文字列しか判断材料がないのと、タグ文字部分についてはクライアント側で表示の抑止が出来てしまうことからタグ非表示のアバターには使えません。
けれど、どこかにちょこっと記述されていた『アバターの装着物から現在グループUUIDを得る』というのを思い出して動作確認をしてみたところ、どうも装着物=アバターにLINKしたものという扱いなのか、どの装着物から辿ってもROOTとなるアバターの現在グループUUIDが返却されていました。タイムラグもなく、アクティブグループを変更しても即時に反映されるので動作としては問題ないです。が、この動作は保証されるものではないので、何故だか現状ではそうなっているという裏技扱いのようです。懸案としては全く装着物が無い素のノーマルアバターの場合はグループ検出が出来ないことが明白ですが、そのようなアバターは無視していいだろうと対処はしていますが不明扱いです。

2024/03/15

Posted by まゆみ.H
X f B! P L

Search (in blogs)

Featured

今も続くアバターの身長問題。身長=158cmは子供ですか、そーですか。

もともとリアルサイズなアバター故にアジア圏以外が主催のSIMなどでは低身長として扱われることも少なくなかったのですが、さほど気にせず自分の好みの見た目として楽しんでいました。ところが、先日、とあるSIMを訪問した時に「身長が5フィート以下だから子供は帰りなさい」というメッ...

Picks

クリエイティブ・コモンズ・ライセンス

template by QooQ