セカンドライフの関数逆引きメモ

セカンドライフ制作
スポンサーリンク

はじめに

セカンドライフ用の関数はたくさんあります。これらはもちろん覚えきれないため、通常何かをしたいときに適時思い浮かぶ単語からSecond Life LSL ポータルの関数 (en, translate)  で具体的な使い方を調べると思います。しかし、そもそもどういったことが可能かどうかが分かっていないと、調べるにしても手も足も出ないと思います。

今回セカンドライフのいくつかの関数について、メモ代わりに逆引きの関数を作ってみました。これらの関数があるということさえ知っておけば、次回何か作るときに「あっ!そういえばあの関数あったな!」とスムーズに作れると思います。なお、ここで紹介する関数はあくまで一部であり、偏っていることに注意してください。

zhi-zheng.net さんの 逆引きの関数 もおすすめです。

関数

llAttachToAvatar

権限があるアバターのインベントリに取り込まれたうえでアイテムを装着させる。スクリプトが入った装着用オブジェクトは、Rez された状態にないといけない。

  • PERMISSION_ATTACH 権限

llAttachToAvatarTemp

権限があるアバターのインベントリには表示されないアイテムを装着させる。スクリプトが入った装着用オブジェクトは、Rez された状態にないといけない。装着したものは、アバターが自主的に外せなくなるため注意。

  • PERMISSION_ATTACH 権限

llDetachFromAvatar

装着したアイテムを外す。

  • PERMISSION_ATTACH 権限

llForceMouselook

座ったアバターを強制的にマウスルックモードにする。

  • 利用者は任意でマウスルックモードから戻すことが可能

llGetAgentInfo

アバターが何をしているか。

llGetAgentSize

アバターの大きさを推定して取得する。

llGetAgentLanguage

アバターの言語設定を取得する。

llGetAttached

本オブジェクトがアバターのどの位置に装着されているか取得する。

llGetAttachedList

アバターが装着しているオブジェクトのUUIDを取得する。

llGetDisplayName

アバターの表示名を取得する。

llGetPermissions

アバターから付与されたパーミッションを取得する。

llGiveInventory

アバターへアイテムをわたす。

llGiveInventoryList

アバターへアイテムを複数一度にわたす。

llTransferLindenDollars

オブジェクトのオーナーからアバターへお金をわたす。llGiveMoney もありますが、成功したか失敗したか分かりませんので使用しないでください。

  • PERMISSION_DEBIT 権限

llRequestAgentData

アバターのログイン情報やアカウント作成日などを取得する。

  • 取得時には dataserver イベントが発生する

llRequestPermissions

アバターへパーミッションの問い合わせをする。

llTeleportAgent

オブジェクト所有者を指定したランドマークへワープさせる。

llTeleportAgentGlobalCoords

オブジェクト所有者を指定したリージョンの指定した位置へワープさせる。

  • 要 PERMISSION_TELEPORT 権限

llTeleportAgentHome

アバターをホームへ強制移動させる。

  • 使用者は土地のオーナーでないといけません。

llUnSit

オブジェクトに乗っているアバターを立たせる。

llGetAnimation

何の動きのアニメーションを使用しているか取得する。

llGetAnimationList

再生中のアニメーションをリストで取得する。

llGetAnimationOverride

指定した動作の時のアニメーション(AO)を取得する。

llSetAnimationOverride

指定した動作の時のアニメーション(AO)を設定する。

llResetAnimationOverride

指定した動作の時のアニメーション(AO)をリセットする。

llStartAnimation

指定したアニメーションを再生する。

llStopAnimation

指定したアニメーションを停止する。

llDie

自分のオブジェクトを削除する。ゴミ箱に残らないので注意。

llMoveToTarget

自オブジェクト(物理・装着)指定した位置まで指定した時間をかけて動かす。装着しているアバターを動かすこともできる。

llParticleSystem

パーティクルを発生させる。

  • ルートプリムからリンクされているものを設定する場合は llLinkParticleSystem

llRezAtRoot

オブジェクトを発生させる。(発生したオブジェクトの基点はルートプリムの中央座標となる)

  • 作成したオブジェクトは on_rez イベントで引数を取得可能

llRezObject

