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

気ままな一言

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

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

  
Posted by at

2007年07月01日

リスト 【LSL】

llGetListEntryTypeリストの指定要素の型を取得する。
llGetListLengthリストの要素数を取得する。
llListInsertListリストの指定位置へ別のリストを挿入する。
llDeleteSubListリストから指定範囲の要素を削除する。
llListReplaceListリストの一部を置換する。
llListFindListリストから指定要素の位置を返す。
llList2Integerリストから integer型の要素を取り出す。
llList2Floatリストから float型の要素を取り出す。
llList2Keyリストから key型の要素を取り出す。
llList2Stringリストから string型の要素を取り出す。
llList2Rotリストから rotation型の要素を取り出す。
llList2Vectorリストから vector型の要素を取り出す。
llCSV2ListCSV文字列をリストに変換する。
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)
srcCSV形式(カンマ区切り)文字列

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~)
ascendingTRUE … 昇順
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 (日本語)   

Posted by れむ at 02:49LSLリファレンス

2007年07月01日

移動/回転/物理 【LSL】

llTarget到達目標地点を設定する。
llTargetRemove到達目標地点を解除する。
llMoveToTarget目標地点へ移動する。
llStopMoveToTarget移動目標地点を取り消す。
llEdgeOfWorld移動先が現在のSIM内か調べる。

llRotTarget回転目標値を設定する。
llRotTargetRemove回転目標値を取り消す。
llTargetOmega回転させる。(クライアント上)
llGetOmega回転速度を取得する。

llRotLookAtX軸を指定方向へ回転する。
llLookAtZ軸を指定方向にする。
llStopLookAtllLookAt、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()

llLookAtllStopLookAtによる動作を停止します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
llSetForce(vector force, integer local)
force加える力
localTRUE … 自身の回転軸を使用する
FALSE … リージョンの回転軸を使用する

物理オブジェクトに永続的な力を加えます。

▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llGetForce()

永続的な力の方向と強さを取得します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
llSetTorque(vector torque, integer local)
torque加える回転力
localTRUE … 自身の回転軸を使用する
FALSE … リージョンの回転軸を使用する

物理オブジェクトに永続的な回転力を与えます。

▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llGetTorque()

回転力を取得します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
llSetForceAndTorque(vector force, vector torque, integer local)
force加える力
torque加える回転力
localTRUE … 自身の回転軸を使用する
FALSE … リージョンの回転軸を使用する

物理オブジェクトに力と回転力を加えます。

▲上へ ■LSL Portal ■LSL Portal (日本語)
llApplyImpulse(vector force, integer local)
force加える力
localTRUE … 自身の回転軸を使用する
FALSE … リージョンの回転軸を使用する

物理オブジェクトに瞬間的な力を加えます。

▲上へ ■LSL Portal ■LSL Portal (日本語)
llApplyRotationalImpulse(vector force, integer local)
torque加える回転力
localTRUE … 自身の回転軸を使用する
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地面から距離
waterTRUE … 水中で浮上する
FALSE … 水中では浮上しない
tau到達までにかかる時間(秒)

高度を制限します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
llPushObject(key target, vector impulse, vector ang_impulse, integer local)
target対象のUUID
impulse力を加える方向
ang_impulse回転を加える方向
localTRUE … 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地面からの距離
waterTRUE … 水中で浮上する
FALSE … 水中では浮上しない
tau到達までにかかる時間(秒)

物理オブジェクトをheightより上に移動させます。
この関数で地面より64メートル以上浮かぶことはできません。

▲上へ ■LSL Portal ■LSL Portal (日本語)
llStopHover()

llSetHoverHeightで設定した浮揚状態を解除します。

▲上へ ■LSL Portal ■LSL Portal (日本語)   

Posted by れむ at 02:30LSLリファレンス

2007年07月01日

カメラ 【LSL】

llGetCameraPosカメラの位置を取得する。(絶対座標)
llGetCameraRotカメラの角度を取得する。
llSetCameraAtOffsetカメラの焦点座標を設定する。(オブジェクトからの相対座標)
llSetCameraEyeOffsetカメラの位置を設定する。(オブジェクトからの相対座標)
llForceMouselookマウスルックモードを設定する。
llSetCameraParamsカメラのパラメータを設定する。
llClearCameraParamsカメラを初期設定に戻す。
llReleaseCameraカメラ制御を終了する。


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)
mouselookTRUE … マウスルックモードON
FALSE … マウスルックモードOFF

マウスルックモードを設定します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
llSetCameraParams(list rules)

カメラのパラメータを設定します。
この操作を行うにはパーミッションを取得する必要があります。

rules
rules詳細値の範囲デフォルト値
CAMERA_ACTIVEintegerTRUE … カメラを稼動する
FALSE … カメラを停止する
TRUE/FALSEFALSE
CAMERA_BEHINDNESS_ANGLEfloatアバターの回転によって抑制されない角度0~18010.0
CAMERA_BEHINDNESS_LAGfloatアバターの裏へ到達するまでの遅延0~30.0
CAMERA_DISTANCEfloatカメラまでの距離0.5~103.0
CAMERA_FOCUSvectorカメラ焦点(目標位置)の絶対座標n/an/a
CAMERA_FOCUS_LAGfloatカメラフォーカスの反応に対する遅延0~30.1
CAMERA_FOCUS_LOCKEDintegerTRUE … フォーカスをロックする
FALSE … フォーカスのロックを解除する
TRUE/FALSEFALSE
CAMERA_FOCUS_OFFSETvectorカメラ焦点位置(相対座標)<-10,-10,-10>
~<10,10,10>
<0.0,0.0,0.0>
CAMERA_FOCUS_THRESHOLDfloat目標の動きで焦点が影響を受けない目標からの半径0~41.0
CAMERA_PITCHfloatカメラの回転角度-45~800.0
CAMERA_POSITIONvectorカメラの位置n/an/a
CAMERA_POSITION_LAGfloatカメラの移動に対する遅延0~30.1
CAMERA_POSITION_LOCKEDintegerTRUE … カメラ位置をロックする
FALSE … カメラ位置のロックを解除する
TRUE/FALSEFALSE
CAMERA_POSITION_THRESHOLDfloat目標の動きで影響を受けないカメラ位置の半径0~41.0

▲上へ ■LSL Portal ■LSL Portal (日本語)
llClearCameraParams()

カメラを初期設定に戻します。

▲上へ ■LSL Portal ■LSL Portal (日本語)
llReleaseCamera(key agent)
agentUUID

カメラ制御を終了します。

▲上へ ■LSL Portal ■LSL Portal (日本語)  

Posted by れむ at 02:28LSLリファレンス