ソラマメブログ

  

Posted by at

2007年06月13日

第3回 超初心者用スクリプト講座 回転させてみよう

こんばんは~。ペンです。
今日はMagSL内を案内してくれる観光バスに乗ってきました。



最後はこんな感じで、スカイダイビングです。
途中で視点がマウスルックになってしまって
自分がはいってないのが残念。


さてさて、スクリプト講座に移っていきましょうか~。
今回、ご紹介する商品(?)はこれ!!



装着するとこんな感じ。



なんだこれ?名前はありません。
あえて言うなら、背中に装備すれば空中浮遊をより楽しいものに
変えてくれる装置wプロペラ部分が回転して気分を盛り上げてくれます。
(注)特別な機能はまったくありませんw

では、早速作っていきましょう。
必要なものは
プロペラ1枚(上記画像では2枚になっていますが簡単のため1枚でやります)
留め金1つ
シャフト部1本
タンク1つ
これらをつなぎ合わせて上記のような物を作ってください。
(この段階ではリンクさせないでください)

できたら、以下のスクリプトをプロペラに組み込みます。

default
{
  state_entry()
  {
    llTargetOmega(<0,0,1>,5*PI,1.0);
  }
}


あくまでもプロペラ部分のみです。もし、他の部分にこのスクリプトを
組み込むと、たとえばタンクに入れたのならタンクが回転したりします。
今、回転させたい対象はあくまでプロペラになるのでプロペラのみに
スクリプトを入れます。

次にリンクさせます。ここで若干新しい概念が登場します。
親プリムと子プリムです。何か物づくりをして、リンクさせたことがある人ならわかるとおもいますが、リンク後は作ったものが青くなります。しかしながら、よく見ると一つのプリム(パーツ)だけが黄色くなって
いるとおもいます。これが親プリムです。それに対して青くなっているものが子プリムです。ちなみにどうすればこれを決定できるかというと
リンクする直前に選択されたものが親プリムになります。

さて、今回の装置で大事なことは以下の点です。
プロペラを親プリムにしない。
もししてしまったなら、プロペラだけが回転するのではなく
リンクしたすべてのものが回転してしまいます。
なので、プロペラ以外のパーツを親プリムにしてください。
とりあえず、今回はタンクの部分を親プリムにしました。

ちゃんとできていれば以下の画像のようになるとおもいます。



これで完成です。

ではスクリプトの中身に関して説明していきましょう。

default
{
  state_entry()
  {
    llTargetOmega(<0,0,1>,5*PI,1.0);
  }
}


外側は以前と同じで違うのは中身のみです。
この部分ですね。

llTargetOmega(<0,0,1>,5*PI,1.0);

これが今回のスクリプト講座の肝。オブジェクトを回転させるスクリプトです。()の中身によって回転の挙動が変わります。

まず始めの<>内にどの軸を中心に回転させるのかを書き込みます。
前からx軸、y軸、z軸になります。中心軸を1で指定してください。
上記のコマンドではz軸を中心に回転します。

次に回転の速度です。現時点では5*PIになっています。5の部分を
大きくしたり小さくすることで速度が変化します。

最後の1.0の部分ですが、ここは気にせず1.0にしておいてください。
今回の講座では関係ないです。

値を変える事で回転の挙動も大きく変わります。

さて、今回は回転それ自身だけではなく親プリム、子プリム
といった概念も説明しました。
ちょっと難しかったかもしれません。でも、後々知っていると便利なので
しっかり理解してくださいね。

それではまた次回あいましょう~