トップページ > 記事閲覧
PMDモデルの足IKの不具合
名前:H.M 日時: 2017/07/28 15:17

管理人様、初めまして。 いつもDXライブラリを利用させていただいております。 便利なライブラリを公開いただきありがとうございます。 PMDモデルの足IKまわりで不具合を確認したためご報告します。 MMD付属モデルを使用して以下の3種類の不具合を再現するモーションデータを作成して確認しました。 @屈伸をさせると足IKが地面から離れてしまう A最終フレームにて足IKの向きが意図せず変わってしまう B膝が震えたような状態となる 使用モデル:初音ミクVer2.pmd(MMD Ver.9.10(x64)付属) 確認Ver:3.18c(DxLibModelViewer.exe) メールにてモーションデータを送らせていただきました。 お忙しい中申し訳ありませんが、ご確認いただければ幸いです。 よろしくお願いします。
メンテ

Page: 1 |

Re: PMDモデルの足IKの不具合 ( No.1 )
名前:管理人 日時:2017/07/29 01:10

ご報告&再現用のファイルをお送りいただきありがとうございます > @屈伸をさせると足IKが地面から離れてしまう 現象を確認しました 修正したバージョンをアップしましたので、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.exe // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.exe // Windows版 C++ Builder 10.1 Berlin 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.exe // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.exe // Android版 ARM用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.exe // Android版 x86用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース // ビューアー https://dxlib.xsrv.jp/temp/DxLibModelViewerTest.zip > A最終フレームにて足IKの向きが意図せず変わってしまう 最終フレームとはビューアーでモーションを選択した後、再生時間のバーを右端までスライドさせた場合でしょうか? 手元で確認した限りでは最終フレームで不自然に向きが変わってしまうということはありませんでした ただ、本家MMDのソースが公開されていない関係で、IKの処理に関してはできるだけ本家MMDと同じような動きに なるようにしていますが、本家MMDと全く同じ処理を行えているわけではないので どうしても異なる動きになってしまうところがあります なので、申し訳ないことなのですがDXライブラリで読み込んで動かす予定のモーションに関しては 最終的にはDXライブラリで意図した通りの動きになるようにモーションデータの方を調整して頂く必要があります m(_ _;m ( 大雑把な動きであれば概ね再現できているのですが、細かい動きとなるとかなり本家と異なっているので… ) > B膝が震えたような状態となる 手元の環境で MMD Ver.9.26 付属の 初音ミクVer2.pmd を使用してみたのですが、膝が震えるような 現象は発生しませんでした 上記の暫定最新版のビューアーでも同様の現象が発生しますでしょうか?
メンテ
Re: PMDモデルの足IKの不具合 ( No.2 )
名前:H.M 日時:2017/07/29 02:27

早速のご対応ありがとうございます。 暫定最新版のビューアーにて確認させていただきました。 @に関しては足を延ばす瞬間に地面に足がめり込んでしまう状態となっています。 AとBに関しては条件があることがわかりました。 読み込みオプション→PMD読み込み時の物理演算のFPS にて60以外を選択した状態で読み込むことで発生が確認できました。 よろしくお願いします。
メンテ
Re: PMDモデルの足IKの不具合 ( No.3 )
名前:管理人 日時:2017/07/31 00:54

お試しいただきありがとうございます > @に関しては足を延ばす瞬間に地面に足がめり込んでしまう状態となっています。 手元で確認したところ、原因が二つありました 1. 『PMD読み込み時の物理演算のFPS』を 60 以外にすると IK で動くボーンとそれ以外で  動くボーンのアニメーションタイミングにズレが発生するバグがあり地面へのめり込みが増す( バグ ) 2. 出力されるモーションの FPS が 30 な為、1/30秒区切りのぴったりの時間では  IK によって算出された『地面にめり込まない位置』に足があるが、1/30秒区切りの間の  時間は前後のキーの補間となるため、その結果足が地面にめり込むことがある( データ精度上の仕様 ) 1 はバグなので修正すれば解決なのですが、2についてはデータの精度の問題なので、出力するモーションのFPSを 増やすしか解決方法がありません なので、ビューアーに新たに『PMD読み込み時のアニメーションのFPS』という項目を追加して、 デフォルトの 30 の他に 60 も選択できるようにしました ( ただ、60 にするとモーションのデータ量が2倍になります… ) よろしければその変更を行ったバージョンのビューアーと、バグを修正したライブラリをダウンロードしてください m(_ _)m // ビューアー https://dxlib.xsrv.jp/temp/DxLibModelViewerTest.zip https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.exe // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.exe // Windows版 C++ Builder 10.1 Berlin 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.exe // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.exe // Android版 ARM用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.exe // Android版 x86用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース 因みに、『PMD読み込み時のアニメーションのFPS』を 60 にしても、足のめり込みは無くなりません 完全に無くすことは IK の事前計算の方式では原理上不可能なのですが、1 のバグ修正と 『PMD読み込み時のアニメーションのFPS』を 60 にすることで当初よりはかなり違和感が軽減できていると 思いますので、よろしければご確認ください m(_ _;m
メンテ

Page: 1 |

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

   クッキー保存