2010年01月28日

HUDの回転

こんにちは、現在折りたたみ式のHUDを作成しています。

今回の質問なのですが、HUD自体をドアのように回転させることで折りたたまれたように見せようと思っています。
本当はHUD本体の後ろに隠した子プリムをボタンタッチで上下左右にスライドさせることで折りたたみ式のHUDを作ろうと思ったのですが、スクリプト初心者で以前書かれていたHUDをスライド(http://oshiete.slmame.com/e508694.html)という記事を見て命令文を検索してもよく分かりませんでした;;

そこで妥協案としてHUD自体を回転させて折りたたんだように見せる方法にしようと思い、ドアのスクリプトを使ってHUDを回転させることにしました。
しかし、ドアのスクリプトを入れてみたのですが、HUDを装着せずに地面にrezしてる時はうまく設定した角度で動いてくれるのですが、それをテイクしてHUD装着して動かしてみると指定したように動いてくれないのです。
おかしな方向に傾いたり、設定していない角度に動いたりします。

使用しているスクリプトは以下のものです。

integer isOpen = FALSE;
default
{
touch_start(integer total_number)
{
rotation doorRot = llGetRot();
if(isOpen==FALSE){
llSetRot(doorRot * llEuler2Rot(<0,0,PI_BY_TWO>));
isOpen = TRUE;
}else{
llSetRot(doorRot * llEuler2Rot(<0,0,-PI_BY_TWO>));
isOpen = FALSE;
}
}
}

解決策をご教授して頂ければ幸いです。
よろしくお願いします。


同じカテゴリー(スクリプト関連)の記事画像
オブジェクトのリンクとタッチで開く扉
自動チャットを止めたい
テレポートするとアニメーションが解除される
同じカテゴリー(スクリプト関連)の記事
 テクスチェンジのHUDについて (2015-07-01 04:51)
 モール用のプリムカウンターを探しています (2014-11-29 20:09)
 連続するアニメーションの処理 (2014-08-24 03:23)
 オブジェクトの上にフローティングテキストを出す。 (2014-08-22 16:46)
 チャットログの盗聴について (2014-02-03 03:43)
 椅子に座った後で位置調整できるスクリプト (2013-03-24 16:37)

Posted by JD  at 11:42 │Comments(3)スクリプト関連

この記事へのコメント
llGetRot()・llSetRot()は、アタッチメントの場合リージョンに対しての回転を取得・設定する。
アバターの向きに対しての回転を取得・設定したい場合は、llGetLocalRot()・llSetLocalRot()を使用する。

integer isOpen = FALSE;
default
{
state_entry()
{
llSetLocalRot(llEuler2Rot(<0,0,PI_BY_TWO>));
//または llSetLocalRot(llEuler2Rot(ZERO_ROTATION));
}
touch_start(integer total_number)
{
rotation doorRot = llGetLocalRot();
if(isOpen==FALSE){
llSetLocalRot(doorRot * llEuler2Rot(<0,0,PI_BY_TWO>));
isOpen = TRUE;
}else{
llSetLocalRot(doorRot * llEuler2Rot(<0,0,-PI_BY_TWO>));
isOpen = FALSE;
}
}
}
Posted by あ at 2010年01月28日 16:57
一箇所間違えたです 

llSetLocalRot(llEuler2Rot(ZERO_ROTATION));

llSetLocalRot(ZERO_ROTATION);
Posted by あ at 2010年01月28日 17:14
あ さん

ありがとうございました、おかげさまで自分の理想に近いHUDができそうです。
本当にありがとうございました。
Posted by JD at 2010年01月28日 20:21
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。