トップページ > 過去ログ > 記事閲覧
モデルの一部を指定方向に向けたい
名前:うさぎ 日時: 2011/04/10 00:14

モデルの腕を任意のベクトル方向に向けたいのですが、うまいやり方がわかりません。 腕を構成するフレーム番号がnとm, 向けたい方向ベクトルがvecであった場合 (nが根元・モデルに対する位置固定) MGetRotVec2()でm-nとtvec間の変換行列を習得して _TMAT = MGetRotVec2( VNorm( VSub( MV1GetFramePosition(modelhandle,m), MV1GetFramePosition(modelhandle,n) ) ), VNorm(vec) ) これを MV1SetFrameUserLocalMatrix()で 作用させたら良さそうなのですが、 いまいちできません 題名の挙動を満たせる方法ありましたら、 ご教授お願いします。 (特に上記のやり方に拘りはないです)

Page: 1 |

Re: モデルの一部を指定方向に向けたい ( No.1 )
名前:管理人 日時:2011/04/11 01:09

モデルのフレームはそのフレーム親のフレームのパラメータの影響を受けるので ( 例:指フレームは手フレームの影響を受け、手フレームは腕フレームの影響を受け、  腕フレームは肩フレームの影響を受け、肩フレームは背骨フレームの影響を受け・・・といった感じに ) 末端のフレームのパラメータを操作して希望する方向に向けるのは少し難易度が高くなります 不都合が無ければ「モデルの一部」を別モデルとして分離して、そのモデルに対して うさぎさんが試された計算式を適用するのが一番容易にご希望の処理を実現することができると思いますが、如何でしょうか?
Re: モデルの一部を指定方向に向けたい ( No.2 )
名前:うさぎ 日時:2011/04/16 16:50

管理人様 返信ありがとうございます たしかに・・・、 分離してやると処理は簡単そうですね。 メモリ的にはやや不利なのかもしれませんが 不都合も無いような気もしますし、というか他の所望の挙動を得やすそうですね。 ちなみにですが、世間の(プロ・アマ含めて)トレンドとしてはどっちなんでしょう? もしご存知でしたらご返信ください
Re: モデルの一部を指定方向に向けたい ( No.3 )
名前:管理人 日時:2011/05/03 19:50

ご返信が遅くなり申し訳ありません 場合によりけりだと思いますが、プロの場合は大抵はIK( インバースキネマティクス )のシステムを作成しているので フレームを別モデルに分離しないで処理する方法を採ると思います IKは少し難易度が高いので、アマの場合はIKを作らずに済ます方はフレームを別モデルに分離する場合もあると思います 目的のフレームに到達するまでの座標変換が予測できるような単純なモデルや、DXライブラリと違って 親のフレームの座標変換の影響を受けないモデルシステムを採用している場合などはIKシステムを実装していなくても フレームを別モデルを分離しないで処理することもあると思います

Page: 1 |