BlackSheep-LSL@Wiki

llApplyRotationalImpulse

最終更新:

mizcremorne

- view
メンバー限定 登録/ログイン

llApplyRotationalImpulse

llApplyRotationalImpulse(vector force, integer local)

物理オブジェクトに瞬間的な回転力を加える。
回転の方向及び強さは引数forceで指定する。
引数localがTRUEの場合、forceはオブジェクトのローカル軸に対して働き、FALSEの場合はグローバル座標に対して働く。

物理オブジェクトに回転力を加える関数としては、大別してこのllApplyRotationalImpulse関数とllSetTorque?関数の二つがある。
この二種類の関数の違いは、加える回転力が瞬間的か恒久的かの違いである。

インパルス系の関数は、瞬間的な力である。
例えばコマの回転のように、最初に勢いよく回転力を与えた後は、徐々に勢いがなくなって停止する。
トルク系の関数は恒久的な力である。
扇風機の回転のように、常に回転をし続けるのがトルク系の回転である。

言い換えるなら、インパルス系の関数とは、オブジェクトのエネルギーを消費する関数である。
エネルギーがあれば効果を発揮するが、エネルギーがなくなると効果がなくなる。

セカンドライフにおけるエネルギーは、時間によって回復するという特性がある。
インパルス系の関数を使ってオブジェクトを動かした場合、オブジェクトはエネルギーを消費するが、エネルギーがゼロになるとそれ以上インパルス系の関数を使って動かすことができなくなる。
しばらく待つと、エネルギーが回復して動くようになるのだが、一度回したコマが停止した後、すぐに回そうとしても動かないという事態があり得るので注意する必要がある。

オブジェクトのエネルギーを調べるにはllGetEnergy関数を使う。
エネルギーの値は1.0~0.0で、1.0ならインパルス系関数の効果は100%発動するが、0.0だとまったく発動しない。

なお、llApplyRotationalImpulse関数はアタッチメントにおいては使うことができない。
この点llApplyImpulse関数と異なるので注意すること。
記事メニュー
目安箱バナー