MV1SetRotationZYAxis( int MHandle, VECTOR ZAxis, VECTOR YAxis, float ZTwist )
を使って玉をこちらの方向に向かせることはできたのですが、楕円形ですと、”float ZTwist ”を指定しないと楕円がペラペラになってしまいます。どのように求めればよいのでしょうか。
ちなみに、円形の向きは以下のように求めました。
//宣言
VECTOR CameraPos; // カメラ座標
struct BURETT
{
VECTOR pos; //座標
VECTOR vz; //ビルボードの向き(Z軸)
VECTOR vy; //ビルボードの向き(Y軸)
MATRIX my; //vy用の行列
VECTOR sz; //進行方向(Z軸)
VECTOR sy; //進行方向(Y軸)
int mhandle;
};
BURETT burett;
//向き指定
burett.vz=VNorm( VSub( burett.pos,CameraPos ) ); //カメラから弾への単位ベクトル
burett.my=MGetRotVec2( VGet(0,0,1), burett.vz ) ; //
burett.vy=VTransform( VGet(0,1,0),burett.my ); //Y単位ベクトルを作っておく
MV1SetRotationZYAxis( burett.mhandle, burett.vz, burett.vy, 0 );//円形のビルボードならZ軸回転値は不定です
カメラ座標とカメラのターゲットに直線を引いて、
楕円形のモデルの法線ベクトルと重なる角度が”ZTwist”
だと思うのですが、求め方がわかりません