2016年12月16日金曜日

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

LSL(Linden Script Language)に、下記の新機能が追加されました
  • llGetEnvに「region_object_bonus」パラメータが追加
  • llGetObjectDetailsに「OBJECT_ATTACHED_SLOTS_AVAILABLE」パラメータが追加
Release Notes/Second Life Server/16 - Second Life Wiki


llGetEnv(region_object_bonus)


llGetEnv は、SIM(リージョン)の様々な情報を取得することが出来る関数です。

LlGetEnv - Second Life Wiki

今回は、SIM のオブジェクトボーナスの値を取得出来る機能(region_max_prims)が追加されました。

オブジェクトボーナスは、SIM の区画内で使えるプリム数を増やす設定です。

SIM の設定画面でのオブジェクトボーナスの値

土地情報でのオブジェクトボーナスの値(1.00 の場合は表示されません)

512sqm の土地で使えるプリム数は通常 175 ですが、オブジェクトボーナスが 2.00 に設定された SIM では 2 倍の 350 になります。
オブジェクトボーナスは 10.00 まで設定出来ますので、512sqm の土地で使えるプリム数は最大 1750 まで増やすことが出来ます。

ただし、SIM 全体でのプリム数の上限は変わりません。
SIM 内の一部の地区にプリムを集中させたい時に使う設定です。

セカンドライフでは主に、“ダブルプリム”の区画を作成するのに使われています。

そういった地域では、土地の残りプリム数の計算などを行なおうとすると、通常のプリム数の計算とは異なる計算が必要になります。

これまではオブジェクトボーナスを LSL で取得することは出来ませんでしたので、もしスクリプトで動的に計算を行いたいといった場合は、SIM 毎にオブジェクトボーナスの値をノートカードの設定ファイルなどであらかじめ個別に設定するといった必要がありました。

今回追加された「region_object_bonus」を使用すると、そういった手間が不用になります!^^/

オブジェクトボーナス 1.00 の SIM で「region_object_bonus」の値を取得した例

llGetObjectDetails(OBJECT_ATTACHED_SLOTS_AVAILABLE)


llGetObjectDetails は、オブジェクト(プリム)の情報を取得したり設定を行う関数です。

LlGetObjectDetails - Second Life Wiki

今回は、下記のパラメータが追加されました。

OBJECT_ATTACHED_SLOTS_AVAILABLEアバターの装着物の空きスロットの数を取得する機能

OBJECT_ATTACHED_SLOTS_AVAILABLE


OBJECT_ATTACHED_SLOTS_AVAILABLE を指定すると、アバターの装着物の空きスロットの数を取得出来ます。

チェック対象のものがアバターでない場合は、0 が返ります。

空きスロットを取得した例。
この場合は、29スロット空いています。

アバターへのオブジェクトの装着は、一つのアバター全体で 38 個(スロット)までという制限があります。

Limits - Second Life Wiki

この制限には、HUD や一時的な装着物(Temporary attachments)も含まれます。

※オブジェクトでは無い、レイヤーの衣類やアルファレイヤーなどは含まれません。

アバターにオブジェクトを装着することが出来る LSL はこれまでもありましたが、アバターがあといくつオブジェクトを装着可能かを取得する方法はありませんでした。

装着物の数が 38 個以上になる場合、LSL でさらに装着しようとすると、エラーが発生することなく失敗します。

“装着数の上限を超えて失敗した”ということを取得することは、LSL では出来ません。

ただし、今回の追加された OBJECT_ATTACHED_SLOTS_AVAILABLE を使うと、事前に装着物の上限を超えるかどうかを調べることが出来ます!

体験型のコンテンツで、llAttachToAvatarTemp でアイテムが確実に装着出来るかどうかを確認したい場合などに便利な機能だと思います^^


今回も、“かゆいところに手が届く”という感じの機能が追加されました。
少しずつですが、こうやって出来ることが増えていくのはいいですね^^
このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