BlenderでMMDモデルを(mmd_toolsで)利用して動画等を制作する際、一部の胸揺れ方式などの物理はBlenderでは上手く動きません。
※MMDでは動作するが、MMM(MikuMikuMoving)では動かない物理構造はBlender&mmd_toolsでも動かないと考えて良い
そういったモデルをBlenderで利用する場合にBlenderの揺れものAddonなどを利用することでBlender上でMMDモデルの胸を揺らせます。
また、スカートや髪などのボーンに揺れものAddonを使用することで(ボーンとウェイトさえ塗ってあれば)リジッドボディ(剛体)とリジッドボディコンストレイント(Joint)がなくてもクロスシミュの代わりとして衣装や髪などを動かせます。
このページでは例として原神公式モデルのリサを使わせてもらいます。
モーション:ジャンプモーション集/1.小ジャンプ.vmd@おかっち氏
更新履歴:
20230420:Wiggle 2アドオンと衣服や髪を揺らす項目を追加

Spring Bones Addonの右上Clone or downloadをクリックし、Download ZIPからZIPファイルをダウンロードします。
圧縮ファイルの中のspring_bones.pyを''blender-[ver]-[OS]\[ver]\scripts\addons''にコピーします。
(フォルダごとコピーするとBlenderが認識しません)

Blenderを起動し、メニューバーの編集→プリファレンス...→アドオンから検索バーに"spring"と入力してAnimation: Spring Bonesの左のチェックをオンにします。

オブジェクトモードからアーマチュアを選択し、Ctrl+TABキーを押してポーズモードへ入ります。
胸のウェイトが塗られたボーンを選択してボーンプロパティからSpring Bones項目のBone Prameters下のばねと回転にチェックを入れます。
反対側の胸ボーンを選択して同じくチェックを入れます。
Start - Animation Modeをクリックします。

上手く胸ボーンを選択設定できていればアウトライナーに左/右胸ボーン名_springと左/右胸ボーン名_spring_tailというオブジェクトができます。

[Space]キーを押して再生してみます。
揺れすぎていたり硬いと感じたら[ESC]キーを押して再生を停止し、Spring BonesのStopで揺れを止めてパラメーターを調整し、もう一度Start - Animation Modeをクリックします。


いい塩梅になったら、3Dビュー上部のポーズからアニメーション→アクションをベイク...を選択し、選択ボーンのみのチェックを外してベイクします。
リサモデルの場合、胸上L/Rとその子に胸上2.L/Rがあるという胸ボーン構造になっていますが、Spring Bonesは胸上2.L/Rに使用しないと変な揺れ方をしました。
弾性です。
値が小さいと跳ねません。
大きいとよく跳ねます。
小さいほど動きが遅くなります。
大きいと素早く動きます。
たるみです。
1だとボーンは完全にSpring Bones Addonの影響下にあります。
0だとまったく影響を受けません。

オブジェクトモードからアーマチュアを選択し、Ctrl+TABキーを押してポーズモードへ入ります。
胸のウェイトが塗られたボーンを選択してボーンプロパティからWiggle Boneにチェックを入れます。
反対側の胸ボーンを選択して同じくチェックを入れます。

Spaceキーを押して再生してみます。([ESC]キーで停止)

ベイクします。
Bake Wiggle下のAdditive Bake:にチェックが入っているのを確認し、Bake Wiggleボタンをクリックします。
反対側の胸ボーンも同様にベイクします。
Wiggle bonesは胸上L/Rボーンに使用しないと揺れませんでした。
また、デフォルトの設定ではかなり揺れるので下記の画像のようなパラメーターに設定しました。

硬さ(ボーンが元の位置に戻ろうとする動きの速さ)の設定のようです。0〜1の範囲で指定します。
フレームごとに失われるテンションの範囲の設定のようです。0〜1の範囲で指定します。
0だと何時までも揺れ続けます。
値が大きいほどボーンの回転が大きくなります。
値が大きいほどボーンの位置が大きく変わります。
ボーンの伸びる値です。0〜1の範囲で指定します。
値が大きいとよく伸びます。0だとまったく伸びません。
重力です。
値が高いと垂れ下がります。

オブジェクトモードからモデルのアーマチュアを選択し、サイドバーのアニメーションタブのWiggle 2からEnable sceneアイコン、Enable armatureアイコンをクリックして有効化します。


