2008年6月2日月曜日

shutter script

LSL-BBSのトピックスであがっていますが

シャッタースクリプトを作ってみました。
ドアの、ウィーンてしまるやつです。

::sourcecode::(参考:アイピロさん)扉が開いてる状態でスタート

integer running = TRUE;//スイッチの準備
integer i = 0;
default
{
touch_start(integer total_number)
{
if(running){

for (i= 0; i<19; i++){
vector scale = llGetScale();//オブジェクトの大きさをゲット
llSleep(0.05);
scale.x = scale.x + 0.5;
llSetScale(scale);//オブジェクトの大きさをリサイズ
running = FALSE;//扉がしまったと判定スイッチオン
//llOwnerSay((string)scale);
}

}else{//扉がしまっているとき

for (i=0; i<19; i++){
vector scale = llGetScale();
llSleep(0.05);
scale.x = scale.x - 0.5;
llSetScale(scale);
running = TRUE;
//llOwnerSay((string)scale);
}
}

}

}


youさんの記述から引用
プリムそのものにも加工が必要です
-----
1.Building Block Typeを設定
  Sphereにする
2.Dimple Begin and Endを以下の値にする
  B:0.5
  E:1.0
3.Building Block Typeを設定
  Boxにする

とあります。



プリムの加工をしないとどうなるでしょうか?(10ピカラット)
これは、実験してみるとすぐにわかります。レッツトライw

私の場合はプリムの加工を以下のようにしました。
ブロックタイプはボックス。
パスカット値を0.125と0.625で設定
ここで、さらに、回転をさせると上下にうごくシャッターの出来上がり。

これをもとにいろいろ設定をいじってみるのも価値があります。
たとえばタイマーの値を変えてみるとか、その他いろいろ。
LSL-BBSのトピックスもじっくり読むと面白いので是非参考にしてみてください

2 件のコメント:

匿名 さんのコメント...

なるほど。
プリム加工との合わせ技(メモメモ)。
自分ならllSetPrimitiveParamsで
X方向のサイズアップの半分をずらすように
したと思う。
ぴぴの方法だと動きがスムーズだよね。
目からうろこです。

Andry

pipinpa Allen さんのコメント...

>andry

llSetPrimitiveParmsでもできるのね
φ(`д´)カキカキ

最初私はyouさんの加工の仕方をやってみて、それだとzの値を変えるんだけど、普通にカットして回転させて、ってやるとxだけでよいというw

myuさんにパスカットだおっておしえてもらって、うーんと考えて、たどり着いた答えでしたw