ソラマメブログ › 原宿竹下症候群 › 2008年02月19日

  

Posted by at

2008年02月19日

まぁできあがり

Kishimenさん作成、私が追加作成で進めているロボットですが、追加パーツの高機動型レッグパーツが完成です。
通常は閉じていて、飛行すると開いて炎が出るという、ありふれたギミックです。


パーティクルは入ってません。
負荷軽減という意味もありますけど、だってノズルから炎がボーボー出てるって、不完全燃焼してるように見えません?w

…と、これだけ書かれても拍子抜けするでしょうから、少しだけどうやってるか書いておきますね。
考え方と言うか、スクリプトの流れは以下のようになります。

動くオブジェクトの現在の位置(&角度)を調べて保存する。
 ↓
オブジェクトが装備されているか調べる。 
 ↓
装備されているなら、装備しているアバターの現在の状態を調べる。
 ↓
アバターが飛行状態なら、オブジェクトを動かす。
 ↓
アバターが着地したら、オブジェクトを元の位置(&角度)に戻す。

この時のポイントは、オブジェクトの初期位置や角度を必ず調べて保存する事です。
動かす事ばかり気が行ってしまいがちですが、これを忘れるとオブジェクトがどんどん動き続けてしまいます。
調べる位置と角度は、必ずローカルである事も忘れないようにしましょう。
llGet~ではなく、llGetLocal~を使って変数に入れておきます。
戻す時はその変数をそのまま指定すれば簡単ですね。
ローカルではなくワールドを使うと、元に戻したとたんにオブジェクトがとんでもない位置や角度になってしまいますw
これは自動ドアなどでも一緒ですね。
自動ドアなどでは、Rezした時に自動で座標を調べるようにしないと、他人に使ってもらう時にメチャクチャになってしまいますよ。
自分で使う分には、置いた時にスクリプトをリセットすればいいだけですが、でも良く忘れるんですよねw
あと、装備しているか調べるというのは、こういうものでは基本です。
例えば、普通に地面に置いてるだけなのにアバターの状態でオブジェクトが反応したり、オブジェクトが動いた状態のまま装備を外してまた付け直した時に誤作動しないために必要です。

なんて書いてますが、私自身、まだスクリプト初心者ですから、わからない事だらけだったりします。
それでも、形だけでなく、いろんな機能を持たせる事で、作った物の価値は飛躍的に上がります。
何より、思った通りに動くと楽しいですよ。
ちょっとした事で友達をビックリさせる物が作れますから、みなさんもスクリプトをやってみて下さい。  


Posted by H,T,Syndrome at 03:54Comments(0)物作り