[Ctrl]+[TAB]キーからポーズモードへ入り、Wiggle 2を適用したいボーンを選択してサイドバーのアニメーションタブのWiggle 2からbone head or tailのチェックボックスにチェックを入れます。
このモデルの場合、胸上L/Rとその子に胸上2.L/Rがあるという胸ボーン構造になっていますが、今回は胸上L/Rボーンに”bone head”にチェックを入れてデフォルトの設定で使ってみました。

また、ベイクする際には現在のアクションを上書きオプションを有効化しました。

オブジェクトモードからアーマチュアを選択し、Ctrl+TABキーを押してポーズモードへ入ります。
Addonが正常にインストールされていれば、サイドバーにBoneDynamics Proという項目があるのでそれを開きます。

胸のボーン(このモデルでは胸上L/Rボーン)を選択し、サイドバーのBoneDynamics ProからAdd Bone DynamicsでBone Dynamicsを追加します。

BoneDynamics Proはパラメーターをプリセットから選んだり、現在のパラメーターを新しいプリセットにしたりできます。
また、アニメーションの再生中にパラメーターを操作してリアルタイムで調整できます。

Bake Animationでベイクできます。
ベイク時のオプションで解像度を0にしないと動き(揺れ)が間引かれてしまいます。
BoneDynamics Proは胸上L/Rボーンに使用しないと揺れませんでした。
また、デフォルトの設定ではなく、下記の画像のパラメーターに設定しました。

揺れを特定軸のみに制限する事もできる。
詳しくはこちら
※MMDでは動作するが、MMM(MikuMikuMoving)では動かない物理構造はBlender&mmd_toolsでも動かないと考えて良い
そういったモデルをBlenderで利用する場合にBlenderの揺れものAddonなどを利用することでBlender上でMMDモデルの胸を揺らせます。
また、スカートや髪などのボーンに揺れものAddonを使用することで(ボーンとウェイトさえ塗ってあれば)リジッドボディ(剛体)とリジッドボディコンストレイント(Joint)がなくてもクロスシミュの代わりとして衣装や髪などを動かせます。
このページでは例として原神公式モデルのリサを使わせてもらいます。
Blender+mmd_toolsデフォルト | Spring Bonesのみ 設定デフォルト | Wiggle bonesのみ 設定はこちらのもの | mmd_uuunyaa_toolsのみ 設定デフォルト | BoneDynamics Proのみ 設定はこちらのもの | Wiggle 2 設定はデフォルト |
動画ファイルへのリンク | 動画ファイルへのリンク | 動画ファイルへのリンク | 動画ファイルへのリンク | 動画ファイルへのリンク | 動画ファイルへのリンク |
更新履歴:
20230420:Wiggle 2アドオンと衣服や髪を揺らす項目を追加
既存の胸の物理を削除します。
Blender&mmd_toolsで胸揺れが有効なMMDモデルだと既存の胸揺れ物理を削除しないと揺れが重複しておかしな事になります。
Blender&mmd_toolsで胸揺れが動かないモデルであっても削除しておいた方が無難です。

サイドバーのMMDタブからモデル設定→可視性:のメッシュのチェックを外してリジッドボディとジョイントにチェックを入れます。
(サイドバーが表示されない場合は3Dビュー上で[N]キーを押すと表示されます)

削除対象の胸のリジッドボディを選択して[F2]キーを押してリジッドボディなどの名前を確認します。
今回は”07X_左胸上2”などとなっていることがわかります。



3Dビュー上部の選択からパターン選択を選び、パターン:に*胸*と入力して胸の物理に関連するリジッドボディやジョイントを選択状態にします。
その状態で[X]キーを押してリジッドボディ、ジョイントをまとめて削除します。

サイドバーのMMDタブからモデル設定→可視性:のメッシュにチェックを入れてメッシュオブジェクトを表示状態に戻します。
Blender&mmd_toolsで胸揺れが有効なMMDモデルだと既存の胸揺れ物理を削除しないと揺れが重複しておかしな事になります。
Blender&mmd_toolsで胸揺れが動かないモデルであっても削除しておいた方が無難です。

