2007年07月07日
本型キーボード

初期の位置
製作中の本型キーボードですが、最初に本がでてくるときにちょっとした動くモーションを入れたかったので、llSetPosでチャット中に本が移動するLSLを組んでみました。
ただ現在の座標を知るllGetPosで組んでアタッチして動いたのはいいけれど、初期の状態にに「0,0,0」を指定していたので、
地面に置いた瞬間そのシムの座標「0,0,0」まで本が吹っ飛ぶ
という・・・・^^;;
う~ん、アタッチしている時はちゃんと使えるのにぃ。
それと位置を指定してしまっているので、rezした後の位置の調整ができない!
動かしても元の位置に戻ってしまいます。
ということで、これでは売り物にならないので(そろそろ売ることを考えてる自分がいる)、今日はあれこれいじっていました。
まずllGetPosはシムでの座標を知る関数(と、思われる。違う可能性大)なので、これをllGetLocalPosに変更。
これでアバターのアタッチの初期位置が基準になりました。
ただしこれでも地面におけばまだ吹っ飛びます。(恐らくsimが基準となる為)
いきなりですが何事もタイミングは大事なのです。
大事なのでステートを3つに切り分けてみました。
○rezされた状態
○セットした状態
○チャット中
1."rezされた状態"ではデフォルトの状態にタイマーをセットして、タイピング待ちにしてみました。
この状態の時は位置は指定しません。
だから通常のプリムのように自由に位置を動かせます。(・∀・)イイ
2.タイピングが始まると"セットした状態"になり、ここで初めて本の(初期状態の)位置を記録
そして"チャット中へ以降”
3.ここで本日のメインイベント、本を表示させ、llSetPosを使って本を移動させます。
その後テクスチャアニメを動かしたり、ごにょごにょしたります。(*´д`*)
ここでもタイマーイベントで入力中かどうかを判定。
タイピングがしていなければ"rezされた状態(デフォルト)"に戻る
4、1→3の繰り返し

動いた!!(・∀・)
しかも好きな位置にセットもできるし、遥か彼方にふっとぶこともない!!
※同時に回転もさせています
な~んとなくLSLがわかってきた今日この頃。
もっと良い方法あると思うけど、今のところちゃんと動くし、ラグ・バグもなさそうなので、取りあえずこれでしばらく様子をみることにします。
明日はしおりでも作るかな?
※LSL勉強中なので、細かいことはわかりません。
一つの参考までということで・・・ご勘弁を