オブジェクトを発生させる。(発生したオブジェクトの基点はプリムの中央座標となる)

  • 作成したオブジェクトは on_rez イベントで引数を取得可能

llRotLookAt

自オブジェクト(物理・装着)指定した向きまで指定した時間をかけて動かす。装着しているアバターを動かすこともできる。

  • 指定した座標を向くように動かす場合は、 llLookAt
  • 止めるときは llStopLookAt

llSetBuoyancy

オブジェクト(物理)の浮力を設定する。装着時にはアバターの浮力に影響させる。

llSetKeyframedMotion

オブジェクト(非物理・非装着)を一連のキーフレームで動かす。

llSetTextureAnim

テクスチャを永続的に変更する。

  • ルートプリムからリンクされているものを設定する場合は llSetLinkTextureAnim

llTargetOmega

オブジェクトを永続的に回転させる。

llAllowInventoryDrop

プリムの中のインベントリへ、パーミッションの変更が不要のままアイテムを加えることを許可設定する。

llAvatarOnLinkSitTarget

プリムに座っているユーザのUUIDを取得する。

llGetBoundingBox

指定したオブジェクトのバウンディングボックスを取得する。

llGetEnergy

物理オブジェクトのエネルギーを取得する。

llGetInventoryCreator

プリムのインベントリ内で、指定したアイテム名の作者を取得する。

llGetInventoryKey

プリムのインベントリ内で、指定したアイテム名のキーを取得する。

llGetInventoryName

プリムのインベントリ内で、指定したデータの何番目が、どういう名前かを取得する。

llGetInventoryNumber

プリムのインベントリ内のアイテムの中で、指定したデータがいくつは入っているか取得する。

llGetInventoryPermMask

プリムのインベントリ内で、指定したアイテム名のアクセス権限を取得する。

llGetKey

オブジェクト自体のUUIDを取得する。

  • ルートプリムからリンクされているものを取得する場合は llGetLinkKey

llGetNumberOfSides

プリムの面の数を取得する。

llGetObjectDetails

オブジェクトの詳しい情報を取得する。

llGetObjectName

オブジェクトの名前を取得する。

  • ルートプリムからリンクされているものを取得する場合は llGetLinkName

llGetOwner

オブジェクトの所有者のUUIDを取得する。

llGetOwnerKey

指定したキーからオブジェクトの所有者のUUIDを取得する。

llGetPrimitiveParams

オブジェクトの詳しい設定情報を取得する。

llSetAlpha

指定した面の透明度を変更する。

  • ルートプリムからリンクされているものを設定する場合は llSetLinkAlpha

llSetClickAction

プリムをクリックしただけで、特殊な動作をさせるようにする。

llSetColor

指定した面の色を変更する。

  • ルートプリムからリンクされているものを設定する場合は llSetLinkColor

llSetStatus

プリムの属性を設定する。

たとえば、物理属性やファントム属性にしたりすることは、 llSetPrimitiveParams でも可能なのですが、この関数では、10mの範囲以上を動かせないような属性、地域外にいった場合は自動返却属性、ドラッグ禁止属性、指定した軸の回転を禁止といった通常では設定できないような属性が設定できます。

llSetText

プリムの上に文字を表示する。

llSetTouchText

メニューの「触る」の文字列を変更する。

llSetPrimitiveParams

プリムの情報をいろいろ設定する。上の日本語情報では追加されたフラグ定数の解説がない(→ 英語の解説 )

最新の関数では下記の定数が増えている

ルートプリムからリンクされているものを設定する場合は llSetLinkPrimitiveParamsFast

llSetSitText

メニューの「ここに座る」の文字列を変更する。

llSitTarget

座ったときの座標と向きを設定する。

座る座標を設定できるため、アバターをテレポートさせるときにも利用される。すでに座っているアバターの座標を変更するためには、リンクされているプリムとしてllSetLinkPrimitiveParams で移動させる。

llGetLocalPos

親プリムからの相対座標を取得する。

llGetPos

オブジェクトのリージョン座標を取得する。装着時には装着者からの相対座標を取得する。

llGetRootPosition

親プリムのリージョン座標を取得する。

llSetPos

現在地から 10 m 以内でオブジェクトの座標を設定する。

llSetRegionPos

llSetPos と違って、制限なしにリージョン座標の位置へ移動する。

llGetLocalRot

