llSet,llGet...(訂正

こんにちは。 気づけば3月半ばです@@;
眼鏡教室で浮かれている場合ではないかもしれません・・・。

さて。先日、スカルプの形をタッチで切り替わるようにできるみたいとブログに書いたのですが。

それを使って「タッチで可動する1Primの引き戸を作れないかな」と悩んでいました。
いつもスクリプトを書いている方には簡単なことだと思うのですが、
関数の種類すら知らない私にとっては、これが大変で・・・^^;

まずllSetPrimitiveParamsでオブジェクトの形がUUIDの変更によってタッチで切り替わるようにしてみたのですが
下のSSのように、1Primで引き戸が「開いている状態」と「閉まっている状態」の形に切り替えると
「閉じている状態の扉」が「開いている状態の扉」の1/2倍の横幅になってしまいます。
だから、「閉じている状態のPrim」を「開いている状態のPrim」の2倍の横幅にしないといけません。


llSetScaleで、タッチすると「閉じている状態」のときは横幅が2倍になるように設定。
でもこのままでは、Primの中心に向かってPrimが伸び縮みするので、
扉を開いたときに2枚の扉が中央に集まるように動いてしまいます。

扉を開いた際にPrimを左右のどちらかに、扉の横幅の1/2だけ移動させるために
llGetLocalPosとllSetPosで、親Primからの距離がタッチで横にずれるように指定。

つまり・・・タッチすることで「スカルプの形」と「大きさ」と「親Primからの位置」が変わるようになったわけです。
昨日、こんな感じで引き戸を作っていたら「またマニアックな物を作ってますねw」と言われましたw
そんなにマニアックかなーwそして、私はいつもマニアックな物を作っているのだろうか・・・。

なんとか扉だけ形になってきました。これから棚本体をPrim Ovenでチンします。まだまだ先は長そうです・・・。

(訂正)
文章の中で、扉の状態についての記載が「開いている」ものと「閉じている」ものを逆に書いていました^^;
Yさん、ご指摘ありがとうございましたヽ(○´∀`○)ノ ❤

0 件のコメント:

コメントを投稿