トップページ > 過去ログ > 記事閲覧
mqoファイルのローカル座標
名前:Amayama 日時: 2010/12/12 00:37

 はじめまして。Amayamaと申します。よろしくお願いします。  メタセコイアで作成したモデルデータについて、「ローカル」メニューを使用してローカル座標を変更すると、 Dxlibでの表示がうまくいきません。また、DxLibモデルビューワーでも同様です。 私の使用osはwindows Vistaです。  例えばメタセコイアで人型モデルを作成し、グローバル座標の原点がお腹の中心にあるとします。 腕フレームについて、肩の根元にローカル座標の原点を設定します。 このファイルをDxLibベースの表示でみると腕が上の方にオフセットされて表示されてしまいます。 ローカル座標を原点に設定したときはメタセコイア上での正常な表示と同様になります。  テキストエディタでmqoデータを見てみたところ、"translation"の箇所の行列が座標変換行列のようですが、 実際の頂点の値がグローバル座標で記録されているため、DxLibでの使用の際に 変換行列座標でのオフセットが2重に行われているように思います。  mqoデータの作り方に問題はないと思いますが、このような現象について何らかの対処方法があるのでしょうか。  検証がしっかりできればプログラムの組み方によって対応できると思いますが、 念のためバグかもしれない、という報告も兼ねて質問ということでよろしくお願いできればと思います。

Page: 1 |

Re: mqoファイルのローカル座標 ( No.1 )
名前:いっち 日時:2010/12/12 12:19

事象の再現するテストデータをご提供頂けますでしょうか? ご使用のDXライブラリのバージョンも教えてください。
Re: mqoファイルのローカル座標 ( No.2 )
名前:Amayama 日時:2010/12/13 00:11

 お世話になります。  使用していたDxLibのバージョンはVer 3.00eでした。  さきほど最新の3.04に切り替えて試してみましたが、同じ結果です。    VisualC++ 2008 Express Editionを使用しています。  DirectXのバージョンは11。  少し気になるのがノートPCのため、グラフィックボード関連が弱そうなことです。  ただしDirectX診断ツールではDirectDraw,Direct3D, AGPテクスチャの3つのアクセラーレータは 「使用可能」となっています。  mqoデータをアップしました。  モデルビューワー(最新版)のログ付きです。 ttp://www1.axfc.net/uploader/Sc/so/182969.zip パスワード=DxLib  どうぞ、よろしくお願いします。
Re: mqoファイルのローカル座標 ( No.3 )
名前:いっち 日時:2010/12/14 23:02

お答えいただいてありがとうございます。 ただ、私は3Dに詳しくないので、お役に立てそうにありません。 申し訳ありませんが、他の方の回答をお待ち下さい。
Re: mqoファイルのローカル座標 ( No.4 )
名前:Amayama 日時:2010/12/15 00:05

いっち様  御返答いただき、誠にありがとうございます。  御尽力感謝いたします。
Re: mqoファイルのローカル座標 ( No.5 )
名前:管理人 日時:2010/12/26 18:56

ご返信が遅くなり申し訳ありません ローカル座標の機能を使用したmqoファイルの読み込みに対応していませんでした アップしていただいたローカル座標を使用するファイルが正常に読み込まれるように 修正したバージョンをアップしましたので、よろければお試しになってみてください m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
Re: mqoファイルのローカル座標 ( No.6 )
名前:Amayama(解決+a) 日時:2010/12/27 21:17

管理人様  お忙しい中、ご対応いただきありがとうございました。  静止したモデルについては正常に表示することができました。 よって本質問は「解決」としたいと思います。  ただし、MV1ResetFrameUserLocalMatrixのサンプルプログラムを適用した場合、 座標変換行列の設定がうまくいっていないようです。  本スレッドの返答No2で私が用意したmqoファイルで試すと、腕がまっすぐy方向(縦)に 300.0fオフセットされるのではなく、若干横(x方向)にも動いてしまっています。 300.0fの部分を100.0fにして試すとわかりやすいかと思います。  個人的にはmqoファイルを動かすことはないので問題ありませんが、念のため報告です。  ありがとうございました。
Re: mqoファイルのローカル座標 ( No.7 )
名前:管理人 日時:2011/01/03 21:57

正常に動作したようで何よりです MV1ResetFrameUserLocalMatrix のサンプルプログラムにアップしていただいた mqoファイルを使用すると中心に寄るのは仕様通りの動作です MV1SetFrameUserLocalMatrix は元々フレームに設定されているパラメータを無視して MV1SetFrameUserLocalMatrix で設定する行列を使用する、というものですので サンプルでは最初から2番目のフレームに設定されている移動値 x=24.0 y=0.0 z=0.0 を無効化して、代わりに x=0.0 y=-300.0 z=0.0 を設定しているので x=24.0 が x=0.0 になった分だけx軸方向にも移動するというわけです ( ちなみに元の SimpleModel.mqo は全てのフレームの移動値パラメータが0.0なので、 y=-300.0f を設定した場合はただ下に移動するだけになります )
Re: mqoファイルのローカル座標 ( No.8 )
名前:Amayama(解決) 日時:2011/01/12 12:24

 返答遅れました。追記感謝です。  なるほど、バグでもなんでもなかったのですね。 理解が足りませんでした。  本当に、ありがとうございました。

Page: 1 |