トップページ > 過去ログ > 記事閲覧
モデルデータの向いている方向
名前:かるて 日時: 2011/01/21 09:47

いつもライブラリを愛用させていただいています。 ありがとうございます。 初歩的な質問で申し訳ないのです。 モデルデータを現在モデルデータが向いている方向に進ませたいのですが、 向いている方向のベクトルの取得方法がわかりません。 どなたかアドバイスをいただけると幸いです。 よろしくお願いします。

Page: 1 |

Re: モデルデータの向いている方向 ( No.1 )
名前:GUMI 日時:2011/01/22 11:10

MGetRotYでモデルを回転させた角度の回転行列を取得し、VTransformでモデルに足して移動させていたベクトルを変換すれば モデルの向いているベクトルが出てくると思います。 勘違いしていたらすいません
Re: モデルデータの向いている方向 ( No.2 )
名前:埴輪 日時:2011/01/22 18:17

MV1GetRotationXYZではいけないのでしょうか。 さらに勘違いしていたらすみません。 自分は、なにしろ行列はまだ習っていないので なにやら便利そうだと思っていても使っていません。
Re: モデルデータの向いている方向 ( No.3 )
名前:かるて(解決済) 日時:2011/01/22 19:43

お二人ともありがとうございます。 >GUMIさん ご教授いただいた方法で試してみました。 座標 x110、z600 にモデルデータを配置し、 座標 x110、z100 に向かった状態で VECTOR Vect = MV1GetRotationXYZ( ModelHandle ) ; MATRIX Matrix = MGetRotY( Vect.y + ( 180 * + PHI_F / 180 ) ) ; VECTOR Vect2 = VNorm( VTransform( Position , Matrix ) ) ; Position.x = MoveVec.x + Vect2.x ; Position.z = MoveVec.z + Vect2.z ; として実行してみました。 x500 以上で z100-300前後の間では 正常にモデルデータの向きに進みました。 ありがとうございます! その他の状況下では予想外の動作が起こったので、もう少し研究してみます。 >埴輪さん すみません。実は私も行列は(というか3D自体も)あまりよくわかっていませんので勉強中です。 なので違っていたら申し訳ないのですが、 MV1GetRotationXYZは回転値で、例えばモデルデータ座標 x0 、z0 にあり、 Y軸の方向が90度に向かっていた場合にMV1GetRotationXYZを使用し 回転値を取得すると、x 0.0f, y 1.5707f , z 0.0f のようになります。 私が求めているのは上の例でいえば、Y軸90度の方向に1進んだ値が欲しいのです。 質問自体があやふやで申し訳ありませんでした。 また、アドバイスを下さったお二方、本当にありがとうございました。

Page: 1 |