akiraaniの日記: MMD物理演算とMMDボーン動作の組み合わせの話 1
MMDにおける物理演算は一般的な物理演算システムにはない特性をいくつか持っています。
そのもっとも大きな要素が剛体のボーン追従です。
本来、物理演算のオブジェクトは他のオブジェクトへ力を与えると、その反作用を必ず受けます。物理学で言うところの作用反作用の法則が再現されているからです。
ところが、MMDには外部に影響を与えるのに、反作用を一切受けない物体が存在します。それがボーン追従の剛体です。ボーン追従の剛体はその名の通りボーンの動きに忠実に追従する剛体で、ボーンに合わせて動き、物理演算の剛体にぶつかれば弾き飛ばしますが衝突の反動は一切受けません。
なぜそんなニュートン力学に反する機能があるのかというと、MMDの物理演算はモーション作成を楽にするためにある機能で、物理現象をシミュレーションすることが目的ではないからです。具体的には、モデルの動きにあわせて髪の毛とかスカートを自動的にひらひらさせる機能なので、体の動きはモーションの通りに動くのが大前提なのです。
また、MMDのボーンの機能には他のボーンの動きをコピーしたり、足し合わせたりする機能があります。この機能を使うと、物理演算機能で自動計算された動きを、別のパーツの動きに反映させることができます。
だから何、という話なんですが、実は、この機能を使うと「うなぎの天登り」が実現できるのです。
閑話-うなぎの天登りとは-
うなぎをつかむが、うなぎはつるりと上に逃げてしまう、それを手繰り寄せようとすると、うなぎはまたつるりと上に逃げる。それを繰り返していくうちにうなぎにひっぱられてどんどん天に登っていって……という江戸の小話です。鰻の天上というタイトルになっていることもある模様。
現実の物理法則では、うなぎはつかんでいる人間の手を支えにして上に登っているだけで、人間が鰻を手繰り寄せればその分引き戻されて人間まで一緒に登っていったりはしません。
しかし、MMDのボーンの動きのコピー機能を使えば、うなぎは人間を支えに登り、人間は鰻の動きにあわせて登り、お互いが相互に作用しながら無限に登り続けることが可能になるのです。
なお、実際にモデル作ってうなぎの天登りができることは確認しましたが、制御ができないため使い道が思いつかず、お蔵入りになりました。
ただ、MMDのボーン動作と物理演算の組み合わせは応用しだいでいろんなことができるようになります。MMD-OMF8に出した物理演算リフトもこの原理を利用しています。
IKボーン、回転ボーンの特性やら、ボーンの動きの合成なんかを駆使すればもっといろんな応用が可能だと思うので、時間とやる気が出来たらまた研究を進めてみようかと思います。
もしかしてブートストラップもできる? (スコア:1)
原義の「自分が履いているブーツのストラップを引っ張って自分を空中に持ち上げる」挙動