2011/03/16

ベジエ曲線のレーザー、ちょっと修正。

ベジエ曲線を使ったレーザービーム、自分の機体の向きによってビームの出る位置、射出方向が
まちまちになってしまったので、またまた苦手な計算とにらめっこ。。

今まではZ軸に回転させない状態のベジエ曲線の制御点をVector3で定義しておいて、
レーザー描画時に-90度, -45度, 45度, 90度回転させた制御点を計算していましたが、
その計算方法にミスがありました。

修正前: 制御点の回転角度だけしか考えてませんでした。
  rot = Quaternion.AngleAxis(angle, transform.forward)

修正後:制御点の回転角度、機体自体の回転状態を考慮するようにしました。
  rot = Quaternion.AngleAxis(angle, transform.forward) * transform.rotation


それ以外の処理は変更なしで、上記で求めたQuaternionに、制御点のVector3を積算して
Z軸まわりに制御点を回転させました。

いやはや、ようやく思い通りの結果になって、とてもスッキリしました。(笑

0 件のコメント:

コメントを投稿