親プリムからの相対角度を取得する。

llGetRot

オブジェクトの角度を取得する。装着時にはアバターの角度を取得する。

llGetRootRotation

親プリムの角度を取得する。

llSetRot

オブジェクトの角度を設定する。

llGetLinkNumber

自分のリンク番号を取得する。

llGetNumberOfPrims

リンクされているプリム数を調べる。(アバター含む)

llGetObjectPrimCount

オブジェクトを構成するプリム数を取得する。(アバター含まない)

llPassCollisions

衝突時の親プリムへイベントバブル動作の有無の設定する。

llPassTouches

タッチ時の親プリムへイベントバブル動作の有無の設定する。

llEmail

指定したアドレスへEメールを送信する。

  • 受信時は email イベントが発生する。

llInstantMessage

指定したアバターへインスタントメッセージを送る。

llMessageLinked

同一オブジェクト内で情報やり取りのためにメッセージを送信する。

llOwnerSay

自分にしか見えないチャットを発言する

llRegionSay

地域内の指定したチャネルへ発言する。

llRegionSayTo

地域内の指定したアバターの指定したチャネルへ発言する。

  • URI Name Space を送ることで色々な機能が利用できる。

llSay

指定したチャネルへ発言する。(20メートル)

llShout

指定したチャネルへさけぶ。(100メートル)

llWhisper

指定したチャネルへささやく。(10メートル)

llApplyImpulse

自オブジェクト(物理)の指定したベクトルへ衝撃を与える。

llApplyRotationalImpulse

自オブジェクト(物理)の指定した回転方向へ衝撃を与える。

llPushObject

指定したオブジェクト(物理)に指定したベクトルと回転方向に衝撃を与える。衝撃は距離の 3 乗の割合で軽減される。

llSetAngularVelocity

自オブジェクト(物理)の回転速度を変更する。

llSetForce

自オブジェクト(物理)に継続的な力を与える。

llSetVelocity

自オブジェクト(物理)の速度を指定した速度にする。

llCastRay

指定した位置から指定した位置へレイを飛ばして、衝突位置を調べる。

llCollisionFilter

衝突イベントにフィルタをかける。

  • collision の発生条件にフィルターをかける

llGround

土地の地面の高さを取得する。

llSensor

オブジェクトの周りにある物体を検出させる。

llCSV2List

CSVの文字列をListへ変換する。

llGetListEntryType

List型の指定した項目の型を取得する。

llGetListLength

List型の長さを取得する。

llListStatistics

List型の数値から統計情報を取得する。

llGetNotecardLine

ノートカードの指定した行を取得する。

  • 取得時には dataserver イベントが発生する
  • ノートカード自体の更新時などは、 changed イベントで取得可能

llGetNumberOfNotecardLines

ノートカードの行数を取得する。

llGetSubString

文字列内の指定した箇所を切り出す。JavaScriptでいうsubstring関数。

llMD5String

文字列からMD5ハッシュの作成する。

llParseStringKeepNulls

文字列内で指定した区切り文字で区切る。JavaScriptでいうsplit関数。

  • 空となる文字を除き、trimを行う場合は、 llParseString2List の関数だけで可能

llSHA1String

文字列からSHA1ハッシュの作成する。

llStringLength

文字列の長さを取得する。JavaScriptでいうlength関数。

llStringTrim

文字列内の前後の空白を除去する。JavaScriptでいうtrim関数。

llSubStringIndex

文字列内で指定した文字の位置を取得する。JavaScriptでいうindexOf関数。

llJson2List

JSON文字列からList型へ変換する。

llJsonGetValue

JSON文字列の指定した項目のデータを取得する。

llJsonSetValue

JSON文字列に指定した項目へデータを入れる。

llJsonValueType

JSON文字列の指定した項目の型を取得する。

llList2Json

List型からJSON文字列へ変換する。

http_request

プリム内に設置したWebサーバーに対してHTTPアクセスがあった場合、あるいはllRequestURLを実行後のURLを発行時に発生。

  • llRequestURLを実行後のURLは、第3引数に入る。
  • 第1引数のIDは、llGetHTTPHeaderを利用することで解析が行える。

http_respose

llHTTPRequestの応答時にイベントが発生。

llGetHTTPHeader

