気ままな一言
2007年07月01日
リスト 【LSL】
llGetListEntryType | リストの指定要素の型を取得する。 |
llGetListLength | リストの要素数を取得する。 |
llListInsertList | リストの指定位置へ別のリストを挿入する。 |
llDeleteSubList | リストから指定範囲の要素を削除する。 |
llListReplaceList | リストの一部を置換する。 |
llListFindList | リストから指定要素の位置を返す。 |
llList2Integer | リストから integer型の要素を取り出す。 |
llList2Float | リストから float型の要素を取り出す。 |
llList2Key | リストから key型の要素を取り出す。 |
llList2String | リストから string型の要素を取り出す。 |
llList2Rot | リストから rotation型の要素を取り出す。 |
llList2Vector | リストから vector型の要素を取り出す。 |
llCSV2List | CSV文字列をリストに変換する。 |
llList2CSV | リストを CSV文字列に変換する。 |
llList2List | リストから指定範囲の要素を取得する。 |
llListSort | リストをソートする。 |
llListRandomize | リストの要素をランダムに並び替える。 |
llList2ListStrided | リストから指定間隔の要素を抜き出す。 |
integer llGetListEntryType(list src, integer index)
src | リスト | |
index | インデックス |
リストの指定要素の型を取得します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
integer llGetListLength(list src)
src | リスト |
リストの要素数を取得します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
list llListInsertList(list dest, list src, integer start)
dest | 挿入される元となるリスト | |
src | 挿入するリスト | |
start | 挿入するインデックス |
destの指定位置へsrcを挿入した新しいリストを返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
list llDeleteSubList(list src, integer start, integer end)
dest | 削除される元となるリスト | |
start | 開始インデックス | |
end | 終了インデックス |
srcから指定範囲の要素を削除した新しいリストを返します。
llDeleteSubList([ 0, 1, 2, 3, 4, 5 ], 1, 3); // [ 0, 4, 5 ] llDeleteSubList([ 0, 1, 2, 3, 4, 5 ], 0, -1); // [] llDeleteSubList([ 0, 1, 2, 3, 4, 5 ], 8, 2); // [ 3, 4, 5 ]
▲上へ ■LSL Portal ■LSL Portal (日本語)
list llListReplaceList(list dest, list src, integer start, integer end)
dest | 置換される元となるリスト | |
src | 置換するリスト | |
start | 開始インデックス | |
end | 終了インデックス |
destから指定範囲の要素をsrcで置換した新しいリストを返します。
llListReplaceList([ 0, 1, 2, 3, 4, 5 ], [ "a", "b", "c" ], 1, 3); // [ 0, "a", "b", "c", 4, 5 ] llListReplaceList([ 0, 1, 2, 3, 4, 5 ], [ "a", "b", "c" ], 0, -1); // [ "a", "b", "c" ] llListReplaceList([ 0, 1 ], [ "a", "b", "c" ], 10, 10); // [ 0, 1, "a", "b", "c" ]
▲上へ ■LSL Portal ■LSL Portal (日本語)
integer llListFindList(list src, list test)
src | リスト | |
test | 検索するリスト |
srcからtestの見つかったインデックス返します。
見つからなかった場合は-1を返します。
値の型及びリスト要素の順も一致する必要があります。
▲上へ ■LSL Portal ■LSL Portal (日本語)
integer llList2Integer(list src, integer index)
src | リスト | |
index | インデックス |
リストから integer型の要素を取り出します。
変換に失敗したときは0を返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
float llList2Float(list src, integer index)
src | リスト | |
index | インデックス |
リストから float型の要素を取り出します。
変換に失敗したときは0を返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
key llList2Key(list src, integer index)
src | リスト | |
index | インデックス |
リストから key型の要素を取り出します。
変換に失敗したときはNULL_KEYを返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
string llList2String(list src, integer index)
src | リスト | |
index | インデックス |
リストから string型の要素を取り出します。
変換に失敗したときは""を返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
rotation llList2Rot(list src, integer index)
src | リスト | |
index | インデックス |
リストから rotation型の要素を取り出します。
変換に失敗したときはZERO_ROTATIONを返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llList2Vector(list src, integer index)
src | リスト | |
index | インデックス |
リストから vector型の要素を取り出します。
変換に失敗したときはZERO_VECTORを返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
list llCSV2List(string src)
src | CSV形式(カンマ区切り)文字列 |
CSV形式の文字列をリストに変換します。
llParseStringKeepNulls(src, [ "," ], []) とほぼ同様の処理が行われますが、
rotation 型や vector 型と認識できる場合は、型単位で分割されます。
(正確には '<' から '>'以降の ',' までを1つとして認識するようです)
llCSV2List("0,1,<2,3,4>,5,<6,7,8,9>"); // [ 0, 1, <2,3,4>, 5, <6,7,8,9> ] length = 5 llCSV2List("0,1,<2,3,4,5,6>7,8,9"); // [ 0, 1, <2,3,4,5,6>7, 8, 9 ] length = 5 llCSV2List("0,1,<2,3,4,5,6,7,8,9"); // [ 0, 1, <2,3,4,5,6,7,8,9 ] length = 3また、CSVの仕様とは異なりエスケープ処理は行われません。
(例えば、"," は " 2つに分割されます)
llCSV2List("\"0,1,2\",3,4"); // [ "0, 1, 2", 3, 4 ] length = 5
▲上へ ■LSL Portal ■LSL Portal (日本語)
string llList2CSV(list src)
src | リスト |
リストをCSV形式の文字列に変換します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
list llList2List(list src, integer start, integer end)
src | リスト | |
index | 開始インデックス | |
end | 終了インデックス |
リストから指定範囲の要素のリストを返します。
llList2List([ 0, 1, 2, 3, 4, 5 ], 1, 3); // [ 1, 2, 3 ]
▲上へ ■LSL Portal ■LSL Portal (日本語)
list llListSort(list src, integer stride, integer ascending)
src | リスト | |
stride | 基準となる要素の間隔(1~) | |
ascending | TRUE … 昇順 FALSE … 降順 |
srcの要素をソートした新しいリストを返します。
比較は同じ型同士のみで行われます。
// 現れた種別の順はそのまま
llListSort([ 1, "C", 3, "A", 2, "B" ], 1, TRUE); // [ 1, "A", 2, "B", 3, "C" ] llListSort([ 1, 3, 2, "C", "A", "B" ], 1, TRUE); // [ 1, 2, 3, "A", "B", "C" ] // 1, 3, 2がソート対象 llListSort([ 1, "C", 3, "A", 2, "B" ], 2, TRUE); // [ 1, "C", 2, "B", 3, "A" ]
▲上へ ■LSL Portal ■LSL Portal (日本語)
list llListRandomize(list src, integer stride)
src | リスト | |
stride | 要素順を保つ間隔(1~) |
srcの要素をランダムに並び替えた新しいリストを返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
list llList2ListStrided(list src, integer start, integer end, integer stride)
src | リスト | |
index | 開始インデックス | |
end | 終了インデックス | |
stride | 要素の間隔(1~) |
srcから指定範囲の要素を指定間隔で抜き出します。
// すべての要素を対象に3つおきに取得 llList2ListStrided([ 0, 1, 2, 3, 4, 5, 6, 7, 8 ], 0, -1, 3); // [ 0, 3, 6 ] // インデックス1~7の場合。strideはリストの先頭が基準となる。 llList2ListStrided([ 0, 1, 2, 3, 4, 5, 6, 7, 8 ], 1, 7, 3); // [ 3, 6 ]
▲上へ ■LSL Portal ■LSL Portal (日本語)
2007年07月01日
移動/回転/物理 【LSL】
llTarget | 到達目標地点を設定する。 |
llTargetRemove | 到達目標地点を解除する。 |
llMoveToTarget | 目標地点へ移動する。 |
llStopMoveToTarget | 移動目標地点を取り消す。 |
llEdgeOfWorld | 移動先が現在のSIM内か調べる。 |
llRotTarget | 回転目標値を設定する。 |
llRotTargetRemove | 回転目標値を取り消す。 |
llTargetOmega | 回転させる。(クライアント上) |
llGetOmega | 回転速度を取得する。 |
llRotLookAt | X軸を指定方向へ回転する。 |
llLookAt | Z軸を指定方向にする。 |
llStopLookAt | llLookAt、llRotLookAtの動作を止める。 |
llSetForce | 永続的な力を加える。 |
llGetForce | 永続的な力の方向と強さを取得する。 |
llSetTorque | 永続的な回転力を与える。 |
llGetTorque | 回転力を取得する。 |
llSetForceAndTorque | 物理的な力と回転力を加える。 |
llApplyImpulse | 瞬間的な力を加える。 |
llApplyRotationalImpulse | 瞬間的な回転力を加える。 |
llGetEnergy | 残エネルギーを取得する。 |
llGetAccel | 加速度を取得する。 |
llGetVel | 速度を取得する。 |
llGetMass | 質量を取得する。 |
llGetCenterOfMass | 重心を取得する。 |
llGroundRepel | 高度を制限する。 |
llPushObject | 相手に衝撃を加える。 |
llSetBuoyancy | 浮力を設定する。 |
llSetHoverHeight | 浮揚高度を設定する。 |
llStopHover | 浮揚状態を解除する。 |
integer llTarget(vector position, float range)
position | 目標座標(絶対座標) | |
range | 目標範囲 |
positionからrangeの範囲を目標地点に設定します。
目標の範囲に到達するとat_targetイベントが発生し、それまではnot_at_targetイベントが発生し続けます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llTargetRemove(integer number)
number | ターゲットID(llTargetの戻り値) |
llTargetにより設定された到達目標地点を解除します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llMoveToTarget(vector target, float tau)
target | 目標座標(絶対座標) | |
tau | 速度 |
物理オブジェクトをtargetへ向けて移動します。
targetは現在の座標から65mの範囲で有効です。(0m < target < 65m)
tauに0.0を指定すると移動を停止します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llStopMoveToTarget()
llMoveToTargetによる移動を停止します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
integer llEdgeOfWorld(vector pos, vector dir)
pos | 基準座標 | |
dir | 基準からの距離? |
世界の端が調べられるらしいです。
▲上へ ■LSL Portal ■LSL Portal (日本語)
integer llRotTarget(rotation rot, float error)
rot | 目標角度 | |
error | 誤差範囲の角度(ラジアン) |
rotに回転目標値を設定します。
目標の範囲に到達するとat_rot_targetイベントが発生し、それまではnot_at_rot_targetイベントが発生し続けます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llRotTargetRemove(integer number)
number | ターゲットID(llRotTargetの戻り値) |
llRotTargetにより設定された目標値を解除します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llTargetOmega(vector axis, float spinrate, float gain)
axis | 回転軸 | |
spinrate | 回転速度(ラジアン毎秒) | |
gain | 物理オブジェクトに与える回転の強さ(0以外の値を設定すること) |
オブジェクトを回転させます。
この関数はクライアント上で実行されるため滑らかに回転しますが、他人が同じように見えているとは限りません。(同期を取る必要がある場合には向きません)
▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llGetOmega()
現在の回転速度(ラジアン)を取得します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llRotLookAt(rotation target, float strength, float damping)
target | 角度(ラジアン) | |
strength | 強さ(物理オブジェクトの場合、0.2~1.0) | |
damping | 減衰値(物理オブジェクトの場合、0.2~1.0) |
オブジェクトのX軸をtargetになるまで回転します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llLookAt(vector target, float strength, float damping)
target | 目標(絶対座標) | |
strength | 強さ(物理オブジェクトの場合、0.2~1.0) | |
damping | 減衰値(物理オブジェクトの場合、0.2~1.0) |
オブジェクトのZ軸をtarget方向にします。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llStopLookAt()
llLookAt、llStopLookAtによる動作を停止します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llSetForce(vector force, integer local)
force | 加える力 | |
local | TRUE … 自身の回転軸を使用する FALSE … リージョンの回転軸を使用する |
物理オブジェクトに永続的な力を加えます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llGetForce()
永続的な力の方向と強さを取得します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llSetTorque(vector torque, integer local)
torque | 加える回転力 | |
local | TRUE … 自身の回転軸を使用する FALSE … リージョンの回転軸を使用する |
物理オブジェクトに永続的な回転力を与えます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llGetTorque()
回転力を取得します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llSetForceAndTorque(vector force, vector torque, integer local)
force | 加える力 | |
torque | 加える回転力 | |
local | TRUE … 自身の回転軸を使用する FALSE … リージョンの回転軸を使用する |
物理オブジェクトに力と回転力を加えます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llApplyImpulse(vector force, integer local)
force | 加える力 | |
local | TRUE … 自身の回転軸を使用する FALSE … リージョンの回転軸を使用する |
物理オブジェクトに瞬間的な力を加えます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llApplyRotationalImpulse(vector force, integer local)
torque | 加える回転力 | |
local | TRUE … 自身の回転軸を使用する FALSE … リージョンの回転軸を使用する |
物理オブジェクトに瞬間的な回転力を加えます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
float llGetEnergy()
残エネルギーを取得します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llGetAccel()
加速度を取得します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llGetVel()
速度を取得します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
float llGetMass()
質量を取得します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llGetCenterOfMass()
重心を取得します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llGroundRepel(float height, integer water, float tau)
height | 地面から距離 | |
water | TRUE … 水中で浮上する FALSE … 水中では浮上しない | |
tau | 到達までにかかる時間(秒) |
高度を制限します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llPushObject(key target, vector impulse, vector ang_impulse, integer local)
target | 対象のUUID | |
impulse | 力を加える方向 | |
ang_impulse | 回転を加える方向 | |
local | TRUE … targetの回転軸を使用する FALSE … リージョンの回転軸を使用する |
物理オブジェクトに衝撃を加えます。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llSetBuoyancy(float buoyancy)
buoyancy | 浮力 |
物理オブジェクトに浮力を設定します。
buoyancy = 0.0 … 通常の重力を受ける。
buoyancy < 1.0 … 通常より重力を受ける。
buoyancy = 1.0 … 宙に浮く。
buoyancy > 1.0 … 浮力により上昇する。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llSetHoverHeight(float height, integer water, float tau)
height | 地面からの距離 | |
water | TRUE … 水中で浮上する FALSE … 水中では浮上しない | |
tau | 到達までにかかる時間(秒) |
物理オブジェクトをheightより上に移動させます。
この関数で地面より64メートル以上浮かぶことはできません。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llStopHover()
llSetHoverHeightで設定した浮揚状態を解除します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
2007年07月01日
カメラ 【LSL】
llGetCameraPos | カメラの位置を取得する。(絶対座標) |
llGetCameraRot | カメラの角度を取得する。 |
llSetCameraAtOffset | カメラの焦点座標を設定する。(オブジェクトからの相対座標) |
llSetCameraEyeOffset | カメラの位置を設定する。(オブジェクトからの相対座標) |
llForceMouselook | マウスルックモードを設定する。 |
llSetCameraParams | カメラのパラメータを設定する。 |
llClearCameraParams | カメラを初期設定に戻す。 |
カメラ制御を終了する。 |
vector llGetCameraPos()
カメラの位置を取得します。(絶対座標)
▲上へ ■LSL Portal ■LSL Portal (日本語)
rotation llGetCameraRot()
カメラの角度を取得します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llSetCameraAtOffset(vector offset)
offset | このオブジェクトからの相対座標 |
カメラの焦点座標を設定します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llSetCameraEyeOffset(vector offset)
offset | このオブジェクトからの相対座標 |
カメラの位置を設定します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llForceMouselook(integer mouselook)
mouselook | TRUE … マウスルックモードON FALSE … マウスルックモードOFF |
マウスルックモードを設定します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llSetCameraParams(list rules)
カメラのパラメータを設定します。
この操作を行うにはパーミッションを取得する必要があります。
rules
rules | 型 | 詳細 | 値の範囲 | デフォルト値 |
---|---|---|---|---|
CAMERA_ACTIVE | integer | TRUE … カメラを稼動する FALSE … カメラを停止する | TRUE/FALSE | FALSE |
CAMERA_BEHINDNESS_ANGLE | float | アバターの回転によって抑制されない角度 | 0~180 | 10.0 |
CAMERA_BEHINDNESS_LAG | float | アバターの裏へ到達するまでの遅延 | 0~3 | 0.0 |
CAMERA_DISTANCE | float | カメラまでの距離 | 0.5~10 | 3.0 |
CAMERA_FOCUS | vector | カメラ焦点(目標位置)の絶対座標 | n/a | n/a |
CAMERA_FOCUS_LAG | float | カメラフォーカスの反応に対する遅延 | 0~3 | 0.1 |
CAMERA_FOCUS_LOCKED | integer | TRUE … フォーカスをロックする FALSE … フォーカスのロックを解除する | TRUE/FALSE | FALSE |
CAMERA_FOCUS_OFFSET | vector | カメラ焦点位置(相対座標) | <-10,-10,-10> ~<10,10,10> | <0.0,0.0,0.0> |
CAMERA_FOCUS_THRESHOLD | float | 目標の動きで焦点が影響を受けない目標からの半径 | 0~4 | 1.0 |
CAMERA_PITCH | float | カメラの回転角度 | -45~80 | 0.0 |
CAMERA_POSITION | vector | カメラの位置 | n/a | n/a |
CAMERA_POSITION_LAG | float | カメラの移動に対する遅延 | 0~3 | 0.1 |
CAMERA_POSITION_LOCKED | integer | TRUE … カメラ位置をロックする FALSE … カメラ位置のロックを解除する | TRUE/FALSE | FALSE |
CAMERA_POSITION_THRESHOLD | float | 目標の動きで影響を受けないカメラ位置の半径 | 0~4 | 1.0 |
▲上へ ■LSL Portal ■LSL Portal (日本語)
llClearCameraParams()
カメラを初期設定に戻します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
llReleaseCamera(key agent)
agent | UUID |
カメラ制御を終了します。
▲上へ ■LSL Portal ■LSL Portal (日本語)