- 1 名前:名前は開発中のものです。 [2008/05/03(土) 16:43:29 ID:U1blhBE2]
- ゲームグラフィックスの板がないようだったので。。
CG板にいっちゃているのかな。 解像度、テクスチャ、エフェクトなど ゲームグラフィックスの作り方やノウハウ。 役立つページを紹介しましょう。質問もOKです。
- 277 名前:名前は開発中のものです。 mailto:sage [2013/04/23(火) 22:18:20.58 ID:R/AYC3Uw]
- 90度回転の時だけの話でよければ、X軸、Y軸の回転順を変えればOK
まぁ、他の角度でも正しく動かすためには276のいう通りなんだが
- 278 名前:275 [2013/04/24(水) 02:22:36.15 ID:Jeg6uYsS]
- >>276
>>277 返答ありがとうございます。 Matrix.LookAtLH を Matrix の Yaw と Matrix の Pitch に変更しました。( C# Managed DirectX です) device.Transform.View に Yaw と Pitch の行列を掛け合わせたものを代入したのですが、結果は同じでした。 Matrix stMat = Matrix.Identity; stMat *= this.mMatPitch; stMat *= this.mMatYaw; device.Transform.View = stMat; 「ヨーの行列を逆から掛ければいい」って所が理解できないんですよね。。。すいません。 掛け合わせ方に関してもう少しご教授願えませんでしょうか?
- 279 名前:275 [2013/04/24(水) 21:38:30.10 ID:Jeg6uYsS]
- 真下(真上)を向いた時でも画面を左右にパンしたような動きにする事はできました。
device.Transform.View = Matrix.Multiply(this.mMatPitch, this.mMatYaw); が、これですと今度は真左(真右)を向いた時に、回転運動してしまいます。 簡単に考えてましたが結構難しいですね。 もう少しがんばってみます。
- 280 名前:名前は開発中のものです。 [2013/04/24(水) 22:16:07.70 ID:2hyv5vhS]
- D3DX使えるなら
D3DXQuaternionRotationYawPitchRoll でqを初期化(前回のqとして使用) D3DXQuaternionRotationYawPitchRoll 今回の回転角度入れて回転量のqを取得 D3DXQuaternionMultiply 前回のqと回転量のq掛け合わせて回転後のqを取得(次の前回のqとして使用) D3DXMatrixRotationQuaternion qを回転行列にする C#だと Quaternion.RotateYawPitchRoll Quaternion.Multiply Matrix.RotateQuaternion これ?
- 281 名前:名前は開発中のものです。 mailto:sage [2013/04/24(水) 22:21:21.75 ID:GXtoO3cP]
- 期待する結果がだせればいいなら、Matrix.LookAtLHを使うといいよ。
回転順によって結果が違うのを理解するのは3Dプログラムで重要なので、 LookAtLHを使わずにいろいろ試したり、計算してみるのもいいけどね。 がんばれ。
- 282 名前:275 [2013/04/26(金) 19:23:52.43 ID:ID10QpvF]
- >>280
>>281 ありがとうございます。 Quaternion は利用しませんでしたが、お陰さまでできました。 View用のMatrixに毎フレーム掛け合わせるだけでした><
|

|