BlackSheep-LSL@Wiki内検索 / 「llRotTarget」で検索した結果

検索 :
  • llAvatarOnSitTarget
    llAvatarOnSitTarget key llAvatarOnSitTarget() オブジェクトの上に座っているアバターのUUIDを返す。 誰も座っていない場合はNULL_KEYを返す。 ただし、この関数はllSitTarget?関数を使ってsit位置を設定しているオブジェクトでしか機能しない。 この関数はしばしば「アバターがsitしたとき」のイベントを擬似的に実装する際に使われる。 default { state_entry() { llSitTarget( 0.0, 0.0, 0.1 , ZERO_ROTATION); } changed(integer change) { // something changed if (change CHANGED_LINK) { llSleep(0.5); ...
  • llRot2Up
    llRot2Up vector llRot2Up(rotation q) あるオブジェクトの回転がqである時、オブジェクトの上方向(ローカルZ軸)の向きを得る。 戻り値のvectorは長さが1の単位ベクトルである。 例えば、アタッチメントにおいて、アバターの上方向がどちらなのかを判断するのに使える。 default { touch_start(integer detected){ vector axis = llRot2Up(llGetRot()); llOwnerSay("Avatar s Z-axis direction is " + (string)axis); } } 同様に、正面方向(ローカルX軸)の向きを得るにはllRot2Fwd関数、 左方向(ローカルY軸)の向きを得るにはllRot2Left関数を使...
  • 物理3D系
    ... damping) llRotTarget 関数 オブジェクトを回転目標値を設定する integer llRotTarget(rotation rot, float error) llRotTargetRemove 関数 オブジェクトの回転目標値をキャンセルする llRotTargetRemove(integer number) llSetLocalRot 関数 ローカルな回転角度を設定する llSetLocalRot(rotation rot) llSetRot 関数 オブジェクトを回転させる[参考]初級lsl-5 llSetRot(rotation rot) llSetTorque 関数 物理オブジェクトに永続的な回転力を与える llSetTorque(vector torque, integer local) llStopLookAt 関数 オブジェクトのLookAt制...
  • llRot2Fwd
    llRot2Fwd vector llRot2Fwd(rotation q) あるオブジェクトの回転がqである時、オブジェクトの正面(ローカルX軸)の向きを得る。 戻り値のvectorは長さが1の単位ベクトルである。 例えば、アタッチメントにおいて、アバターの正面がどちらなのかを判断するのに使える。 default { touch_start(integer detected){ vector axis = llRot2Fwd(llGetRot()); llOwnerSay("Avatar s X-axis direction is " + (string)axis); } } 同様に、左方向(ローカルY軸)の向きを得るにはllRot2Left関数、 上方向(ローカルZ軸)の向きを得るにはllRot2Up関数を使う...
  • llRot2Left
    llRot2Left vector llRot2Left(rotation q) あるオブジェクトの回転がqである時、オブジェクトの左方向(ローカルY軸)の向きを得る。 戻り値のvectorは長さが1の単位ベクトルである。 例えば、アタッチメントにおいて、アバターの左側面がどちらを向いているのかを判断するのに使える。 default { touch_start(integer detected){ vector axis = llRot2Left(llGetRot()); llOwnerSay("Avatar s Y-axis direction is " + (string)axis); } } 同様に、正面方向(ローカルX軸)の向きを得るにはllRot2Fwd関数、 上方向(ローカルZ軸)の向きを得るにはllR...
  • llRotateTexture
    llRotateTexture llRotateTexture(float angle, integer side) 引数sideで指定した面のテクスチャの回転をangleにする。 引数angleの単位はラジアンなので注意すること。 弧度法で指定したい場合は、 llRotateTexture(90 * DEG_TO_RAD, ALL_SIDES); のようにDEG_TO_RAD定数を使えばよい。 面の指定方法はllGetColor関数の説明を参照。 primの形状によって面番号は異なる。 なお、リンクされたオブジェクトにおいて、スクリプトが入っているprim以外のprimのテクスチャを回転させるには、llSetLinkPrimitiveParams?関数を使う。 ...
  • llMoveToTarget
    llMoveToTarget llMoveToTarget(vector target, float tau) 物理オブジェクトを位置targetまでtau秒間で移動させる。 tauを調整することで移動速度をコントロールすることが可能であるが、速度は均一にはならない。 llStopMoveToTarget?関数によって移動をキャンセルすることができる。 また、目標値点targetに到達したかどうかはat_target?イベント及びnot_at_target?イベントで判別可能。 この関数は物理オブジェクトのエネルギーを消費するため、必ずしも常に動かし続けられるわけではない。 エネルギーについてはllGetEnergy関数を参照。 名前 ...
  • llRotBetween
    llRotBetween rotation llRotBetween(vector a, vector b); vector aをvector bと同じ向きまで回転させるのに必要なrotation値を得る。 つまり以下の計算結果はvector bと同一方向のvector値となる。 vector v1 = a * llRotBetween(vector a, vector b); 逆に、vector bを逆回転させるとvector aと同一方向のvectorとなる。 vector v2 = b / llRotBetween(vector a, vector b); 名前 ...
  • リファレンス(名前順)
    ... damping) llRotTarget? オブジェクトを回転目標値を設定する integer llRotTarget(rotation rot, float error) llRotTargetRemove? オブジェクトの回転目標値をキャンセルする llRotTargetRemove(integer number) llRound 四捨五入する integer llRound(float val) S llSameGroup 指定したものがオブジェクトのグループと同じかどうか判定する integer llSameGroup(key id) llSay 半径20mの範囲にチャットメッセージを送信する(参考) llSay(integer channel, string text) llScaleTexture テクスチャのスケール(拡大・縮小)を設定する llScale...
  • リファレンス(機能別)
    ... damping) llRotTarget? オブジェクトを回転目標値を設定する integer llRotTarget(rotation rot, float error) llRotTargetRemove? オブジェクトの回転目標値をキャンセルする llRotTargetRemove(integer number) llSetLocalRot? ローカルな回転角度を設定する llSetLocalRot(rotation rot) llSetRot? オブジェクトを回転させる(参考) llSetRot(rotation rot) llSetTorque? 物理オブジェクトに永続的な回転力を与える llSetTorque(vector torque, integer local) llStopLookAt? オブジェクトのLookAt制御を停止する llStopLookA...
  • llRot2Euler
    llRot2Euler vector llRot2Euler(rotation rot) 引数rotをオイラー表現に変換したvector値を返す。 戻り値のvectorの回転角度の単位はラジアンになっているので、馴染みの弧度法に直すには、 llRot2Euler(rot) * RAD_TO_DEG のようにする。 逆にオイラー表現のvector値をrotatin型に変換するにはllEuler2Rot関数を使う。 名前 コメント
  • llGetLocalRot
    llGetLocalRot rotation llGetLocalRot() 子primに関してルートprimからの相対的な回転値を得る。 つまり戻り値はルートprimに対してどのくらい回転しているかを示すrotation値である。 例えばルートprimが回転ゼロのとき、90度回転してリンクされた子primでは、llGetLocalPos関数は常に90度の回転値を返す。 オブジェクト全体がどう回転しようともこの戻り値は変わらない。 であるが、この関数がルートprimや単一primにおいて使用された場合、例外的にワールド座標におけるオブジェクトの回転値を返す。 アタッチメントにおいても使用することができるが、アタッチメントのルートprim内でこの関数を使った場合、戻り値はアタッチメントポイントに対する相対的な回転値である。 この辺り動作が複雑なので注意...
  • llGetTextureRot
    llGetTextureRot float llGetTextureRot(integer side) 引数sideで指定した面のテクスチャ回転値(ラジアン)を返す。 逆にテクスチャの回転を設定するにはllRotateTexture関数を使用する。 名前 コメント
  • llResetTime
    llResetTime llResetTime() スクリプトの稼働時間(秒数)をゼロにする。 スクリプトの稼働時間を取得するにはllGetTime関数を使う。 取得と同時に稼働時間をゼロにするにはllGetAndResetTime関数を使う。 これが何に使えるかと言うと、要はスクリプト内で使えるストップウォッチだと思えばよい。 スクリプト内のタイマーと言うとtimer?イベントが筆頭に上がるが、timer?イベントは一定時間ごとにアラームを発する目覚まし時計のようなものなので、細かい時間の計測には向かない。 例えば以下のコードはrotationの掛け算を30回行うのに要した秒数を計測する。 default{ touch_start( integer total_number ){ integer i; rotation r1 ...
  • llGetRot
    llGetRot rotation llGetRot() primの回転値を返す。 アタッチメントで使用された場合はアバターの回転を返す。 アタッチ位置に対する相対的な回転を得たい場合はllGetLocalRotを使用する。 llGetRootRotationも参照。 回転を扱う際の考え方や注意点については回転について?へ。 名前 コメント
  • llRound
    llRound integer llRound(float val) 四捨五入した結果を整数で返す。 llRound(1.5) → 2 llRound(0.1) → 0 llRound(4.02) → 4 llFloor(2.82) → 3 基準桁は1の位だが、例えば以下のようにして10の位の四捨五入も実現できる。 integer round10(float val) { return llRount(val / 10) * 10; } なお小数以下を切り捨てるにはllFloor、切り上げるにはllCeilを使えば良い。 名前 ...
  • llGetRootRotation
    llGetRootRotation rotation llGetRootRotation() ルートprimの回転値を返す。 llGetRot、llGetLocalRotも参照。 名前 コメント
  • llGetCameraPos
    llGetCameraPos vector llGetCameraPos() カメラの位置を取得する。 この関数を実行するにはPERMISSION_TRACK_CAMERAの取得が必要。 llGetCameraRot関数と組み合わせて使うことで、アバターがどこを見ているかを調べることができる。 以下の例はカメラ位置と注目点を表示するアタッチメントである。 llSetCameraAtOffset関数やllSetCameraEyeOffset関数に指定する値を調べるのに有用。 key avatar=NULL_KEY; vector pos; vector look; get_permission(){ key permkey = llGetPermissionsKey(); if (permkey != avatar || avatar == NUL...
  • llRemoteLoadScriptPin
    llRemoteLoadScriptPin llRemoteLoadScriptPin(key target, string name, integer pin, integer running, integer start_param) 引数targetで指定されるUUIDのオブジェクトに対し、引数nameのスクリプトをリモートロードする。 リモートロードは引数pinで識別され、引数runningにはリモートロード後のスクリプトの有効/無効状態を指定する。 また、引数start_paramの値はリモートロード後のスクリプトからllGetStartParameter関数で取得できる。 引数targetで指定されるUUIDのオブジェクトは、リモートロード元のオブジェクトと同一SIM上になければならない。 引数pinはリモートロードのセキュリティ確保のために用意さ...
  • llGetEnergy
    llGetEnergy float llGetEnergy() オブジェクトの残エネルギーを得る。 戻り値は0.0~1.0の範囲であり、残エネルギーの割合を示す。 0.0はエネルギーが完全に無いことを意味し、1.0は満タンである。 SLにおけるエネルギーとは、物理オブジェクトが持つ運動エネルギーのことで、以下の物理系関数を使ってオブジェクトを動かすと消費される。 llMoveToTarget llApplyImpulse llSetPos? llSetForce? llSetTorque? llApplyRotationalImpulse llPushObject エネルギーが減るとともに上記の関数は効果が弱くなっていき、ゼロになれば効果は無くなる。 つまり物理系関数を使ってオブジェクトを永久的に動かすことは不可能な仕様になっている。 しかしながら...
  • llGetPermissions
    llGetPermissions integer llGetPermissions() 現在取得しているパーミッションを得る。 戻り値はビットフィールドになっているので以下の定数を使って&演算を行い、必要なパーミッションが取得されているかどうかをチェックする。 定数名 説明 対応する関数 PERMISSION_DEBIT L$の支払い権限 llGiveMoney PERMISSION_TAKE_CONTROLS キー操作取得の権限 llTakeControls?、llReleaseControls PERMISSION_TRIGGER_ANIMATION アニメーション実行権限 llStartAnimation?、llStopAnimation? PERMISSION_ATTACH アタッチ制御権限 llAttachToAvatar、llDetachFromAv...
  • llRequestPermissions
    llRequestPermissions llRequestPermissions(key agent, integer perm) 引数agentで指定したUUIDのアバターに対して、引数permで指定したパーミッションの取得要求を出す。 パーミッション要求が出されると、アバターのクライアント上にパーミッションダイアログが表示され、許可もしくは不許可の回答を求められる。 アバターが回答するとrun_time_permissions?イベントが発生し、パーミッションが取得できたのか、それともできなかったかの判定を行うことができる。 引数permに指定可能な定数は以下の通り。 定数名 値 説明 使用可能になる関数 PERMISSION_DEBIT 2 スクリプトオーナーの所持金からの支払許可 llGiveMoney PERMISSION_TAKE_CONTROL...
  • llGetAndResetTime
    llGetAndResetTime float llGetAndResetTime() スクリプトの稼働秒数を取得し、かつ稼働秒数をリセット(ゼロに戻す)する。 稼動秒数を取得するだけの場合はllGetTimeを使う。 稼動秒数のリセットだけを行う場合はllResetTimeを使う。 以下の二つはほぼ同じ処理である。 default { touch_start(integer detected){ llSay(0, (string)llGetAndResetTime() + "seconds have passed."); } } default { touch_start(integer detected){ llSay(0, (string)llGetTime() + "seconds hav...
  • llGetStartParameter
    llGetStartParameter integer llGetStartParameter() スクリプトのスタートパラメータを返す。 スタートパラメータとはllRezObject関数やllRemoteLoadScriptPin関数で指定された整数値のことである。 on_rez?イベントに渡される引数と同値。 通常の方法で(単純に保存した、インベントリからオブジェクトにドロップした等)スクリプトが開始されたときにはスタートパラメータはゼロである。 また、llRezObject関数などでスタートパラメータが指定されていた場合でも、スクリプトがリセットされるとスタートパラメータはゼロに戻る。 名前 ...
  • llAttachToAvatar
    llAttachToAvatar llAttachToAvatar(integer attachment) オブジェクトを指定した位置にアタッチさせる。 オブジェクトはワールド内にrezされていなければならず、かつスクリプトからパーミッションPERMISSION_ATTACHを取得する必要がある。 また、オブジェクトのオーナーでなければアタッチはできない。 従って、オーナー以外のユーザーに対してPERMISSION_ATTACHを取得しても無意味である。 アタッチしようとした箇所にすでに別のアタッチメントが付いていた場合、もとのアタッチメントは自動的にデタッチされ、この関数を実行したオブジェクトが新たにアタッチされる。 初めてアタッチされた場合、オブジェクトはアタッチ箇所の0,0,0の位置に付くが、位置調整を行っておけば、二度目以降は調整した位置に付く。 以上、...
  • llGetAnimation
    llGetAnimation string llGetAnimation(key id) アバターが現在実行中のアニメーション状態名を返す。 アニメーション状態名とは、歩く、座る、飛ぶなどのアバターの基本動作を指す。 セカンドライフではアニメーション状態に応じて基本アニメーションが自動的に実行される。 例えば状態が「Walking」であれば「walk」アニメーションが実行される。 この関数の戻り値は以下のいずれかである。 戻り値 説明 基本アニメーション Crouching しゃがむ crouch Hovering 浮遊 hover Hovering Down 下降 hover_down Hovering Up 上昇 hover_up Jumping ジャンプ jump PreJumping ジャンプ前の動作 prejump Running 走る run S...
  • llRezAtRoot
    llRezAtRoot llRezAtRoot(string inventory, vector pos, vector vel, rotation rot, integer param) 引数inventoryに指定したオブジェクトをrezする。 引数posで指定する位置が、オブジェクトのルートプリムのグローバル座標を意味する以外はllRezObject関数と同じ。 詳細はllRezObject関数を参照。 名前 コメント
  • 制御系
    制御系 パーミッション 関数・イベント名 区分 概要 定義 run_time_permissions イベント パーミッション要求に返答があったとき[参考]初級lsl-11 run_time_permissions(integer perm) llGetPermissions 関数 スクリプトのパーミッション情報を知る integer llGetPermissions() llGetPermissionsKey 関数 スクリプトの保持しているパーミッション対象者のUUIDを得る[参考]初級lsl-13 key llGetPermissionsKey() llRequestPermissions 関数 パーミッションを要求する[参考]初級lsl-11 llRequestPermissions(key agent, integer perm) コントロール 関数・イベント名 区...
  • ポーズボール
    はじめに 座ったときのイベントchangedイベント llAvatarOnSitTarget関数 ポーズボールスクリプト ボールの透明化llSetAlpha関数 今回のポイント はじめに 引き続いてアニメーションのスクリプトです。 前回は単にタッチするとアニメーションするだけのスクリプトでしたが、これではいまひとつ実用性がありません。 アニメーションが最もよく利用されているのはポーズボールでしょう。 SLで遊んだ人なら誰もが一度は見たことがあると思います。 しばしば木陰とかベッドの上に置いてある、赤と青のボール。 あれですw クラブのフロアや、バーのストゥールなんかにも置いてあるところがあります。 これらのボールは、アバターが座ったときに特定のアニメーションを実行するものです。 座ったときのイベント スクリプトの構成はすぐに予想がつくかと思いま...
  • llRezObject
    llRezObject llRezObject(string inventory, vector pos, vector vel, rotation rot, integer param) 引数inventoryで指定した名前のオブジェクトをrezする。 オブジェクトはコンテンツ内になければならない。 コンテンツ内に無いオブジェクトをrezしようとすると、 Couldn t find object XXXX というエラーが発生する。 また、rez不可能なアイテム(テクスチャとかサウンドなど)を指定すると、 Unable to create requested object. Object is missing from database. と叱られるんだそうだ(未確認)。 rezする位置は引数posで指定するが、posはワールド座標なので注意すること...
  • テレポート
    テレポートハック 移動型テレポーター テレポートハック 初心者さん向けのスクリプト解説記事を書いたところ、 「んなことはわかってる!もっと役に立つことを書かんかい!」 というお叱りを受けたので(笑)、ある程度スクリプトのことはわかっている人向けに、スクリプトの小技を紹介するカテゴリを設けました。 まずは有名どころから。 「テレポートハック」と呼ばれるスクリプトです。 最初にスクリプトコードを載せておきます。 01 vector offset = 0.0, 0.0, 10.0 ; // テレポート位置 02 rotation rot = ZERO_ROTATION; 03 04 default { 05 state_entry(){ 06 llSitTarget(offset, rot); 07 } 08 ...
  • llEuler2Rot
    llEuler2Rot rotation llEuler2Rot(vector vec) Euler形式の回転値をクォータニオン形式に変換する。 Eulerはオイラーと読む。 偉い人の名前である。 オイラー形式の回転値とは、X,Y,Zの回転角度をラジアンで指定したもののことで、LSLではvector型の変数で扱う。 クォータニオン形式の回転値とはLSLのrotation型のデータのことである。 回転を扱う際にクォータニオンが便利である理由について詳細には説明しないが、LSLにおいては回転は全てクォータニオンで扱われる。 しかしながら、一般的に回転値を指定するときにはクォータニオン形式はわかりにくく、オイラー形式のほうが比較的イメージしやすい。 そのため、我々人類が回転値をコーディングするときにはオイラー形式を使用し、LSLの回転関数を使うときにはこのll...
  • リファレンス(イベント)
    イベント at_rot_target? オブジェクトの回転が目標値に達したとき at_rot_target(integer tnum, rotation targetrot, rotation ourrot) at_target? オブジェクトが到達目標地点に達したとき at_target(integer tnum, vector targetpos, vector ourpos) attach? アタッチ/デタッチされたとき(参考) attach(key id) changed? オブジェクトの状態が変化(link等)したとき(参考) changed(integer change) collision? 衝突が起こっているとき(参考) collision(integer num_detected) collision_end? 衝突が終了したとき(参考) collision...
  • llGetCameraRot
    llGetCameraRot rotation llGetCameraRot() カメラの角度を取得する。 この関数を実行するにはPERMISSION_TRACK_CAMERAの取得が必要。 llGetCameraPos関数と組み合わせて使うことで、アバターがどこを見ているかを調べることができる。 サンプルはllGetCameraPos関数の説明を参照。 名前 コメント
  • llGetAttached
    llGetAttached integer llGetAttached() オブジェクトがアタッチされている位置を返す。 アタッチされていない場合の戻り値はゼロ。 アタッチ位置を示す戻り値は以下の通り。 定数名 値 説明 なし 0 アタッチされていない ATTACH_CHEST 1 胸 ATTACH_HEAD 2 頭 ATTACH_LSHOULDER 3 左肩 ATTACH_RSHOULDER 4 右肩 ATTACH_LHAND 5 左手 ATTACH_RHAND 6 右手 ATTACH_LFOOT 7 左足 ATTACH_RFOOT 8 右足 ATTACH_BACK 9 背中 ATTACH_PELVIS 10 骨盤 ATTACH_MOUTH 11 口 ATTACH_CHIN 12 あご ATTACH_LEAR 13 左耳 ATTAC...
  • 鍵をかける
    はじめに 鍵をかけることの意味操作できる人を限定する方法 鍵をかける 強制排除スクリプト はじめに やもさんより質問いただいたスクリプトについて解説です。 [やもさんからの質問] 最近自分で服を作るようになり試着の為の更衣室を用意したのですが ドアに鍵をかけるか、自分にしか開けられないドアするにはどのようにしたら良いのでしょうか? これって結構ニーズのある話だと思います。 着替えの最中は裸になることも多く、やはり人に見られたくない場合がありますので・・・。 また、Kirさんからも関連のある質問をいただきました。 [Kirさんからの質問] なんとか、オーナー限定にて動作するように改良したいのですが、 if (llDetectedKey(0) == llGetOwner()){ handle=llListen(channel, "&qu...
  • イベント系
    イベント系 タッチ 関数・イベント名 区分 概要 定義 touch イベント タッチされているとき touch(integer num_detected) touch_end イベント タッチが終了したとき touch_end(integer num_detected) touch_start イベント タッチが開始されたとき touch_start(integer num_detected) llSetTouchText 関数 パイメニューの「Touch」を他の文字列に変更する llSetTouchText(string text) アタッチ 関数・イベント名 区分 概要 定義 attach イベント アタッチ/デタッチされたとき[参考]初級lsl-21 attach(key id) llAttachToAvatar 関数 オブジェクトをAttachさせる ...
  • 属性系
    属性系 面 関数・イベント名 区分 概要 定義 llGetNumberOfSides 関数 primの面数を得る integer llGetNumberOfSides() テクスチャ 関数・イベント名 区分 概要 定義 llGetTexture 関数 指定面のテクスチャーを得る string llGetTexture(integer side) llGetTextureOffset 関数 テクスチャーのオフセット値を得る vector llGetTextureOffset(integer side) llGetTextureRot 関数 テクスチャーの回転角度を得る float llGetTextureRot(integer side) llGetTextureScale 関数 テクスチャーのサイズを得る vector llGetTextureScale(integer side...
  • llGetTime
    llGetTime float llGetTime() スクリプトが最後にリセットされてからの秒数、もしくは前にllResetTime関数やllGetAndResetTime関数を実行したときからの秒数を返す。 要するにスクリプトの稼動秒数を取得するための関数であると考えれば良い。 時刻や日付を取得する関数ではないので注意。 名前 コメント
  • 椅子を作ろう
    build 座るための仕組み sitスクリプト build 今回は椅子を作ってみましょう。 第一回でも触れましたが、buildで椅子を作っただけでは、正しく座ることができません。 椅子はやっぱり座れたほうが心休まりますので、座れる椅子を作ることにします。 スクリプトで椅子を作り出すことも不可能ではありませんが、いきなりでは難しいので、buildツールを使って椅子の形を作ってください。 椅子の形についてはどんなものでもかまいません。 ソファであろうが、スツールであろうが、buildの練習のために好みの形の椅子を自作してみるのが良いかもしれません。 「スクリプトだけ勉強したいんだ!」 という方は、とりあえず円柱なり立方体なりで間に合わせてもOKです。 もちろん、以前に椅子を作ったことがあって、 「ちゃんと座れるようにしたいのになぁ・・・」 という方は、ぜひそ...
  • データ系
    データ系 数学 関数・イベント名 区分 概要 定義 llAbs 関数 integer型の絶対値を得る integer llAbs(integer val) llAcos 関数 アークコサインを得る float llAcos(float val) llAsin 関数 アークサインを得る float llAsin(float val) llAtan2 関数 アークタンジェントを得る float llAtan2(float y, float x) llCeil 関数 少数以下を切り上げる integer llCeil(float val) llCos 関数 コサインを得る float llCos(float theta) llFabs 関数 float型の絶対値を得る float llFabs(float num) llFloor 関数 小数部を切り捨てる integer llFloor(f...
  • llGetPermissionsKey
    llGetPermissionsKey key llGetPermissionsKey() 現在取得しているパーミッションの対象者UUIDを返す。 戻り値は誰に対するパーミッションを取得しているかを示すUUIDである。 llGetPermissions関数を使用すると現在取得しているパーミッションを得ることができるが、例えばアニメーション実行権限を得ているからと言って、その権限が誰に対して有効なのかはわからない。 パーミッションは直前に呼び出されたllRequestPermissions関数で指定したアバターに対しての権限である。 例えばタッチしたときにアニメーションを実行するような仕組みを考えたとき、アニメーションのパーミッションが正しく取得されているかどうかを調べるには、タッチした人に対するパーミッションを保持しているかどうか以下のようにして判定する。 ...
  • llResetScript
    llResetScript llResetScript() スクリプトをリセットする。 リセットを行うと以下のようになる。 変数の値はクリアされ、初期値に戻る 未処理のイベントは全てクリアされて無かったことになる ステートはdefaultになり、state_entry?イベントが実行される。 スクリプトエディターの「リセット」ボタンを押すのと一緒。 よく見かけるのは以下のコード。 default { : (略) : on_rez(integer start_param){ llResetScript(); } : (略) : } 上記のコードはrezされたときに必ずスクリプトをリセットする。 変数やステートを保持しないタイプのスクリプトであればこれでOK。 ...
  • llGetAgentInfo
    llGetAgentInfo integer llGetAgentInfo(key id) エージェントの情報を入手する。 腕利きのエージェントを調査する場合は報復を覚悟したりしなくても良い。 ここで言うエージェントというのは要するにアバターのことである。 この関数で調べることができるのは、主にアバターの動作である。 戻り値はビットフィールドになっているので以下の定数と 演算を行って判定する。 定数 説明 実際の値 AGENT_FLYING 飛行中もしくは落下中 1 AGENT_ATTACHMENTS アタッチメントを装備している 2 AGENT_SCRIPTED スクリプト入りのアタッチメントを装備している 4 AGENT_MOUSELOOK マウスルック状態 8 AGENT_SITTING 地面もしくはオブジェクトの上に座っている 1...
  • アバター/オブジェクト系
    アバター/オブジェクト系 アバター 関数・イベント名 区分 概要 定義 llGetAgentInfo 関数 指定アバターの状態を得る(飛行・AWAYなどの動作及びアタッチメントの有無等) integer llGetAgentInfo(key id) llGetAgentSize 関数 指定アバターのサイズを得る vector llGetAgentSize(key id) llPointAt 関数 現在動作せず llPointAt(vector pos) llRequestAgentData 関数 アバターデータの取得を要求する key llRequestAgentData(key id, integer data) llStopPointAt 関数 現在動作せず llStopPointAt() グループ 関数・イベント名 区分 概要 定義 llDetectedGroup 関数...
  • llRequestAgentData
    llRequestAgentData key llRequestAgentData(key id, integer data) 引数idに指定したUUIDを持つアバターの情報の取得要求を出す。 取得したい情報は引数dataで指定する。 アバターの情報はdataserver?イベントで通知されるが、データを識別するために戻り値のkeyを使用する。 使用例: key qid; // 識別用キー変数 default { state_entry(){ qid = llRequestAgentData(llGetOwner(), DATA_BORN); // オーナーの生年月日を要求、要求IDをqidに保持 } dataserver(key queryid, string data){ if (qid == queryid){ // 要求...
  • llRequestSimulatorData
    llRequestSimulatorData key llRequestSimulatorData(string simulator, integer data) 引数simulatorに指定した名前のSIMの情報の取得要求を出す。 SIM名は大文字・小文字を区別せずに指定可能だが、似たような名前のSIMが他にあると、間違ったSIMの情報を返してくることがあるらしい。なので正確に指定するべきである。 情報が取得できるとdataserver?イベントが発生する。 その際、llRequestSimulatorData関数の戻り値が識別キーとして通知されるので、戻り値は忘れないよう控えておくこと。 要求する情報は引数dataで指定する。 dataには以下の値を指定できる。 定数名 値 説明 DATA_SIM_POS 5 SIMのグローバル座標をvector...
  • llGetAnimationList
    llGetAnimationList list llGetAnimationList(key id) 実行中のアニメーションのUUIDリストを返す。 アニメーションは複数同時に実行することが可能であるが、この関数を使うとアバターが現在実行している全てのアニメーションのUUIDを得ることができる。 以下の例はタッチしたアバターが実行中の全アニメーションを停止する。 踊りすぎて止まらなくなったあなたに。 default { touch_start(integer num_detected) { llRequestPermissions(llDetectedKey(0), PERMISSION_TRIGGER_ANIMATION); } run_time_permissions(integer perm) { if(perm PER...
  • 回転について
    はじめに 回転を扱うプログラミングは、初めての人には少々敷居の高いものです。 何故なら回転は3Dグラフィックの知識がないと理解しにくく、例えばπ(パイ)とか三角関数のように、学校の数学で習うようなものではないからです。 まったく予備知識がない状態で回転の処理に取り組むのは、非常に難解なパズルに挑むのに似ています。 そう、例えばルービックキューブを独力で解ける人なら、回転プログラムも簡単に理解できるかもしれません(^^; ある程度LSLを使いこなしている人であっても、 「回転だけは・・・」 苦手意識を持っている人も少なくないくらいです。 私が受ける質問の中でも、回転関連のものはかなり多いです。 そんなわけで、ハッキリ言って回転は難しいです(^^; にもかかわらず回転を使わないといけない場面というのは非常に多いのです。 例えば単純なドアを作るのにも、回転は出てきま...
  • llDetectedRot
    llDetectedRot rotation llDetectedRot(integer number) 検知されたアバター/オブジェクトの回転値を取得する。 llDetectedRotはデテクト系の関数の一つである。 デテクト系関数についてはllDetectedKeyの説明もしくは初級スクリプト第二十回「センサーを使おう」のセンサーイベントについての説明を参照のこと。 以下の例は衝突したアバター/オブジェクトの回転値を表示する。 default { collision_start(integer num_detected) { llSay(0, "Detected rotation is " + (string)llDetectedRot(0)); } } llDetectedRot関数で返されるアバターの回転...
  • @wiki全体から「llRotTarget」で調べる

更新順にページ一覧表示 | 作成順にページ一覧表示 | ページ名順にページ一覧表示 | wiki内検索

記事メニュー
目安箱バナー