作業メモ|ZHUOWARE BACKYARD TOP|ZHUOWARE表ページ
An Experiment of MMD 5 beta Physics Emulation
June. 23, 2009
by: zhuo http://zhuoware.blog110.fc2.com/
はじめに
2009年6月,物理演算ライブラリBulletを搭載した MikuMikuDanceの新バージョン,MMD 5 betaが発表されました.
樋口優 様の"test" 動画
以後,MMD 5 betaを用いた,物理演算ならではの動画が次々公開されています.
そこで,私も!と思い立ち,
「振動」をテーマに取り上げて,少し実験をしてみましたので,まとめます.
結論を一言で言えば,
「ゆっくりの振動ならいける!でも音を発するような周波数の弦振動は,発散してしまって,簡単には実現できないようだ.」
という感触でした.
物理演算を用いて,このような「振動するモノ」の表現をなさりたい方,どうぞ拙作のPMDをダウンロードして設定をごらんになり,参考になさってください.
お力添えを下さっている方々
お力添え下さっている皆様に,ココロから感謝もうしあげます.ありがとうございます!
Disclaimer
- 本データは個人的な実験の結果をご紹介するものにすぎません.ドキュメントは最小限であり,テストもほとんどしていません.ご使用は,パッケージ内容をご理解できる方のみ,at your own riskでお願いいたします.データのご使用により生じた結果については一切責任を負いません.
- 各種法令および製品使用許諾条項の遵守をお願いいたします.
- Vocaloid製品に関係される各社様および関係各方面から,本データ,ないし関連情報の公開について中止の要請があった場合には,ただちに公開を中止いたします.その場合には,このページで告知いたします.
|
実験の説明
実験環境
- MikuMikuDance 5 beta.
- 入手して,起動する状態にしておいてください.
- ご参考:MikuMikuDance
- サンプルPMDデータ
- 910の人(シャベルP) 様の「シーソーダミー.pmd」をベースにzhuoが制作したPMDデータです.ダウンロードして解凍しておいてください.
- VibrationPMDSample.zip
- VibrationExperiment_03_full_a1.pmd ... 安定して振動する方のPMDデータです.
- VibrationExperiment_04_ng_a1.pmd ... 不安定になる方のPMDデータです.
実験
- 上記のPMDデータのいずれかをダウンロードしておきます.
- MikuMikuDance 5 beta を起動します.
- MikuMikuDance 5 betaの「モデル操作」の「読み込み」クリックして,上記のPMDデータを指定します.
- MikuMikuDance 5 beta 「物理演算」タブの「剛体表示」をonにします.
- 同じく「物理演算」タブの「常に演算」を選択すると振動をはじめます.
- パラメータについては「ヘルプ」タブの「モデル拡張」から「物理演算編集」を選んで観察してください.
PMDデータの説明
- 左端は,ひとつの剛体をジョイントで固定点に吊り下げて振り子として揺らしたものです.
- 中央は,ひとつの剛体をジョイントで固定点に吊り下げて,ばねによる単振動をさせたものです.
- 右は,左の固定点,ジョイント,剛体,ジョイント,剛体,ジョイント,右の固定点.というように接続し,弦振動を模擬したものです.
実験結果
考察
- 振り子と,ばねによる単振動は,見たところ不自然さはありません.
- 一方,弦振動を模擬したものは,中央のジョイントのばね係数が"350"のときは安定して振動し続けますが,ばね係数を"500"にすると,不安定になってしまいます.
- 良く見ると,右の弦振動(のはずだった) の剛体に衝突されて,中央のばね振動の剛体も少し揺れ始めていますw.
不安定さの原因は,サンプリングレートに比して速すぎる現象を模擬しているからかと思いましたが,まだ,断定はできません.
具体的には,30fpsなので,15Hz以上の振動現象はうまくシミュレートできないのではないかと思ったのですが(サンプリング定理),MMDのfps制限を無制限として,128fpsという状況で計算させても,上記の挙動は依然現れます.
残る可能性として,つぎのものが考えられるかと思います.
- モデルのパラメータ設定誤りにより,思ったように振舞っていない.(ぉぃ
- 物理演算は,単純な差分方程式であるので*近似*誤差が累積しやすい.
- 数値計算の*まるめ*誤差 により誤差が蓄積する.
したがって,この実験からの印象としては,次のような指針が得られると思います.
- 物理演算機能は,ゆっくりとした振り子やばねの単振動などの表現に利用するには十分である.
- 弦振動の模擬は,ゆっくりとした振動ならば可能.音を発するような周波数での振動は無理がある(原因は特定できていない), 別途解析解を求め,モーションデータを読み込む方がよいだろう.
(June. 23, 2009)