2007年06月13日
第3回 超初心者用スクリプト講座 回転させてみよう
こんばんは~。ペンです。
今日はMagSL内を案内してくれる観光バスに乗ってきました。

最後はこんな感じで、スカイダイビングです。
途中で視点がマウスルックになってしまって
自分がはいってないのが残念。
さてさて、スクリプト講座に移っていきましょうか~。
今回、ご紹介する商品(?)はこれ!!

装着するとこんな感じ。

なんだこれ?名前はありません。
あえて言うなら、背中に装備すれば空中浮遊をより楽しいものに
変えてくれる装置wプロペラ部分が回転して気分を盛り上げてくれます。
(注)特別な機能はまったくありませんw
では、早速作っていきましょう。
必要なものは
プロペラ1枚(上記画像では2枚になっていますが簡単のため1枚でやります)
留め金1つ
シャフト部1本
タンク1つ
これらをつなぎ合わせて上記のような物を作ってください。
(この段階ではリンクさせないでください)
できたら、以下のスクリプトをプロペラに組み込みます。
あくまでもプロペラ部分のみです。もし、他の部分にこのスクリプトを
組み込むと、たとえばタンクに入れたのならタンクが回転したりします。
今、回転させたい対象はあくまでプロペラになるのでプロペラのみに
スクリプトを入れます。
次にリンクさせます。ここで若干新しい概念が登場します。
親プリムと子プリムです。何か物づくりをして、リンクさせたことがある人ならわかるとおもいますが、リンク後は作ったものが青くなります。しかしながら、よく見ると一つのプリム(パーツ)だけが黄色くなって
いるとおもいます。これが親プリムです。それに対して青くなっているものが子プリムです。ちなみにどうすればこれを決定できるかというと
リンクする直前に選択されたものが親プリムになります。
さて、今回の装置で大事なことは以下の点です。
プロペラを親プリムにしない。
もししてしまったなら、プロペラだけが回転するのではなく
リンクしたすべてのものが回転してしまいます。
なので、プロペラ以外のパーツを親プリムにしてください。
とりあえず、今回はタンクの部分を親プリムにしました。
ちゃんとできていれば以下の画像のようになるとおもいます。

これで完成です。
ではスクリプトの中身に関して説明していきましょう。
外側は以前と同じで違うのは中身のみです。
この部分ですね。
llTargetOmega(<0,0,1>,5*PI,1.0);
これが今回のスクリプト講座の肝。オブジェクトを回転させるスクリプトです。()の中身によって回転の挙動が変わります。
まず始めの<>内にどの軸を中心に回転させるのかを書き込みます。
前からx軸、y軸、z軸になります。中心軸を1で指定してください。
上記のコマンドではz軸を中心に回転します。
次に回転の速度です。現時点では5*PIになっています。5の部分を
大きくしたり小さくすることで速度が変化します。
最後の1.0の部分ですが、ここは気にせず1.0にしておいてください。
今回の講座では関係ないです。
値を変える事で回転の挙動も大きく変わります。
さて、今回は回転それ自身だけではなく親プリム、子プリム
といった概念も説明しました。
ちょっと難しかったかもしれません。でも、後々知っていると便利なので
しっかり理解してくださいね。
それではまた次回あいましょう~
今日は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にしておいてください。
今回の講座では関係ないです。
値を変える事で回転の挙動も大きく変わります。
さて、今回は回転それ自身だけではなく親プリム、子プリム
といった概念も説明しました。
ちょっと難しかったかもしれません。でも、後々知っていると便利なので
しっかり理解してくださいね。
それではまた次回あいましょう~