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

検索 :
  • llAllowInventoryDrop
    ...可能である。 changed(integer mask){ if(mask CHANGED_INVENTORY){ llWhisper(0, "Contents has changed by user who have modify permission."); }else if(mask CHANGED_ALLOWED_DROP){ llWhisper(0, "Contents has changed by user who dose not have modify permission."); } } modify権限の有無に関わらずコンテンツへのアイテムドロップを検知するには以下の判定で良い。 changed(integer mask){ if(mask...
  • llAvatarOnSitTarget
    ...); } changed(integer change) { // something changed if (change CHANGED_LINK) { llSleep(0.5); if (llAvatarOnSitTarget() != NULL_KEY) { llSay(0, "Somebody is sitting."); }else{ llSay(0, "Nobody is sitting."); } } } } ※llSitTarget?関数の使用をお忘れなく。
  • ポーズボール
    はじめに 座ったときのイベントchangedイベント llAvatarOnSitTarget関数 ポーズボールスクリプト ボールの透明化llSetAlpha関数 今回のポイント はじめに 引き続いてアニメーションのスクリプトです。 前回は単にタッチするとアニメーションするだけのスクリプトでしたが、これではいまひとつ実用性がありません。 アニメーションが最もよく利用されているのはポーズボールでしょう。 SLで遊んだ人なら誰もが一度は見たことがあると思います。 しばしば木陰とかベッドの上に置いてある、赤と青のボール。 あれですw クラブのフロアや、バーのストゥールなんかにも置いてあるところがあります。 これらのボールは、アバターが座ったときに特定のアニメーションを実行するものです。 座ったときのイベント スクリプトの構成はすぐに予想がつくかと思いま...
  • テレポート
    ... } 08 changed(integer change){ 09 if (change CHANGED_LINK){ 10 key k = llAvatarOnSitTarget(); 11 if (k != NULL_KEY) { 12 llUnSit(k); 13 } 14 } 15 } 16 } ご覧の通り、それほど複雑なものではありません。 このスクリプトのポイントは2つです。 1つは、llSitTarget?()を使って、テレポート位置を設定しているところです(6行目)。 llSitTarget?()はそのオブジェクトにアバターがsitしたときの位置と回転角度を設定する関数です。 ここではスクリプトの先頭で変数を定義し、offsetというve...
  • llCreateLink
    ...リンクが実行されるとchangedイベントが発生するが、このときのフラグはCHANGED_LINKとなっている。 なお、この関数は実行時に1秒間ディレイする。 リンクされるとprimのリンクナンバーは振り直される。 LSLWikiによれば、以下のようになるようだ。 オブジェクトAが3つのprim[A1, A2, A3]で構成されており、同様にオブジェクトBの構成が[B1, B2, B3]だったとする。 Aを親としてBとリンクすると、リンクナンバーは以下の順序になる。 [A1, B1, B2, B3, A2, A3] つまりルートprimの次に新たにリンクされたprimがつながり、その後ろに元からリンクされていたprimがつながる。 スクリプトからリンクを解除する際にはllBreakAllLinks及びllBreakLinkを使用する。
  • リファレンス(イベント)
    ...h(key id) changed? オブジェクトの状態が変化(link等)したとき(参考) changed(integer change) collision? 衝突が起こっているとき(参考) collision(integer num_detected) collision_end? 衝突が終了したとき(参考) collision_end(integer num_detected) collision_start? 衝突が始まったとき(参考) collision_start(integer num_detected) control? キーが押されたとき control(key id, integer level, integer edge) dataserver? データを受信したとき(参考) dataserver(key queryid, string data)...
  • アバター/オブジェクト系
    ... 区分 概要 定義 changed イベント オブジェクトの状態が変化(link等)したとき[参考]初級lsl-14 changed(integer change) llDie 関数 オブジェクトを消滅させる[参考]初級lsl-21 llDie() llGetBoundingBox 関数 オブジェクト/アバターのバウンディングボックス座標を得る list llGetBoundingBox(key object) llGetCreator 関数 オブジェクトのクリエイターのUUIDを得る key llGetCreator() llGetGeometricCenter 関数 オブジェクトの中心点を得る vector llGetGeometricCenter() llGetObjectDesc 関数 オブジェクトの説明(ディスクリプション)を得る string llGetObject...
  • 鍵をかける
    ... } changed(integer change){ if (change CHANGED_LINK){ key avatar = llAvatarOnSitTarget(); if (avatar != NULL_KEY){ llUnSit(avatar); } } } } 変数exit_posには強制退去される先の座標を設定します。 上記のコードでしたら、sitした人は全員 128.0, 128.0, 128.0 へ飛ばされます。 ただし飛ばせる距離は300m程度ですので、あまり離れたところに退去させるのは無理です。 オブジェクトがrezされたとき、あるいは動かされたときにはスクリプトをリセットし、退去位置を再設定します。 誰かがこのスクリプトの入ったオブ...
  • llCloseRemoteDataChannel
    llCloseRemoteDataChannel llCloseRemoteDataChannel(key channel) XML-RPCチャンネルをクローズする。 この関数は実行時に1.0秒ディレイする。
  • llBreakAllLinks
    llBreakAllLinks llBreakAllLinks() オブジェクトのリンクを全て解除する。 この関数を実行するにはPERMISSION_CHANGE_LINKSパーミッションを取得していなければならない。 バラバラ関数の例。 オブジェクトを物理にしてたりすると崩壊が楽しめる。 default { touch_start(integer num_detected) { if (llDetectedKey(0) == llGetOwner()){ llRequestPermissions(llDetectedKey(0), PERMISSION_CHANGE_LINKS); } } run_time_permissions(integer perm) { if (perm PERMI...
  • llBreakLink
    llBreakLink llBreakLink(integer linknum) 指定したリンクナンバーのprimのリンクを解除する。 通称、縁切り関数。 この関数を実行するにはPERMISSION_CHANGE_LINKSパーミッションを取得していなければならない。 タッチしたprimのリンクを外す例。 integer link_number; default { touch_start(integer num_detected) { if (llDetectedKey(0) == llGetOwner()){ link_number = llDetectedLinkNumber(0); llRequestPermissions(llDetectedKey(0), PERMISSION_CHANGE_LI...
  • llOpenRemoteDataChannel
    llOpenRemoteDataChannel llOpenRemoteDataChannel() XML-RPC用のチャンネルを開く。 この関数を使うとXML-RPCを受信したときにremote_dataイベントが発生するようになる。 名前 コメント
  • llRequestPermissions
    llRequestPermissions llRequestPermissions(key agent, integer perm) 引数agentで指定したUUIDのアバターに対して、引数permで指定したパーミッションの取得要求を出す。 パーミッション要求が出されると、アバターのクライアント上にパーミッションダイアログが表示され、許可もしくは不許可の回答を求められる。 アバターが回答するとrun_time_permissions?イベントが発生し、パーミッションが取得できたのか、それともできなかったかの判定を行うことができる。 引数permに指定可能な定数は以下の通り。 定数名 値 説明 使用可能になる関数 PERMISSION_DEBIT 2 スクリプトオーナーの所持金からの支払許可 llGiveMoney PERMISSION_TAKE_CONTROL...
  • prim間通信
    はじめに 色を変える 簡易版カラーチェンジャー 拡張性の問題 prim間通信の仕組みllMessageLinked関数 link_messageイベント カラーチェンジャースクリプト ロングタッチ 今回のポイント はじめに しばしばカツラなどに組み込まれている色変更のスクリプトを作ってみましょう。 単純に色を変えるだけのスクリプトであれば、ここまで読んできた方には簡単に出来ると思います。 ですが、今回は特にprim間の通信を行う方法使って、拡張性の高いスクリプトを考えてみたいと思います。 prim間通信とは、llMessageLinked()という関数を使い、リンクされているprim同士でメッセージをやり取りする方法です。 これを使うと、一つのprimを操作したときに、別のprimを操作することができるようになります。 色を変える primの色を変えるのは...
  • 外部機能系
    外部機能系 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レスポンスを受信したと...
  • llGetPermissions
    llGetPermissions integer llGetPermissions() 現在取得しているパーミッションを得る。 戻り値はビットフィールドになっているので以下の定数を使って&演算を行い、必要なパーミッションが取得されているかどうかをチェックする。 定数名 説明 対応する関数 PERMISSION_DEBIT L$の支払い権限 llGiveMoney PERMISSION_TAKE_CONTROLS キー操作取得の権限 llTakeControls?、llReleaseControls PERMISSION_TRIGGER_ANIMATION アニメーション実行権限 llStartAnimation?、llStopAnimation? PERMISSION_ATTACH アタッチ制御権限 llAttachToAvatar、llDetachFromAv...
  • 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...
  • リファレンス(機能別)
    関数 関数アバター/オブジェクト系アバター グループ オブジェクト UUID リンク イベント系タッチ アタッチ シット 衝突 センサー デテクト インターフェース系UI チャット 取引 制御系パーミッション コントロール カメラ REZ コンテンツ スクリプト 属性系面 テクスチャ 色 透明度 特殊効果系アニメーション 音 ビデオ パーティクル ビークル データ系数学 文字列 リスト 時間 データ 暗号化 土地系BAN 土地 天候 地面 物理3D系位置 回転 物理 外部機能系Email HTTP XML-RPC アバター/オブジェクト系 アバター llGetAgentInfo 指定アバターの状態を得る(飛行・AWAYなどの動作及びアタッチメントの有無等) integer llGetAgentInfo(key id) llGetAgentSize 指定アバターのサイズを得る v...
  • リファレンス(名前順)
    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...
  • エラー対応
    エラーが出る原因と対処方法についてまとめてみました。 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...
  • llGetBoundingBox
    llGetBoundingBox list llGetBoundingBox(key object) 指定したUUIDのオブジェクト(またはアバター)の当たり判定領域を取得する。 当たり判定の領域のことをバウンディングボックスと言う。 通常バウンディングボックスはオブジェクトをすっぽり覆う立方体で示される。 この関数の戻り値は、vector型変数を二つ含むリストである。 二つのvectorは、バウンディングボックスの最小コーナー座標及び最大コーナー座標を示す。 以下の例はLSL-Wikiからそのまま持ってきたスクリプトであるが、バウンディングボックスを視覚化する。 半透明のキューブに以下のスクリプトを仕込み、チャンネル3で対象のオブジェクト名を指定する。 例えば「/3 Miz Cremorne」と発言すれば、私のアバターのバウンディングボックスを見ること...
  • ダイアログを使おう
    はじめに ダイアログllDialog関数 ダイアログ対応版照明スクリプト リストを使いこなすllListFindList関数 今回のポイント はじめに 照明スクリプトだけで三回にも及んでしまいました(^^; ですが、照明スクリプト一回目の「ユーザー関数」、二回目の「listen」、そして今回の「ダイアログ」はlslの中でも使用頻度の高いものばかりですので、ぜひとも使い方をマスターしていただきたい部分です。 この回から初めて見たという方は、第六回の「照明を作ろう」から戻ってお読みいただくのが良いかと思います。 照明のスクリプト作成について順を追って解説しております。 さすがに照明スクリプトがこれだけ続くと、いいかげん目がチカチカして来そうですw 今回は頑張って完成まで行き着きたいと思います。さて照明スクリプトですが、前回までで、チャットで色名を発言することで照明の色...
  • インターフェース系
    インターフェース系 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...
  • llRegionSay
    llRegionSay llRegionSay(integer channel, string text) 土地全域に聞こえるチャットメッセージtextをチャンネルchannelで送信する。 LSLではチャットメッセージをlisten?して処理を行うことが多く、不用意にllRegionSayを多用すると負荷が高くなる可能性がある。 チャットメッセージの送信範囲は必要に応じて使い分けるべき。 他のチャット関連関数も参照のこと。 llWhisper・・・範囲10m llSay・・・範囲20m llShout・・・範囲100m llOwnerSay・・・オーナーにのみ送信 llInstantMessage・・・特定アバターのみ(IM) llMessageLinked・・・リンクprim間の通信。listenに影響なし。 チャンネル0(パブリ...
  • llDialog
    llDialog llDialog(key id, string message, list buttons, integer chat_channel) idで示されるUUIDを持つユーザーに対して、ダイアログを表示する。 ダイアログのメッセージにはmessageに指定した文字列が表示され、ボタンにはbuttonsに含まれる文字列型の要素が表示される。 ユーザーがダイアログボタンを押すと、チャットチャンネルchat_channelに対して、押されたボタンの名称が発言される。 ダイアログの使用方法の詳細は初級スクリプト第八回「ダイアログを使おう」を参照。
  • llListen
    llListen integer llListen(integer channel, string name, key id, string msg) チャットチャンネルchannel番にて、名前がnameでUUIDがidのアバター/オブジェクトの発言msgをモニターする。 ある意味、キングオブLSLとも言える関数の一つ。 高機能なスクリプトを実現するには必ずと言ってもいいくらい必要になる関数である。 詳細は「聞き耳を立てる(初級スクリプト第七回)」を参照。 名前 コメント
  • llWhisper
    llWhisper llWhisper(integer channel, string text) 引数textに指定したメッセージをチャットチャンネルchannelで送信する。 メッセージの届く範囲が半径10mである以外はllSay関数と同様である。 詳細はllSay関数を参照。 名前 コメント
  • llSay
    llSay llSay(integer channel, string text) 引数channelで指定したチャットチャンネルで、引数textの文字列を発言する。 この発言は半径20mの範囲に聞こえる。 発言可能な文字列の長さは1023Byteとなっている。 チャンネル0(パブリックチャンネル)を使用した場合、"/me"を使った発言が可能である。 例えばオブジェクトの名前が"爆弾ちゃん"のとき、以下のようにすると、 llSay(0, "/me がドーンとなった。"); 出力結果は以下のようになる。 爆弾ちゃんがドーンとなった。 ただしこの発言をlisten?イベントでモニタする場合、引数に入ってくる発言内容は"/me がドーンとなった。"なので注意すること。 ...
  • 聞き耳を立てる
    前回の問題点 listenllListen関数 listenイベント listen使用上の注意 llListenRemove関数 照明スクリプト改 今回のポイント 照明スクリプトの続きです。 前回作ったスクリプトの改良になりますので、実習する際には前回分からやってみて下さい。 前回の問題点 前回はタッチするたびに赤、緑、青、消灯と変化する照明を作りましたが、この照明は好きな色にする際に何度もタッチしなければならないという問題点があります。 いきなり青い光をつけたいとか、赤い光で点けていたが消灯したいというようなとき、数回クリックするのは面倒です。 ラグが発生しているときなどには、誤って二度、三度とタッチしてしまい、一気に色が変わってしまうようなこともあります。 何度もタッチすることなく好みの色にしたり、消灯するようにしたいところです。 例えば、タッチのたび...
  • llShout
    llShout llShout(integer channel, string text) 引数textに指定したメッセージをチャットチャンネルchannelで送信する。 メッセージの届く範囲が半径100mである以外はllSay関数と同様である。 半径100mというのは結構広く、多くの人に聞こえる可能性が高い。 多用するとスパム化する恐れがあるので注意すること。 土地全域にチャットメッセージを送りたい場合はllRegionSay関数を使う。 詳細はllSay関数を参照。 名前 コメント
  • 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...
  • llAxisAngle2Rot
    llAxisAngle2Rot rotation llAxisAngle2Rot(vector axis, float angle) axisで指定された軸の周囲をangleラジアン回転させた場合の回転データを得る。 例えばaxisに0.0,0.0,1.0を指定した場合はZ軸周囲を回転させるのと同等である。
  • llAngleBetween
    llAngleBetween float llAngleBetween(rotation a, rotation b) 二つの回転データa,b間の角度(ラジアン)を返す。
  • llGetPrimitiveParams
    llGetPrimitiveParams list llGetPrimitiveParams(list params) primの属性値を返す。 引数paramsには取得したい属性のリストを指定する。 戻り値は引数に指定した属性に応じたリスト型のデータとなる。 基本的に、buildツールを使って指定可能なprimの設定値は全てこの関数を使用して取得できる。 また、この関数の戻り値を使ってllSetPrimitiveParams?関数を実行すると、buildツールと同様にprimを編集することが可能である。 これはつまりbuildの自動化が実現できることを意味する。 鏡面コピースクリプトなどは、この関数を使ってコピー元のprimの属性値を取得し、必要なパラメータに鏡面変換をかけた後、llSetPrimitiveParams?関数でコピー後のprimを形成する。 ...
  • イベント系
    イベント系 タッチ 関数・イベント名 区分 概要 定義 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させる ...
  • llAttachToAvatar
    llAttachToAvatar llAttachToAvatar(integer attachment) オブジェクトを指定した位置にアタッチさせる。 オブジェクトはワールド内にrezされていなければならず、かつスクリプトからパーミッションPERMISSION_ATTACHを取得する必要がある。 また、オブジェクトのオーナーでなければアタッチはできない。 従って、オーナー以外のユーザーに対してPERMISSION_ATTACHを取得しても無意味である。 アタッチしようとした箇所にすでに別のアタッチメントが付いていた場合、もとのアタッチメントは自動的にデタッチされ、この関数を実行したオブジェクトが新たにアタッチされる。 初めてアタッチされた場合、オブジェクトはアタッチ箇所の0,0,0の位置に付くが、位置調整を行っておけば、二度目以降は調整した位置に付く。 以上、...
  • パーティクル
    パーティクルとは パーティクル関数(llParticleSystem関数) パーティクルモジュールパラメータの説明マスク・パラメータ パターン・パラメータ その他詳細パラメータ 応用編 パーティクルとは 小技というわけではありませんが、パーティクルシステムについては設定すべきパラメータが非常に多く、わかりにくいという声をしばしば聞きます。 ですので今回はパーティクルシステムの解説とサンプル・スクリプトを書いておくことにします。 パーティクルとは粒子のことです。 SLのパーティクルシステムは、煙や火、水しぶきなどの粒子を表現するための仕組みのことを言います。 スクリプトを使う以外にパーティクルを制御する方法はありません。 従って、粒子を使った表現をしようと思ったら、パーティクルシステムのスクリプトを使わなければなりません。 よく見かけるパーティクルを列...
  • llHTTPRequest
    llHTTPRequest key llHTTPRequest(string url, list parameters, string body) 引数urlのアドレスに対してparametersとbodyを使ってHTTPリクエストを送る。 いわゆるWeb連携を行うための関数である。 urlに指定するのは、Webブラウザでお馴染みの、"http //"で始まるURLアドレスである。 parametersには以下のようなキーと値のセットをリストとして指定する。 [キー1, 値1, キー2, 値2...] 必要な数だけキーと値のセットを繰り返す。 指定できるキーは以下の通り。 キー キーの値 値の型 値の初期値 説明 HTTP_METHOD 0 string "GET" "GET&qu...
  • センサーを使おう
    はじめに センサーの仕組みセンサー関数llSensor(string name, key id, integer type, float range, float arc) llSensorRepeat(string name, key id, integer type, float range, float arc, float rate) llSensorRemove(); センサーイベント 自動ドアスクリプト 今回のポイント はじめに 今回はセンサーについて見てみましょう。 センサーというのは、スクリプトによって近くのアバターやオブジェクトを検知する仕組みのことを言います。 最も単純な使い方としては、自動ドアなどが考えられます。 また、翻訳機などでは近くにいる人をダイアログに出力し、誰の言葉を翻訳するか指定できるようにしているものもあります。 このとき近くにい...
  • llAddToLandBanList
    llAddToLandBanList llAddToLandBanList(key agent, float hours) agentに指定したUUIDのアバターをhoursに指定した時間だけ土地のBANリストに追加する。 hoursに0.0を指定すると、無期限のBANとなる。 また、hoursの下限値は0.01で、1時間の1%は36秒であるから、最小BAN期間は30秒程度である。 BANリストからアバターを取り除く場合(=立ち入りを許可する場合)はllRemoveFromLandBanList関数を使用する。 なお、BANしたいアバターのUUIDがわからない場合はこの関数を使ってBANすることができない。 LSLにはアバター名からUUIDを取得する関数が存在しないので、名前だけしかわからない相手をBANするのは困難である。 「すみません、あなたをBANし...
  • 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 アバ...
  • llGetAgentInfo
    llGetAgentInfo integer llGetAgentInfo(key id) エージェントの情報を入手する。 腕利きのエージェントを調査する場合は報復を覚悟したりしなくても良い。 ここで言うエージェントというのは要するにアバターのことである。 この関数で調べることができるのは、主にアバターの動作である。 戻り値はビットフィールドになっているので以下の定数と 演算を行って判定する。 定数 説明 実際の値 AGENT_FLYING 飛行中もしくは落下中 1 AGENT_ATTACHMENTS アタッチメントを装備している 2 AGENT_SCRIPTED スクリプト入りのアタッチメントを装備している 4 AGENT_MOUSELOOK マウスルック状態 8 AGENT_SITTING 地面もしくはオブジェクトの上に座っている 1...
  • モジュール化
    はじめに スクリプトのサイズ モジュール化の概念 モジュール化の手法 ドア・システム・スクリプト基本的なモジュールslide door module standard door module door main module short touch module group touch module 拡張モジュールsensor module phantom door module モジュール化の効果 モジュール化のデメリット はじめに LSLでは巨大なプログラムを作ることができません。 というのも一つのLSLのサイズは16KByteまでという制限があるためです。 この制限は、スクリプトコードの本体のサイズだけでなく、スクリプトが動作したときのメモリを含めたサイズです。 スクリプトを正しく書いていても、サイズが大きくなって16KByteの制限を越えてしまうと、 「St...
  • llListStatistics
    llListStatistics float llListStatistics(integer operation, list input) リストinput内のデータに関して統計的な計算を行った結果を返す。 例えば、平均値、最小・最大値、分散、合計値等。 当然ながら、リストinput内の要素は数値型(integer/float)である必要がある。 なお、戻り値はfloat型の数値である。 引数operationには以下の値を指定する。これによって計算内容が決まる。 定数 値 計算内容 LIST_STAT_RANGE 0 値の範囲(最大-最小)を返す LIST_STAT_MIN 1 最小値を返す LIST_STAT_MAX 2 最大値を返す LIST_STAT_MEAN 3 平均値を返す LIST_STAT_MEDIAN 4 中間値を返す LIST...
  • 物理3D系
    物理3D系 位置 関数・イベント名 区分 概要 定義 at_target イベント オブジェクトが到達目標地点に達したとき at_target(integer tnum, vector targetpos, vector ourpos) moving_end イベント 移動が終了したとき[参考]初級lsl-22 moving_end() moving_start イベント 移動が開始されたとき[参考]初級lsl-22 moving_start() not_at_target イベント オブジェクトが到達目標地点に達していないとき not_at_target() llDetectedPos 関数 検出されたアバター/オブジェクトの位置を得る[参考]初級lsl-20 vector llDetectedPos(integer number) llEdgeOfWorld 関数 ...
  • 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...
  • 土地系
    土地系 BAN 関数・イベント名 区分 概要 定義 llAddToLandBanList 関数 土地からアバターをBANする llAddToLandBanList(key agent, float hours) llAddToLandPassList 関数 土地の通行許可をアバターに与える llAddToLandPassList(key agent, float hours) llRemoveFromLandBanList 関数 BANリストから指定アバターを削除する llRemoveFromLandBanList(key avatar) llRemoveFromLandPassList 関数 通行許可リストから指定アバターを削除する llRemoveFromLandPassList(key avatar) 土地 関数・イベント名 区分 概要 定義 llEdgeOfWor...
  • 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...
  • llFrand
    llFrand float llFrand(float max) max未満のランダムな小数値を返す。 小数値は必ず0.0以上である。 例えばllFrand(1.0)であれば、0.0~0.9999999....の範囲の値をランダムに返す。 ランダムな整数を取りたい場合は単にキャストすれば良い。 例えば以下の例は6面サイコロをシミュレートしたユーザー関数の例である。 integer dice(){ return ((integer)llFrand(6.0) + 1); } default { touch_start(integer num_detected) { llSay(0, (string)dice()); } } 0からではなく、10~20の間の範囲でランダムな値を取りたいような場合は、 llFrand(最大値 - 最小値...
  • llGetStatus
    llGetStatus integer llGetStatus(integer status) 引数statusに指定したオブジェクトの属性がONかOFFかを判定する。 引数に指定可能な定数値は以下の通り。 定数 値 初期値 説明 STATUS_BLOCK_GRAB 64 FALSE 重力遮断。この属性がTRUEの場合、オブジェクトは重力の影響を受けていない。 STATUS_DIE_AT_EDGE 128 FALSE ワールド外生存不可。この属性がTRUEの場合、オブジェクトはワールドの境界を越えた時点で消滅する。 STATUS_PHANTOM 16 FALSE ファントム。幻影。オブジェクトがファントムの場合はTRUEが返る。 STATUS_PHYSICS 1 FALSE 物理。オブジェクトが物理オブジェクトの場合はTRUEが返る。 STATUS_RE...
  • @wiki全体から「changed」で調べる

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

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