トップページ > 過去ログ > 記事閲覧
モデルの一部分を回転させるために
名前:北条 日時: 2011/07/23 00:11

何度も質問してしまい大変申し訳ございません。 自分の力の無さを痛感しました。 私は今、3Dゲームで銃を構えてマウスで照準ごと向く方向を動かすシステムを作ろうとしています。 そこで、照準を上に向けたらモデルの上半身も上に向け、下に向けたらモデルの上半身も下に向けるというような仕組みを作ろうとしているのですが、どうしてもモデルの上半身を傾けることが出来ません。 思いつく限りで 別にモデルの情報を一つ構築して、座標を上半身のローカル座標と合わせて、そのモデルを傾け、 MV1GetMatrixを使用して行列を取得し、それをMV1SetFrameUserLocalMatrixで上半身のローカル座標に設定してみたのですが、上半身の位置は変わったのですが回転の情報が反映されませんでした。 五時間近く格闘しているのですが一向に進む気配がありません。 このような場合、どのような処理を行えばよいか教えていただければ幸いです。 又、このような3Dゲームプログラミングの参考になる資料等あれば、そちらも教えていただければ有難いです。 私はあまり資料等の知識を得られていないので根本的に力不足であると感じます。

Page: 1 |

Re: モデルの一部分を回転させるために ( No.1 )
名前:北条 日時:2011/07/23 13:34

もう一つ質問なのですが、回転行列と座標変換行列の効果を併せ持つ行列の作成はできないのでしょうか。 フレームの座標変換行列に回転行列を設定すると上下への傾きは正常に行われるのですが、そのフレーム部分が視認できなくなってしまいます。
Re: モデルの一部分を回転させるために ( No.2 )
名前:クラスクラス 日時:2011/07/23 15:36

質問文に使用されている単語や説明から、3D行列演算に詳しく無いように感じました。 3D空間内を自由に操作したり、スクリーン上に自由に投影したりするためには、 3D行列演算をある程度熟知していなければ難しいと思っています。 なおかつ、回転系を扱う場合はクオータニヲンの性質も理解が要ります。 なので、質問の内容をするためには、行列演算を理解する必要があると思います。 私が習得するために使用した本は下記のものです。これが一番理解しやすいと感じました。 この本を読んで、いくつかの小さなプログラムをくんで実際に動かして初めて、実感としての理解ができました。 何かのサンプルのコピペでも動けばOKなのですが、これを機会に習得してみるのはいかがでしょう? どんな動作でも自由にできるようになりますよ。 オライリー・ジャパン 実例で学ぶゲーム3D数学 ISBN978-4-87311-377-7 (注意:確か行列の縦横がDxLibと逆だったような記憶が、その点はご注意を)
Re: モデルの一部分を回転させるために ( No.3 )
名前:管理人 日時:2011/07/23 21:28

行列についてはクラスクラスさんがご返答されていますのでそれ以外の方法として フレームの行列を MV1SetFrameUserLocalMatrix で直接操作するのではなく、 上向きのポーズと下向きのポーズのモーションを作成して 正面向きのポーズのモーションとブレンドする、 という方法もあります、こちらの方が簡単かもしれません
Re: モデルの一部分を回転させるために ( No.4 )
名前:北条(解決) 日時:2011/07/25 19:06

>クラスクラスさん 仰るとおり、行列について知識はまったくありません。 いや、それどころか基本的な知識すら殆ど持っていません。 お勧めしていただいた本の購入等検討してがんばってみたいと思います。 有難うございました。 >管理人さん その方法は一応、どうしてもできなかった時の最終手段として考えていましたが、私の持っている時間、 知識等から考えた結果、その方法で制作することに決めました。 ご助言、感謝いたします。

Page: 1 |