LlTargetOmega/ja
< LlTargetOmega
Jump to navigation
Jump to search
Revision as of 05:09, 15 May 2010 by Mako Nozaki (talk | contribs)
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
要約
関数: llTargetOmega( vector axis, float spinrate, float gain );仕様
物理
- オブジェクトが物理属性でない場合、影響を受けるのはクライアント側だけです。ユーザが目の当たりにしている回転をスクリプトが検出したり確認したりすることは できません。
- オブジェクトが物理属性の場合、物理表現は定期的にアップデートされます。ユーザが目の当たりにしている回転をスクリプトが検出したり確認したりすることが できます。
リンクセット
警告
- オブジェクトが物理ではない場合、回転はクライアント側だけの効果となり、移動していないジオメトリとして衝突することになります。
- 関数が動いていないように見えるときは、Advanced > Network > Velocity Interpolate Objects (ビューワ 1.x) または 開発 > ネットワーク > 速力が挿入されたオブジェクト (ビューワ 2.x) が有効になっていることを確認しましょう。
サンプル
<lsl>//X 軸の周りを 1 秒に 1 回回り、 // Y 軸の周りを 1 秒に 3 回回り、 // Z 軸の周りを 1 秒に 2 回回ります。 // 速度を混ぜ合わせると、 1 秒に約 3.20156 回転することになります。
llTargetOmega(<1.0,3.0,0.5>,TWO_PI,1.0);</lsl>
<lsl> //球のローカル Z 軸の周りを非常にゆっくり回ります .... 傾いた軸の周りを回る地球を作るのにいいでしょう
default {
state_entry() { llTargetOmega(llRot2Euler(llGetLocalRot())*(llEuler2Rot(<90,0,0>*DEG_TO_RAD)),0.1,0.01); }}</lsl>
注意点
- axis に llVecNorm を使うと、 spinrate は実際の回転率と同じものとなります。
- gain を 0 に設定すると、回転動作を停止・削除することになります。例えば、
llTargetOmega(ZERO_VECTOR, 0, 0)
; のように。- spinrate が 0 で gain が 0 以外の場合、オブジェクトは以前の llTargetOmega() の設定をクリアするのではなく、全ての回転を止めようとします。
- (llSetForce を使ってオブジェクトを浮かせているなど) llTargetOmega() と同時に働かせている力が他にある場合は、
llTargetOmega(-llGetOmega(), 0., 1.)
を使って回転を止めます。 gain は 0 以外でなくてはならないことに気をつけてください。しかし、 1 でなくても構いません。
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。