Difference between revisions of "LlRezAtRoot/ja"

From Second Life Wiki
Jump to navigation Jump to search
m (For better expression)
 
(3 intermediate revisions by one other user not shown)
Line 3: Line 3:
|func=llRezAtRoot|func_id=286|func_sleep=0.1|func_energy=200.0
|func=llRezAtRoot|func_id=286|func_sleep=0.1|func_energy=200.0
|p1_type=string|p1_name=inventory
|p1_type=string|p1_name=inventory
|p2_type=vector|p2_name=position|p2_desc=最初の位置 ([[Viewer coordinate frames#Region|リージョン座標]]で指定)|p2_hover=position (in region coordinates)
|p2_type=vector|p2_name=position|p2_desc=最初の位置 ([[Viewer coordinate frames/ja#Region|リージョン座標]] で指定)|p2_hover=位置 (リージョン座標で)
|p3_type=vector|p3_name=velocity|p3_desc=最初の速度ベクトル
|p3_type=vector|p3_name=velocity|p3_desc=最初の速度
|p4_type=rotation|p4_name=rot|p4_desc=最初の回転
|p4_type=rotation|p4_name=rot|p4_desc=最初の回転
|p5_type=integer|p5_name=param|p5_desc={{LSLG/ja|on_rez}} イベントの引数であり、rez されたオブジェクトでの {{LSLG/ja|llGetStartParameter}} の戻り値でもある。|p5_hover=on_rez event parameter and value returned by llGetStartParameter in the rezzed object.
|p5_type=integer|p5_name=param|p5_desc={{LSLG/ja|on_rez}} イベントの引数であり、 rez されたオブジェクトでの {{LSLG/ja|llGetStartParameter}} の戻り値でもある。|p5_hover=on_rez イベントの引数であり、 rez されたオブジェクトでの llGetStartParameter の戻り値でもある。
|func_desc=オブジェクト '''inventory''' を、そのルートプリムの位置が '''position''' になるよう、'''rot''' で回転し、'''velocity''' で移動しつつ、開始パラメタ '''param''' で出現させる。
|func_desc=オブジェクト '''inventory''' を、そのルートプリムの位置が '''position''' になるよう、'''rot''' で回転し、'''velocity''' で移動しつつ、開始パラメタ '''param''' で出現させます。
|func_footnote=rez するオブジェクトの大きさによっては、かなり時間がかかります。<br>ルートプリムでなくオブジェクトの中心を '''pos''' として使いたい場合は、代わりに {{LSLG/ja|llRezObject}} を使ってください。
|func_footnote=rez するオブジェクトの大きさによっては、かなり時間がかかります。<br>
(ルートプリムでなく) オブジェクトの中心を '''pos''' として使いたい場合は、代わりに {{LSLG/ja|llRezObject}} を使ってください。
|constants
|constants
|spec
|spec
|caveats=
|caveats=
* '''inventory''' を rez するオブジェクトから '''pos''' までが 10 メートル以上離れている場合、エラー表示を出さずに '''inventory''' の rez は失敗します。
* '''inventory''' を rez するオブジェクトから '''pos''' までが 10 メートル以上離れている場合、エラー表示を出さずに '''inventory''' の rez は失敗します。
* あなたがその土地にログオフ時でも建造可能な権限を持っていないと、エラー表示を出さずに失敗します。
* あなたがその土地にログオフ時でも建造可能な権限を持っていないと、エラー表示を出さずに失敗します。その権限をもつには、以下のどれかを行わなければなりません。
** すなわち、以下のいずれかを満たす必要があります。
** 自分で土地を持っている。
**# そこがあなた自身の土地である。
** その土地を所有するグループにあなたが属し、グループによる建造が土地で許可されており、オブジェクトにグループ設定が済んでいる。
**# その土地を所有するグループにあなたが属し、グループによる建造が土地で許可されており、オブジェクトにグループ設定が済んでいる。
** その土地では誰でも建造が許可されている。
**# その土地では誰でも建造が許可されている。
** その土地を所有するグループへ、オブジェクトを譲渡する。この方法は常にうまくゆくでしょう。
**# その土地を所有するグループへ、オブジェクトを譲渡する。この方法は常にうまくゆくでしょう。
* あなたがログインしている時に限り、"常に「オブジェクト作成」を許可" というグループ権限が上記の制約に優先します。詳細は特記事項の記事を参照してください。
** あなたがログインしている時に限り、"常に「オブジェクト作成」を許可" というグループ権限が上記の制約に優先します。詳細はディープノートの要因の項を参照してください。
|examples=
|examples=
<lsl>
<source lang="lsl2">
//タッチしてオブジェクトを rez する。
//タッチしてオブジェクトを rez する。
string object = "Object";//インベントリ内にあるオブジェクト名
string object = "Object";//インベントリ内にあるオブジェクト名
Line 35: Line 35:
     touch_start(integer a)
     touch_start(integer a)
     {
     {
         vector vec = llGetPos() + < 0.0, 0.0, 5.0>; // 5 メートル直上
         vector vec = llGetPos() + < 0.0, 0.0, 5.0>; // ここから 5 メートル上
         vector speed = llGetVel();
         vector speed = llGetVel();
         llRezAtRoot(object, vec, speed, rot, start_param);
         llRezAtRoot(object, vec, speed, rot, start_param);
     }
     }
}
}</source>
</lsl>
<source lang="lsl2">//タッチすると、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);
    }
}</source>
|helpers
|helpers
|also_header
|also_header
|also_constants=
{{LSL DefineRow||{{LSLG/ja|PRIM_TEMP_ON_REZ}}|}}
|also_functions=
|also_functions=
{{LSL DefineRow||{{LSLG/ja|llRezObject}}|}}
{{LSL DefineRow||{{LSLG/ja|llRezObject}}|}}

Latest revision as of 15: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 は失敗します。
  • あなたがその土地にログオフ時でも建造可能な権限を持っていないと、エラー表示を出さずに失敗します。その権限をもつには、以下のどれかを行わなければなりません。
    • 自分で土地を持っている。
    • その土地を所有するグループにあなたが属し、グループによる建造が土地で許可されており、オブジェクトにグループ設定が済んでいる。
    • その土地では誰でも建造が許可されている。
    • その土地を所有するグループへ、オブジェクトを譲渡する。この方法は常にうまくゆくでしょう。
  • あなたがログインしている時に限り、"常に「オブジェクト作成」を許可" というグループ権限が上記の制約に優先します。詳細は特記事項の記事を参照してください。

Important Issues

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

サンプル

//タッチしてオブジェクトを 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の関連した項目が参考になるかもしれません。