サイドバーのMMDタブからモデル設定→可視性:のメッシュのチェックを外してリジッドボディとジョイントにチェックを入れます。
(サイドバーが表示されない場合は3Dビュー上で[N]キーを押すと表示されます)

削除対象の胸のリジッドボディを選択して[F2]キーを押してリジッドボディなどの名前を確認します。
今回は”07X_左胸上2”などとなっていることがわかります。



3Dビュー上部の選択からパターン選択を選び、パターン:に*胸*と入力して胸の物理に関連するリジッドボディやジョイントを選択状態にします。
その状態で[X]キーを押してリジッドボディ、ジョイントをまとめて削除します。

サイドバーのMMDタブからモデル設定→可視性:のメッシュにチェックを入れてメッシュオブジェクトを表示状態に戻します。
検証用にモーションをインポートします。
※基本的に、揺れものAddonを使う際はモーションをインポートするなど、ボーンにキーフレームが打たれていないと揺れが確認できません。(ポーズモードでボーンを動かしても揺れない)

MMDタブ→シーン設定→リジットボディ物理演算:→ワールドを更新をクリックします。

MMDモデルのエンプティ(足元にある十字のオブジェクト)を選択し、サイドバーのMMDタブ→モデル設定→組み立て:から、すべてをクリックします。

MMDモデルのエンプティを選択した状態でサイドバーのMMDタブ→シーン設定→モーション:→インポートから.vmdファイルを読み込みます。
このページでは、ジャンプモーション集/1.小ジャンプ.vmd@おかっち氏を使わせてもらいます。
※エンプティではなく、アーマチュア(ボーン)を選択してモーションを読み込むとボーンアニメーションだけ、オブジェクト(材質)を選択してモーションを読み込むとシェイプキー(モーフ)アニメーションだけが読み込まれてしまいます。
※モーションインポート時のオプションで、余白を5から30程度にしないと物理が破綻する事があります。
※Blenderへの.vmdファイルのインポート方法の詳細やオプションについては【Blender 3.0】mmd_tools【UuuNyaa版】/ モーション(ポーズ)のインポートをご覧ください。
※基本的に、揺れものAddonを使う際はモーションをインポートするなど、ボーンにキーフレームが打たれていないと揺れが確認できません。(ポーズモードでボーンを動かしても揺れない)

MMDタブ→シーン設定→リジットボディ物理演算:→ワールドを更新をクリックします。

MMDモデルのエンプティ(足元にある十字のオブジェクト)を選択し、サイドバーのMMDタブ→モデル設定→組み立て:から、すべてをクリックします。

MMDモデルのエンプティを選択した状態でサイドバーのMMDタブ→シーン設定→モーション:→インポートから.vmdファイルを読み込みます。
このページでは、ジャンプモーション集/1.小ジャンプ.vmd@おかっち氏を使わせてもらいます。
※エンプティではなく、アーマチュア(ボーン)を選択してモーションを読み込むとボーンアニメーションだけ、オブジェクト(材質)を選択してモーションを読み込むとシェイプキー(モーフ)アニメーションだけが読み込まれてしまいます。
※モーションインポート時のオプションで、余白を5から30程度にしないと物理が破綻する事があります。
※Blenderへの.vmdファイルのインポート方法の詳細やオプションについては【Blender 3.0】mmd_tools【UuuNyaa版】/ モーション(ポーズ)のインポートをご覧ください。

Spring Bones Addonの右上Clone or downloadをクリックし、Download ZIPからZIPファイルをダウンロードします。
圧縮ファイルの中のspring_bones.pyを''blender-[ver]-[OS]\[ver]\scripts\addons''にコピーします。
(フォルダごとコピーするとBlenderが認識しません)

Blenderを起動し、メニューバーの編集→プリファレンス...→アドオンから検索バーに"spring"と入力してAnimation: Spring Bonesの左のチェックをオンにします。

オブジェクトモードからアーマチュアを選択し、Ctrl+TABキーを押してポーズモードへ入ります。
胸のウェイトが塗られたボーンを選択してボーンプロパティからSpring Bones項目のBone Prameters下のばねと回転にチェックを入れます。
反対側の胸ボーンを選択して同じくチェックを入れます。
Start - Animation Modeをクリックします。

