3Dオブジェクトの見た目上の奥回転

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
みや

3Dオブジェクトの見た目上の奥回転

#1

投稿記事 by みや » 9年前

画像DXライブラリで3Dステージエディタを作っています。
エディタ上でカメラの位置や見ている方向は動かせるのですが、配置しているオブジェクトを回転させる処理で躓きました。
MV1SetRotationXYZ関数で回転させていて、Y軸回転は操作している通りに(つまり右キーを押したら右回転)実装できましたが、
X軸回転がうまく動きませんでした。具体的には、
X軸回転させるとき、上キーを押すと画面で見て奥方向に回転するつもりだったのですが、当然かもしれませんが、ワールド上のX軸のまわりの回転をしてしまいます。
これをうまく画面で見て奥方向に回転させる方法は無いでしょうか?
画像を添付しておきます。

みや

Re: 3Dオブジェクトの見た目上の奥回転

#2

投稿記事 by みや » 9年前

補足ですが、カメラの見ている方向の正規化したベクトルは取得できます。ただしそのベクトルのy成分は0

yuni

Re: 3Dオブジェクトの見た目上の奥回転

#3

投稿記事 by yuni » 9年前

こんにちは。

カメラのZ軸がわかっているなら
カメラから見た上方向((0,1,0)もしくはz軸を90度回転)を定義して外積したら
カメラのX軸が出る(外積で直行ベクトルが計算できる)ので、
それで軸の回転行列を作って回せばいいんじゃないでしょうか。

気になるのはベクトルですね。
みや さんが書きました: カメラの見ている方向の正規化したベクトルは取得できます。ただしそのベクトルのy成分は0
この場合、カメラが真上、もしくは真下を見ると
ベクトルが(0,0,0)になるのですが、大丈夫なんでしょうか。
オフトピック
ステージエディタ面白そう…。

閉鎖

“C言語何でも質問掲示板” へ戻る