LlLinkSitTarget/ja
		
		
		
		
		
		Jump to navigation
		Jump to search
		
  
Search JIRA for related Issues
    
		
	
| LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル | 
要約
関数: llLinkSitTarget( integer link, vector offset, rotation rot );仕様
llLinkSitTarget はエージェントターゲット (Advanced -> Character -> View Agent Target) の位置を設定します。このターゲットの位置は rot と offset に基づいています[1]。
| 
 | 
 | ||||||||||||
警告
- link は実際に存在する リンク番号 か、LINK_ROOT や LINK_THIS のような、単体プリムでも同じように扱えるリンク定数である必要があります。
- LINK_SET, LINK_ALL_CHILDREN, LINK_ALL_OTHERS では動作しません。
 
- いったん着座ポイントが除去されると、 llAvatarOnSitTarget は常に NULL_KEY を返すようになります。
- 着座ポイントを設定したスクリプトを削除したり停止したりしても、プリムの着座ポイントは削除されません。
- 着座ポイントはプリムのプロパティであり、スクリプトが存在しつづけなければならないものではありません。
 
- 着座ポイントを削除するには、次のようにします:
<lsl>llSitTarget(ZERO_VECTOR,ZERO_ROTATION);</lsl>
- パイメニューから「ここに座る」オプションを除去する方法はありません。llSetSitText に " " 空白や、その他見えない文字を llSetSitText に設定すると、削除されたように見えることになります。
- アタッチメントの上に座ることはできません。(この点に投票するならSVC-6100を観てください)
- rot は着座ポイントの位置に不条理に影響します[2]。rotバグを修正するには、rotがゼロの場合、着座位置から<0,0,0.4>を引いてください。例はllSitTargetを観てください。
- llSetLinkPrimitiveParams が、手っ取り早い回避策です。
- アニメーションはエージェントターゲットに相対するものですが、エージェントターゲットはアニメーションで表されるものではありません。
 
- llSitTarget は既に座っているアバターの位置を更新しません。着座ポイントを更新 で、この問題を回避できます。
- offset は各軸について 300.0 メートルまでに制限されています。 x, y, z 座標は [-300, 300.0] の範囲になければなりません[2]。
- 範囲外の場合、最も近い制限値に丸められます。
 
- オブジェクトに多数の座席(座席にそれぞれllSitTargetで着座位置を設定するスクリプトがあるか、リンクセットにいくつかのllLinkSitTargetsを割り当てるスクリプトがある)がある場合、アバターの着座位置を最終的に以下の方法で決定します:
- クリックしたプリムに着座位置が指定してあり、かつ満席でない場合はその着座位置を使います。
- クリックしたプリムに着座位置が指定してなく、他に着座位置が指定してあり、満席でないリンクされたプリムがある場合は、最も小さいリンク番号の着座位置が使われます。
 
サンプル
注意点
リンク番号
オブジェクトを構成するそれぞれのプリムにはアドレスがあります。それがリンク番号です。オブジェクトの特定のプリムにアクセスするには、そのプリムのリンク番号を知らなければなりません。リンク番号はプリムに振られますが、オブジェクトに座っているアバターにも振られます。
- オブジェクトが単一のプリムで構成されていて、アバターが座っていないとき、(ルート)プリムのリンク番号は 0 です。
- しかし、オブジェクトが複数のプリムで構成されていたり、オブジェクトに座っているアバターがいたりすると、ルートプリムのリンク番号は 1 となります。
アバターがオブジェクトに座ると、リンクセットの末尾に追加され、いちばん大きなリンク番号が振られることになります。さらに、アバターがオブジェクトに座っている場合、アバターを立たせないと、プリムのリンク・リンク解除ができません。
プリムやアバターの数え方
オブジェクトのプリムや、プリムに座っているアバターの数を調べるのに、2つの関数があります。
- llGetNumberOfPrims()- プリムと座っているアバターの数を返します。
- llGetObjectPrimCount(llGetKey())- オブジェクトのプリムの数だけを返しますが、アタッチメントとなっている場合は 0 を返します。
integer GetPrimCount() { //常にプリムの数だけを返します。
    if(llGetAttached())//装着されているか?
        return llGetNumberOfPrims();//アバターとプリムの数を返しますが、アタッチメントの上には座れないのでこれでいいです。
    return llGetObjectPrimCount(llGetKey());//プリムの数だけを返しますが、アタッチメントの場合ここは通りません。
}
関連項目
イベント
| • | changed | 
関数
| • | llGetLinkNumber | – | スクリプトが入っているプリムのリンク番号を取得します。 | |
| • | llSitTarget | |||
| • | llSetSitText | |||
| • | llAvatarOnSitTarget | |||
| • | llAvatarOnLinkSitTarget | |||
| • | llUnSit | 
特記事項
経緯
- Scheduled for RC Magnum channel, week of August 3, 2011.
脚注
- ^ rot は位置に影響してはいけないはずと多くの人が考えていますが、残念なことに着座ポイントの実装は  溶岩流 (lava-flow) です。 ~ SVC-2277 溶岩流 (lava-flow) です。 ~ SVC-2277
- ^ 記事中の範囲は、 実数空間 に記載されているものです。
| Signature | 
|---|
| function void llLinkSitTarget( integer link, vector offset, rotation rot ); | 
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。