BlackSheep-LSL@Wiki内検索 / 「基礎知識/Email」で検索した結果

検索 :
  • 基礎知識
    基礎知識 LSLの基礎知識に関する記事をまとめてります。 LSLはプログラミング言語の一種ですので、理解を深めるためには一般的なプログラミングの基礎知識が不可欠です。 ここではLSLに限らずプログラミング全般に共通する概念の説明を含む場合があります。 Ⅰ.スクリプトとは? 「スクリプト」の意味 台本とスクリプト台本との違い まとめ Ⅰ-1.LSLの構成要素は? LSLを構成する3つの要素状態 きっかけ 処理 3つの要素の書き方 まとめ Ⅰ-2.処理とは? 処理はキモコンピュータが理解できるもの Ⅰ-2-A.変数とは? 変数変数の種類 変数の用意 変数の中身 変数から変数へ まとめ Ⅰ-2-B.定数とは? 定数もう一つの「定数」 まとめ Ⅰ-2-C.演算子とは? 演算子基本演算 異なる型同士での演算 基本演算の応用 論理演算 論理演算の応用 Ⅰ...
  • llEmail
    llEmail llEmail(string address, string subject, string message) addressに指定したメールアドレス宛てに、タイトルsubject、本文messageのEメールを送信する。 この関数の使い方についてはEmailの送受信?を参照。
  • 基礎知識/SL世界の法則
    ここではSLの世界に特有な法則や決まりごとについての解説を行います。 例えばSLの世界には物理法則が存在しますが、その法則はリアルワールドのものとは異なっています。 他にも、SLを構成するprimについての話やテクスチャやサウンドなど、随時追加予定です。 アバター/オブジェクト アバター UUID チャット? シット? パーミッション? アタッチメント? キーコントロール? UI? カメラ? グループ? プリム/オブジェクト 面? テクスチャ? 色/透明度? リンク? Rez? UUID アイテム コンテンツ/インベントリ? アイテム アニメーション? サウンド? テクスチャ? ランドマーク? スクリプト? ワールド 座標系 位置? 回転 SIM セキュリティ? 天候? 地面? 物理 エネルギー? 加速度? フォース? インパルス...
  • llGetNextEmail
    llGetNextEmail llGetNextEmail(string address, string subject) 郵便受けに溜まっている次のメールを取得するよう指示を出す。 メールがあった場合はemailイベントが発生し、そのメールは郵便受けから取り出される(削除される)。 この関数の詳細な使い方については「Emailの送受信?」の記事を参照。 名前 コメント
  • 基礎知識/物理
    エネルギー? 加速度? フォース? インパルス? 質量?
  • 基礎知識/関数とは?
    関数 一般的に関数と言うと、 y = ax + b こんなのを思い出すかと思います。 中学校あたりの数学で出てくる「一次関数」というヤツですね。 これ、要するにxの値が変わると、それに関連してyの値も変わることから、「関数」と言われるんですね。 この数学用語を英語で言うと「function(ファンクション)」です。 ファンクションの意味を『新英和中辞典 第6版 (研究社)』で調べてみると、 1 機能,働き,作用,目的 2-a 職務,職能,職分,役目 b 【文法】 機能 3-a 儀式,行事; 祭典,祝典 b 《口語》 (規模の大きい)社交的会合,宴会 4-a 他のものに関連して変化するもの 《性質・事実など》, 相関関係 b 【数】 関数 こんなんが出てくるわけです。 最近のプログラムで“ファンクション”と言うと...
  • 基礎知識/SIM
    セキュリティ? 天候? 地面?
  • 基礎知識/座標系
    位置? 回転 はじめに rotation型 vector型 vectorとrotation間の変換 回転の向きについて rotationの合成 回転の合成順序 グローバル座標系とローカル座標系 リンクプリムの回転
  • 基礎知識/UUID
    UUIDとは (Universal Unique IDentifier)の略で、SL内のあらゆるものを識別するためのキーとして使われています。 日本語では「汎用一意識別子」という名前が付いていますが、何やら堅苦しいせいか使われているのを見たことがありません。 その名が示すとおり、UUIDとは本来SLに限ってのキーではなく、様々なものを識別するのに利用可能な汎用的な仕様です。 OSF(Open Software Foundation)というオープン仕様を色々策定している組織が定めています。 UUIDは128bitの数値(=32Byte=18446744073709551615)であり、この天文学的な数値がかぶることはほぼあり得ません。 さらに言うなら、このUUIDの生成方法も仕様で決められており、ベースとして時間を元にしています。 つまり作成時間が異なれば、異なるUUIDが...
  • 基礎知識/アイテム
    アニメーション? サウンド? テクスチャ? ランドマーク? スクリプト?
  • 基礎知識/アバター
    アバターとはSLユーザーが操作するキャラクターのことを指します。 広義にはSLユーザーやアカウントまでも含めて「アバター」という言葉を使うこともありますが、通常はSL画面に表示される人型(稀に人型ではないヤツもいますがw)のキャラクターのことを言います。 アバターは固有の名前を持っていますが、通常の場合LSLではUUIDで識別されます。 名前についてはファーストネーム(名前)とセカンドネーム(苗字)があり、ファーストネームのほうはユーザーが自由につけることができます。 セカンドネームはリンデンが用意したものの中から一つを選ぶようになっています。 ファーストネームが同じアバターというのは存在しますが、ファーストネーム+セカンドネームとなると必ず固有の名前になります。 UUID UUIDとは (Universal Unique IDentifier)の略で、SL内のあら...
  • 基礎知識/変数とは?
    変数 「変数」とは、しばしばプログラミング解説書では「データを入れておく箱のようなもの」と説明されます。 プログラミングに特有の概念ですので、今までプログラムなんて見たことも聞いたことも食べたこともない人にとっては意味不明な存在でしょう。 まずは喩えを使って簡単に変数について説明してみたいと思います。 子供にお使いを頼むことを考えてみて下さい。 「肉屋さんへ行って、このメモに書いてあるものを買ってきて」 こんな指示を出したとしましょう。このときの「メモ」というのが変数に当たります。 メモには、「ひき肉」と書いてあるかもしれないし、「レバ刺し」と書いてあるかもしれません。 意表をついて「カボチャ」とか書いてある可能性だってあります・・・。 同じメモでも、書いてある内容によっていろいろと意味が変わってくるように、変数というのは中にいろいろなデータを書...
  • 基礎知識/定数とは?
    定数 「変数」というのは中身の値が変わるものでしたが、中身の変わらないものもあります。 それを「定数」と言います。 変数には自由な名前を付けることができるのに対し、定数はあらかじめ名前が決まっています。 例えば、「PI」という名前の定数があるのですが、この定数の実態は、 3.1415926535897932384626433832795 という小数値です。 これって要するに円周率です。 セカンドライフは3Dの仮想世界ですので、回転等の計算をするときにはしばしば円周率が登場します。 円周率が出てくるたびに、「3.141592653589…..」と数値を書くのは非常に面倒ですし、入力を間違える可能性もあります。 ですので、親切なリンデン社の誰かが、 「PIと書いたら3.1415926535897932384626433832795のことにするね...
  • 基礎知識/処理とは?
    処理はキモ LSLを台本に喩えるならば、「処理」の部分というのは「台詞」や「動作」にあたります。 これって台本の肝となる部分ですよね。 「処理」もLSLの肝と言って差し支えない部分です。 もしも「処理」がなかったら、そのLSLは「何もしない」のですから、LSLを書く意味がまったくなくなってしまいます。 また、台本に書かれた台詞や動作によってドラマや映画の良し悪しが変わってくるように、「処理」に書かれている内容はLSLの出来を大きく左右します。 どんなに優れた俳優さんであろうと、台本がボロボロだったらその能力を発揮できません。 コンピュータは優れた能力を持っていますが、「処理」の部分が間違っていれば正しく動いてはくれません。 さらにやっかいなことには、コンピュータというのは人間ほど機転が利きません。 俳優であれば、細かな指示を与えなくても、前後のストーリ...
  • 基礎知識/演算子とは?
    演算子 まず最も基本的な演算子「=」について説明します。 「=」は「変数に代入する」という意味です。 つまり、 integer i = 100; というのは 「iに」・・・何に 「100を」・・・何を 「代入する」・・・どうする という処理になります。 「何に」「何を」という部分は変数もしくは定数になります。 「i」は整数型の変数ですし、「100」は値を直接指定した定数です。 「どうする」の部分が「=」ですが、「代入する」のように変数や定数を扱うための記号のことを「演算子(えんざんし)」と言います。 「=」は「代入演算子」と言い、「左側の変数に右側の変数の値または定数を代入」する演算子です。 単純な代入については変数のときにいくつか見てきましたので、少し応用した形をやってみましょう。 以下のような場合はどうなるでしょうか。 ...
  • 基礎知識/フロー制御とは?
    フロー制御 フロー制御というのは、条件によって実行するコードを変えたり、繰り返し処理を行ったりするものを言います。 プログラムの処理の流れ(フロー)をコントロールするものなので、「フロー制御」と呼ばれます。 まずはフロー制御の種類を挙げておきます。 フロー制御 説明 if-else 条件分岐。条件に応じて実行するコードを変える。 whle ループ処理。条件を満たす間延々と繰り返し処理を行う。 do-while ループ処理。処理を行った後、条件を満たす場合は繰り返す。 for ループ処理。条件を変化させながら繰り返し処理を行う。 return 復帰(リターン)。ユーザー関数やイベントを終了する。 jump ジャンプ。指定したコードの行に処理を飛ばす。 state ステート。LSLのステートを変更する。 if-else フロー制御の中でも最も使用頻度が高いのがif...
  • 基礎知識/スクリプトとは?
    「スクリプト」の意味 スクリプトという言葉は、日常生活の中ではまず耳にすることが無いかと思います。 英語で書くとscriptですが、まずはこの単語の意味から調べてみることにします。もし英和辞書をお持ちでしたら引いてみて下さい。何と書かれているでしょうか? 辞書が手元にない方のために、私が調べた答えを載せますが、 演劇や映画、ラジオ、テレビなどの台本。脚本。 これがscriptの意味です。 台本とスクリプト 台本や脚本というと、場面に応じた動きや台詞が書かれたものです。 シーン1、魚屋・昼下がり  魚屋が手に鯖を持って笑顔で店頭に立っている。  魚屋「らっしゃい、らっしゃい」  カメラ:上方向にPAN  魚屋の屋根の上に不適な面構えの猫が仁王立ちになっている。  猫、忍者のように屋根を駆け下りる。  魚屋、猫の気配に屋根を見...
  • 基礎知識/プリム/オブジェクト
    面? テクスチャ? 色/透明度? リンク? Rez? UUID UUIDとは (Universal Unique IDentifier)の略で、SL内のあらゆるものを識別するためのキーとして使われています。 日本語では「汎用一意識別子」という名前が付いていますが、何やら堅苦しいせいか使われているのを見たことがありません。 その名が示すとおり、UUIDとは本来SLに限ってのキーではなく、様々なものを識別するのに利用可能な汎用的な仕様です。 OSF(Open Software Foundation)というオープン仕様を色々策定している組織が定めています。 UUIDは128bitの数値(=32Byte=18446744073709551615)であり、この天文学的な数値がかぶることはほぼあり得ません。 さらに言うなら、このUUIDの生成方法も仕...
  • 基礎知識/LSLの構成要素は?
    LSLを構成する3つの要素 通常の台本は、シーンやカット、台詞、動作などから構成されています。 一般的にはまずシーンがあり、そのシーンに含まれるカットごとに、台詞や動作が書かれています。シーンもカットも無しに、いきなり台詞だけがポツン・・・と書かれることはありません。 【一般的な台本の構成要素】 シーン:町外れの空き地カット:楽しそうに騒いでいる猫たち台詞:にゃー 動作:笑顔で尻尾を振る カット:肩を叩かれて振り向く猫 台詞:にゃ? 動作:何気ない様子で振り向く シーン、カット、台詞・動作が階層構造になっているのがわかるかと思います。 この階層構造が崩れてしまうと台本として成り立たなくなります。 同じように、LSLにも構成要素があり、各要素は階層構造になっています。 LSLの場合は「シーン」「カット」「台詞」ではなく、「状態」「きっかけ」「処理」が構成要素...
  • メニュー
    解説 基礎知識 LSLの基礎的な概念・用語等の説明 スクリプト初級 実践的な例を挙げながらLSLの基本を解説した記事 スクリプト小技 中級者向けのちょっとしたノウハウ記事 実験・研究 調べてみたり試したり、試行錯誤のレポート エラー対応 エラーの種類とその原因、そして対処法 BBS 質問・報告などに活用して下さい リファレンス イベント 関数(機能別) 関数(名前順) A B C D E F G H I K L M O P R S T U V W X 最近の更新 取得中です。 訪問者: -
  • 外部機能系
    外部機能系 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レスポンスを受信したと...
  • スクリプト小技
    LSLの常套手段やちょっと気の利いた使い方、特殊な関数など、tipsのような記事です。 基本的にLSLの基礎がわかっている方向けの内容になっています。 回転について(記述中) はじめに rotation型 vector型 vectorとrotation間の変換 回転の向きについて rotationの合成 回転の合成順序 グローバル座標系とローカル座標系 リンクプリムの回転 テレポート テレポートハック 移動型テレポーター LSLで日本語を使う はじめに listenによる入力 URLエスケープの使用 その他の方法 パーティクル パーティクルとは パーティクル関数(llParticleSystem関数) パーティクルモジュールパラメータの説明マスク・パラメータ パターン・パラメータ その他詳細パラメータ 応用編 鍵をかける はじめに 鍵をかけることの意味操作...
  • トップ
    このWikiについて BlackSheep-LSL@wikiはMakapu改めBlackSheep-LSL@SLMameの移転サイトです。 セカンドライフのスクリプト(LSL)について解説するwikiです。 特に「何かやってみたいのだけれども、何をどうしていいのか」わからない方に向けて、なるべく初歩的なところからLSLについて説明を試みています。 LSLの考え方や作り方を理解し、「面白いな~」と思った方がさらに高度なものを作り出すための足がかりにでもなれば幸いです。 なお、掲載しているスクリプトや情報については、素人仕事ですので、記述ミスや勘違いなどが無いとは言えません。 間違いに気づいた方はご指摘下さると助かります。 また、特に断りがない限りは掲載のコードはフリーのサンプルです。 自由に利用して実用化・商品化していただいて構いませんが、動作を保証するものではありませ...
  • リファレンス(イベント)
    イベント 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...
  • llGetParcelDetails
    llGetParcelDetails list llGetParcelDetails(vector pos, list details) posで示される位置の土地の情報を得る。 得られる情報は名称、説明、オーナーUUID、グループUUID、面積の5つ。 引数detailsには以下の値をリストにして指定する。 定数名 値 意味 文字長 戻り値の型 PARCEL_DETAILS_NAME 0 土地の名称 63 string PARCEL_DETAILS_DESC 1 土地の説明 127 string PARCEL_DETAILS_OWNER 2 土地オーナーのUUID (36) key PARCEL_DETAILS_GROUP 3 土地グループのUUID (36) key PARCEL_DETAILS_AREA 4 面積(sqm) (5)...
  • リファレンス(機能別)
    関数 関数アバター/オブジェクト系アバター グループ オブジェクト 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...
  • 土地系
    土地系 BAN 関数・イベント名 区分 概要 定義 llAddToLandBanList 関数 土地からアバターをBANする llAddToLandBanList(key agent, float hours) llAddToLandPassList 関数 土地の通行許可をアバターに与える llAddToLandPassList(key agent, float hours) llRemoveFromLandBanList 関数 BANリストから指定アバターを削除する llRemoveFromLandBanList(key avatar) llRemoveFromLandPassList 関数 通行許可リストから指定アバターを削除する llRemoveFromLandPassList(key avatar) 土地 関数・イベント名 区分 概要 定義 llEdgeOfWor...
  • モジュール化
    はじめに スクリプトのサイズ モジュール化の概念 モジュール化の手法 ドア・システム・スクリプト基本的なモジュール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...
  • エラー対応
    エラーが出る原因と対処方法についてまとめてみました。 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...
  • llCollisionFilter
    llCollisionFilter llCollisionFilter(string name, key id, integer accept) 衝突判定にフィルターを設定する。 フィルターとは、特定のアバターやオブジェクトの衝突判定を有効にしたり無効にしたりすることを言う。 引数name及びidにはフィルター対象となるアバター/オブジェクトの名前/UUIDを指定する。 引数acceptがTRUEの場合は衝突判定を有効とし、FALSEの場合は無効とする。 以下のようにすると"Miz Cremorne"の衝突判定を無効とし、無敵状態にする。 llCollisionFilter("Miz Cremorne", "xxxx...xxxxx", FALSE); (注:UUIDは適当に書いてあるので実際に...
  • ノートを使おう
    はじめに ノートカード読取の仕組みllGetNotecardLine関数 dataserverイベント 典型的なパターン ノートカード対応ベンダーllParseString2List関数 for文 今回の歩イント はじめに ベンダースクリプトの改良編です。 前回までで機能面は十分に満たすものを作りましたが、今回は使い勝手のよいものになるよう改造を施します。 改良点は商品データの管理の部分です。 前回までのスクリプトでは、商品データをリスト型変数に定義していましたが、この方法だと商品の追加や変更があったときにいちいちスクリプトを直さなければなりません。 そこで、商品データはSLのノートカードを使って管理するようにし、ノートカードを切り替えるだけで扱う商品を変えられるようなベンダーを考えます。 商品のデータに対して、そのデータを使ってアレコレ操作する仕組みを「ロ...
  • llRequestPermissions
    llRequestPermissions llRequestPermissions(key agent, integer perm) 引数agentで指定したUUIDのアバターに対して、引数permで指定したパーミッションの取得要求を出す。 パーミッション要求が出されると、アバターのクライアント上にパーミッションダイアログが表示され、許可もしくは不許可の回答を求められる。 アバターが回答するとrun_time_permissions?イベントが発生し、パーミッションが取得できたのか、それともできなかったかの判定を行うことができる。 引数permに指定可能な定数は以下の通り。 定数名 値 説明 使用可能になる関数 PERMISSION_DEBIT 2 スクリプトオーナーの所持金からの支払許可 llGiveMoney PERMISSION_TAKE_CONTROL...
  • llCeil
    llCeil integer llCeil(float val) 引数val以上の最も小さい整数を返す。 つまり小数以下を切り上げる。 llCeil(1.5) → 2 llCeil(0.1) → 1 llCeil(4.02) → 5 llCeil(2.82) → 3 小数以下の切り捨てにはllFloor、四捨五入にはllRoundを使う。 名前 コメント
  • rez!
    はじめに rezするllRezObject rezされるon_rez?(integer param) temp rezスクリプト 今回のポイント はじめに 初級者向けに説明すべきことはもはやほとんど残っていません(^^; もちろん、lslに関してはまだまだ膨大な機能があり、触れていない部分は多いのですが、あくまでも「初級」ということであれば、残っているのは今回扱うrezを含めて2、3の項目くらいかと思います。 ちなみに今まで一切触れてこなかった機能として、物理系のスクリプトがあります。 物理系のスクリプトとは、SL内の物理的なオブジェクトを扱うための関数群のことです。 例えば加速させたり、重力を無くしたり、コマのように回転する力を加えたりできるのですが、これらの関数についてはスクリプトの知識というよりはSL内物理学の知識が必要になってきますので、初級者向けの対象外と...
  • HUDを作ろう
    はじめに HUDのbuild ボタンのスクリプト ルートのスクリプト 今回のポイント はじめに prim間通信をもう少し練習するという意味で、今回はHUDを作ってみましょう。 HUDというのはヘッドアップディスプレイ (Head-Up Display)のことで、SLでは画面上に表示されるインターフェースのことを言います。 ミニマップなども広義の意味ではHUDになるのでしょうが、SLでは特にユーザーが独自に作ったインターフェースのことを指します。 日本人にとって馴染みのあるものは翻訳機などでしょうか。 チャットの自動英語翻訳を行ってくれるJ2Eは画面左中央に表示される半円型のHUDですね。 何のHUDを作ってもいいのですが、あんまり出回ってなくて、それでいて便利そうなものが良いですね・・・。 テレポート用HUDなどはどうでしょうか。 HUDのボタンにテレポート先...
  • llGetFreeMemory
    llGetFreeMemory integer llGetFreeMemory() スクリプトが使用可能な残りメモリ容量(単位byte)を返す。 各スクリプトが利用可能なメモリ容量は一律16Kbyteである。 このメモリ容量の中にはスクリプトのバイトコード、スタックメモリ、ヒープメモリが含まれる。 極々簡単に言ってしまうなら、スクリプトのバイトコードとはスクリプト本体のことであり、スタックメモリは関数の呼び出し時に使われる領域、ヒープは変数の格納領域である。 すなわち、以下のような事柄がメモリを消費する要因になる。 巨大なスクリプト  1スクリプト内に全ての処理を書くには限界がある。  スクリプトで実装する機能が膨大な場合はモジュール化(複数のスクリプトに分けてリンクメッセージ等でやり取りする方法)を考慮する。 関数のネスト  大量のユーザー...
  • 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はリモートロードのセキュリティ確保のために用意さ...
  • llParcelMediaCommandList
    llParcelMediaCommandList llParcelMediaCommandList(list command_list) 土地に設定可能なムービーメディアのコントロールを行う。 要するにQuickTime制御用の関数である。 この関数の実行には2秒かかる。 lslWikiに従い、土地にムービーを設置する手順から説明する。 1.土地を所有すること。自分に権限のある土地でなければムービーの設置はできない。 2.ムービー用テクスチャ(メディアテクスチャ)の設定。何でもいいが、ムービー再生画面となるテクスチャを用意する。このテクスチャを貼ったオブジェクト(の面)は全てムービー再生用画面になる。 3.再生するムービーのURLを設定。ムービーはインターネット上で閲覧可能な状態でなければSL内で再生できない。自分で作ったムービーであればレンタルHPスペー...
  • llGetPrimitiveParams
    llGetPrimitiveParams list llGetPrimitiveParams(list params) primの属性値を返す。 引数paramsには取得したい属性のリストを指定する。 戻り値は引数に指定した属性に応じたリスト型のデータとなる。 基本的に、buildツールを使って指定可能なprimの設定値は全てこの関数を使用して取得できる。 また、この関数の戻り値を使ってllSetPrimitiveParams?関数を実行すると、buildツールと同様にprimを編集することが可能である。 これはつまりbuildの自動化が実現できることを意味する。 鏡面コピースクリプトなどは、この関数を使ってコピー元のprimの属性値を取得し、必要なパラメータに鏡面変換をかけた後、llSetPrimitiveParams?関数でコピー後のprimを形成する。 ...
  • 回転について
    はじめに 回転を扱うプログラミングは、初めての人には少々敷居の高いものです。 何故なら回転は3Dグラフィックの知識がないと理解しにくく、例えばπ(パイ)とか三角関数のように、学校の数学で習うようなものではないからです。 まったく予備知識がない状態で回転の処理に取り組むのは、非常に難解なパズルに挑むのに似ています。 そう、例えばルービックキューブを独力で解ける人なら、回転プログラムも簡単に理解できるかもしれません(^^; ある程度LSLを使いこなしている人であっても、 「回転だけは・・・」 苦手意識を持っている人も少なくないくらいです。 私が受ける質問の中でも、回転関連のものはかなり多いです。 そんなわけで、ハッキリ言って回転は難しいです(^^; にもかかわらず回転を使わないといけない場面というのは非常に多いのです。 例えば単純なドアを作るのにも、回転は出てきま...
  • llParseString2List
    llParseString2List list llParseString2List(string src, list separators, list spacers) 文字列srcをseparators/spacersを区切りとしてリスト型データに展開する。 separatorsとspacersの違いは、区切り文字自体を結果のリストに含めるかどうかである。 separatorsは結果リストに含まれず、spacersは含まれる。 具体的に見るのが手っ取り早いと思うのでいくつか例を示す。 llParseString2List("A,B,C,D,E", [","], []); 結果 ["A","B","C","D","E"...
  • 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...
  • llGiveMoney
    llGiveMoney llGiveMoney(key destination, integer amount) destinationに指定したUUIDの相手にお金(amountL$)を渡す。 パーミッションPERMISSION_DEBITを取得しなければ使えない。 このパーミッションPERMISSION_DEBITはオブジェクトのオーナーでなければ取得できないため、実質的にオーナーから他のアバターへの支払のみが実行可能ということになる(他のアバターからお金を巻き上げるようなことはできない)。 詳細は以下の記事を参照のこと。 お金を扱う(初級スクリプト第十一回) 名前 ...
  • llSensorRemove
    llSensorRemove llSensorRemove() 稼動中のセンサーを停止する。 llSensorRepeat関数で継続作動しているセンサーを止めるときに使う。 名前 コメント
  • llListenRemove
    llListenRemove llListenRemove(integer number) ハンドルnumberのリッスンを終了させる(削除される)。 詳細は「聞き耳を立てる(初級スクリプト第七回)」を参照。 名前 コメント
  • お金を扱う
    はじめに buyとpaymoneyイベント 金返せ!llSetPayPrice関数 llGiveMoney関数 パーミッションllRequestPermissions関数 run_time_permissionsイベント アイテムの存在確認llGetInventoryType関数 ベンダースクリプト 今回のポイント はじめに ベンダー作成の続きです。 簡単なようでいて、意外に面倒なのがベンダーです(^^; やはりお金を扱うスクリプトですから、間違いのないような仕組みにしておかなければいけません・・・。 前回はタッチして商品の画像を切り替えるスクリプトを作りました。 今回はお金を受け取って商品を渡す部分に取り組みます。 そこまで出来ればベンダーとしては最低限のものにはなるでしょう。 buyとpay buildツールをいじっていて、オブジェクトをクリックした...
  • llRemoveInventory
    llRemoveInventory llRemoveInventory(string inventory) 引数inventoryで指定した名前のアイテムをオブジェクトインベントリ(コンテンツ)から削除する。 コンテンツ内に存在しないアイテムを指定した場合は、 Missing inventory item アイテム名 というお叱りを受ける。 スクリプトが自分自身を削除する自殺コードも可能で、 llRemoveInventory(llGetScriptName()); 一定の処理をした後に自動消滅するようなスクリプトは上記の1文を最後に実行しておけば良い。 名前 ...
  • llForceMouselook
    llForceMouselook llForceMouselook(integer mouselook) primに座ったアバターが強制的にマウスルックモードになるよう設定/設定解除する。 引数mouselookにTRUEを指定すると、そのprimに座ったアバターは強制的にマウスルックモードになる。 FALSEであればマウスルックモードにはならない(マウスルックモードの変更は行わない)。 すでに座っているアバターの視界をコントロールすることはできない。 座ったアバターをマウスルックモードにしたい場合は、あらかじめllForceMouselook(TRUE);を実行しておく必要がある。 一度この関数を使って強制マウスルックをONにした場合は、llForceMouselook(FALSE);を実行するまでその設定は有効である。 なお、この関数を使ったからといっ...
  • 何ができるの?
    はじめに スクリプトって何だ? スクリプトで何ができるのか はじめに 日本語によるスクリプトの解説記事が少ないという嘆きの声がしばしば聞こえてくるので、微力ながらスクリプトについて基本的なところから書いてみようと思います。 想定している読者は、スクリプトの知識が無い初心者さん。 加えて、プログラミングの知識も無いことを考慮しておくつもりです。 わかりやすく書けると良いのですが(^^; スクリプトって何だ? ワールド内に存在するほとんど全てのものをプレイヤーが製作するのがSLですが、一口に「ものづくり」と言っても、いくつかの分野があります。 一つには、建物や家具、置物、アクセサリーなどの小道具の製作。 これはprimというワールド内の物体を組み合わせることで形を作ります。 一般的にはbuildと呼ばれ、SLのモデリングツールに習熟することが必要な分野です...
  • @wiki全体から「基礎知識/Email」で調べる

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

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