上手く胸ボーンを選択設定できていればアウトライナーに左/右胸ボーン名_springと左/右胸ボーン名_spring_tailというオブジェクトができます。

[Space]キーを押して再生してみます。
揺れすぎていたり硬いと感じたら[ESC]キーを押して再生を停止し、Spring BonesのStopで揺れを止めてパラメーターを調整し、もう一度Start - Animation Modeをクリックします。


いい塩梅になったら、3Dビュー上部のポーズからアニメーション→アクションをベイク...を選択し、選択ボーンのみのチェックを外してベイクします。
リサモデルの場合、胸上L/Rとその子に胸上2.L/Rがあるという胸ボーン構造になっていますが、Spring Bonesは胸上2.L/Rに使用しないと変な揺れ方をしました。
動画ファイルへのリンク |
- Bouncy
弾性です。
値が小さいと跳ねません。
大きいとよく跳ねます。
- 速度
小さいほど動きが遅くなります。
大きいと素早く動きます。
- 重力
たるみです。
- 影響
1だとボーンは完全にSpring Bones Addonの影響下にあります。
0だとまったく影響を受けません。

オブジェクトモードからアーマチュアを選択し、Ctrl+TABキーを押してポーズモードへ入ります。
胸のウェイトが塗られたボーンを選択してボーンプロパティからWiggle Boneにチェックを入れます。
反対側の胸ボーンを選択して同じくチェックを入れます。

Spaceキーを押して再生してみます。([ESC]キーで停止)

ベイクします。
Bake Wiggle下のAdditive Bake:にチェックが入っているのを確認し、Bake Wiggleボタンをクリックします。
反対側の胸ボーンも同様にベイクします。
Wiggle bonesは胸上L/Rボーンに使用しないと揺れませんでした。
また、デフォルトの設定ではかなり揺れるので下記の画像のようなパラメーターに設定しました。

動画ファイルへのリンク |
- Stiffness
硬さ(ボーンが元の位置に戻ろうとする動きの速さ)の設定のようです。0〜1の範囲で指定します。
- Dampening
フレームごとに失われるテンションの範囲の設定のようです。0〜1の範囲で指定します。
0だと何時までも揺れ続けます。
- Amplitude Rotation
値が大きいほどボーンの回転が大きくなります。
- Amplitude Translation
値が大きいほどボーンの位置が大きく変わります。
- Stretching
ボーンの伸びる値です。0〜1の範囲で指定します。
値が大きいとよく伸びます。0だとまったく伸びません。
- Gravity
重力です。
値が高いと垂れ下がります。
Wiggle 2はWiggle bonesのコードを全面的に書き直した新しいVerです。

オブジェクトモードからモデルのアーマチュアを選択し、サイドバーのアニメーションタブのWiggle 2からEnable sceneアイコン、Enable armatureアイコンをクリックして有効化します。


[Ctrl]+[TAB]キーからポーズモードへ入り、Wiggle 2を適用したいボーンを選択してサイドバーのアニメーションタブのWiggle 2からbone head or tailのチェックボックスにチェックを入れます。
このモデルの場合、胸上L/Rとその子に胸上2.L/Rがあるという胸ボーン構造になっていますが、今回は胸上L/Rボーンに”bone head”にチェックを入れてデフォルトの設定で使ってみました。

また、ベイクする際には現在のアクションを上書きオプションを有効化しました。
動画ファイルへのリンク |
- 重さ
- stiff
- ストレッチ
- 減速
- 重力
Addonのインストール方法については【Blender3.3】mmd_uuunyaa_tools【Addon】/ Blenderへのインストールをご覧ください。
Blender Marketや、Gumroad(※無料だが一部機能が削除されたLite版Lite版はこちら)で15ドルで販売されている有料Addonです。
基本的な使い方は英語ですが、YouTubeにあります。
基本的な使い方は英語ですが、YouTubeにあります。
Addonのインストールについては【Blender 3.3 LTS】 addonのインストールと個人的によく使うアドオンをご覧ください。

オブジェクトモードからアーマチュアを選択し、Ctrl+TABキーを押してポーズモードへ入ります。
Addonが正常にインストールされていれば、サイドバーにBoneDynamics Proという項目があるのでそれを開きます。

胸のボーン(このモデルでは胸上L/Rボーン)を選択し、サイドバーのBoneDynamics ProからAdd Bone DynamicsでBone Dynamicsを追加します。

