2007年11月12日
アニメ/回転/座る/テレポート(LSL リファレンス)
名称 | 種別 | 内容 |
llStartAnimation | 関数 | アバターにアニメーションを実行させる。 |
llStopAnimation | 関数 | 実行中のアニメーションをストップする。 |
llGetAnimationList | 関数 | アバターが実行中のアニメーションのUUIDを返す。 |
llTargetOmega | 関数 | オブジェクトを回転させる。 |
llAvatarOnSitTarget | 関数 | 座っているアバターのUUIDを返す。 |
llSitTarget | 関数 | アバターの座る位置を指定する。 |
llUnSit | 関数 | 座っているアバターを立たせる。 |
llMapDestination | 関数 | テレポートマップを表示する。 |
llTeleportAgentHome | 関数 | オーナーの土地にいるアバターを強制的にホームにテレポートする。 |
llStartAnimation <機能> アバターにアニメーションを実行させる。 ・実行には、PERMISSION_TRIGGER_ANIMATION の権限が必要。 ・アニメーションは、スクリプトと同じコンテンツ内に置いていなければならない。 ・複数のアニメーションを同時に実行させることが可能。 ・アニメーションをストップするには、llStopAnimationを実行する。 <構文> llStartAnimation(string anim) * anim : アニメーション名称を指定する。 <例> // オーナーに"Dance"というアニメーションを実行させる。 default { state_entry() { llRequestPermissions(llGetOwner(),PERMISSION_TRIGGER_ANIMATION); } run_time_permissions(integer perm){ if(perm & PERMISSION_TRIGGER_ANIMATION){ llStartAnimation("Dance"); } } } ページ先頭へ
llStopAnimation <機能> 実行中のアニメーションをストップする。 ・実行には、PERMISSION_TRIGGER_ANIMATION の権限が必要。 <構文> llStopAnimation(string anim) * anim : アニメーションの名称またはUUIDを指定する。 <例> // "Dance"というアニメーションを停止する。 llStopAnimation("Dance"); // アバターが実行中のすべてのアニメーションを停止する。 list anims = llGetAnimationList(llGetPermissionsKey()); integer aminct = llGetListLength(anims); integer i; for (i = 0; i < aminct; i++){ llStopAnimation(llList2Key(anims, i)); } ページ先頭へ
llGetAnimationList <機能> アバターが実行中のアニメーションのUUIDを返す。 結果は、リスト型で返る。ストリング型でないのは、アバターは複数のアニメを同時 に実行することが可能であるからである。複数のアニメーションを実行している場合 は、実行している全てのアニメーションのUUIDを返す。 <構文> list llGetAnimationList(key id) * id : アバターのUUIDを指定する。 <例> // アバターが実行中のすべてのアニメーションの名称を表示する。 list anims = llGetAnimationList(llGetPermissionsKey()); integer aminct = llGetListLength(anims); integer i; for (i = 0; i < aminct; i++){ llOwnerSay(llKey2Name(llList2Key(anims, i))); } ページ先頭へ
llTargetOmega <機能> オブジェクトを回転させる。 <構文> llTargetOmega(vector axis, float spinrate, float gain) * axis : 回転軸<x軸,y軸,z軸>を指定する。 * spinrate : 回転速度を指定する。数値が大きいほど高速。TWO_PI(6.283185)と指定すると毎秒1回転。 * gain : 回転の強さを指定する。物理オブジェクトのみ影響する。 <例> // Z軸を回転軸として毎秒1回転させる。 llTargetOmega(<0,0,1>,TWO_PI,1); ページ先頭へ
llAvatarOnSitTarget <機能> 座っているアバターのUUIDを返す。立ち上がった場合は、NULL_KEYを返す。 あらかじめllSitTargetを実行していなければならない。 <構文> key llAvatarOnSitTarget() <例> // 座っているアバターのUUIDを取得する。 default { state_entry() { llSitTarget(<0.0, 0.0, 0.1>, ZERO_ROTATION); } changed(integer change) { if (change & CHANGED_LINK) { key SitAvatarKey = llAvatarOnSitTarget(); } } } ページ先頭へ
llSitTarget <機能> アバターの座る位置を指定する。 <構文> llSitTarget(vector offset, rotation rot) * offset : 座る位置を相対座標で指定する。単位は、メートル。 * rot : 座る角度を指定する。 <例> // 座る位置をオブジェクトから高さ0.5mに指定する。 default { state_entry() { llSitTarget(<0.0, 0.0, 0.5>, ZERO_ROTATION); } } ページ先頭へ
llUnSit <機能> 座っているアバターを立たせる。 <構文> llUnSit(key id) * id : アバターのUUIDを指定する。 ページ先頭へ
llMapDestination <機能> テレポートマップを表示する。 ・このコマンドは、オブジェクトがアタッチされているかまたは、タッチイベントの中でしか実行されない。 <構文> llMapDestination(string sim_name, vector position, vector lookat) * sim_name : テレポート先のSIM名を指定する。 * position : テレポート先のグローバル座標を指定する。Z座標は、0〜1000mの制限あり。 * lookat : 現在使用されていない。とりあえずZERO_VECTORを指定。 <例> // オブジェクトをタッチしてテレポートマップを表示する。 string sim_name="JapanResort"; vector pos=<100,100,20> default { touch_start(integer a) { llMapDestination(sim_name, pos, ZERO_VECTOR); } } ページ先頭へ
llTeleportAgentHome <機能> オーナーの土地にいるアバターを強制的にホームにテレポートする。 <構文> llTeleportAgentHome(key id) * id : アバターのUUIDを指定する。 <例> // オブジェクトにタッチしたアバターをホームにテレポートする。 default { state_entry() { llSetText("Don't touch me!", <1,0,0>, 5.0); } touch_start(integer total_number) { llTeleportAgentHome(llDetectedKey(0)); } } ページ先頭へ
2007年11月13日
アバター/コンテンツ情報取得(LSL リファレンス)
アバター系の関数/イベント
名称 | 種別 | 内容 |
llRequestAgentData | 関数 | アバターの情報を取得する。 |
llGetAgentInfo | 関数 | アバターの状態を返す。 |
llGetAgentSize | 関数 | アバターのサイズを返す。 |
llKey2Name | 関数 | UUIDから名称を返す。 |
名称 | 種別 | 内容 |
llGetInventoryKey | 関数 | コンテンツの中に存在するアイテムのUUIDを返す。 |
llGetInventoryNumber | 関数 | コンテンツの中に存在するアイテムの数を返す。 |
llGetInventoryName | 関数 | コンテンツの中に存在するアイテムの名称を返す。 |
llGetInventoryType | 関数 | コンテンツの中に存在するアイテムのタイプを返す。 |
llRequestAgentData <機能> アバターの情報を取得する。 dataserverイベントとペアで使用する。 <構文> key llRequestAgentData(key id, integer data) * id : 情報を取得するアバターのUUIDを指定する。 * data : 情報の種類を指定する。以下を参照。 [data定数]
Statistical data | Value | Description |
DATA_ONLINE | 1 | アバターがオンラインだとTRUE、オフラインだとFALSEを返す。 |
DATA_NAME | 2 | アバターの名称を返す。 |
DATA_BORN | 3 | アバターの生年月日をYYYY-MM-DDフォーマットで返す。 |
DATA_RATING | 4 | アバターの評価を返す。 |
DATA_PAYINFO | 8 | アバターの支払い状況を返す。 |
llGetAgentInfo <機能> アバターの状態を返す。 <構文> integer llGetAgentInfo(key id) * id : アバターのUUIDを指定する。 * 返り値:ビット値で返る。以下を参照。
Constant | Represents | Value |
AGENT_ALWAYS_RUN | 走っている。 | 0x1000 |
AGENT_ATTACHMENTS | アタッチしている。 | 0x0002 |
AGENT_AWAY | awayモードになっている。 | 0x0040 |
AGENT_BUSY | busyモードになっている。 | 0x0800 |
AGENT_CROUCHING | かがんでいる。 | 0x0400 |
AGENT_FLYING | 飛行している。 | 0x0001 |
AGENT_IN_AIR | 空中にいる。(飛行状態を除く) | 0x0100 |
AGENT_MOUSELOOK | マウスルックモードになっている。 | 0x0008 |
AGENT_ON_OBJECT | オブジェクトに座っている。 | 0x0020 |
AGENT_SCRIPTED | スクリプトを実行しているオブジェクトをアタッチしている。 | 0x0004 |
AGENT_SITTING | 座っている。 | 0x0010 |
AGENT_TYPING | タイプしている。 | 0x0200 |
AGENT_WALKING | 歩いている。 | 0x0080 |
llGetAgentSize <機能> アバターのサイズを返す。単位はメートル。 <構文> vector llGetAgentSize(key id) * id : アバターのUUIDを指定する。 * 返り値:<X(横幅),Y(奥行),Z(高さ)>のベクター値。 <例> //タッチしたら身長を表示する。 default { touch_start(integer num_detected) { vector size; size = llGetAgentSize(llDetectedKey(0)); llSay(0, "You are " (string)size.z "m tall."); } } ページ先頭へ
llKey2Name <機能> UUIDから名称を返す。 * アバターの名称を得るためには、そのアバターが同SIM内に存在していなければならない。 <構文> string llKey2Name(key id) * id : アバターまたはオブジェクトのUUIDを指定する。 <例> // オーナーの名称を表示する。 llSay(0,llKey2Name(llGetOwner())); ページ先頭へ
llGetInventoryKey <機能> コンテンツの中に存在するアイテムのUUIDを返す。 * 存在しない場合は、NULL_KEYを返す。 * オーナーがそのアイテムに対して、権限(編集、コピー譲渡)を持っていないときは、NULL_KEYを返す。 <構文> key llGetInventoryKey(string name) * name : アイテムの名称を指定する。 ページ先頭へ
llGetInventoryNumber <機能> コンテンツの中に存在するアイテムの数を返す。 <構文> integer llGetInventoryNumber(integer type) * type : タイプを指定する。type定数参照。 [type定数]
type | Value | Description |
INVENTORY_ALL | -1 | 全て |
INVENTORY_TEXTURE | 0 | テクスチャ |
INVENTORY_SOUND | 1 | サウンド |
INVENTORY_LANDMARK | 3 | ランドマーク |
INVENTORY_CLOTHING | 5 | 服 |
INVENTORY_OBJECT | 6 | オブジェクト |
INVENTORY_NOTECARD | 7 | ノートカード |
INVENTORY_SCRIPT | 10 | スクリプト |
INVENTORY_BODYPART | 13 | ボディーパーツ |
INVENTORY_ANIMATION | 20 | アニメーション |
INVENTORY_GESTURE | 21 | ジェスチャ |
llGetInventoryName <機能> コンテンツの中に存在するアイテムの名称を返す。 <構文> llGetInventoryName(integer type, integer number) * type : タイプを指定する。type定数参照。 * number : アイテムのナンバーを指定する。全アイテム中のナンバーではなく、指定アイテム中のナンバーを指す。 ナンバーは、名称のアルファベット順に自動で割り振られる。0から始まるので注意。 <例> // コンテンツの中に存在するノートカードの名称を表示する。 llSay(0, "I have a notecard named " + llGetInventoryName(INVENTORY_NOTECARD, 0) + " in my contents."); ページ先頭へ
llGetInventoryType <機能> コンテンツの中に存在するアイテムのタイプを返す。 <構文> integer llGetInventoryType(string name) * name : アイテムの名称を指定する。 * 返り値 : type定数参照。 ページ先頭へ
2007年11月17日
海が超リアルです。
P&Pオーナーのプラちんとだべっていたら、WindLight なるビューアがあることを 教えてもらいました。さっそくインストールして試してみるとかなりすごいw 海がチョーリアルなんですけどww思わずSS撮っちゃいました。 ソフトはここでダウンロードできます。 WindLight(リンデンラボ公式サイト) オリジナルのビューアは、上書きされないのでオリジナルのビューワと使い分けできます。 デフォルトでは、クオリティは低になっているので、「環境設定」→「表示」→ 「Quality and Performance」をUltraにしましょう。ちなみにUltraはかなりおもおもですw プラちんと俺(P&P前にて)昼の俺(ちょっと不細工w)
夜の俺
* WEB用に画質は落としています。そのままだとかなりおもおもなので。