パスワードを忘れた? アカウント作成
7886805 journal
プログラミング

Ledの日記: MMD物理演算のばたつき抑制策めも

日記 by Led

今度配布した緑化プラグインで樹木モデルを作ると、もれなく各枝の剛体が親だけでなく「センター剛体」にもジョイントで接続される。何故かはよくわからないのだが、そうするとセンター剛体につなぐジョイントのバネ定数が0でも各枝のバネが強くなって、結果としてより自然な感じに枝が揺れるようになった。

今は(出張中なので)手元で試せないのだか、次のような理由ではないかと推測した。Bullet Pysicsの解説本を見たとき、ジョイントにはバネ系と動きを重くするダンパー系があると書いてあったのだが、PMDEditorではダンパー系の設定は見当たらない。これはどうしたことか。恐らく、設定を多少なりとも簡単化するなどの目的でダンパー系の設定はデフォルト値が適用されるのではないか。正しければ、ジョイントを余計につなぐことでダンパー系の設定値を増加させる働きが期待出来る事になる。まだ推測だけど。

ならばジョイントをもっと沢山バネ定数0でつないでやると、MMD特有と言われるプルプルをかなり制限出来るのかもしれない。時間が出来たら試してみたい。うまく行けば、今回配布を見送った物理演算つき柳モデルもうまく行くかもしれない(現状、物理演算のバタバタでうまく柳らしくならなかった。)
---
各枝からセンター剛体へのジョイントを10重くらいにしてやるとさらにばねが強くなった気がするが、計算が遅くなりすぎる感がある。もう少し別の解決方法を探りたいところ。

センター剛体の複製のようなものを作ってそっちにジョイントをつないでみたが、プルプルは特に改善しなかった。残念。ただし、センター剛体2を動かしてやると重力設定をいじらずに木を個別に揺らして風を受けてるっぽい表現は出来るようだ。狭い範囲で強い風が巻き起こるような表現が期待できるな。これは次のバージョンアップのネタにしよう。
---
と思ったが、風ボーンを追加する別のプラグインとして配布するほうがすっきりするな。

それにしてもMMDのジョイントって何なのかいまだに分からない。ばね係数0で純粋なダンパー的な何かとして動いているわけでもない。ダンパーならジョイントでつながっただけの剛体を動かしたら徐々に元の形状に落ち着くはずなのだが。
---
あ、移動制限を0--0にしてたのはまずかったかな。移動制限を-100~+100とかやると、風剛体が移動しても特に何も起こらなくなった。MMDのジョイントにダンパ系は入っていないが正解か。

それにしても風剛体を回転させるとやっぱりジョイント接続先の剛体が追従してくるわけで、これはいったい何なんだろう。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

長期的な見通しやビジョンはあえて持たないようにしてる -- Linus Torvalds

読み込み中...