トップページ > 記事閲覧
vmdの物理演算について
名前:meca 日時: 2018/10/07 06:05

こんにちは。 DXライブラリを長い間愛用させて頂いております 早速ですが、2点不明な点があるので質問させていただきます。 vmdの物理演算のボーンフレームを部分的にOFFにしたのですが、(スカート等の貫通防止) mmdではOFFにできているのにdxライブラリで読み込むと適応されず物理演算が動くのですが、仕様でしょうか? あともう一点ですが、 // 読み込むモデルの物理演算モードが事前計算( DX_LOADMODEL_PHYSICS_LOADCALC )だった場合に適用される重力の設定をする MV1SetLoadCalcPhysicsWorldGravity(int GravityNo, VECTOR Gravity ); これの第一引数のGravityNoとは何を指すデータなのでしょうか? 大変恐縮ですがご回答お待ちしております。
メンテ

Page: 1 | 2 |

Re: vmdの物理演算について ( No.1 )
名前:MSK 日時:2018/10/07 09:17

後者の方ですが、DxModelLoaderVMD.cpp を読んでみると MMDモデル001L.vmd のように L をつけるとループ処理されますが、他にも処理が可能で、 MMDモデル001G15.vmd のように G+番号(0〜255)とすると、このモーションは重力番号15とする。 その後、MV1SetLoadCalcPhysicsWorldGravity(int GravityNo, VECTOR Gravity ); でその重力番号に 好きな重力値をセットすることができる・・・という感じでしょうか?(あくまで想像です) ただし、LoadFile_VMDの中で itemp = 1 ; for( j = 0 ; j < GravityNoNum ; j ++ ) { *GravityNo += itemp * GravityNoStr[ GravityNoNum - j - 1 ] ; } となっていますが itemp = 1 ; for( j = 0 ; j < GravityNoNum ; j ++ ) { *GravityNo += itemp * GravityNoStr[ GravityNoNum - j - 1 ] ; itemp *= 10; } ではないでしょうか? (さらに言えばその下にある Strp--; は必要でしょうか?)
メンテ
Re: vmdの物理演算について ( No.2 )
名前:meca 日時:2018/10/08 00:51

>MSK 様 ご回答ありがとうございます! 理解しました! ありがとうございます! あと一点、物理演算のOFFが適応されない件なのですが、 サンプルコードと、実行動画を用意致しました。 Lat式初音ミクのツインテールの片方だけ物理演算をOFFにしたvmdをアニメーションしたものです。 宜しければご確認をお願いします。 ↓DropBoxリンク dropbox.com/sh/5xyb9wg5m7w4j32/AAATFRUf7tkKgx0KLGkPvcgTa?dl=0
メンテ
Re: vmdの物理演算について ( No.3 )
名前:MSK 日時:2018/10/08 11:02

MMDの物理演算には  オン・オフモード  常に演算  トレースモード  演算しない がありますが、DxLibでは「常に演算」と「演算しない」のみ対応しているのでは ないでしょうか。 (今回のようにOn/Offをするための「オン・オフモード」が無い)
メンテ
Re: vmdの物理演算について ( No.4 )
名前:管理人 日時:2018/10/09 03:01

サンプルをご用意していただきありがとうございます m(_ _)m すみません、MSKさんのご指摘の通り物理演算のオン・オフモードに対応していませんでした ( というか VMDファイルのデータにそのような仕様があることすら知りませんでした orz ) フル対応しようとするとかなりの作業になってしまうので、ひとまず 事前計算モード( DX_LOADMODEL_PHYSICS_LOADCALC )の場合のみ物理演算のオン・オフが 適用されるようにしました こちらに適用されるようにしたバージョンをアップしましたので、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.2 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.zip // Android版 ARM用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM64.zip // Android版 ARM64用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.zip // Android版 x86用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x64.zip // Android版 x64用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) // ビューアー https://dxlib.xsrv.jp/temp/DxLibModelViewerTest.zip
メンテ
Re: vmdの物理演算について ( No.5 )
名前:MSK 日時:2018/10/09 21:59

気が引けますが、先にコメントさせていただきます。 mecaさんが用意されたモーションおよび、そのモーションの途中から物理ONに変更したモーション ともに動作を確認いたしました。ありがとうございます。 なのですが、DxLib Model Viewerが落ちるようになりました。 条件としては @PMD読み込み時の物理演算のFPSを 120 にしている (240以上は未確認) Amecaさんが用意されたLat式ミクとモーション です。 Aについては、ミクのモーションを物理ON/OFFの無いものだけにしても落ちます。ただし別の.pmxに 物理ON/OFFを含めたモーションを読み込ませても大丈夫でした。 60FPSでは大丈夫そうですが、ぜひとも120FPSにしたいので、また折を見てご確認をお願いいたします。
メンテ
Re: vmdの物理演算について ( No.6 )
名前:管理人 日時:2018/10/11 02:56

お試しいただきありがとうございます、そしてバグが残っていてすみません orz 載せていただいた条件で手元でも落ちるのを確認しました 修正版をアップしましたので、お手数で申し訳ありませんが よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.2 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.zip // Android版 ARM用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM64.zip // Android版 ARM64用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.zip // Android版 x86用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x64.zip // Android版 x64用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) // ビューアー https://dxlib.xsrv.jp/temp/DxLibModelViewerTest.zip
メンテ

Page: 1 | 2 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存