BlackSheep-LSL@Wiki内検索 / 「基礎知識/アニメーション」で検索した結果

検索 :
  • 基礎知識/アイテム
    アニメーション? サウンド? テクスチャ? ランドマーク? スクリプト?
  • 基礎知識/アバター
    アバターとはSLユーザーが操作するキャラクターのことを指します。 広義にはSLユーザーやアカウントまでも含めて「アバター」という言葉を使うこともありますが、通常はSL画面に表示される人型(稀に人型ではないヤツもいますがw)のキャラクターのことを言います。 アバターは固有の名前を持っていますが、通常の場合LSLではUUIDで識別されます。 名前についてはファーストネーム(名前)とセカンドネーム(苗字)があり、ファーストネームのほうはユーザーが自由につけることができます。 セカンドネームはリンデンが用意したものの中から一つを選ぶようになっています。 ファーストネームが同じアバターというのは存在しますが、ファーストネーム+セカンドネームとなると必ず固有の名前になります。 UUID UUIDとは (Universal Unique IDentifier)の略で、SL内のあら...
  • 基礎知識
    基礎知識 LSLの基礎知識に関する記事をまとめてります。 LSLはプログラミング言語の一種ですので、理解を深めるためには一般的なプログラミングの基礎知識が不可欠です。 ここではLSLに限らずプログラミング全般に共通する概念の説明を含む場合があります。 Ⅰ.スクリプトとは? 「スクリプト」の意味 台本とスクリプト台本との違い まとめ Ⅰ-1.LSLの構成要素は? LSLを構成する3つの要素状態 きっかけ 処理 3つの要素の書き方 まとめ Ⅰ-2.処理とは? 処理はキモコンピュータが理解できるもの Ⅰ-2-A.変数とは? 変数変数の種類 変数の用意 変数の中身 変数から変数へ まとめ Ⅰ-2-B.定数とは? 定数もう一つの「定数」 まとめ Ⅰ-2-C.演算子とは? 演算子基本演算 異なる型同士での演算 基本演算の応用 論理演算 論理演算の応用 Ⅰ...
  • 基礎知識/UUID
    UUIDとは (Universal Unique IDentifier)の略で、SL内のあらゆるものを識別するためのキーとして使われています。 日本語では「汎用一意識別子」という名前が付いていますが、何やら堅苦しいせいか使われているのを見たことがありません。 その名が示すとおり、UUIDとは本来SLに限ってのキーではなく、様々なものを識別するのに利用可能な汎用的な仕様です。 OSF(Open Software Foundation)というオープン仕様を色々策定している組織が定めています。 UUIDは128bitの数値(=32Byte=18446744073709551615)であり、この天文学的な数値がかぶることはほぼあり得ません。 さらに言うなら、このUUIDの生成方法も仕様で決められており、ベースとして時間を元にしています。 つまり作成時間が異なれば、異なるUUIDが...
  • 基礎知識/SL世界の法則
    ここではSLの世界に特有な法則や決まりごとについての解説を行います。 例えばSLの世界には物理法則が存在しますが、その法則はリアルワールドのものとは異なっています。 他にも、SLを構成するprimについての話やテクスチャやサウンドなど、随時追加予定です。 アバター/オブジェクト アバター UUID チャット? シット? パーミッション? アタッチメント? キーコントロール? UI? カメラ? グループ? プリム/オブジェクト 面? テクスチャ? 色/透明度? リンク? Rez? UUID アイテム コンテンツ/インベントリ? アイテム アニメーション? サウンド? テクスチャ? ランドマーク? スクリプト? ワールド 座標系 位置? 回転 SIM セキュリティ? 天候? 地面? 物理 エネルギー? 加速度? フォース? インパルス...
  • 基礎知識/プリム/オブジェクト
    面? テクスチャ? 色/透明度? リンク? Rez? UUID UUIDとは (Universal Unique IDentifier)の略で、SL内のあらゆるものを識別するためのキーとして使われています。 日本語では「汎用一意識別子」という名前が付いていますが、何やら堅苦しいせいか使われているのを見たことがありません。 その名が示すとおり、UUIDとは本来SLに限ってのキーではなく、様々なものを識別するのに利用可能な汎用的な仕様です。 OSF(Open Software Foundation)というオープン仕様を色々策定している組織が定めています。 UUIDは128bitの数値(=32Byte=18446744073709551615)であり、この天文学的な数値がかぶることはほぼあり得ません。 さらに言うなら、このUUIDの生成方法も仕...
  • アニメさせよう
    はじめに アニメーションのデータ アニメーションの再生・停止踊るのは誰か アニメーション実行までの流れ 停止するために アニメーションスクリプト 今回のポイント はじめに 十三回もやってんのかって感じのLSL講座です(^^; 振り返ってみてみると、脱初級者までの道のりは、もうそれほど遠くはありませんね。 「ステート」「イベント」「処理」の三段構成を押さえ、最も多様性のあるイベントlistenも扱ったし、便利なダイアログも出てきたし。 パーミッションが少々モヤモヤ感がありますが、今回のアニメーションLSLでもパーミッションと格闘することになりますので、より理解が進むかと思います。 というわけで、今回は特にパーミッションに焦点をあてながら、アニメーションを扱うLSLについて見ていくことにしましょう。 アニメーションのデータ LSLからアニメーションを扱うには、...
  • 基礎知識/関数とは?
    関数 一般的に関数と言うと、 y = ax + b こんなのを思い出すかと思います。 中学校あたりの数学で出てくる「一次関数」というヤツですね。 これ、要するにxの値が変わると、それに関連してyの値も変わることから、「関数」と言われるんですね。 この数学用語を英語で言うと「function(ファンクション)」です。 ファンクションの意味を『新英和中辞典 第6版 (研究社)』で調べてみると、 1 機能,働き,作用,目的 2-a 職務,職能,職分,役目 b 【文法】 機能 3-a 儀式,行事; 祭典,祝典 b 《口語》 (規模の大きい)社交的会合,宴会 4-a 他のものに関連して変化するもの 《性質・事実など》, 相関関係 b 【数】 関数 こんなんが出てくるわけです。 最近のプログラムで“ファンクション”と言うと...
  • 基礎知識/変数とは?
    変数 「変数」とは、しばしばプログラミング解説書では「データを入れておく箱のようなもの」と説明されます。 プログラミングに特有の概念ですので、今までプログラムなんて見たことも聞いたことも食べたこともない人にとっては意味不明な存在でしょう。 まずは喩えを使って簡単に変数について説明してみたいと思います。 子供にお使いを頼むことを考えてみて下さい。 「肉屋さんへ行って、このメモに書いてあるものを買ってきて」 こんな指示を出したとしましょう。このときの「メモ」というのが変数に当たります。 メモには、「ひき肉」と書いてあるかもしれないし、「レバ刺し」と書いてあるかもしれません。 意表をついて「カボチャ」とか書いてある可能性だってあります・・・。 同じメモでも、書いてある内容によっていろいろと意味が変わってくるように、変数というのは中にいろいろなデータを書...
  • 基礎知識/物理
    エネルギー? 加速度? フォース? インパルス? 質量?
  • 基礎知識/処理とは?
    処理はキモ LSLを台本に喩えるならば、「処理」の部分というのは「台詞」や「動作」にあたります。 これって台本の肝となる部分ですよね。 「処理」もLSLの肝と言って差し支えない部分です。 もしも「処理」がなかったら、そのLSLは「何もしない」のですから、LSLを書く意味がまったくなくなってしまいます。 また、台本に書かれた台詞や動作によってドラマや映画の良し悪しが変わってくるように、「処理」に書かれている内容はLSLの出来を大きく左右します。 どんなに優れた俳優さんであろうと、台本がボロボロだったらその能力を発揮できません。 コンピュータは優れた能力を持っていますが、「処理」の部分が間違っていれば正しく動いてはくれません。 さらにやっかいなことには、コンピュータというのは人間ほど機転が利きません。 俳優であれば、細かな指示を与えなくても、前後のストーリ...
  • 基礎知識/SIM
    セキュリティ? 天候? 地面?
  • 基礎知識/座標系
    位置? 回転 はじめに rotation型 vector型 vectorとrotation間の変換 回転の向きについて rotationの合成 回転の合成順序 グローバル座標系とローカル座標系 リンクプリムの回転
  • 基礎知識/定数とは?
    定数 「変数」というのは中身の値が変わるものでしたが、中身の変わらないものもあります。 それを「定数」と言います。 変数には自由な名前を付けることができるのに対し、定数はあらかじめ名前が決まっています。 例えば、「PI」という名前の定数があるのですが、この定数の実態は、 3.1415926535897932384626433832795 という小数値です。 これって要するに円周率です。 セカンドライフは3Dの仮想世界ですので、回転等の計算をするときにはしばしば円周率が登場します。 円周率が出てくるたびに、「3.141592653589…..」と数値を書くのは非常に面倒ですし、入力を間違える可能性もあります。 ですので、親切なリンデン社の誰かが、 「PIと書いたら3.1415926535897932384626433832795のことにするね...
  • 基礎知識/演算子とは?
    演算子 まず最も基本的な演算子「=」について説明します。 「=」は「変数に代入する」という意味です。 つまり、 integer i = 100; というのは 「iに」・・・何に 「100を」・・・何を 「代入する」・・・どうする という処理になります。 「何に」「何を」という部分は変数もしくは定数になります。 「i」は整数型の変数ですし、「100」は値を直接指定した定数です。 「どうする」の部分が「=」ですが、「代入する」のように変数や定数を扱うための記号のことを「演算子(えんざんし)」と言います。 「=」は「代入演算子」と言い、「左側の変数に右側の変数の値または定数を代入」する演算子です。 単純な代入については変数のときにいくつか見てきましたので、少し応用した形をやってみましょう。 以下のような場合はどうなるでしょうか。 ...
  • 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...
  • 何ができるの?
    はじめに スクリプトって何だ? スクリプトで何ができるのか はじめに 日本語によるスクリプトの解説記事が少ないという嘆きの声がしばしば聞こえてくるので、微力ながらスクリプトについて基本的なところから書いてみようと思います。 想定している読者は、スクリプトの知識が無い初心者さん。 加えて、プログラミングの知識も無いことを考慮しておくつもりです。 わかりやすく書けると良いのですが(^^; スクリプトって何だ? ワールド内に存在するほとんど全てのものをプレイヤーが製作するのがSLですが、一口に「ものづくり」と言っても、いくつかの分野があります。 一つには、建物や家具、置物、アクセサリーなどの小道具の製作。 これはprimというワールド内の物体を組み合わせることで形を作ります。 一般的にはbuildと呼ばれ、SLのモデリングツールに習熟することが必要な分野です...
  • 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...
  • ポーズボール
    はじめに 座ったときのイベントchangedイベント llAvatarOnSitTarget関数 ポーズボールスクリプト ボールの透明化llSetAlpha関数 今回のポイント はじめに 引き続いてアニメーションのスクリプトです。 前回は単にタッチするとアニメーションするだけのスクリプトでしたが、これではいまひとつ実用性がありません。 アニメーションが最もよく利用されているのはポーズボールでしょう。 SLで遊んだ人なら誰もが一度は見たことがあると思います。 しばしば木陰とかベッドの上に置いてある、赤と青のボール。 あれですw クラブのフロアや、バーのストゥールなんかにも置いてあるところがあります。 これらのボールは、アバターが座ったときに特定のアニメーションを実行するものです。 座ったときのイベント スクリプトの構成はすぐに予想がつくかと思いま...
  • llGetPermissionsKey
    llGetPermissionsKey key llGetPermissionsKey() 現在取得しているパーミッションの対象者UUIDを返す。 戻り値は誰に対するパーミッションを取得しているかを示すUUIDである。 llGetPermissions関数を使用すると現在取得しているパーミッションを得ることができるが、例えばアニメーション実行権限を得ているからと言って、その権限が誰に対して有効なのかはわからない。 パーミッションは直前に呼び出されたllRequestPermissions関数で指定したアバターに対しての権限である。 例えばタッチしたときにアニメーションを実行するような仕組みを考えたとき、アニメーションのパーミッションが正しく取得されているかどうかを調べるには、タッチした人に対するパーミッションを保持しているかどうか以下のようにして判定する。 ...
  • 基礎知識/スクリプトとは?
    「スクリプト」の意味 スクリプトという言葉は、日常生活の中ではまず耳にすることが無いかと思います。 英語で書くとscriptですが、まずはこの単語の意味から調べてみることにします。もし英和辞書をお持ちでしたら引いてみて下さい。何と書かれているでしょうか? 辞書が手元にない方のために、私が調べた答えを載せますが、 演劇や映画、ラジオ、テレビなどの台本。脚本。 これがscriptの意味です。 台本とスクリプト 台本や脚本というと、場面に応じた動きや台詞が書かれたものです。 シーン1、魚屋・昼下がり  魚屋が手に鯖を持って笑顔で店頭に立っている。  魚屋「らっしゃい、らっしゃい」  カメラ:上方向にPAN  魚屋の屋根の上に不適な面構えの猫が仁王立ちになっている。  猫、忍者のように屋根を駆け下りる。  魚屋、猫の気配に屋根を見...
  • 基礎知識/フロー制御とは?
    フロー制御 フロー制御というのは、条件によって実行するコードを変えたり、繰り返し処理を行ったりするものを言います。 プログラムの処理の流れ(フロー)をコントロールするものなので、「フロー制御」と呼ばれます。 まずはフロー制御の種類を挙げておきます。 フロー制御 説明 if-else 条件分岐。条件に応じて実行するコードを変える。 whle ループ処理。条件を満たす間延々と繰り返し処理を行う。 do-while ループ処理。処理を行った後、条件を満たす場合は繰り返す。 for ループ処理。条件を変化させながら繰り返し処理を行う。 return 復帰(リターン)。ユーザー関数やイベントを終了する。 jump ジャンプ。指定したコードの行に処理を飛ばす。 state ステート。LSLのステートを変更する。 if-else フロー制御の中でも最も使用頻度が高いのがif...
  • 特殊効果系
    特殊効果系 アニメーション 関数・イベント名 区分 概要 定義 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 関数 サウンドのボリュー...
  • スクリプト初級
    初級スクリプト LSLに初めて触れる人向けに、なるべく実用的な例を挙げながら作り方を解説した記事です。 簡単なものから複雑なものへと進んでいきますので、最初から順に参照して下さい。 何ができるの?・・・LSLとは何か スクリプトの構成・・・ステート、イベント、処理について 初!スクリプト・・・初めてのLSL作成 椅子を作ろう・・・座れるオブジェクトの作り方 ドアを作ろう・・・タッチで開くドアの作り方 照明を作ろう・・・タッチで灯る照明の作り方 聞き耳を立てる・・・リッスンの使い方 ダイアログを使おう・・・ダイアログの使い方 看板を作ろう・・・様々な看板の作り方 ベンダーを作ろう・・・テクスチャの切り替え方法 お金を扱う・・・お金のやり取りをする方法 ノートを使おう・・・ノートカードからデータを読み込む方法 アニメさせよう・・・アニメーションの使い方 ポーズボール・・・座るとアニ...
  • 看板を作ろう
    はじめに フローティングテキストllSetText関数 回転看板llTargetOmega関数 アニメーション看板llSetTextureAnim関数 地図看板llSetTouchText関数 llMapDestination関数 ランドマーク看板llGiveInventoryList関数 まとめ はじめに 第六回~第八回は初級スクリプトの最初の山場でした。 へヴィな内容が続きましたので、今回はちょっと息抜き的に、しかしながら実用的なスクリプトを作ってみたいと思います。 SLで店をやるという人は多いでしょう。 そして商品の販売用や、宣伝のために、看板を作りたいという人もいるかと思います。 綺麗なテクスチャさえ用意すれば、それなりの看板を作ることができますが、この記事は一応スクリプトの勉強ですのでw、スクリプトを使った動きのある看板に挑戦してみましょう。 照明...
  • 基礎知識/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 最近の更新 取得中です。 訪問者: -
  • llRequestPermissions
    llRequestPermissions llRequestPermissions(key agent, integer perm) 引数agentで指定したUUIDのアバターに対して、引数permで指定したパーミッションの取得要求を出す。 パーミッション要求が出されると、アバターのクライアント上にパーミッションダイアログが表示され、許可もしくは不許可の回答を求められる。 アバターが回答するとrun_time_permissions?イベントが発生し、パーミッションが取得できたのか、それともできなかったかの判定を行うことができる。 引数permに指定可能な定数は以下の通り。 定数名 値 説明 使用可能になる関数 PERMISSION_DEBIT 2 スクリプトオーナーの所持金からの支払許可 llGiveMoney PERMISSION_TAKE_CONTROL...
  • お金を扱う
    はじめに buyとpaymoneyイベント 金返せ!llSetPayPrice関数 llGiveMoney関数 パーミッションllRequestPermissions関数 run_time_permissionsイベント アイテムの存在確認llGetInventoryType関数 ベンダースクリプト 今回のポイント はじめに ベンダー作成の続きです。 簡単なようでいて、意外に面倒なのがベンダーです(^^; やはりお金を扱うスクリプトですから、間違いのないような仕組みにしておかなければいけません・・・。 前回はタッチして商品の画像を切り替えるスクリプトを作りました。 今回はお金を受け取って商品を渡す部分に取り組みます。 そこまで出来ればベンダーとしては最低限のものにはなるでしょう。 buyとpay buildツールをいじっていて、オブジェクトをクリックした...
  • 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...
  • ステートのこと
    はじめに ステートの復習 ステートの使いどころ ステートとグローバル変数グローバル変数 ステートの注意点 今回のポイント はじめに 今回はスクリプトの構成について少し突っ込んだ話をします。 具体的に実用性のあるスクリプトは出てきませんが、自分で1からスクリプトを書こうというとき、構成をどうするか考える際の参考にしていただければと思います。 このwikiの記事では、最初の頃にスクリプトの構成について触れました。 「ステート」「イベント」「処理」の3つの要素で成り立っているという話です。 私はこの3つがスクリプトの基本要素であると説明し、スクリプトを書く際には作ろうとしている機能がどんな「ステート」「イベント」「処理」になるのか意識すると良いと書いてきましたが、実際には「ステート」がどんな時に登場するのか、いまひとつハッキリしないという方もいらっしゃるのではないで...
  • llGetPermissions
    llGetPermissions integer llGetPermissions() 現在取得しているパーミッションを得る。 戻り値はビットフィールドになっているので以下の定数を使って&演算を行い、必要なパーミッションが取得されているかどうかをチェックする。 定数名 説明 対応する関数 PERMISSION_DEBIT L$の支払い権限 llGiveMoney PERMISSION_TAKE_CONTROLS キー操作取得の権限 llTakeControls?、llReleaseControls PERMISSION_TRIGGER_ANIMATION アニメーション実行権限 llStartAnimation?、llStopAnimation? PERMISSION_ATTACH アタッチ制御権限 llAttachToAvatar、llDetachFromAv...
  • 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...
  • 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...
  • llPreloadSound
    llPreloadSound llPreloadSound(string sound) 引数soundで指定されたサウンドをプレロード(再生準備)する。 あくまでもサウンドを準備するだけであって再生は行われない。 サウンドがオブジェクトコンテンツ内にあれば引数soundは名前を使って指定可能。 コンテンツにないならUUIDを指定する。 この関数の実行には1秒かかる。 詳細な仕組みは知らないが、SLにおいてサウンドを耳にする場合、クライアントはサウンドデータをダウンロードしてくることになる。 これは裏方作業なので、ユーザーが通常意識することはない。 一つのサウンドが10秒までに制限されているのは、クライアントがサウンドをダウンロードする際の時間が比較的短時間で済むという理由もあるだろう。 しかしながら、10秒に制限されているとは言ってもサウンドデー...
  • デモ商品を作ろう
    はじめに デモ用商品の仕組み アタッチの制御llDetachFromAvatar(); attach?(key attached) llDie(); デモ商品用スクリプト 今回のポイント はじめに 今回はデモ用の商品を作る方法について書こうと思います。 デモ用とは、例えば一定期間のみ使用可能なもの、特定回数使ったら使えなくなるようなサンプル商品です。 当然ながら、スクリプトを使って制御をしますので、スクリプトが組み込めない商品(スキン・服・テクスチャ・アニメーションなど)に関してはここで解説する方法は使えません。 スクリプトが組み込める商品であれば、どんなものにも応用は利きますが、今回は特にアタッチメントについて見ていきます。 というのも、アタッチを制御するスクリプトについて今まで説明していないからです(^^; デモ用商品のスクリプトを通して、スクリプトによ...
  • 属性系
    属性系 面 関数・イベント名 区分 概要 定義 llGetNumberOfSides 関数 primの面数を得る integer llGetNumberOfSides() テクスチャ 関数・イベント名 区分 概要 定義 llGetTexture 関数 指定面のテクスチャーを得る string llGetTexture(integer side) llGetTextureOffset 関数 テクスチャーのオフセット値を得る vector llGetTextureOffset(integer side) llGetTextureRot 関数 テクスチャーの回転角度を得る float llGetTextureRot(integer side) llGetTextureScale 関数 テクスチャーのサイズを得る vector llGetTextureScale(integer side...
  • トップ
    このWikiについて BlackSheep-LSL@wikiはMakapu改めBlackSheep-LSL@SLMameの移転サイトです。 セカンドライフのスクリプト(LSL)について解説するwikiです。 特に「何かやってみたいのだけれども、何をどうしていいのか」わからない方に向けて、なるべく初歩的なところからLSLについて説明を試みています。 LSLの考え方や作り方を理解し、「面白いな~」と思った方がさらに高度なものを作り出すための足がかりにでもなれば幸いです。 なお、掲載しているスクリプトや情報については、素人仕事ですので、記述ミスや勘違いなどが無いとは言えません。 間違いに気づいた方はご指摘下さると助かります。 また、特に断りがない限りは掲載のコードはフリーのサンプルです。 自由に利用して実用化・商品化していただいて構いませんが、動作を保証するものではありませ...
  • リファレンス(機能別)
    関数 関数アバター/オブジェクト系アバター グループ オブジェクト 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...
  • 高度なカメラ制御
    はじめに カメラ制御とはポジション フォーカス ロック ディスタンス ピッチ ビハインドネス ラグ スレッショルド カメラ制御の関数llSetCameraParams関数 llClearCameraParams関数 llReleaseCamera関数 カメラ制御スクリプト俯瞰カメラ 固定追尾カメラ 完全固定カメラ カメラの動的制御 はじめに 「初級スクリプト」でカメラ制御について簡単な方法は紹介したのですが、さらに踏み込んだカメラ制御について書いておこうと思います。 高度なカメラ制御を使うと、一定の場所にカメラを固定するだけではなく、例えばアバターの周囲をぐるぐると回転させたり、俯瞰視点にしてみたり、はたまたカメラを固定してアバターが自由に歩き回れるようなものなど、面白い見せ方がいろいろとできます。 こうしたスクリプトは動画作成や乗り物、ライドなどに応用することができます。 ...
  • 音を鳴らそう
    はじめに サウンドを扱う関数 音の出るドア ループサウンド 今回のポイント はじめに 今回のスクリプトは簡単です。 サウンドの再生についてはもっと早くに取り上げるべきでしたが、ついつい後回しになってしまいました(^^; オブジェクトにちょっとした音を組み込むことは、簡単なわりに効果的です。 例えば照明のON/OFFをするときにスイッチ音を付けたり、アニメーションと一緒に効果音を付けたりするだけで、よりリアルで面白いものを実現することができます。 基本的にはスクリプトで実現できる音とは、効果音のことだと思ってください。 BGMのような長いサウンドを鳴らすことは容易ではありません。 というのも、SLにアップロード可能なサウンドは10秒以内に限られているためです。 今回は簡単な例として、以前作ったドアのスクリプトに、開閉の音を組み込んでみたいと思います。 ...
  • ノートを使おう
    はじめに ノートカード読取の仕組みllGetNotecardLine関数 dataserverイベント 典型的なパターン ノートカード対応ベンダーllParseString2List関数 for文 今回の歩イント はじめに ベンダースクリプトの改良編です。 前回までで機能面は十分に満たすものを作りましたが、今回は使い勝手のよいものになるよう改造を施します。 改良点は商品データの管理の部分です。 前回までのスクリプトでは、商品データをリスト型変数に定義していましたが、この方法だと商品の追加や変更があったときにいちいちスクリプトを直さなければなりません。 そこで、商品データはSLのノートカードを使って管理するようにし、ノートカードを切り替えるだけで扱う商品を変えられるようなベンダーを考えます。 商品のデータに対して、そのデータを使ってアレコレ操作する仕組みを「ロ...
  • スクリプト小技
    LSLの常套手段やちょっと気の利いた使い方、特殊な関数など、tipsのような記事です。 基本的にLSLの基礎がわかっている方向けの内容になっています。 回転について(記述中) はじめに rotation型 vector型 vectorとrotation間の変換 回転の向きについて rotationの合成 回転の合成順序 グローバル座標系とローカル座標系 リンクプリムの回転 テレポート テレポートハック 移動型テレポーター LSLで日本語を使う はじめに listenによる入力 URLエスケープの使用 その他の方法 パーティクル パーティクルとは パーティクル関数(llParticleSystem関数) パーティクルモジュールパラメータの説明マスク・パラメータ パターン・パラメータ その他詳細パラメータ 応用編 鍵をかける はじめに 鍵をかけることの意味操作...
  • 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...
  • モジュール化
    はじめに スクリプトのサイズ モジュール化の概念 モジュール化の手法 ドア・システム・スクリプト基本的なモジュール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...
  • llCSV2List
    llCSV2List list llCSV2List(string src) CSV形式の文字列をリスト型に変換する。 CSVとはComma Separated Valuesの略で、Excel好きな方にはお馴染みのアレである。 つまりカンマ区切りの文字列をリストに変換する関数である。 ただし変換された要素は全て文字列型になることに注意。 "a","b","c","d" → ["a","b","c","d"] 1,2,4,8 → ["1","2","4","8"] 1,2,3 , 4,5,6 , 7,8,9 → [&qu...
  • llSetCameraParams
    llSetCameraParams llSetCameraParams(list rules) カメラを制御する。 制御用のパラメータはリスト変数に格納して引数rulesとして渡す。 引数rulesは以下の形式のリストでなければならない。 [パラメータ定数1, 値1, パラメータ定数2, 値2, . . . ] llSetCameraParams関数を使うには、カメラ制御パーミッションを取得していなければならない。 カメラ制御パーミッションは定数PERMISSION_CONTROL_CAMERAで定義されており、以下のようにして取得要求を出す。 llRequestPermissions(id, PERMISSION_CONTROL_CAMERA); 変数idはカメラ制御を行うアバターのUUIDである。 引数rulesに指定できるパラメータ定数と値...
  • テレポート
    テレポートハック 移動型テレポーター テレポートハック 初心者さん向けのスクリプト解説記事を書いたところ、 「んなことはわかってる!もっと役に立つことを書かんかい!」 というお叱りを受けたので(笑)、ある程度スクリプトのことはわかっている人向けに、スクリプトの小技を紹介するカテゴリを設けました。 まずは有名どころから。 「テレポートハック」と呼ばれるスクリプトです。 最初にスクリプトコードを載せておきます。 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 ...
  • LSLで日本語を使う
    はじめに listenによる入力 URLエスケープの使用 その他の方法 はじめに 2007年4月現在、スクリプトやノートカードの日本語対応は十分とは言えません。 スクリプトのコード内やノートカードに日本語を書くと化けてしまい、llSayで発言させたり、llSetTextで表示したりすることができません。 しかしながら、日本人街などにおいては日本語を使ったメッセージを表示させたいという要望はしばしばあり、苦労している方もいらっしゃるのではないでしょうか。 スクリプトで日本語を扱う方法はいくつかありますが、基本的なものを紹介しておきます。 listenによる入力 直接スクリプトエディタに入力すると化けてしまう日本語ですが、実はlistenで正しく入力することができます。 以下のような単純なエコースクリプトで試してみて下さい。 01 default { 0...
  • @wiki全体から「基礎知識/アニメーション」で調べる

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

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