検知/衝突 【LSL】

れむ

2007年07月01日 03:47


▲LSL目次
llSensorセンサーを起動する。 llSensorRemoveセンサーを停止する。 llSensorRepeat永続的なセンサーを起動する。
llDetectedKey検出したオブジェクトのUUIDを取得する。 llDetectedName検出したオブジェクトの名前を取得する。 llDetectedOwner検出したオブジェクトのオーナーのUUIDを取得する。 llDetectedPos検出したオブジェクトの座標を取得する。 llDetectedRot検出したオブジェクトの回転値を取得する。 llDetectedVel検出したオブジェクトの速度を取得する。 llDetectedType検出したオブジェクトのタイプを取得する。 llDetectedLinkNumber検出したプリムのリンクナンバーを取得する。 llDetectedGroup検出したオブジェクトが同じアクティブグループか調べる。 llDetectedGrabオブジェクトのドラッグ方向を取得する。
llDetectedTouchFaceタッチした面の番号を取得する。 llDetectedTouchPosタッチした座標を取得する。 llDetectedTouchSTタッチした面上の座標を取得する。 llDetectedTouchUVタッチした面のテクスチャ上の座標を取得する。 llDetectedTouchNormalタッチした面の法線ベクトルを取得する。 llDetectedTouchBinormalタッチした面の従法線ベクトルを取得する。
llCollisionFilter衝突判定のフィルタを設定する。 llCollisionSprite衝突時のスプライトを設定する。 llVolumeDetectファントムオブジェクトの衝突を有効/無効にする。 llPassTouchesルートプリムへタッチイベントを通知する。 llPassCollisionsルートプリムへ衝突イベントを通知する。 llSetDamage衝突時のダメージ量を設定する。
llSensor(string name, key id, integer type, float range, float arc)name検知対象名id検知対象UUIDtype検知対象種別rangeX軸上における検知範囲[m](0 ~ 96.0)arc検知角度(0 ~ PI)
センサーを起動します。

検出できる最大数は、センサーから近い順に16個までです。
オブジェクトオーナーは検出されません

arcはオブジェクトのX軸における範囲です。詳しくはこちらの図表がわかり易いです。
アタッチメントでのarcは、アバターの向き(マウスルックの場合はその向き)が基準になります。
type AGENTエージェント(アバター) ACTIVE動いている物理オブジェクト及び動いているスクリプトを含むオブジェクト PASSIVE動いていないオブジェクト及びスクリプトの停止しているオブジェクト SCRIPTED動いているスクリプトを含むオブジェクト
※ しばしば96mを超えて検出することがあります

▲上へ ■LSL Portal ■LSL Portal (日本語)
llSensorRemove()
センサーを停止します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
llSensorRepeat(string name, key id, integer type, float range, float arc, float rate)name検知対象名id検知対象UUIDtype検知対象種別rangeX軸上における検知範囲[m](0 ~ 96.0)arc検知角度(0 ~ PI)rate検知間隔[秒]
永続的なセンサーを起動します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
key llDetectedKey(integer number)number検知リストのインデックス
検出したオブジェクトのUUIDを取得します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
string llDetectedName(integer number)number検知リストのインデックス
検出したオブジェクトの名前を取得します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
llDetectedOwner(integer number)number検知リストのインデックス
検出したオブジェクトのオーナーのUUIDを取得します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llDetectedPos(integer number)number検知リストのインデックス
検出したオブジェクトの座標を取得します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
rotation llDetectedRot(integer number)number検知リストのインデックス
検出したオブジェクトの回転値を取得します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llDetectedVel(integer number)number検知リストのインデックス
検出したオブジェクトの速度を取得します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
integer llDetectedType(integer number)number検知リストのインデックス
検出したオブジェクトのタイプを取得します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
integer llDetectedLinkNumber(integer number)number検知リストのインデックス
検出したプリムのリンクナンバーを取得します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
integer llDetectedGroup(integer number)number検知リストのインデックス
検出したオブジェクトが同じアクティブグループであるかを調べます。

▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llDetectedGrab(integer number)number検知リストのインデックス
アバターがオブジェクトをドラッグした方向を取得します。
取得した値はタッチした位置からドラッグした方向へのオフセットになります。

▲上へ ■LSL Portal ■LSL Portal (日本語)
integer llDetectedTouchFace(integer index)index検知リストのインデックス
アバターがタッチしたプリムの面の番号を取得します。
タッチ位置が無効な場合にはTOUCH_INVALID_FACE (-1)を返します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llDetectedTouchPos(integer index)index検知リストのインデックス
アバターがタッチした位置のリージョン座標を取得します。
タッチ位置が無効な場合にはTOUCH_INVALID_VECTOR (<0.0, 0.0, 0.0>)を返します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llDetectedTouchST(integer index)index検知リストのインデックス
アバターがタッチしたプリムの面におけるst座標を取得します。
st座標は左下を(0.0, 0.0)右上を(1.0, 1.0)とする座標系です。
戻り値(vector)のxとyに設定されます。(<s, t, 0.0>)
タッチ位置が無効な場合にはTOUCH_INVALID_TEXCOORD(<-1.0, -1.0, 0.0>)を返します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llDetectedTouchUV(integer index)index検知リストのインデックス
アバターがタッチしたプリムの面に貼られているテクスチャのuv座標を取得します。
uv座標は貼り付け基準テクスチャの左下を(0.0, 0.0)右上を(1.0, 1.0)とする座標系です。
テクスチャの面に対するオフセットやサイズを変更した場合、uv値は0.0~1.0の範囲を超えます。反転した場合は座標系も反転します。
タッチ位置が無効な場合にはTOUCH_INVALID_TEXCOORD(<-1.0, -1.0, 0.0>)を返します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llDetectedTouchNormal(integer index)index検知リストのインデックス
アバターがタッチしたプリムの面の正規化された法線ベクトルを取得します。
タッチ位置が無効な場合にはTOUCH_INVALID_VECTOR (<0.0, 0.0, 0.0>)を返します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llDetectedTouchBinormal(integer index)index検知リストのインデックス
アバターがタッチしたプリムの面の従法線ベクトルを取得します。
タッチ位置が無効な場合にはTOUCH_INVALID_VECTOR (<0.0, 0.0, 0.0>)を返します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
llCollisionFilter(string name, key id, integer accept)nameフィルタ対象名idフィルタ対象UUIDacceptTRUE … フィルタ有効(デフォルト)
FALSE … フィルタ無効
衝突判定のフィルタを設定します。
collisioncollision_start及びcollision_endイベントの発生に影響します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
llCollisionSprite(string impact_sprite)impact_spriteテクスチャ名もしくはテクスチャUUID
衝突時のスプライトを設定します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
llVolumeDetect(integer detect)detectTRUE … 衝突イベントを発生させる
FALSE … 衝突イベントを発生させない(デフォルト)
ファントムオブジェクトの衝突でイベント(collisioncollision_start及びcollision_end)を発生させるかどうかの設定をします。

▲上へ ■LSL Portal ■LSL Portal (日本語)
llSetDamage(float damage) damageダメージ量(1~100)
衝突時にエージェントへ与えるダメージ量を設定します。
オブジェクトはダメージを与えると消滅します。
この関数はダメージ有効エリアのみで動作します。
ファントムオブジェクトでダメージを与えることはできません。

▲上へ ■LSL Portal ■LSL Portal (日本語)
LSLリファレンス