剛体・Jointの再編集、.vmdを読み込む


はじめに

BlenderでMMDモデルを制作しています。趣味です。

前回はエクスポートしたモデルをPmxEditorで編集、MMDで.vmdを読み込みモデルの動きを確認しました。

足がスカートを貫通してしまうシーンが多々見られました。剛体とJointの作りの甘さが原因かと思われます。

それを受け、以下の作業で改善を試みました。

  • Blenderでスカートのボーン・剛体・Jointを作り直す
  • PmxEditorで剛体・Jointの各パラメータの設定を細かく調整

修正したモデルに再度『ねこみみスイッチ』を躍らせてみる、というのが今回の主なテーマです。


尚、記事の内容については正確性を保証致しません。
解説ではなく、個人のメモ、備忘録のような情報としてお読みください。

以下の環境でモデルの制作を行っています。

ソフト、アドオン
Blender3.35LTS
mmd_tools2.8.0
PmxEditor0.2.5.7
制作環境

今回の成果

まずは結果から記します。

修正版

自作モデルで『ねこみみスイッチ』~スカートの剛体・Joint修正版~
作品名製作者様URL
ねこみみスイッチdeniwellhttps://piapro.jp/daniwell
ねこみみスイッチモーションhinohttps://bowlroll.net/file/421
Ray-MMDRuihttps://github.com/ray-cast/ray-mmd
skynao02神野奈緒https://3d.nicovideo.jp/works/td36334
お借りした作品

前回よりも足の貫通を抑えることができたように思います。

以下の修正を加えました。

  • スカートに関わるボーンの配置
  • スカートに関わる剛体・Jointの各パラメータ
  • 髪に関わる剛体・Jointの各パラメータ
  • 床の変更(塗り直し)
  • スカイドームの追加

スカートについては一旦ボーン・剛体・Jointを削除し、一からリギングをやり直しました。

PmxEditorで各パラメータの調整と、TransformView・MMDで動作確認を繰り返し、ある程度納得のいく形に収めることができました。
(まだまだ改善すべき点は多いと思いますが、一歩ずつ)

床は新しく作り、ブラシのサイズを小さめに設定し、タイルの柄が細かく描かれるように調整しました。
今思えば、モーフで各軸のサイズ調整を可能にすればよかったですが、また別の機会にやってみようと思います。

スカイドームを導入してみました。
自分でいくつか作ってみたのですが、あまり良いものができなかったので、今回はニコニコ立体から作品をお借りしてきました。

修正前後を比較

修正前と修正後の比較動画を作ってみました。

スカートの剛体・Joint修正BeforeAfter

風で揺れているようにも見えますが、修正前は足とスカートの剛体が常に接触を繰り返し振動してしまっているのが分かります。
一方、修正後は振動はなくなりましたが、基本の形状が従来より少し外に広がってしまいました。

動画全体を通してみると、個人的には修正後の揺れが物足りなく感じます。
修正後のふわふわとした感じより、修正前のパサパサはためく感じが私好みです。

これは回転減衰の値を高めに変更した点が大きく影響しているように思います。
回転の勢いが早めに弱くなればスカートの剛体が足の隙間に入り込むことを避けられるのでは?と考え、値を設定しました。
実際、その効果は得られたように思うのですが、あちらを立てればこちらが立たず、もどかしいですね。

今さらながら、スカートの各剛体を細く作り摩擦力を高めに設定すれば、振動は避けつつ貫通させないようにできるのではないか?というアイデアも浮かんできますが、また別の機会に試してみたいと思います。

次からの章では、スカートのリギング、剛体・Jointのパラメータの設定について作業の流れを簡単に記しました。

正直あまり目新しい内容はないかと思いますが、ご興味ありましたらお読み下さい。


準備

参考モデル

以下のモデルを参考にさせて頂きました。

モデル名製作者様URL
YYB Hatsune Miku_NT三目YYBhttps://www.nicovideo.jp/watch/sm41007053
Sour式鏡音リンVer.2.01Sour暄https://bowlroll.net/file/155105
お借りした作品

以下のような特徴がみられました。

  • 上半身・下半身の剛体の周囲にスカートの剛体が配置されている
  • スカートの剛体の鎖は身体の剛体に沿って放射状に下に伸びる

どうやら、大まかな作成の方向は間違ってはいないようです。

作成の方針

足がスカートを貫通してしまうのは、足の剛体がスカートの剛体の鎖の間に入り込むことが原因だと、私が考えています。
暖簾の切れ目からお客さんがスッと手を入れて中に入ってくる、そのような印象です。

実際にMMDで物理演算タブの剛体表示をONにすると、足の剛体がスカートの剛体の鎖と鎖の間を左右に大きく押し広げている様子が確認できます。

足の剛体(緑色)にスカートの剛体(赤色)が押しやられています。
足を開けばこういう露出の仕方は在り得そうですが、やはりスカートの布が足の間に入り込んでしまうのは不自然です。

これを踏まえて、今回の作成方針です。

  • スカートの剛体をより細かく配置する
  • スカートの剛体・Jointの可動範囲はパラメータで調整する
  • 左右の足の剛体のサイズにも着目する

スカートのメッシュを再編集して足とスカートの間に距離を設ける、という解決方法もあると思います。
ただ、今のスカートの形状、個人的には割に気に入っていますので、今回はメッシュの再編集は見送ります。


作業

剛体・Jointの作成について、今回の作業で新たに発見した事柄は青いハイライトを付けて表示してあります。

剛体・Jointのパラメータについては詳細は割愛しています。
依然、各パラメータと物理演算の結果の関係について正しく把握できていないと感じています。

ボーン・剛体・Jointの再編集

以前の投稿で扱った作業と内容に大きな差はないので、作業の流れのみ記します。

