まずは、こちらをご覧ください。 このように、キャラクタの向いている方向を軸として放射状に展開するような弾を撃ちたいのです。
垂直方向の角度がついていない場合、以上のように美しい円を描きます。
そして、真下(真上)を向いたときの射撃をしてみた画像です。 全然美しくないです。
これを、どのような角度からのカメラから見ても最初の画像のような円形を描くようにしたいのですが難航しています。
弾の回転角度を計算する式は以下のようになっています。
Bullet[j].Rotは弾の向きです。
Vec2はキャラクタの向きです。
Timeはゲーム内の時間で、弾の回転を少しづつ変えながら円形に射出するといった具合になります。
Bullet[j].Rot.x=Vec2.x+0.5*cos(Time/100.0f*12*DX_PI);
Bullet[j].Rot.y=Vec2.y+0.5*sin(Time/100.0f*12*DX_PI);
Bullet[j].Rot.z=Vec2.z;
ですが、その補正値をどのように決定すればいいのか分からなくなってしまいました。
Bullet[j].Rot.x=Vec2.x+0.5*cos(Time/100.0f*12*DX_PI)*(補正値);
Bullet[j].Rot.y=Vec2.y+0.5*sin(Time/100.0f*12*DX_PI)*(補正値);
Bullet[j].Rot.z=Vec2.z;
DirectXで視点の回転がうまくいかない
http://dixq.net/forum/viewtopic.php?f=3&t=12461
このままでは仕様ということにしなければなりません。
ご助言よろしくお願いいたします。