2016年2月1日月曜日

LSL に新機能「llGetObjectDetails(OBJECT_REZZER_KEY)」が追加されました

LSL(Linden Script Language)に新機能が追加されました。

Release Notes/Second Life Server/16 - Second Life Wiki

llGetObjectDetails 関数に、新しい定数が一つ追加されました。
  • OBJECT_REZZER_KEY

LlGetObjectDetails - Second Life Wiki


OBJECT_REZZER_KEY


llGetObjectDetails のフラグに OBJECT_REZZER_KEY を指定すると、Rez 元のオブジェクト(Rezzer)の Key を取得することが出来ます。


スクリプトからオブジェクトを Rez した際、Rezzer の object_rez イベントにて、Rez したオブジェクトの Key を取得することが出来ます。

Object rez/ja - Second Life Wiki

しかしこれまでは、Rez されたオブジェクト側では、自分がどのオブジェクトから Rez されたのかを知ることは出来ませんでした。

たとえば、利用可能台数の制限があるレンタルバイクの Rezzer で、

“レンタルバイクからアバターが降りたので、レンタルバイクのオブジェクトを消します”

といった情報を Rezzer に伝えたいといった場合、これまでは llRegionSay などで周辺の不特定多数のオブジェクト全てに呼びかけるといったことが必要でした。

しかしこの方法は、SIM の負荷的にはあまり良い方法とは言えません。


今回導入された llGetObjectDetails の OBJECT_REZZER_KEY フラグを使用すると、Rez されたオブジェクト内で Rezzer の Key が取得出来ます。
これにより、Rez されたオブジェクト側から Rezzer に、llRegionSayTo を使って直接情報が送れるようになります。

LlRegionSayTo/ja - Second Life Wiki

ちなみに、オブジェクトを Rez したのがアバターだった場合は、 OBJECT_REZZER_KEY フラグで取得出来るのはアバターの Key になります。


今回の機能は、SIM 内の不要な通信を減らす効果がある、すごくいい感じの新機能だと思います^^

今回は、既存の機能を llGetObjectDetails 関数でサポートしたものではなくて、新規に用意された機能みたいです。
そういう意味ではひさびさに、本当の意味での“新機能”だと思います。
このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