Difference between revisions of "LlRezAtRoot/ja"

From Second Life Wiki
Jump to navigation Jump to search
 
Line 21: Line 21:
* あなたがログインしている時に限り、"常に「オブジェクト作成」を許可" というグループ権限が上記の制約に優先します。詳細は特記事項の記事を参照してください。
* あなたがログインしている時に限り、"常に「オブジェクト作成」を許可" というグループ権限が上記の制約に優先します。詳細は特記事項の記事を参照してください。
|examples=
|examples=
<lsl>
<source lang="lsl2">
//タッチしてオブジェクトを rez する。
//タッチしてオブジェクトを rez する。
string object = "Object";//インベントリ内にあるオブジェクト名
string object = "Object";//インベントリ内にあるオブジェクト名
Line 39: Line 39:
         llRezAtRoot(object, vec, speed, rot, start_param);
         llRezAtRoot(object, vec, speed, rot, start_param);
     }
     }
}</lsl>
}</source>
<lsl>//タッチすると、rez 元のプリムの座標システムでの相対位置、回転、速度で、オブジェクトを rez します。
<source lang="lsl2">//タッチすると、rez 元のプリムの座標システムでの相対位置、回転、速度で、オブジェクトを rez します。
string object = "Object"; // インベントリの中のオブジェクトの名前
string object = "Object"; // インベントリの中のオブジェクトの名前
vector relativePosOffset = <2.0, 0.0, 1.0>; // このプリムの「手前」でちょっと「上」
vector relativePosOffset = <2.0, 0.0, 1.0>; // このプリムの「手前」でちょっと「上」
Line 60: Line 60:
         llRezAtRoot(object, rezPos, rezVel, rezRot, startParam);
         llRezAtRoot(object, rezPos, rezVel, rezRot, startParam);
     }
     }
}</lsl>
}</source>
|helpers
|helpers
|also_header
|also_header

Latest revision as of 14:46, 25 February 2016

要約

関数: llRezAtRoot( string inventory, vector position, vector velocity, rotation rot, integer param );

オブジェクト inventory を、そのルートプリムの位置が position になるよう、rot で回転し、velocity で移動しつつ、開始パラメタ param で出現させます。

• string inventory プリムの インベントリ の中にあるオブジェクト
• vector position 最初の位置 (リージョン座標 で指定)
• vector velocity 最初の速度
• rotation rot 最初の回転
• integer param on_rez イベントの引数であり、 rez されたオブジェクトでの llGetStartParameter の戻り値でもある。

rez するオブジェクトの大きさによっては、かなり時間がかかります。
(ルートプリムでなく) オブジェクトの中心を pos として使いたい場合は、代わりに llRezObject を使ってください。

警告

  • この関数は 0.1 秒間、スクリプトを停止します。
  • inventory がプリムの中で見つからない場合、またはこれがオブジェクトでない場合、エラーが DEBUG_CHANNEL 上で叫ばれます。
  • inventory を rez するオブジェクトから pos までが 10 メートル以上離れている場合、エラー表示を出さずに inventory の rez は失敗します。
  • あなたがその土地にログオフ時でも建造可能な権限を持っていないと、エラー表示を出さずに失敗します。その権限をもつには、以下のどれかを行わなければなりません。
    • 自分で土地を持っている。
    • その土地を所有するグループにあなたが属し、グループによる建造が土地で許可されており、オブジェクトにグループ設定が済んでいる。
    • その土地では誰でも建造が許可されている。
    • その土地を所有するグループへ、オブジェクトを譲渡する。この方法は常にうまくゆくでしょう。
  • あなたがログインしている時に限り、"常に「オブジェクト作成」を許可" というグループ権限が上記の制約に優先します。詳細は特記事項の記事を参照してください。

サンプル

//タッチしてオブジェクトを rez する。
string object = "Object";//インベントリ内にあるオブジェクト名
integer start_param = 10;
rotation rot;

default
{
    state_entry()
    {
        rot = llEuler2Rot(< 0, 90, 90> * DEG_TO_RAD);
    }
    touch_start(integer a)
    {
        vector vec = llGetPos() + < 0.0, 0.0, 5.0>; // ここから 5 メートル上
        vector speed = llGetVel();
        llRezAtRoot(object, vec, speed, rot, start_param);
    }
}
//タッチすると、rez 元のプリムの座標システムでの相対位置、回転、速度で、オブジェクトを rez します。
string object = "Object"; // インベントリの中のオブジェクトの名前
vector relativePosOffset = <2.0, 0.0, 1.0>; // このプリムの「手前」でちょっと「上」
vector relativeVel = <1.0, 0.0, 0.0>; // このプリムの「前」の方向に 1 m/秒で進みます
rotation relativeRot = <0.707107, 0.0, 0.0, 0.707107>; // このプリムに対して X 軸で 90° 回転します
integer startParam = 10;

default
{
    touch_start(integer a)
    {
        vector myPos = llGetPos();
        rotation myRot = llGetRot();

        vector rezPos = myPos+relativePosOffset*myRot;
        vector rezVel = relativeVel*myRot;
        rotation rezRot = relativeRot*myRot;

        llRezAtRoot(object, rezPos, rezVel, rezRot, startParam);
    }
}

関連項目

定数

•  PRIM_TEMP_ON_REZ

イベント

•  object_rez オブジェクトをインベントリから rez する時に発生する。

関数

•  llRezObject
•  llGetStartParameter
•  llGodLikeRezObject

特記事項

All Issues

~ Search JIRA for related Issues
   group ROLE permissions only work for scripted rez when owner is online

Signature

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