オブジェクトをまわす

Top > llSetRot()

llSetRot()

  • 下記コマンドにてオブジェクトをまわします。
    integer i;
    for(i = 0 ; i < 100 ; i++ ){
        vector eul = <0,0,(i*9)>;
        eul *= DEG_TO_RAD;
        rotation quat = llEuler2Rot(eul);
        llSetRot(quat); 
    } 

ベクター型にしてからrotation型に変換してセットするところまでは わかったんですが、
サンプルにあった「eul *= DEG_TO_RAD」が何を しているんだか不明です・・・・
無いと動きがまちまちのような気がするので、現在の座標といった 意味合いなんでしょうかね・・・
いまいち動きがかくかくなんで、なんか他のやり方がありそうですね。
今まで見たのはもう少し動きが滑らかです。

rotation の作り方はけっこういろんなつくり方があるみたいで
英語の方にはいろいろと書いてあったんですが、とりあえず
必要になったら読み砕いてみる所存です。
上記は、多分角度のベクターを与えているんじゃないかと 思うんですが、細かく解析できてません。

今後、必要になったときに細かく書くにします。

回し続ける

  • llTargetOmega()
    どうも、llSetRot()は特定の角度を一回まわす為のものみたいですね。
    まわし続けるには、変にループさせるより、llTargetOmega()の方がよさげですね


参考

コメントその他、突っ込み系

  • DEG_TO_RADってな。degree to radian で、度数をラジアンに変換。180度=π と違う? llEuler2Rotに使用できるんは度数やなくて、ラジアンらしいから。 -- 姉さんの姐さん? 2007-06-14 (木) 01:26:18
  • なるほど!、座標ベクトル系をラジアンへの変換か〜、読み込めばそうだ。気付きませんでした。ありがとう! -- イスターファ? 2007-06-14 (木) 13:13:22
  • 座標ではなくて、角度かな!、検証してみます。 -- イスターファ? 2007-06-14 (木) 13:53:42