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

検索 :
  • llSensor
    llSensor llSensor(string name, key id, integer type, float range, float arc) 引数に指定した条件でセンサーを一度だけ実行する。 引数nameには探知対象の名前を指定する。 例えば「Miz」というアバターやオブジェクトを探したいときは、ここに"Miz"を指定。 探知対象の名前がわからない場合、または複数の異なる探知対象の名前がある場合は空文字""を指定する。 引数idは探知対象のUUID。 NULL_KEYを指定すると、全てのUUIDが探知対象になる。 引数typeは探知対象のタイプ。 どんなタイプのものを探すのかを指定する。 指定できるのは以下の4タイプ。定数を使って指定できる。 定数名 値 説明 AGENT 1 アバ...
  • llSensorRepeat
    llSensorRepeat llSensorRepeat(string name, key id, integer type, float range, float arc, float rate) 一定間隔で繰り返し探知を実行するセンサーを起動する。 探知を行う間隔(秒数)を引数rateで指定する他はllSensor関数と同様である。 引数の詳細はllSensor関数を参照。 センサーを停止するにはllSensorRemove関数を使用する。 名前 コメント
  • llSensorRemove
    llSensorRemove llSensorRemove() 稼動中のセンサーを停止する。 llSensorRepeat関数で継続作動しているセンサーを止めるときに使う。 名前 コメント
  • センサーを使おう
    ...サーイベント 説明 sensor 何か見つかったときのイベント no_sensor 何も見つからなかったときのイベント sensor.jpg センサー関数 まずは探知を実行する関数から具体的に見てみましょう。 llSensor(string name, key id, integer type, float range, float arc) この関数は指定した条件での探知を一度だけ実行します。 探知条件を指定する引数について順番に説明します。 string name 探知対象の名前です。 例えば「Miz」というアバターやオブジェクトを探したいときは、ここに"Miz"を指定します。 大抵の場合、探知対象の名前が分かっていることは少なく、名前を指定することはあまりありません。 空文字""を指定すると、どん...
  • イベント系
    ... 概要 定義 no_sensor イベント センサーが何も探知しなかったとき[参考]初級lsl-20 no_sensor() sensor イベント センサーが探知したとき[参考]初級lsl-20 sensor(integer num_detected) llSensor 関数 センサーを起動する[参考]初級lsl-20 llSensor(string name, key id, integer type, float range, float arc) llSensorRemove 関数 センサーを停止する[参考]初級lsl-20 llSensorRemove() llSensorRepeat 関数 永続的なセンサーを起動する[参考]初級lsl-20 llSensorRepeat(string name, key id, integer type, float ran...
  • リファレンス(イベント)
    ...tart() no_sensor? センサーが何も探知しなかったとき(参考) no_sensor() not_at_rot_target? オブジェクトの回転が目標値に達していないとき not_at_rot_target() not_at_target? オブジェクトが到達目標地点に達していないとき not_at_target() object_rez!? 他のオブジェクトをrez!し終えたとき(参考)? object_rez!(key id) on_rez!? オブジェクトがrez!されたとき(参考)? on_rez!(integer start_param) remote_data? XML-RPC通信が発生したとき remote_data(integer event_type, key channel, key message_id, string sender,i...
  • llDetectedKey
    ...突系イベント [[sensor]]・・・センサーイベント というのも、デテクト系関数とは「そのイベントを起こしたアバター/オブジェクトの情報を得る」ための関数だからである。 タッチ系イベント内で使用すれば「タッチしたアバターの情報を得る」関数となり、 衝突系イベントであれば「衝突したアバター/オブジェクトの情報を得る」関数、 センサーイベント内で使えば「センサーで検知されたアバター/オブジェクトの情報を得る」関数となる。 デテクト系関数の引数には何番目に検知されたアバター/オブジェクトかを指定する。 多くの場合、引数は0(最初に検知されたアバター/オブジェクト)である。 どういうことかと言うと、上記の特定イベントは、「イベントを起こしたアバター/オブジェクトの数」を通知してくる。 タッチスタートイベントであれば、「タッチを開始したアバターの人数」が通知される...
  • モジュール化
    ...le 拡張モジュールsensor module phantom door module モジュール化の効果 モジュール化のデメリット はじめに LSLでは巨大なプログラムを作ることができません。 というのも一つのLSLのサイズは16KByteまでという制限があるためです。 この制限は、スクリプトコードの本体のサイズだけでなく、スクリプトが動作したときのメモリを含めたサイズです。 スクリプトを正しく書いていても、サイズが大きくなって16KByteの制限を越えてしまうと、 「Stack-Heap Collision」 などのエラーが発生し、スクリプトは動かなくなってしまいます。 今回はこの問題に対処するための、中級者向けのお話をしておきます。 スクリプトのサイズ メモリとかコードサイズと言われても何のことやら、という方もいらっしゃると思いますの...
  • llGetBoundingBox
    ... } sensor(integer num_detected) { list bb; vector min; vector max; vector offset; bb = llGetBoundingBox(llDetectedKey(0)); min = llList2Vector(bb, 0); max = llList2Vector(bb, 1); offset = (min + max) / 2; offset *= llDetectedRot(0); llSetText((string)min + "\n" + (string)max, 1, 1, 1 , 1.0); llSetScale(-min + max); llSe...
  • スクリプト小技
    ...le 拡張モジュールsensor module phantom door module モジュール化の効果 モジュール化のデメリット
  • llListSort
    llListSort list llListSort(list src, integer stride, integer ascending) リストsrcを並び替える。 引数ascendingがTRUEだった場合は降順、FALSEだった場合は昇順に並ぶ。 strideは「リストのグルーピング」を指定する引数である。 llList2ListStrided関数の説明を見ていただくと、ストライドのイメージが多少なりともわかるかと思う。 リスト型というのは通常、一列にデータが並んでいる構造であるが、ストライドを使うことで行列的に扱うことができる。 通常のリスト  [1,2,3,4,5,6,7,8,9....] ストライド(3つずつの場合)  [1,2,3,   4,5,6,   7,8,9   ....] 上記のように、ストライドに3を指定した場...
  • llCollisionSound
    llCollisionSound llCollisionSound(string impact_sound, float impact_volume) 衝突時の音を設定する。 引数impact_soundにはサウンド名またはUUIDを指定する。 サウンド名で指定する場合、オブジェクトのコンテンツ内にサウンドが入っていなければならない。 impact_volumeは音量である。0.0~1.0の間で指定する。 音量に0.0を指定した場合、何故か衝突時のパーティクルがデフォルトに戻るというバグがあるらしいが未確認。 衝突時のパーティクルを設定するにはllCollisionSpriteを使う。
  • リファレンス(名前順)
    A llAbs integer型の絶対値を得る integer llAbs(integer val) llAcos アークコサインを得る float llAcos(float val) llAddToLandBanList 土地からアバターをBANする llAddToLandBanList(key agent, float hours) llAddToLandPassList 土地の通行許可をアバターに与える llAddToLandPassList(key agent, float hours) llAdjustSoundVolume サウンドのボリュームを調整する llAdjustSoundVolume(float volume) llAllowInventoryDrop インベントリへのドロップを許可(あるいは非許可に)する llAllowInventoryDrop(inte...
  • リファレンス(機能別)
    関数 関数アバター/オブジェクト系アバター グループ オブジェクト UUID リンク イベント系タッチ アタッチ シット 衝突 センサー デテクト インターフェース系UI チャット 取引 制御系パーミッション コントロール カメラ REZ コンテンツ スクリプト 属性系面 テクスチャ 色 透明度 特殊効果系アニメーション 音 ビデオ パーティクル ビークル データ系数学 文字列 リスト 時間 データ 暗号化 土地系BAN 土地 天候 地面 物理3D系位置 回転 物理 外部機能系Email HTTP XML-RPC アバター/オブジェクト系 アバター llGetAgentInfo 指定アバターの状態を得る(飛行・AWAYなどの動作及びアタッチメントの有無等) integer llGetAgentInfo(key id) llGetAgentSize 指定アバターのサイズを得る v...
  • 特殊効果系
    特殊効果系 アニメーション 関数・イベント名 区分 概要 定義 llGetAnimation 関数 指定アバターが実行中の基本アニメーションを得る string llGetAnimation(key id) llGetAnimationList 関数 指定アバターが実行中の全アニメーションを得る[参考]初級lsl-13 list llGetAnimationList(key id) llStartAnimation 関数 アニメーションを開始する[参考]初級lsl-13 llStartAnimation(string anim) llStopAnimation 関数 アニメーションを停止する[参考]初級lsl-13 llStopAnimation(string anim) 音 関数・イベント名 区分 概要 定義 llAdjustSoundVolume 関数 サウンドのボリュー...
  • llGetPrimitiveParams
    llGetPrimitiveParams list llGetPrimitiveParams(list params) primの属性値を返す。 引数paramsには取得したい属性のリストを指定する。 戻り値は引数に指定した属性に応じたリスト型のデータとなる。 基本的に、buildツールを使って指定可能なprimの設定値は全てこの関数を使用して取得できる。 また、この関数の戻り値を使ってllSetPrimitiveParams?関数を実行すると、buildツールと同様にprimを編集することが可能である。 これはつまりbuildの自動化が実現できることを意味する。 鏡面コピースクリプトなどは、この関数を使ってコピー元のprimの属性値を取得し、必要なパラメータに鏡面変換をかけた後、llSetPrimitiveParams?関数でコピー後のprimを形成する。 ...
  • llCollisionSprite
    llCollisionSprite llCollisionSprite(string impact_sprite) 衝突時のパーティクルを設定する。 物理オブジェクトを地面に落としたときなど、何やら火花っぽいものが飛び散ったりするが、あれが衝突時のパーティクルである。 この関数を使うと、衝突したときにハートが飛び散る矢とか、なんか変なものを作ることができる。 引数impact_spriteにはパーティクルに使用するテクスチャ名またはUUIDを指定する。 テクスチャ名で指定する場合、オブジェクトのコンテンツ内にテクスチャが入っていなければならない。 impact_spriteに""(空文字)を指定した場合はデフォルトのパーティクルに戻る。 衝突時のサウンドを設定するにはllCollisionSoundを使う。
  • llSetColor
    llSetColor llSetColor(vector color, integer face) 引数faceで指定した面の色を引数colorで指定した色にする。 色の指定はvector型で行うが、値の範囲は 0.0, 0.0, 0.0 ~ 1.0, 1.0, 1.0 となる。 3つの要素のうち先頭からRed、Green、Blueの色要素の指定となっている。 Webページ等の色指定で一般的なRGB形式は0~255の範囲で色要素の強さを指定するが、LSLでは0.0~1.0の範囲なので注意すること。 0~255の色要素をLSL用に変換するには、255で割り算してやれば良い。 一般的なRGB形式の指定値との対比を参考までに掲載しておく。 0~255 16進数 LSL 0 0 0 64 40 0.25 128 80 0.5 192 C0 0.75 255 FF 1...
  • データ系
    データ系 数学 関数・イベント名 区分 概要 定義 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...
  • llGetInventoryPermMask
    llGetInventoryPermMask integer llGetInventoryPermMask(string item, integer mask) コンテンツ内にある指定したアイテム名の権限を調べる。 引数maskには調べたい権限の対象者を指定する。 定数 値 説明 MASK_BASE 0 基本(現在のオーナーの権限に等しい) MASK_OWNER 1 現在のオーナーの権限 MASK_GROUP 2 グループの権限 MASK_EVERYONE 3 その他の人々の権限 MASK_NEXT 4 次のオーナーの権限 戻り値はビットフィールドになっているので、以下の定数と&演算を行って権限をチェックする。 定数 値(16進数) 値(整数値) 説明 PERM_ALL 0x7FFFFFFF 2147483647 Move/Mod...
  • llGetInventoryType
    llGetInventoryType integer llGetInventoryType(string name) コンテンツ内にある指定した名前のアイテムのタイプを返す。 一般的に、引数nameで指定したアイテムがコンテンツ内に存在するかどうかをチェックするのに利用される。 戻り値は以下のいずれかとなる。 定数 値 説明 INVENTORY_NONE -1 アイテムは存在しない INVENTORY_ANIMATION 20 アニメーション INVENTORY_BODYPART 13 ボディパーツ INVENTORY_CLOTHING 5 服 INVENTORY_GESTURE 21 ジェスチャー INVENTORY_LANDMARK 3 ランドマーク INVENTORY_NOTECARD 7 ノートカード INVENTORY_OB...
  • llGetInventoryName
    llGetInventoryName string llGetInventoryName(integer type, integer number) コンテンツ内にある指定したtypeのnumber番目のアイテムの名前を返す。 numberはゼロから始まるアイテムの番号である。 指定したアイテムが存在しない場合は空文字""が返る。 アイテムのタイプには以下の値を使用する。 定数 値 説明 INVENTORY_ALL -1 全種類 INVENTORY_ANIMATION 20 アニメーション INVENTORY_BODYPART 13 ボディパーツ INVENTORY_CLOTHING 5 服 INVENTORY_GESTURE 21 ジェスチャー INVENTORY_LANDMARK 3 ランドマーク INVENTO...
  • llGetInventoryNumber
    llGetInventoryNumber integer llGetInventoryNumber(integer type) 指定したtypeのアイテムがコンテンツ内にいくつあるかを返す。 アイテムのタイプには以下の値を使用する。 定数 値 説明 INVENTORY_ALL -1 全種類 INVENTORY_ANIMATION 20 アニメーション INVENTORY_BODYPART 13 ボディパーツ INVENTORY_CLOTHING 5 服 INVENTORY_GESTURE 21 ジェスチャー INVENTORY_LANDMARK 3 ランドマーク INVENTORY_NOTECARD 7 ノートカード INVENTORY_OBJECT 6 オブジェクト INVENTORY_SCRIPT 10 スクリプト INVE...
  • ノートを使おう
    はじめに ノートカード読取の仕組みllGetNotecardLine関数 dataserverイベント 典型的なパターン ノートカード対応ベンダーllParseString2List関数 for文 今回の歩イント はじめに ベンダースクリプトの改良編です。 前回までで機能面は十分に満たすものを作りましたが、今回は使い勝手のよいものになるよう改造を施します。 改良点は商品データの管理の部分です。 前回までのスクリプトでは、商品データをリスト型変数に定義していましたが、この方法だと商品の追加や変更があったときにいちいちスクリプトを直さなければなりません。 そこで、商品データはSLのノートカードを使って管理するようにし、ノートカードを切り替えるだけで扱う商品を変えられるようなベンダーを考えます。 商品のデータに対して、そのデータを使ってアレコレ操作する仕組みを「ロ...
  • 外部機能系
    外部機能系 Email 関数・イベント名 区分 概要 定義 email イベント Eメールのデータを受信したとき[参考]Emailの送受信 email(string time, string address, string subj, string message, integer num_left) llEmail 関数 メール(email)を送る[参考]Emailの送受信 llEmail(string address, string subject, string message) llGetNextEmail 関数 次のメールを得る[参考]Emailの送受信 llGetNextEmail(string address, string subject) HTTP 関数・イベント名 区分 概要 定義 http_response イベント HTTPレスポンスを受信したと...
  • お金を扱う
    はじめに buyとpaymoneyイベント 金返せ!llSetPayPrice関数 llGiveMoney関数 パーミッションllRequestPermissions関数 run_time_permissionsイベント アイテムの存在確認llGetInventoryType関数 ベンダースクリプト 今回のポイント はじめに ベンダー作成の続きです。 簡単なようでいて、意外に面倒なのがベンダーです(^^; やはりお金を扱うスクリプトですから、間違いのないような仕組みにしておかなければいけません・・・。 前回はタッチして商品の画像を切り替えるスクリプトを作りました。 今回はお金を受け取って商品を渡す部分に取り組みます。 そこまで出来ればベンダーとしては最低限のものにはなるでしょう。 buyとpay buildツールをいじっていて、オブジェクトをクリックした...
  • 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); ...
  • llInsertString
    llInsertString string llInsertString(string dst, integer position, string src) 文字列dstのposition位置に別の文字列srcを挿入した結果を返す。 例えば、 llInsertString("Kagawa", 2, "na"); の結果は、 "Kanagawa" となる。 別に私は香川県にも神奈川県にも何ら屈託を抱いていないので念のため。 名前 コメント
  • 照明を作ろう
    はじめに build ライト効果の設定 初めての照明スクリプト 同じ処理をまとめよう 今回のポイント はじめに 椅子、ドアと作ってきたことで、だいぶスクリプトの構成については理解できてきたと思います。 今回はさらに練習として、照明を作ってみましょう。 ただの照明では面白くありませんので、カラフルに色が変わるものにしたいと思います。 build お好みで照明器具を作りましょう。 ランプ型、蛍光灯型、電球型、なんでも構いません。 私はこんなのを作りました。 Snapshot_107.jpg 手抜きなスタンドライトですw ライト効果の設定 今回のスクリプトは、タッチするたびに照明の色が変わるものにしましょう。 最初は明かりがついていなくて、タッチすると赤く光り、次にタッチすると緑、さらにタッチすると青、もう一度タッチすると照明が消える(...
  • llGetInventoryKey
    llGetInventoryKey key llGetInventoryKey(string name) オブジェクトのコンテンツ内にあるアイテムのUUIDを得る。 調べたいアイテム名を引数itemに指定する。 指定した名前のアイテムがコンテンツ内に存在しない場合はNULL_KEYを返す。 また、オブジェクトのオーナーが調べたいアイテムに関して、Modify/Copy/Transfer権限を持っていない場合もNULL_KEYを返すため、この関数の戻り値がNULL_KEYだったからといって、そのアイテムがコンテンツ内に存在しないとは言えない。 コンテンツ内のアイテムの存在確認にはllGetInventoryTypeを使うこと。 名前 ...
  • llListInsertList
    llListInsertList list llListInsertList(list dest, list src, integer pos) リストsrcをリストdestの位置posに挿入した結果を返す。 もしposに指定する値がリストdestの最大要素数よりも大きい場合は、単純にdestの後ろにsrcが連結されたリストが返る。 名前 コメント
  • llAllowInventoryDrop
    llAllowInventoryDrop llAllowInventoryDrop(integer add) オブジェクトのコンテンツへのアイテムドロップを許可/不許可にする。 引数addにTRUEを指定した場合はドロップ許可、FALSEにすると不許可である。 通常、オブジェクトのmodify権限を持っていない場合は、コンテンツの中にアイテムを入れることはできない。 しかしこの関数を使ってドロップを許可すると、誰でも任意のアイテムをコンテンツに入れることができるようになる。 なお、FALSEを指定してドロップを不許可にしたからといって、modify権限を持っているユーザーがドロップできなくなるわけではない。 つまりこの関数は、modify権限持っていないユーザーに関して、コンテンツへのアイテムドロップを許可するかしないかを設定する関数である。 参考までに、...
  • llRequestPermissions
    llRequestPermissions llRequestPermissions(key agent, integer perm) 引数agentで指定したUUIDのアバターに対して、引数permで指定したパーミッションの取得要求を出す。 パーミッション要求が出されると、アバターのクライアント上にパーミッションダイアログが表示され、許可もしくは不許可の回答を求められる。 アバターが回答するとrun_time_permissions?イベントが発生し、パーミッションが取得できたのか、それともできなかったかの判定を行うことができる。 引数permに指定可能な定数は以下の通り。 定数名 値 説明 使用可能になる関数 PERMISSION_DEBIT 2 スクリプトオーナーの所持金からの支払許可 llGiveMoney PERMISSION_TAKE_CONTROL...
  • 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...
  • アバター/オブジェクト系
    アバター/オブジェクト系 アバター 関数・イベント名 区分 概要 定義 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 関数...
  • ダイアログを使おう
    はじめに ダイアログllDialog関数 ダイアログ対応版照明スクリプト リストを使いこなすllListFindList関数 今回のポイント はじめに 照明スクリプトだけで三回にも及んでしまいました(^^; ですが、照明スクリプト一回目の「ユーザー関数」、二回目の「listen」、そして今回の「ダイアログ」はlslの中でも使用頻度の高いものばかりですので、ぜひとも使い方をマスターしていただきたい部分です。 この回から初めて見たという方は、第六回の「照明を作ろう」から戻ってお読みいただくのが良いかと思います。 照明のスクリプト作成について順を追って解説しております。 さすがに照明スクリプトがこれだけ続くと、いいかげん目がチカチカして来そうですw 今回は頑張って完成まで行き着きたいと思います。さて照明スクリプトですが、前回までで、チャットで色名を発言することで照明の色...
  • llRequestInventoryData
    llRequestInventoryData key llRequestInventoryData(string name) 引数nameで指定したアイテムの情報取得の要求を行う。 指定するアイテムはオブジェクトのコンテンツ内に存在するものでなければならない。 アイテムの情報はdataserver?イベントで通知されるが、データを識別するために戻り値のkeyを使用する。 現在この関数で取得可能なのはランドマーク情報のみである。 従って引数nameに指定できるのはコンテンツ内のランドマークだけとなる。 ランドマークを指定して得られる情報は、ランドマークで移動可能なテレポート先の座標 X,Y,Z である。 dataserver?イベントはstring型で情報を返すので、vector型に変換して使用する。 ...
  • llSetLinkColor
    llSetLinkColor llSetLinkColor(integer linknumber, vector color, integer face) 引数linknumberのリンクprimに関して、引数faceで指定した面の色を引数colorで指定した色にする。 引数colorについてはllSetColor関数を参照。 引数faceについてはllGetColor関数を参照。 名前 コメント
  • 制御系
    制御系 パーミッション 関数・イベント名 区分 概要 定義 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) コントロール 関数・イベント名 区...
  • 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...
  • インターフェース系
    インターフェース系 UI 関数・イベント名 区分 概要 定義 llDialog 関数 ダイアログを表示する[参考]初級lsl-8 llDialog(key id, string message, list buttons, integer chat_channel) llMapDestination 関数 マップに指定位置を表示する[参考]初級lsl-9 llMapDestination(string sim_name, vector position, vector lookat) llSetSitText 関数 パイメニューの「Sit」を他の文字列に変更する llSetSitText(string text) llSetText 関数 フロートテキストを設定する[参考]初級lsl-9 llSetText(string text, vector color, float al...
  • llForceMouselook
    llForceMouselook llForceMouselook(integer mouselook) primに座ったアバターが強制的にマウスルックモードになるよう設定/設定解除する。 引数mouselookにTRUEを指定すると、そのprimに座ったアバターは強制的にマウスルックモードになる。 FALSEであればマウスルックモードにはならない(マウスルックモードの変更は行わない)。 すでに座っているアバターの視界をコントロールすることはできない。 座ったアバターをマウスルックモードにしたい場合は、あらかじめllForceMouselook(TRUE);を実行しておく必要がある。 一度この関数を使って強制マウスルックをONにした場合は、llForceMouselook(FALSE);を実行するまでその設定は有効である。 なお、この関数を使ったからといっ...
  • prim間通信
    はじめに 色を変える 簡易版カラーチェンジャー 拡張性の問題 prim間通信の仕組みllMessageLinked関数 link_messageイベント カラーチェンジャースクリプト ロングタッチ 今回のポイント はじめに しばしばカツラなどに組み込まれている色変更のスクリプトを作ってみましょう。 単純に色を変えるだけのスクリプトであれば、ここまで読んできた方には簡単に出来ると思います。 ですが、今回は特にprim間の通信を行う方法使って、拡張性の高いスクリプトを考えてみたいと思います。 prim間通信とは、llMessageLinked()という関数を使い、リンクされているprim同士でメッセージをやり取りする方法です。 これを使うと、一つのprimを操作したときに、別のprimを操作することができるようになります。 色を変える primの色を変えるのは...
  • experiment/eventque
    イベントの同時発生限度数を調べました。 キューは64個までのイベントを溜め込むことが可能で、それ以上のイベントは無視されることの検証です。 以下のようにしてstate_entryイベントから100回のリンクメッセージを送信し、実際に処理されたリンクメッセージイベントの数をカウントしてみました。 // イベントキューリミット測定LSL integer event_call=0; // リンクメッセージのコール数 integer counter=0; // 実際に処理されたリンクメッセージ数 default { state_entry(){ integer i; integer j; llOwnerSay("Sleep start, please wait."); for (i = 0;i 10;i++){ // 1...
  • エラー対応
    エラーが出る原因と対処方法についてまとめてみました。 LSLに関わって発生するエラーには主に3種類あります。 コンパイルエラー(Compiler Errors) ランタイムエラー(Run-Time Errors) ビルドエラー(Build Errors) 以下にエラーの種類と原因、対処方法について書いていますので参考にしてみて下さい。 コンパイルエラーSyntax Error Type mismatch Function call mismatches type or number of arguments Name not defined within scope Name previously declared within scope Use of vector or quaternion method on incorrect type Lists can...
  • テレポート
    テレポートハック 移動型テレポーター テレポートハック 初心者さん向けのスクリプト解説記事を書いたところ、 「んなことはわかってる!もっと役に立つことを書かんかい!」 というお叱りを受けたので(笑)、ある程度スクリプトのことはわかっている人向けに、スクリプトの小技を紹介するカテゴリを設けました。 まずは有名どころから。 「テレポートハック」と呼ばれるスクリプトです。 最初にスクリプトコードを載せておきます。 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 ...
  • llPassCollisions
    llPassCollisions llPassCollisions(integer pass) 子primで発生した衝突イベントをルートprimにも通知するかどうかを設定する。 引数passにTRUEを指定した場合はルートprimにも通知され、FALSEは通知されない。 通常、リンクオブジェクトにおける衝突イベント(collision_start?、collision?、collision_end?)はprimごとに発生する。 しかしながら子prim内に衝突イベントを処理するスクリプトが存在しない場合、代わりにルートprimで衝突イベントが処理される。 ルートprimにも衝突イベントを処理するスクリプトがなければ、そのオブジェクトは衝突に関しては何も処理を行わない。 従って、もしも子primでのみ衝突イベントを処理し、ルートprimではタッチイベントを処理し...
  • llSetCameraAtOffset
    llSetCameraAtOffset llSetCameraAtOffset(vector offset) アバターがオブジェクトに座ったときのカメラ(視点)の向きを引数offsetで指定された方向に設定する。 この関数はアバターがオブジェクトに座る前に実行しておく必要がある。 すでに座っているアバターの視点をコントロールすることはできない。 例えば以下のコードはオブジェクトに座ったアバターの視点をオブジェクトの上方5mの位置に向ける。 default { state_entry(){ llSetCameraAtOffset( 0,0,5 ); } } オブジェクトに座ったときのアバターのカメラ位置(目の位置)を変更するにはllSetCameraEyeOffset関数を使う。 カメラの位置を方向をコントロールすると、例えばアバターがオブジ...
  • llGetEnergy
    llGetEnergy float llGetEnergy() オブジェクトの残エネルギーを得る。 戻り値は0.0~1.0の範囲であり、残エネルギーの割合を示す。 0.0はエネルギーが完全に無いことを意味し、1.0は満タンである。 SLにおけるエネルギーとは、物理オブジェクトが持つ運動エネルギーのことで、以下の物理系関数を使ってオブジェクトを動かすと消費される。 llMoveToTarget llApplyImpulse llSetPos? llSetForce? llSetTorque? llApplyRotationalImpulse llPushObject エネルギーが減るとともに上記の関数は効果が弱くなっていき、ゼロになれば効果は無くなる。 つまり物理系関数を使ってオブジェクトを永久的に動かすことは不可能な仕様になっている。 しかしながら...
  • llSetCameraEyeOffset
    llSetCameraEyeOffset llSetCameraEyeOffset(vector offset) アバターがオブジェクトに座ったときのカメラ(視点)の位置を引数offsetで指定した場所に設定する。 引数offsetに指定するのはオブジェクトの中心からの相対位置である。 この関数はアバターがオブジェクトに座る前に実行しておく必要がある。 すでに座っているアバターの視点位置をコントロールすることはできない。 例えば以下のコードはオブジェクトに座ったアバターのカメラ位置をオブジェクトの後方(X軸マイナス方向)3mの位置する。 default { state_entry(){ llSetCameraAtOffset( -3,0,0 ); } } オブジェクトに座ったときのアバターのカメラの向き(視点の方向)を変更するに...
  • @wiki全体から「sensor」で調べる

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

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