2012/06/13

飛行船のプロペラの回転


飛行船のプロペラは、動きに合わせて回転するようになってます。
本体のスクリプトからリンクメッセージで連絡をもらって、回転の向きや速度を変えます。

飛行船アバターの場合は、アニメーション名を聞いて速度だけ変えてます。
(「飛行船アバターのAO」で説明しているスクリプトでは連絡の部分は省略しています)

飛行船アバターのプロペラのスクリプト
vector Axis = <1,0,0>; // 回転軸:X
float Fwd = -PI; // 左プロペラの回転、右はPI
 
default {
 state_entry()  {
  llTargetOmega(ZERO_VECTOR,0,0);
 }
 link_message(integer from, integer int, string msg, key id) {
   // 再生中のアニメーション名を聞く
  float spin;
  if (msg == "hover") spin = Fwd * 0.5; // 回転速度を変える
  else if (msg == "walk") spin = Fwd;
  else if (msg == "fly") spin = Fwd * 2;
  else llResetScript();
  llTargetOmega(Axis, spin, 1); // 軸の周りを回転
 }
}