LlSetLinkCamera/ja

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

要約

関数: llSetLinkCamera( integer link, vector eye, vector at );

link番号のプリムに座ったアバターに対して、カメラのeyeオフセットと、カメラの見る先atオフセットを設定します。

• integer link リンク 番号 (0: リンクなし, 1: ルートプリム, >1: 子プリム) または LINK_* フラグ
• vector eye ローカル座標 で表現された、オブジェクトの中心に対してのオフセット
• vector at ローカル座標 で表現された、オブジェクトの中心に対してのオフセット
フラグ 説明
LINK_ROOT 1 リンクセットの中のルートプリムに送ります
フラグ 説明
LINK_THIS -4 スクリプトの入った自プリムに送ります

警告

  • link は実際に存在する リンク番号 か、LINK_ROOTLINK_THIS のような、単体プリムでも同じように扱えるリンク定数である必要があります。
  • これを設定してもカメラや座っているアバターを更新しません。この後に座るアバターに対してのみ動作します。カメラ設定は事前に済ませておく必要があります。
  • offset はオブジェクトの ローカル位置に対してのもので 、座っている アバター (カスタマイズされた着座回転や着座位置がある可能性があります) や 地域 に対して行いたければ、自分で計算しなければなりません。
All Issues ~ Search JIRA for related Bugs

サンプル

注意点

リンク番号

オブジェクトを構成するそれぞれのプリムにはアドレスがあります。それがリンク番号です。オブジェクトの特定のプリムにアクセスするには、そのプリムのリンク番号を知らなければなりません。リンク番号はプリムに振られますが、オブジェクトに座っているアバターにも振られます。

  • オブジェクトが単一のプリムで構成されていて、アバターが座っていないとき、(ルート)プリムのリンク番号は 0 です。
  • しかし、オブジェクトが複数のプリムで構成されていたり、オブジェクトに座っているアバターがいたりすると、ルートプリムのリンク番号は 1 となります。

アバターがオブジェクトに座ると、リンクセットの末尾に追加され、いちばん大きなリンク番号が振られることになります。さらに、アバターがオブジェクトに座っている場合、アバターを立たせないと、プリムのリンク・リンク解除ができません。

プリムやアバターの数え方

オブジェクトのプリムや、プリムに座っているアバターの数を調べるのに、2つの関数があります。

  • llGetNumberOfPrims() - プリムと座っているアバターの数を返します。
  • llGetObjectPrimCount(llGetKey()) - オブジェクトのプリムの数だけを返しますが、アタッチメントとなっている場合は 0 を返します。
integer GetPrimCount() { //常にプリムの数だけを返します。
    if(llGetAttached())//装着されているか?
        return llGetNumberOfPrims();//アバターとプリムの数を返しますが、アタッチメントの上には座れないのでこれでいいです。
    return llGetObjectPrimCount(llGetKey());//プリムの数だけを返しますが、アタッチメントの場合ここは通りません。
}

関連項目

関数

•  llGetLinkNumber スクリプトが入っているプリムのリンク番号を取得します。
•  llSetCameraAtOffset
•  llSetCameraEyeOffset
•  llForceMouselook
•  llSetCameraParams

特記事項

経緯

  • Scheduled for RC Magnum channel, week of August 3, 2011.

Search JIRA for related Issues

Signature

function void llSetLinkCamera( integer link, vector eye, vector at );
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。