BoneDynamics Proはパラメーターをプリセットから選んだり、現在のパラメーターを新しいプリセットにしたりできます。
また、アニメーションの再生中にパラメーターを操作してリアルタイムで調整できます。

Bake Animationでベイクできます。
ベイク時のオプションで解像度を0にしないと動き(揺れ)が間引かれてしまいます。
BoneDynamics Proは胸上L/Rボーンに使用しないと揺れませんでした。
また、デフォルトの設定ではなく、下記の画像のパラメーターに設定しました。

動画ファイルへのリンク |
- Gravity Collider Bone Physics Plugin (無料) gumroad
- YURE Driver (無料) gumroad Blender Market
揺れを特定軸のみに制限する事もできる。
詳しくはこちら
Wiggle 2アドオンを使って衣装や髪などを揺らしてみます。
この項目では原神公式モデルのバーバラを使わせてもらいます。

物理を読み込まないオプションでモデルをインポートしました。インポートのオプションの詳細については【Blender 3.0】mmd_tools【UuuNyaa版】/ インポートを御覧ください。

モデルをインポートしたら、MMDモデルのエンプティ(足元にある十字のオブジェクト)を選択し、サイドバーのMMDタブ→モデル設定→組み立て:からすべてをクリックしてモーフなどをバインドします。


MMDモデルのエンプティを選択した状態でサイドバーのMMDタブ→シーン設定→モーション:→インポートから.vmdファイルを読み込みます。
この際、余白を30にします。
※Blenderへの.vmdファイルのインポート方法の詳細やオプションについては【Blender 3.0】mmd_tools【UuuNyaa版】/ モーション(ポーズ)のインポートをご覧ください。


MMDタブ→シーン設定→リジットボディ物理演算:→ワールドを更新をクリックします。
リジットボディ物理演算:→開始を0にします。


アーマチュアを選択した状態で[Ctrl]+[TAB]キーを押してポーズモードへ入り、Wiggle 2で揺らしたいボーンを選択します。
サイドバーのアニメーションタブのWiggle 2からEnable sceneアイコン、Enable armatureアイコンをクリックしてBone Tailにチェックを入れてWiggle 2を有効化します。


コリジョンのオブジェクトにモデルのメッシュオブジェクトを指定しています、
その他、コリジョン関連のパラメーターを調整します。
Bake Wiggleを開いて現在のアクションを上書きにチェックを入れます。
Bake Wiggleから揺れをベイクします。
あとは動画として出力します。
今回の設定ではモデルデフォルトの物理の方が良さげですが、他形式からの変換モデルなど物理が設定されていないモデルに対しては有効かもしれません。
この項目では原神公式モデルのバーバラを使わせてもらいます。

物理を読み込まないオプションでモデルをインポートしました。インポートのオプションの詳細については【Blender 3.0】mmd_tools【UuuNyaa版】/ インポートを御覧ください。

モデルをインポートしたら、MMDモデルのエンプティ(足元にある十字のオブジェクト)を選択し、サイドバーのMMDタブ→モデル設定→組み立て:からすべてをクリックしてモーフなどをバインドします。


MMDモデルのエンプティを選択した状態でサイドバーのMMDタブ→シーン設定→モーション:→インポートから.vmdファイルを読み込みます。
この際、余白を30にします。
※Blenderへの.vmdファイルのインポート方法の詳細やオプションについては【Blender 3.0】mmd_tools【UuuNyaa版】/ モーション(ポーズ)のインポートをご覧ください。


MMDタブ→シーン設定→リジットボディ物理演算:→ワールドを更新をクリックします。
リジットボディ物理演算:→開始を0にします。


アーマチュアを選択した状態で[Ctrl]+[TAB]キーを押してポーズモードへ入り、Wiggle 2で揺らしたいボーンを選択します。
サイドバーのアニメーションタブのWiggle 2からEnable sceneアイコン、Enable armatureアイコンをクリックしてBone Tailにチェックを入れてWiggle 2を有効化します。


