ソラマメブログ › 鳥頭の雑記帳 › スクリプト › アタッチオブジェクトの移動について

2010年05月15日

アタッチオブジェクトの移動について

アタッチオブジェクトの移動について
スクリプトの製作依頼で、気がついたことを備忘録として記述しておきます。

アタッチオブジェクトを位置移動させるときに、短い移動距離だと
llSetPosで指定しても、うまく動かなかったり、何回も実行すると
大きく移動したりします。

これは、SLのバグに起因している。(再描画がうまく実行されないのが原因)

このため、このバグを回避するためには、以下の方法を利用するとよい。

まず、移動命令をするまえにオブジェクト自体の大きさを変更します。
で、移動させて、元の大きさに戻す。

コードにすると

   // 元のサイズを記憶
   vector vctScale = llGetScale();
   // 現在の場所を記憶
   vector vctPos = llGetLocalPos();

   // 人の目では認識できないぐらいの誤差で大きさを変更
   llSetScale(vctScale + <0.00001, 0.0, 0.0>);
   // 場所を移動(この場合は、Z方向に移動)
   llSetPos(vctPos + <0.0, 0.0, 0.001>);

   // 元の大きさに戻す
   llSetScale(vctScale);

llSetScaleは、ほとんどタイムラグが無いので割とスムーズに動きます。

アクセサリー製作をしている方には、かなり既知な事柄かも知れませんが、
私はしりませんでした。^^;



同じカテゴリー(スクリプト)の記事画像
テレポーターが動かない人へ
スクリプト教室 卒業制作 作品紹介 その14
スクリプト教室 卒業制作 作品紹介 その13
スクリプト教室 卒業制作 作品紹介 その12
スクリプト教室 卒業制作 作品紹介 その11
スクリプト教室 卒業制作 作品紹介 その10
同じカテゴリー(スクリプト)の記事
 テレポーターが動かない人へ (2012-01-02 19:08)
 スクリプト教室 卒業制作 作品紹介 その14 (2011-11-11 23:11)
 スクリプト教室 卒業制作 作品紹介 その13 (2011-11-07 23:15)
 スクリプト教室 卒業制作 作品紹介 その12 (2011-11-05 22:04)
 スクリプト教室 卒業制作 作品紹介 その11 (2011-11-01 23:13)
 スクリプト教室 卒業制作 作品紹介 その10 (2011-10-30 15:49)

Posted by karasu blackburn at 20:24│Comments(0)スクリプト
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。