【備忘録】MMDエンジンによる往復運動の制御

元記事:https://archive.md/cIMHR

作成者:rin様

ニコニコユーザーページ:https://www.nicovideo.jp/user/6656962

作成日:2016-05-27 01:13


自動で回転するMMDエンジンを使って

自動で往復運動の制御をさせたくて試行錯誤した結果、

それっぽい動きが実現できたので備忘録として残しておこうと思います。


今回、こちらの動画で配布されている結城(Lv.1究極P)さんの

MMDエンジンを利用させていただきました。


スタートは左側画像のMMDエンジンをそのまま組み込んだボーン(緑)の回転運動。

ゴールは右側画像の上下するボーン(赤)の往復運動とします。



こうやったらできました。

青色のボーンを追加して、緑色ボーンの回転運動を

赤色の往復運動に変換しています。





【往復運動ボーン構造作成手順】

①ボーン作成

緑色の回転させるボーン(回転ボーン)を親として、

青いボーン(補助ボーン)、

赤い往復運動をさせるボーン(往復ボーン)を子として作成。


このとき、回転ボーンと補助ボーンは同じ長さにします。



②ボーン設定

回転ボーンがどの角度になっても、往復ボーンが常に垂直になるように考えました。



上記から、回転ボーンの回転角度を「1」としたとき、

補助ボーンは回転ボーンの角度の-2倍、

往復ボーンは回転ボーンの角度の1倍なので、

各ボーンの設定を次のようにしました。

※ここでは回転ボーンに、MMDエンジンを組み込んでいます。



補助ボーン

回転付与親:回転ボーン

付与率:-2







往復ボーン

回転付与親:回転ボーン

付与率:1








これで、回転ボーンを回転させると往復ボーンが垂直のまま

上下に往復運動するようになりました。


ちなみに、補助ボーンの位置を回転ボーンの反対方向へ移動させてから、

上記と同じ回転をさせてみました。




回転ボーンと補助ボーンは離れていますが、

親子関係があるので回転ボーンに合わせて補助ボーンは回転します。

すると…


先ほどは上下していた往復ボーンが、

水平に往復するようになりました。





というわけで、いまいち理屈は理解できていませんが、

このボーン構造で回転運動から上下左右の往復運動へ変換できるようになりました。


MMD内で利用する場合は、往復ボーンを外部親として設定することで、

任意のモデルやアクセサリを自動で上下や左右に動かすことができると思います。

使い道はモグラたたき程度しか思いつきませんが…



※あとから色々と調べてみましたが、

 このボーン構造はリンク機構とかスライダクランク機構とかいうものに近いようです。

 各ページを見てみましたが、目が滑って滑って…全然理解できませんでした…


※※ここで解説したボーン構造のpmxモデルを配布します。

 配布版にはMMDエンジンは組み込んでいません。

 配布場所:https://bowlroll.net/file/103994

 パスはこのブロマガのar以降の数字6桁です。

コメント