作成手順です。

  1. mmd_toolsとの連携を解除
  2. 既存の剛体・Jointを削除
  3. 既存のボーンを削除
  4. 新規のボーンを作成
  5. 新規の剛体を作成
  6. 新規のJointを作成
  7. mmd_toolsとの連携を再設定
  8. ポーズモードでテスト
  9. エクスポート
  10. PmxEditorで編集

作業を始める前にmmd_toolsとの連携を解除しておきます。

私の経験上ですが、物理演算の連携を保ったまま剛体・Jointの削除・作成を行うと、挙動が不安定になります。(例:剛体が遥か後方に飛んでいく)

ボーンの作り直しをすることを考慮して、ここでは念のために物理演算だけでなく、mmd_toolsとの全ての連携を解除しておきました。

既存の剛体とJointを削除します。

私の場合、作業はmmd_tools上の【-】ボタン実行で行いました。
試していませんが、3Dビューポートから各オブジェクトを選択して削除しても結果は変らないのではないか、と思います。

既存のボーンを削除します。

New MMD Model_armを選択し、編集モードから該当するボーンの削除を行います。

新規のボーンを作成します。
まずはスカートの中央前方に合わせるボーンを作ります。

  1. 下半身ボーンを親としてボーン型剛体用のボーンを作成
  2. メッシュの頂点に合わせて物理演算型剛体用ボーンを作成
  3. 物理演算型剛体用ボーンを追加し鎖を裾まで伸ばす

次に中央後方に合わせるボーンを作ります。

  1. 先程作成したボーンの鎖を複製
  2. 複製した鎖を移動させて位置を合わせる

同じ手順で複製を繰り返し、左側の全てのボーンの鎖を作ります。

続いて右側のボーンをBlenderの機能で作ります。

  1. 各ボーンの名称を整える
  2. 【自動ネーム(左右)】で『.L』を付加
  3. 【対称化】で右側のボーンを作成

左右対称編集をONで各ボーンの位置をメッシュの頂点に合うよう調整します。

剛体を作成します。

ボーンを複数選択した状態でmmd_toolsのリジッドボディタブから【+】ボタンを実行すると、選択している全てのボーンに合わせて剛体が設置されます。

ボーン型剛体用、物理演算型剛体用のボーンをそれぞれ複数選択すれば、剛体の設置はたった2回の作業で済んでしまうので、楽です。

Jointを作成します。

こちらも剛体を複数選択時にmmd_toolsのジョイントタブから【+】ボタンを実行すると、各剛体間にそれぞれJointが作成されます。

しかし、MMDジョイントで各Jointが繋ぐオブジェクト(剛体)を確認すると、残念ながら適切でない場合が散見されました。
ここでは接続するふたつの剛体を選択後、【+】ボタンを実行しJointを作成、この作業を繰り返し、全てのJointを作成しました。

mmd_toolsと再連携し、ポーズモードで不備がないか確認します。

エクスポート後、PmxEditorで編集します。
ボーン順序、変形階層、材質、表示枠等を設定していきます。

パラメータの調整

作り直した剛体・Jointの様子です。

仕方ない部分はあるかと思うのですが、スカートの裾の円周が広がり、常に少し膨らんだ形状に変化してしまいました。

剛体のパラメータの調整は以下のように行いました。

  • 全ての剛体で値は共通
  • 質量:0.01、移動減衰:0.5、回転減衰:1.5、反発力:0、摩擦力:0.1

値の根拠については、TransformView、MMDで動作確認をして私が好感触を得た、というだけです。

Jointのパラメータの調整は以下のように行いました。

  • 足に寄る方向の回転は小さく制限する
  • 足から離れる方向の回転は大きめに開放する
  • 末端に近い程回転は大きくする

揺れを厳しく制限する箇所では値は最小で-1or1、開放する箇所では思い切って-180or180に設定しました。

今回の場合、できる限り足の貫通を防ぐ、という目的があります。
そのために剛体・Jointの位置、パラメータを調整しましたが、揺れ方が自然であるか、という点には疑問が残ります。
(私なりにはなるべく自然に見えるように調整したつもりです)

まだまだこの分野の勉強と経験が足りていない、と感じます。


終わりに

スカートを裏から見ると、テクスチャが透過して背景が見えているような気がします。何故だろう?これもいずれ調べてみたいと思います。

今回は以上です。読んで下さった方、ありがとうございました。

サイト名、作品名URL参考にした日付
Blenderhttps://www.blender.org/2022/12/11
Blender Manualhttps://docs.blender.org/manual/ja/3.3/index.html2023/6/1
3Dミクを躍らせるツールを自作してみた(説明前編)https://www.nicovideo.jp/watch/sm24200252023/6/19
UuuNyaa/blender_mmd_toolshttps://github.com/UuuNyaa/blender_mmd_tools2022/12/11
とある工房https://kkhk22.seesaa.net/2022/12/11
Tda式初音ミク・アペンドhttps://3d.nicovideo.jp/works/td15862023/6/19
【MMD】Primary Star【モデル配布】https://www.nicovideo.jp/watch/sm410070532023/6/19
Sour式鏡音リン・レンVer.2.01https://bowlroll.net/file/1551052023/6/19
【MikuMikuDance】
エフェクトファイルを読めるようにしてみた
https://www.nicovideo.jp/watch/sm121498152023/6/19
Ray-MMDhttps://github.com/ray-cast/ray-mmd2023/9/27
ねこみみスイッチhttps://piapro.jp/daniwell2023/1/17
ねこみみスイッチモーションhttps://bowlroll.net/file/4212023/1/17
MMD半円スカイドーム
skynao02
https://3d.nicovideo.jp/works/td363342023/10/04
参考URL

comment