http_requestの第1引数を使用して、情報を解析する。IPアドレスやどのようなURLでアクセスされたかなどが分かる。

llHTTPRequest

指定したWWWへHTTPリクエストを送信する。

llRequestURL

Webサーバーを作成する。作成したWebサーバーのURLは、http_requestで受け取る。

  • HTTPS用のサーバーを作る場合は、llRequestSecureURLを使用する。
  • SIMが再起動するとWebサーバーは終了するため、changedイベントのCHANGED_REGION_START発生時に改めて、llRequestURLで作成する。
  • 作成できるWebサーバーの数は制限がある。llGetFreeURLsで取得が可能。
  • 作成したWebサーバーを閉じる場合は、オブジェクトかスクリプトを削除するか、llReleaseURLで削除する。

llDetectedGroup

アバターと、本スクリプトを設定したプリムとが同一グループかを取得する。

llDetectedKey

発生させたオブジェクト・アバターのUUIDを取得する。

llDetectedLinkNumber

クリックしたプリムのリンク番号を取得する。

llDetectedTouchFace

クリックした面のインデックス番号を取得する。

llDetectedTouchST

面内でクリックした座標を取得する。

llDetectedTouchUV

面内でクリックしたテクスチャ上のUV座標を取得する。

llDetectedType

検出したもののオブジェクトの種類を取得する。

llDetectedVel

オブジェクトの速度を取得する。

llDialog

ダイアログ型GUIを表示させる。

llLoadURL

指定したURLへ誘導するダイアログボックスの表示する。

llMapDestination

指定した位置の世界地図を開く(装着したものか、タッチ系のみで動作)。

llSetPayPrice

支払い選択時に表示されるダイアログを設定する。

  • プリムへ支払った場合は money イベントが発生する

llTextBox

入力用のダイアログボックスを表示させる。

llAdjustSoundVolume

再生中の音声の音量を変更する。

llCollisionSound

衝突音を変更する。

llPreloadSound

音をダウンロードしてキャッシュにためる。

llPlaySound

音を再生するキャッシュにあれば即再生する。

llPlaySoundSlave

音を再生し、Slaveされたものも再生する。

llLoopSound

音を連続再生する。

llLoopSoundMaster

音を連続再生し、Slaveされたものも再生する。

llLoopSoundSlave

音を連続再生を予約し、Masterが呼ばれたら再生する。

llSetSoundQueueing

再生した音が終了するまでスクリプトを止める。

llSetSoundRadius

音の聞こえる領域を変更する。

llSetParcelMusicURL

土地内に流れる放送音楽を変更する。

llStopSound

音を止める。

llTriggerSound

オブジェクトがある固定位置で音を流す。

llTriggerSoundLimited

指定したバウンディングボックス内で音を流す。

llClearCameraParams

カメラの情報を初期化する。

  • PERMISSION_TRACK_CAMERA 権限

llGetCameraPos

カメラの座標を取得する。

  • PERMISSION_TRACK_CAMERA 権限

llGetCameraRot

カメラの向きを取得する。

  • PERMISSION_TRACK_CAMERA 権限

llSetCameraParams

カメラの状態を設定する。

  • PERMISSION_TRACK_CAMERA 権限

llCloud

雲の情報を取得する。

llGetDayLength

区画に設定された1日の秒数を取得する

  • リージョンの場合は、llGetRegionDayLengthを使用すること

llGetDayOffset

区画に設定された環境時刻の加算されているオフセット値?を取得する

  • リージョンの場合は、llGetRegionDayOffsetを使用すること

llGetEnvironment

指定した座標の環境を取得する。

  • 環境とは例えば、空の色や水の設定、シーンの設定など

llGetSunDirection

太陽の方向「正規化された方向ベクトル」を取得する。

  • 月の方向を調べる場合は、llGetMoonDirectionを使用すること

llGetSunRotation

太陽の方向をローテーションで4元数で取得する。

  • 月の方向を調べる場合は、llGetMoonRotationを使用すること

llGetTimeOfDay

セカンドライフ内の朝昼夜の時間「秒」を取得する。取得した値はfloat型となる。

なお、セカンドライフ内は1日が4時間で、1時間ごとに夜、朝、昼、夕のサイクルとなる。この秒数は深夜からカウントされるが、再起動によってカウントがリセットされるため、秒数から今の時間帯を割り出すのは難しいかと思われる。(未確認)

