2008年01月22日
ドアのスクリプト
今回は、車のドアのスクリプトのお話です〜
先日のKAZEの大会で作ってた車のドアのスクリプトにエラーが見つかり
大体、ドアのスクリプトは、下の様に
llGetRot();
で書くのですが、これは、ドアに入れたスクリプトがどの角度であっても
その角度から動くという感じなんですが、車や、例えば、ドアのフレ−ムみたいな物を作って
リンクした場合、ルートプリムの角度で決まっちゃうそうで。。。。。
rot = llGetRot();
delta = llEuler2Rot(<0, 0, -DIRECTION * PI_BY_TWO>);
rot = delta * rot;
llSetRot(rot);
僕も車を作ってて、ルートプリムも(0,0,0)の状態でテストをしていたためきずきませんでしたが
例えば、車をちょっとでも動かして、車の角度が変わった状態で、ドアを開閉すると、下の写真の
ように変な角度で開いたり閉まったりしちゃいます(^^ゞ
そこで、車や、ドアのフレームをルートプリムにした時に、どの角度で設置しても
コプリムの角度で動いてくれる様にするには
GetLocalRot()
です。
こうすると、車がどの角度になっても、ドアのプリムに対して開閉してくれます(^O^)/

先日のKAZEの大会で作ってた車のドアのスクリプトにエラーが見つかり
大体、ドアのスクリプトは、下の様に
llGetRot();
で書くのですが、これは、ドアに入れたスクリプトがどの角度であっても
その角度から動くという感じなんですが、車や、例えば、ドアのフレ−ムみたいな物を作って
リンクした場合、ルートプリムの角度で決まっちゃうそうで。。。。。
rot = llGetRot();
delta = llEuler2Rot(<0, 0, -DIRECTION * PI_BY_TWO>);
rot = delta * rot;
llSetRot(rot);
僕も車を作ってて、ルートプリムも(0,0,0)の状態でテストをしていたためきずきませんでしたが
例えば、車をちょっとでも動かして、車の角度が変わった状態で、ドアを開閉すると、下の写真の
ように変な角度で開いたり閉まったりしちゃいます(^^ゞ
そこで、車や、ドアのフレームをルートプリムにした時に、どの角度で設置しても
コプリムの角度で動いてくれる様にするには
GetLocalRot()
です。
こうすると、車がどの角度になっても、ドアのプリムに対して開閉してくれます(^O^)/

Posted by takahiro_Babii at 17:39│Comments(0)
│スクリプト