気ままな一言
2007年07月01日
検知/衝突 【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 | 検知対象UUID | |
type | 検知対象種別 | |
range | X軸上における検知範囲[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 | 検知対象UUID | |
type | 検知対象種別 | |
range | X軸上における検知範囲[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 | フィルタ対象UUID | |
accept | TRUE … フィルタ有効(デフォルト) FALSE … フィルタ無効 |
衝突判定のフィルタを設定します。
collision、collision_start及びcollision_endイベントの発生に影響します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llCollisionSprite(string impact_sprite)
impact_sprite | テクスチャ名もしくはテクスチャUUID |
衝突時のスプライトを設定します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llVolumeDetect(integer detect)
detect | TRUE … 衝突イベントを発生させる FALSE … 衝突イベントを発生させない(デフォルト) |
ファントムオブジェクトの衝突でイベント(collision、collision_start及びcollision_end)を発生させるかどうかの設定をします。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llSetDamage(float damage)
damage | ダメージ量(1~100) |
衝突時にエージェントへ与えるダメージ量を設定します。
オブジェクトはダメージを与えると消滅します。
この関数はダメージ有効エリアのみで動作します。
ファントムオブジェクトでダメージを与えることはできません。
▲上へ ■LSL Portal ■LSL Portal (日本語)
Posted by れむ at 03:47
│LSLリファレンス