Re: 物理演算のPMDモデル その2 ( No.1 ) |
- 名前:管理人 日時:2011/11/07 00:16
すみません、ダウンロードするのが遅かったみたいでアップローダーから削除されてしまったみたいです
大変申し訳ありませんがもう一度ファイルをアップしていただけますでしょうか? orz
|
Re: 物理演算のPMDモデル その2 ( No.2 ) |
- 名前:弱音ハク 日時:2011/11/07 09:55
以下に再アップロードいたしました。
w w w1.axfc.net/uploader/Sc/so/290167.zip
お手数となりますが、よろしくお願いいたします。
|
Re: 物理演算のPMDモデル その2 ( No.3 ) |
- 名前:管理人 日時:2011/11/20 15:08
こちらこそお手数お掛けしました、モーションを拝見いたしました
物理演算の結果がおかしくなってしまう原因ですが、今回の場合はモーションとなります
確認用の機能を追加したモデルビューアーをアップしましたので、
よろしければこちらをダウンロードしてください m(_ _)m
// ビューアー
http://homepage2.nifty.com/natupaji/DxLib/DxLibModelViewerTest.zip
ビューアーを起動したら、メニューの以下の2項目のチェックが外れている状態にしてください
読み込みオプション → PMD読み込み時に物理演算を適用する
表示 → 物理をモーションループ時にリセット
その状態でモデルを読んでいただき、件の現象が発生してしまうモーションを
再生してみてください、恐らく何回かモーションがループしたところで件の現象が発生すると思います
今回ご報告いただいた現象は、モデルが物理演算が破綻するような動きをした場合に発生します
例えば haku000L.vmd はモーションの最後のフレームが、モーションの最初のフレームとは違う姿勢となっていますが
このモーションをループ再生した場合は、モーションの最後のフレームからモーションの最初のフレームになったときに
物理演算的には「モデルが一瞬で( 物凄いスピードで )モーションの最初のフレームの姿勢に変化した」
ということになり、物理演算の髪やネクタイの接合部がそのスピードに耐えられず破綻する、という現象が発生しています
( 現実世界なら破綻した部分はちぎれて何処かに飛んで行くところですが、DXライブラリが使用している物理演算では
その機能は無いので結果繋がっているけど何処かに行ってしまっている状態になります )
なので、今回ご報告いただいた現象は「モーションの最終フレームのポーズをモーションの最初のフレームのポーズにする」
ことで解決することができます
よろしければお試しください m(_ _)m
|
Re: 物理演算のPMDモデル その2 ( No.4 ) |
- 名前:弱音ハク(継続) 日時:2011/11/21 01:25
ご返答いただきまして誠にありがとうございます。
ご提示いただきました確認方法を用いてビュアーでは
期待する動きを確認することが出来ました。
しかしながら、自作ゲームの方に処理を持っていこうとすると
相変わらず、伸びています・・・(汗
ビュアーに関して確認なのですが、
ビュアーの挙動を自作ゲームに組み込む場合以下の点で認識あっていますでしょうか。
また、これ以外に気をつけるような部分などありますでしょうか。
>>
読み込みオプション → PMD読み込み時に物理演算を適用する
<<
1. 上記のチェックをはずす、と言うのは
DX_LOADMODEL_PHYSICS_REALTIMEを適応すると言うこと?
2. 重力はデフォルト値に変更なく、-122.5f?
3. 再生速度をビュアーで60.0000cnunt/Secとして確認したならば
自作ゲームが60fps、アニメーション速度1.0fで動作していることと同じ?
質問のモーションの使用タイミングは、
立ちモーションの状態から攻撃ボタンを押下したタイミングで切り替わるため
攻撃ボタン押下時のMV1AttachAnimを設定した後にMV1PhysicsResetStateを叩けば
ビュワーでの1回目の再生状態の挙動になると言うことで認識あっているでしょうか。
いろいろ試したのですが、うまくいかずお力添えいただけると幸いです。
|
Re: 物理演算のPMDモデル その2 ( No.5 ) |
- 名前:管理人 日時:2011/11/27 21:19
> 1. 上記のチェックをはずす、と言うのは
> DX_LOADMODEL_PHYSICS_REALTIMEを適応すると言うこと?
はい
ただ、負荷が高いので沢山3Dモデルを出す場合は不向きです
今回はリアルタイム物理演算を有効にした状態で連続してループ再生し続けると破綻するというのを
見ていただきたかったのでビューアー上でリアルタイム演算モードにしていただきました
> 2. 重力はデフォルト値に変更なく、-122.5f?
はい
> 3. 再生速度をビュアーで60.0000cnunt/Secとして確認したならば
> 自作ゲームが60fps、アニメーション速度1.0fで動作していることと同じ?
はい
> 立ちモーションの状態から攻撃ボタンを押下したタイミングで切り替わるため
> 攻撃ボタン押下時のMV1AttachAnimを設定した後にMV1PhysicsResetStateを叩けば
> ビュワーでの1回目の再生状態の挙動になると言うことで認識あっているでしょうか。
はい
ですが、リアルタイム演算の場合攻撃モーションの最初のフレームの姿勢が立ちモーションにしたり、
若しくは二つのモーションを MV1SetAttachAnimBlendRate を使用して徐々に立ちモーションから
攻撃モーションに移行するようにすれば物理の破綻は発生しませんので、MV1AttachAnim の後に
MV1PhysicsResetState を使用する必要はありません
MV1PhysicsResetState はモデルを最初に出すときと、モデルの座標がワープしたときだけに使用することを想定しています
|