気ままな一言
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 (日本語)
2007年07月01日
数学演算 【LSL】
llAbs | integer型の絶対値を求める。 |
llFabs | float型の絶対値を求める。 |
llFloor | float型をinteger型に切り捨てて丸める。 |
llCeil | float型をinteger型に切り上げて丸める。 |
llRound | float型を最も近いinteger型に丸める。 |
llLog | 自然対数を求める。 |
llLog10 | 常用対数を求める。 |
llFrand | 0から引数までのfloat型の乱数を返す。 |
llPow | べき乗を求める。 |
llModPow | べき剰余を求める。 |
llSqrt | 平方根を求める。 |
llListStatistics | リストを統計処理する。 |
llSin | 引数の正弦関数(サイン)の結果を返す。 |
llCos | 余弦関数(コサイン)の結果を返す。 |
llTan | 正接関数(タンジェント)の結果を返す。 |
llAsin | 逆正弦関数(サインの逆関数)の結果を返す。 |
llAcos | 逆余弦関数(コサインの逆関数)の結果を返す。 |
llAtan2 | 逆正接関数(タンジェントの逆関数)の結果を返す。 |
llVecMag | 3次元ベクトルの長さを求める。 |
llVecDist | 2点間の距離を求める。 |
llVecNorm | 3次元ベクトルを正規化します。 |
llEuler2Rot | オイラー角をクォータニオンに変換する。 |
llRot2Euler | クォータニオンをオイラー角に変換する。 |
llRot2Axis | 回転軸を求める。 |
llAxes2Rot | 座標軸から回転値を求める。 |
llAxisAngle2Rot | 座標軸から指定角度回転させた回転値を求める。 |
llRot2Angle | 回転値の角度を求める。 |
llRot2Fwd | X軸の向きを求める。 |
llRot2Left | Y軸の向きを求める。 |
llRot2Up | Z軸の向きを求める。 |
llRotBetween | 2点間の回転値を求める。 |
llAngleBetween | 2点間の角度を求める。 |
integer llAbs(integer val)
val | 数値 |
integer型の絶対値を求めます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
float llFabs(float val)
val | 数値 |
float型の絶対値を求めます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
integer llFloor(float val)
val | 数値 |
float型をinteger型に切り捨てて丸めます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
integer llCeil(float val)
val | 数値 |
float型をinteger型に切り上げて丸めます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
integer llRound(float val)
val | 数値 |
引数のfloat型を最も近いinteger型に丸めます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
float llLog(float val)
val | 真数 |
自然対数を求めます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
float llLog10(float val)
val | 真数 |
常用対数を求めます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
float llFrand(float mag)
mag | 範囲の最大値(この値は含まない) |
0からmagまでのfloat型の乱数を返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
float llPow(float base, float exponent)
base | 底 | |
exponent | 指数 |
baseを底とするべき乗を求める。
▲上へ ■LSL Portal ■LSL Portal (日本語)
integer llModPow(integer a, integer b, integer c)
a | 底 | |
b | 指数 | |
c | 法 |
aを底としてbでべき乗し、cで割った剰余を返します。((a ^ b) % c)
▲上へ ■LSL Portal ■LSL Portal (日本語)
float llSqrt(float val)
val | 数値 |
平方根を求めます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
float llListStatistics(integer operation, list src)
operation | 処理方法 | |
src | 処理する数値リスト |
与えられた数値リストを元に指定の統計処理をします。
operation
LIST_STAT_MAX | 最大値を返す |
LIST_STAT_MIN | 最小値を返す |
LIST_STAT_MEAN | 平均値を返す |
LIST_STAT_MEDIAN | 中央値を返す |
LIST_STAT_STD_DEV | 標準偏差を返す |
LIST_STAT_SUM | 合計値を返す |
LIST_STAT_SUM_SQUARES | 2乗した合計値を返す |
LIST_STAT_NUM_COUNT | floatとintegerの要素数を返す |
LIST_STAT_GEOMETRIC_MEAN | 幾何平均を返す |
LIST_STAT_RANGE | 値の範囲を返す |
▲上へ ■LSL Portal ■LSL Portal (日本語)
float llSin(float theta)
theta | 角度(ラジアン) |
thetaの正弦関数(サイン)の結果を返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
float llCos(float theta)
theta | 角度(ラジアン) |
thetaの余弦関数(コサイン)の結果を返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
float llTan(float theta)
theta | 角度(ラジアン) |
thetaの正接関数(タンジェント)の結果を返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
float llAsin(float val)
val | 数値 |
valの逆正弦関数(サインの逆関数)の結果を返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
float llAcos(float val)
val | 数値 |
引数の逆余弦関数(コサインの逆関数)の結果を返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
float llAtan2(float y, float x)
y | 数値 | |
x | 数値 |
valの逆正接関数(タンジェントの逆関数)の結果を返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
float llVecMag(vector vec)
vec | ベクトル |
3次元ベクトルの長さを求めます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
float llVecDist(vector vec_a, vector vec_b)
vec_a | 座標 | |
vec_b | 座標 |
2点間の距離を求めます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llVecNorm(vector vec)
vec | ベクトル値 |
3次元ベクトルを正規化します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
rotation llEuler2Rot(vector vec)
vec | オイラー角 |
オイラー角をクォータニオンに変換します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llRot2Euler(rotation q)
q | クォータニオン |
クォータニオンをオイラー角に変換します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llRot2Axis(rotation rot)
rot | 回転値 |
rotの回転値から回転軸を求めます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
rotation llAxes2Rot(vector fwd, vector left, vector up)
fwd | 正面の座標 | |
left | 左の座標 | |
up | 上の座標 |
fwd、left、upの回転軸から回転値を求めます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
rotation llAxisAngle2Rot(vector axis, float angle)
axis | 座標軸 | |
angle | 角度(ラジアン) |
axisで示す座標軸からangleの角度分、回転させた回転値を求めます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
float llRot2Angle(rotation rot)
rot | 回転値 |
rotの回転値から角度を求めます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llRot2Fwd(rotation q)
q | 回転値 |
qの回転値からX軸の向きを求めます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llRot2Left(rotation q)
q | 回転値 |
qの回転値からY軸の向きを求めます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llRot2Up(rotation q)
q | 回転値 |
qの回転値からZ軸の向きを求めます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
rotation llRotBetween(vector start, vector end)
start | 始点 | |
end | 終点 |
<0.0, 0.0, 0.0>を原点とする2点間の回転値を求めます。
llRotBetween(<1.0, 0.0, 0.0>, <0.0, -1.0, 0.0>); // Z軸-45°
▲上へ ■LSL Portal ■LSL Portal (日本語)
float llAngleBetween(rotation a, rotation b)
a | 回転値1 | |
b | 回転値2 |
2点間の角度を求めます。( llAcos(a.x * b.x + a.y * b.y + a.z * b.z + a.s * b.s) * 2 )
▲上へ ■LSL Portal ■LSL Portal (日本語)
2007年07月01日
文字列 【LSL】
llStringLength | 文字列の長さを取得する。 |
llInsertString | 文字列の指定位置へ文字列を挿入する。 |
llDeleteSubString | 文字列から指定位置の文字列を削除する。 |
llGetSubString | 文字列の指定された一部分を返す。 |
llSubstringIndex | 文字列から指定文字列の位置を取得する。 |
llParseString2List | 文字列を文字列により分割する。 |
llParseStringKeepNulls | 文字列を文字列により分割する。(空白文字を保持) |
llDumpList2string | リストを文字列に変換する。 |
llCSV2List | CSV文字列をリストに変換する。 |
llList2CSV | リストを CSV文字列に変換する。 |
llStringTrim | 文字列の前後にある空白文字を取り除く。 |
llToUpper | アルファベットを大文字に変換する。 |
llToLower | アルファベットを小文字に変換する。 |
llEscapeURL | URLエスケープする。 |
llUnescapeURL | URLエスケープされた文字列をデコードする。 |
llBase64ToInteger | Base64をinteger型にデコードする。(big endian) |
llIntegerToBase64 | 数値をBase64にエンコードする。(big endian) |
llBase64ToString | Base64を文字列にデコードする。 |
llStringToBase64 | 文字列をBase64へエンコードする。 |
llXorBase64StringsCorrect | Base64を暗号化する。 |
llMD5String | MD5チェックサムを生成する。 |
llSHA1String | SHA-1でハッシュ化する。 |
integer llStringLength(string str)
str | 文字列 |
文字列の長さを取得します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
string llInsertString(string dst, integer position, string src)
dst | 挿入される文字列 | |
position | 挿入するインデックス(0~) | |
src | 挿入する文字列 |
dstの指定位置へsrcを挿入した新しい文字列を返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
string llDeleteSubString(string src, integer start, integer end)
src | 文字列 | |
start | 開始インデックス | |
end | 終了インデックス |
srcから指定範囲の文字列を削除した新しい文字列を返します。
インデックスに負数を指定した場合は末尾からの位置になります。
llDeleteSubString("0123456789", 1, 3); // "0456789" llDeleteSubString("0123456789", 0, -1); // "" llDeleteSubString("0123456789", 8, 2); // "34567"
▲上へ ■LSL Portal ■LSL Portal (日本語)
string llGetSubString(string src, integer start, integer end)
src | 文字列 | |
start | 開始インデックス(0~-length) | |
end | 終了インデックス(length-1~-1) |
srcから指定範囲の文字列を切り出した新しい文字列を返します。
インデックスに負数を指定した場合は末尾からの位置になります。
llGetSubString("0123456789", 1, 3); // "123" llGetSubString("0123456789", 0, -1); // "0123456789" llGetSubString("0123456789", 8, 2); // "01289"
▲上へ ■LSL Portal ■LSL Portal (日本語)
integer llSubStringIndex(string source, string pattern)
source | 文字列 | |
pattern | 検索する文字列 |
sourceからpatternの見つかった先頭インデックス返します。
見つからなかった場合は-1を返します。
llSubStringIndex("0123456789", "56"); // 5
llSubStringIndex("0123456789", "a"); // -1
▲上へ ■LSL Portal ■LSL Portal (日本語)
list llParseString2List(string src, list separators, list spacers)
src | 文字列 | |
separators | 区切り文字リスト | |
spacers | 区切り文字リスト(区切り文字を含む) |
srcを指定文字列により分割します。
llParseString2List("0123456789", [ "1" ], []); // [ "0", "23456789" ] llParseString2List("0123456789", [], [ "1" ]); // [ "0", "1", "23456789" ] llParseString2List("0123456789", [ "1", "3" ], []); // [ "0", "2", "456789" ]
▲上へ ■LSL Portal ■LSL Portal (日本語)
list llParseStringKeepNulls(string src, list separators, list spacers)
src | 文字列 | |
separators | 区切り文字リスト | |
spacers | 区切り文字リスト(区切り文字を含む) |
動作はllParseString2Listと同じですが、区切られた文字が空白でもリストへそのまま返します。
llParseStringKeepNulls("0123456789", [ "1", "2" ], []); // [ "0", "", "3456789" ] llParseStringKeepNulls("0123456789", [], [ "1", "2" ]); // [ "0", "1", "", "2", "3456789" ]
▲上へ ■LSL Portal ■LSL Portal (日本語)
string llDumpList2String(list src, string separator)
src | 文字列 | |
separator | 区切りへ追加する文字列 |
文字列リストを文字列に変換します。
llDumpList2String([ "012", "345", "678" ], "-"); // "012-345-678"
▲上へ ■LSL Portal ■LSL Portal (日本語)
string llStringTrim(string src, integer type)
src | 文字列 | |
type | 削除方法 |
文字列の前後にある空白文字を取り除いた新しい文字列を返します。
type
STRING_TRIM_HEAD | 先頭の空白文字を削除 |
STRING_TRIM_TAIL | 末尾の空白文字を削除 |
STRING_TRIM | 両端の空白文字を削除 |
▲上へ ■LSL Portal ■LSL Portal (日本語)
string llToUpper(string src)
src | 文字列 |
アルファベットを大文字に変換します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
string llToLower(string src)
src | 文字列 |
アルファベットを小文字に変換します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
string llEscapeURL(string url)
url | 文字列 |
URLエスケープします。
▲上へ ■LSL Portal ■LSL Portal (日本語)
string llUnescapeURL(string url)
url | 文字列 |
URLエスケープされた文字列をデコードします。
▲上へ ■LSL Portal ■LSL Portal (日本語)
integer llBase64ToInteger(string str)
str | Base64文字列 |
Base64をinteger型にデコードします。(big endian)
▲上へ ■LSL Portal ■LSL Portal (日本語)
string llIntegerToBase64(integer number)
number | 数値 |
数値をBase64にエンコードします。(big endian)
▲上へ ■LSL Portal ■LSL Portal (日本語)
string llBase64ToString(string str)
str | Base64文字列 |
Base64を文字列にデコードします。
▲上へ ■LSL Portal ■LSL Portal (日本語)
string llStringToBase64(string str)
str | 文字列 |
文字列をBase64へエンコードします。
▲上へ ■LSL Portal ■LSL Portal (日本語)
string llXorBase64StringsCorrect(string str1, string str2)
str1 | Base64文字列1 | |
str2 | Base64文字列2 |
str1とstr2のXORをとった文字列を返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
string llMD5String(string src, integer nonce)
src | 文字列 | |
nonce | 任意の数値 |
MD5チェックサムを生成します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
string llSHA1String(string src)
src | 文字列 |
srcをSHA-1でハッシュ化した文字列を生成します。
▲上へ ■LSL Portal ■LSL Portal (日本語)