llWater

海の高さを取得する。

llWind

風向きを取得する。

llAddToLandBanList

一定時間、土地へのアクセスを禁止する。

llGetAgentList

区画にいる全アバターを取得する。

llGetEnv

以下のようなリージョンの情報を取得する。

  • CPU数(region_cpu_ratio
  • SIMの種類(region_product_name
  • SIMの起動時のUNIX時刻(region_start_time)。llGetUnixTimeからこの値を引けば起動時間が導ける。

llGetParcelDetails

指定した座標の区画情報を取得する。

llGetParcelFlags

より詳しい区画の情報を取得する。

  • リージョンの情報を調べる場合は、llGetRegionFlagsを使用すること

llGetParcelMaxPrims

区画の最大プリム数を取得する。

llGetParcelPrimCount

区画内にあるプリム数を取得する。

llGetRegionAgentCount

リージョン内のアバター数を取得する。

llGetRegionFlags

リージョン内のフラグ(飛行禁止や、土地操作無効など)を取得する。

  • 区画の情報を調べる場合は、llGetParcelFlagsを使用すること

llGetRegionFPS

リージョンのFPSを取得する。

llGetRegionTimeDilation

リージョンのラグを取得する。

llParcelMediaCommandList

区画で設定したメディア情報を設定する。例えば PARCEL_MEDIA_COMMAND_URL を使用すれば区画内の動画情報を設定できる。他にも再生や、一時停止といったことも可能。

llParcelMediaQuery

区画で設定したメディア情報を取得する。例えば PARCEL_MEDIA_COMMAND_TEXTURE を使用すれば動画のテクスチャを取得できる。

llRequestSimulatorData

SIM全体の稼働状況を取得する。

  • 取得時には dataserver イベントが発生する

llGetGMTclock

GMTの午前0時からの経過した時間「秒」を取得する。取得した値はinteger型となる。

llGetTime

スクリプトが起動してからの時間「秒」を取得する。取得した値はfloat型となる。

llGetWallclock

太平洋時間の午前0時からの経過時間「秒」を取得する。integer型となる。

llGetFreeMemory

スクリプトの空き容量を取得。

llGetScriptName

自分のスクリプトの名前を取得する。

llGetStartParameter

llRezObject 等で Rez された際に引数を取得する。

llRemoveInventory

自プリムのインベントリ内にある指定したデータを削除する。

llResetOtherScript

指定した名前のスクリプトをリセット。

llResetScript

自分のスクリプトをリセット。

llSetScriptState

指定した名前のスクリプトを停止/再開させる。

llSetTimerEvent

この関数を呼んだ後定期的にタイマーイベントを発生させる。

  • 0秒を指定すると削除できる
  • timer イベントが発生する

llSleep

スクリプトを指定した秒数停止する。

attach

装着時に発生。

changed

オブジェクトの状態に変化があったときに発生。インベントリ内に変化あったときや、他のSIMへ移動したときなど。

collision_start

他のオブジェクトとの衝突時に発生。

  • llCollisionFilter でイベントを発生させるオブジェクトをフィルタ
  • llVolumeDetect で通過可能だが、本イベントを発生させることも可能

dataserver

データを取得時に発生。

land_collision_start

地面との衝突時に発生。

listen

チャットに発言があると発生。

on_rez

rezされた時に発生。

object_rez

rezした時に発生。

sensor

センサー系の関数で見つかったときに発生。

timer

指定した時間ごとに発生。

touch_start

クリック開始から発生。

この関数を入れることで、オブジェクトの上にカーソルを乗せるとタッチできるようになる。逆にクリックさせないようにするためには、ステートを変更するしかない。

llClearCameraParams

カメラの情報を初期化する。

  • PERMISSION_TRACK_CAMERA 権限

おまけ

click_type

クリック時に何を起こさせるかは、llSetClickActionでも設定できますが、GUI上から設定できます。

「編集」の「一般」の「クリックで」から変更ができます。設定は下記から選択できます。

  • 触る(デフォルト)
  • オブジェクトに座る
  • オブジェクトを購入する
  • オブジェクトに支払う
  • 開く
  • ズームする

コメント

タイトルとURLをコピーしました