ソラマメ ブログ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。解除は→こちら
現在の読者数 4人
オーナーへメッセージ
※カテゴリー別のRSSです
QRコード
QRCODE

気ままな一言

ご質問等、ページへのリンクはご自由に。気軽にコメントでもどうそ~
詳しいことは角川SIMのサポートセンターまでいらっしゃいませっ

世間知らずなので逆にいろいろ教えてください♪

  
Posted by at

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検知対象種別
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検知対象UUID
type検知対象種別
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フィルタ対象UUID
acceptTRUE … フィルタ有効(デフォルト)
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 (日本語)   

Posted by れむ at 03:47LSLリファレンス

2007年07月01日

数学演算 【LSL】

llAbsinteger型の絶対値を求める。
llFabsfloat型の絶対値を求める。
llFloorfloat型をinteger型に切り捨てて丸める。
llCeilfloat型をinteger型に切り上げて丸める。
llRoundfloat型を最も近いinteger型に丸める。
llLog自然対数を求める。
llLog10常用対数を求める。
llFrand0から引数までのfloat型の乱数を返す。
llPowべき乗を求める。
llModPowべき剰余を求める。
llSqrt平方根を求める。
llListStatisticsリストを統計処理する。

llSin引数の正弦関数(サイン)の結果を返す。
llCos余弦関数(コサイン)の結果を返す。
llTan正接関数(タンジェント)の結果を返す。
llAsin逆正弦関数(サインの逆関数)の結果を返す。
llAcos逆余弦関数(コサインの逆関数)の結果を返す。
llAtan2逆正接関数(タンジェントの逆関数)の結果を返す。

llVecMag3次元ベクトルの長さを求める。
llVecDist2点間の距離を求める。
llVecNorm3次元ベクトルを正規化します。

llEuler2Rotオイラー角をクォータニオンに変換する。
llRot2Eulerクォータニオンをオイラー角に変換する。

llRot2Axis回転軸を求める。
llAxes2Rot座標軸から回転値を求める。
llAxisAngle2Rot座標軸から指定角度回転させた回転値を求める。
llRot2Angle回転値の角度を求める。
llRot2FwdX軸の向きを求める。
llRot2LeftY軸の向きを求める。
llRot2UpZ軸の向きを求める。
llRotBetween2点間の回転値を求める。
llAngleBetween2点間の角度を求める。


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_SQUARES2乗した合計値を返す
LIST_STAT_NUM_COUNTfloatと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上の座標

fwdleftupの回転軸から回転値を求めます。

▲上へ ■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 (日本語)   

Posted by れむ at 03:33LSLリファレンス

2007年07月01日

文字列 【LSL】

llStringLength文字列の長さを取得する。
llInsertString文字列の指定位置へ文字列を挿入する。
llDeleteSubString文字列から指定位置の文字列を削除する。
llGetSubString文字列の指定された一部分を返す。
llSubstringIndex文字列から指定文字列の位置を取得する。
llParseString2List文字列を文字列により分割する。
llParseStringKeepNulls文字列を文字列により分割する。(空白文字を保持)
llDumpList2stringリストを文字列に変換する。
llCSV2ListCSV文字列をリストに変換する。
llList2CSVリストを CSV文字列に変換する。
llStringTrim文字列の前後にある空白文字を取り除く。
llToUpperアルファベットを大文字に変換する。
llToLowerアルファベットを小文字に変換する。

llEscapeURLURLエスケープする。
llUnescapeURLURLエスケープされた文字列をデコードする。

llBase64ToIntegerBase64をinteger型にデコードする。(big endian)
llIntegerToBase64数値をBase64にエンコードする。(big endian)
llBase64ToStringBase64を文字列にデコードする。
llStringToBase64文字列をBase64へエンコードする。
llXorBase64StringsCorrectBase64を暗号化する。
llMD5StringMD5チェックサムを生成する。
llSHA1StringSHA-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)
strBase64文字列

Base64をinteger型にデコードします。(big endian)

▲上へ ■LSL Portal ■LSL Portal (日本語)
string llIntegerToBase64(integer number)
number数値

数値をBase64にエンコードします。(big endian)

▲上へ ■LSL Portal ■LSL Portal (日本語)
string llBase64ToString(string str)
strBase64文字列

Base64を文字列にデコードします。

▲上へ ■LSL Portal ■LSL Portal (日本語)
string llStringToBase64(string str)
str文字列

文字列をBase64へエンコードします。

▲上へ ■LSL Portal ■LSL Portal (日本語)
string llXorBase64StringsCorrect(string str1, string str2)
str1Base64文字列1
str2Base64文字列2

str1str2の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 (日本語)   

Posted by れむ at 03:27LSLリファレンス