LlSetRot/ja

From Second Life Wiki
Jump to navigation Jump to 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>; // 1° の回転を定義します
        vector angles_in_radians = xyz_angles*DEG_TO_RAD; // ラジアンに変換
        rot_xyzq = llEuler2Rot(angles_in_radians); // 回転に変換
    }

    touch_start(integer s)
    {
        llSetRot(llGetRot()*rot_xyzq); //回転を実行します...

    }
}

関連項目

関数

•  llGetRot
•  llSetLocalRot
•  llTargetOmega

特記事項

All Issues

~ Search JIRA for related Issues
   llSetRot and llSetPrimitiveParams (using PRIM_ROTATION) incorrectly implemented for child prims.

Signature

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