LlSetRot/ja - Second Life Wiki

LlSetRot/ja

From Second Life Wiki

Jump to: navigation, search

関数: llSetRot( rotation rot );

プリムの回転にrotを設定します。

• rotation rot

警告

  • この関数は0.2秒間、スクリプトを停止します。
  • プリムが装着されている場合、この関数はアバタの回転によって相殺します。
  • プリムがルートプリムではない場合、ルートプリムのローカル回転によって相殺されます。回避策はルートプリムの回転で割ることです。
    • ルートプリムと相対的に子プリムの回転を設定しようとしている場合、ルートプリムの回転でローカル回転を割ります。
    • グローバル回転を子プリムの回転へ設定しようとしている場合、2倍にしたルートプリムの回転でグローバル回転を割る必要があります。
    • たとえグローバル回転を子プリムの回転に設定するとしても、子プリムの回転を設定するにはllSetLocalRotを使うとよりうまくいきます。 (その場合、ルートプリムの回転と掛けます。)
    • 装着されたオブジェクトの、ルートプリムのローカル回転を取得するのは容易ではありません。(ほかにはルートプリムから取得する方法が存在します)
  • 小さく回転するには、変更する時間帯の間隔に応じて、基準点を上げます。6°より下に制限しているように見せることはできません。

回転を1°ずつ増加するプリムに、このスクリプトをドロップします。

 
rotation rot_xyzq;
 
default
{
    state_entry()
    {
        vector xyz_angles = <0,1.0,0>; // This is to define a 1 degee change
        vector angles_in_radians = xyz_angles*DEG_TO_RAD; // Change to Radians
        rot_xyzq = llEuler2Rot(angles_in_radians); // Change to a Rotation
    }
 
    touch_start(integer s)
    {
        llSetRot(llGetRot()*rot_xyzq); //Do the Rotation...
 
    }
}
 

関連項目

関数

•  llGetRot
•  llSetLocalRot