コリジョンのオブジェクトにモデルのメッシュオブジェクトを指定しています、
その他、コリジョン関連のパラメーターを調整します。
Bake Wiggleを開いて現在のアクションを上書きにチェックを入れます。
Bake Wiggleから揺れをベイクします。
あとは動画として出力します。
モデルデフォルトの物理 | Wiggle 2で揺れものを揺らした場合 |
動画ファイルへのリンク | 動画ファイルへのリンク |
今回の設定ではモデルデフォルトの物理の方が良さげですが、他形式からの変換モデルなど物理が設定されていないモデルに対しては有効かもしれません。
MMDモデル(の胸揺れ物理構造)によっては、胸のウェイトが塗られたボーンだけではなくその親ボーン(胸親ボーン)が設定されているケースがあります。
Jiggle boneでボーンを揺らす際に、胸のウェイトが塗られたボーンだけを選択して揺らすのと、その親のボーン(胸親など)を選択して揺らすのでは揺れ方が異なります。
どんな動きを求めるかにもよりますが、胸のウェイトが塗られたボーンだけを選択して揺らす方が無難です。(胸親ボーンを選択して揺らすと揺れが酷くなるが、MMDモデルの胸ボーンの構造次第では胸親ボーンを選択した方が良い時もある?)
Jiggle boneでボーンを揺らす際に、胸のウェイトが塗られたボーンだけを選択して揺らすのと、その親のボーン(胸親など)を選択して揺らすのでは揺れ方が異なります。
どんな動きを求めるかにもよりますが、胸のウェイトが塗られたボーンだけを選択して揺らす方が無難です。(胸親ボーンを選択して揺らすと揺れが酷くなるが、MMDモデルの胸ボーンの構造次第では胸親ボーンを選択した方が良い時もある?)
胸の動き(揺れ)を(胸ボーンの)ボーンアニメーションにベイクした場合、mmd_toolsで.vmdアニメーションとして出力できます。
例えば、モデル(A).pmxをMotion(B).vmdでMMDで再生、動画として出力したいが、胸の揺れはBlenderのJiggle boneの動きの方が良い...といったケースです。(あんまりないと思うけど)
Blenderへモデル(A).pmxとMotion(B).vmdを読み込ませ、Jiggle boneで胸を揺らせて胸ボーンの動きをボーンアニメーションとしてベイクします。
ポーズモードで左右のベイクした胸ボーンのみを選択してmmd_toolsのモーション:→エクスポートからエクスポートします。(ポーズモードでボーンを選択してmmd_toolsから.vmdとして出力すると選択ボーンのみ出力される)
MMDでモデル(A).pmxを開いてMotion(B).vmdを読み込ませ、Blenderからエクスポートした胸ボーンのアニメーション.vmdを追加で読み込ませるとJiggle boneの揺れをMMDで再現できます。
※MMDで物理演算のオン/オフモードでモデルの胸ボーンの物理をOFFにしてからモーション(.vmd)を読み込ませる。
※当たり前の話だが、ベイクした胸揺れ.vmdはモデル(A).pmxでMotion(B).vmdを動かした時専用の.vmdとなる。(モデルorモーションが違うと望んだ動きにならない)
例えば、モデル(A).pmxをMotion(B).vmdでMMDで再生、動画として出力したいが、胸の揺れはBlenderのJiggle boneの動きの方が良い...といったケースです。(あんまりないと思うけど)
Blenderへモデル(A).pmxとMotion(B).vmdを読み込ませ、Jiggle boneで胸を揺らせて胸ボーンの動きをボーンアニメーションとしてベイクします。
ポーズモードで左右のベイクした胸ボーンのみを選択してmmd_toolsのモーション:→エクスポートからエクスポートします。(ポーズモードでボーンを選択してmmd_toolsから.vmdとして出力すると選択ボーンのみ出力される)
MMDでモデル(A).pmxを開いてMotion(B).vmdを読み込ませ、Blenderからエクスポートした胸ボーンのアニメーション.vmdを追加で読み込ませるとJiggle boneの揺れをMMDで再現できます。
※MMDで物理演算のオン/オフモードでモデルの胸ボーンの物理をOFFにしてからモーション(.vmd)を読み込ませる。
※当たり前の話だが、ベイクした胸揺れ.vmdはモデル(A).pmxでMotion(B).vmdを動かした時専用の.vmdとなる。(モデルorモーションが違うと望んだ動きにならない)
タグ
最新コメント