ベジエ曲線を使ったレーザービーム、自分の機体の向きによってビームの出る位置、射出方向が
まちまちになってしまったので、またまた苦手な計算とにらめっこ。。
今まではZ軸に回転させない状態のベジエ曲線の制御点をVector3で定義しておいて、
レーザー描画時に-90度, -45度, 45度, 90度回転させた制御点を計算していましたが、
その計算方法にミスがありました。
修正前: 制御点の回転角度だけしか考えてませんでした。
rot = Quaternion.AngleAxis(angle, transform.forward)
修正後:制御点の回転角度、機体自体の回転状態を考慮するようにしました。
rot = Quaternion.AngleAxis(angle, transform.forward) * transform.rotation
それ以外の処理は変更なしで、上記で求めたQuaternionに、制御点のVector3を積算して
Z軸まわりに制御点を回転させました。
いやはや、ようやく思い通りの結果になって、とてもスッキリしました。(笑
0 件のコメント:
コメントを投稿