剛体とジョイントの移植方法


※ 本機能説明は MMD Ver.5 以降を想定したものです。
※ 2009/06/15 PMDEditor 0.0.3.3 より、MMD5βへ暫定対応され、そちらでの編集も可能になりました。

MMD Ver.5 で実装予定の「物理演算機能」を利用するためには、「剛体」と「ジョイント」と呼ばれるデータを、モデルデータ(PMD)の中に新たに設定しなければなりません。2009/06/13 現在、MMD ver.5beta 版が試用可能な状態となっております。この ver.5beta 版には「物理演算編集」機能がついており、「剛体」と「ジョイント」の追加、削除および各設定値の変更が行えるようになっています。

この機能を利用すれば、以下のような「剛体」と「ジョイント」を保有しないモデルデータに対しても、それぞれの情報を追加し、物理演算機能を利用することが出来ます。

このページでは、以下のような場合を想定し、未実装のモデルデータに対して設定を移植する(コピーする)方法を説明します。
  • 剛体とジョイントの移植の例
    • 同一のモデルに対し、PMDデータの作り直しを行い、物理演算情報を再設定する必要がある場合
    • 異なるモデル間で基本となるボーンにコピーして再利用したい場合

BulletCopy00.png
今回のサンプル(初音ミクV1 ⇒ V2への移植)

  • {注意点)
    • ここに記載されている情報は、MMD Ver.5beta 版を使用して作成しているため、将来的に変更になる可能性があります。
    • モデルデータの変更を伴う作業となる為、作業は慎重に行ってください
    • この方法は「結果的に出来る」というものであり、MMDの「物理演算編集」の本来の使い方ではありません。
    • モデルデータの内容や、移植する物理演算情報の内容によっては正しく移植されない、MMDが落ちるなどの現象が起こることがあります。
    • 物理演算は特性上、正しく設定されていない場合にはモデルの形状の崩壊を伴います
      • 心臓に良くないショッキングな描写になる場合もあります。 十分にご注意下さい

・各種データ(ユーザー自作モデルなど)の取扱いについては、著作権等の権利にご注意願います。
・モデルデータ作者および閲覧者が不快と感じる様な改造はお控えください。

剛体とジョイントの強制コピー


設定済みのモデルと、未設定のモデルを読み込み、設定済みの物理演算情報を強制的に未設定のモデルに登録します。

(1) モデルデータの準備
物理演算情報の設定済みモデルデータと、未設定のモデルデータを準備します。
現在試用可能な「MMD ver.5beta」には「初音ミク ver.1.2」が「物理演算情報設定済み」として付属しています。このモデルデータを利用します。
※ 今回の説明では、「MMD ver.4.05」に付属している「初音ミク ver.2.2」のモデルデータを利用します。
※ 基本的にモデルデータが異なっても作業内容は変わりません。
※ ただし、モデルデータが異なる場合は、この作業以降に「剛体」「ジョイント」の編集/調整作業が別途必要です。

(2) モデルデータの読み込みと、物理演算設定済みモデルの表示
それぞれのモデルデータを通常の方法で読み込みます。モーション付けなどは行う必要がありませんので、初期表示状態のまま2体続けて読み込んでください。
また、その後「物理演算情報設定済みモデル」を「モデル操作」のパネルから選択して下さい。

(3) 物理演算編集画面の呼び出し
物理演算情報を登録するため、「物理演算編集画面」を呼び出します。
BulletEditor00.png Bullet04.png
※ 画面はイメージです 物理演算編集画面
  • 剛体情報が表示されていることを確認してください。

(4) 未設定モデルへ切り替え
「物理演算編集画面」が表示された後、その画面を表示させたままMMDの画面上のモデルを「モデル操作」パネルで未設定モデルに切り替えます。
Bullet05.png
物理演算編集画面
  • 剛体情報が表示されていることを確認してください。
  • ボーンの順番が異なる場合、剛体の表示位置がズレて表示されます。
    • 後段の作業でこれを編集しますので、表示されていることのみを確認してください。

(5) 物理演算情報の登録 (一時)
画面を切り替えた状態では、「物理演算情報」については未登録の状態です。上記(4)を確認した後、「OK」ボタンを押下してください。以下のダイアログが警告として表示されます。
Bullet06.png
保存確認ダイアログ

(6) 拡張PMDデータの登録(一時)
上記(5)までの作業は、MMDのメモリ上で行われたものであり、実際のモデルデータが変更された訳ではありません。変更した情報(物理演算情報)を「拡張PMDデータ」として保存します。必ず別名で保存してください。
Bullet07.png
拡張モデル保存
  • 拡張PMDデータは、MMD Ver.4 以前では利用できません。ご注意下さい。
  • また、同様にPMDエディタ(PMDEditor) では編集できませんのでご注意下さい (2009/06/14現在)
  • 本作業工程は「一時的」な作業です。以降の作業についても必ず確認を行ってください。
  • モデルデータの構造が異なっている場合、このままの状態での利用は出来ません。


剛体とジョイントの再定義


コピーしたモデルの剛体とジョイントの情報について、必要なもの、不必要なもの、設定が正しくなっていないものを修正します。

(7) 剛体情報の再設定
移植済みのモデルデータを「モデル操作」パネルより呼び出し、上記(3)と同様に「物理演算設定画面」を呼び出します。以下の作業内容にしたがって、「剛体名」と「関連Born」を修正してください。
  • 主な作業内容
    • 設定は、「剛体名」と「関連Born」をプルダウンで選択して合わせていく
    • 全ての「剛体名」について確認してください
      • ただし、基本的に違っているものだけ直す形となります
      • 正しいものは何か?は、事前に登録済みモデルを調べておいて下さい
初音ミクVer.1とVer.2の各モデルについては、主に「スカート2」と「ひざ」に関する剛体は設定内容が他の剛体/ボーンとの設定内容と違っていますので要注意です
Bullet08.png Bullet09.png
剛体情報の再設定
  • 必要な場合は、ボーンのサイズ、形状あるいは位置等についても調整を行ってください

(8) 物理演算情報の登録
上記(7)の変更作業完了後、「OK」ボタンを押下し、「物理演算情報」の登録を行います。
再度、「保存」を案内する警告ダイアログが表示されます。
Bullet10.png
物理演算情報の登録

(9) 拡張PMDデータの登録
上記(6)と同様の方法で「拡張PMDデータ」として保存します。必ず別名で保存してください。


MMD上での動作確認


(10) 物理演算による形状変化の確認
MMDの設定を「常に演算」に変更したり、モーションを読み込ませた後で「再生」などを行い、設定が正しく行われているか確認してください。
Bullet11.png
物理演算設定の確認


補足情報


  • 同一モデルの再設定を行いたい場合は、上記 (1)~(6) までで問題なく設定できる場合があります
    • ボーン構造、順番が変更されていない場合に限ります
  • モデルの形状が異なる場合、剛体の設定によっては位置が大きくズレてしまう場合があります
    • モデルに合わせて再度サイズや位置を変更してください
  • モデルの構造が異なる場合、移植時に正しく設定されません
  • また、ボーンの登録順番が異なっている場合も、移植時に正しく設定されません
    • 「全ての親ボーン」搭載モデルなどの場合、剛体の「関連Born」の位置が大きく異なります
  • 本作業において、他の形状のモデルに適応することも可能です
    • 新規に設定を変更した方が楽に作業が行える場合もあります

物理演算編集画面 (参考)


BulletEditor01.png BulletEditor02.png
「剛体」編集画面 「ジョイント」編集画面

ボーンと剛体とジョイントの関係
剛体はボーンに付随させる物理演算制御用の不可視の物体です。
ジョイントは剛体同士を結合させ、固定や回転をさせるための不可視の物体です。
  • MMDの物理演算による制御は「ボーン」の単位で行われます。したがって、「ボーン」を保有するPMDモデルが対象となります。
    • アクセサリ(.xファイル)は対象になりません
    • ただし、ダミーボーンに物理演算の設定を持たせることは可能です
    • また、アクセサリを持った状態を前提としてモデルに別途剛体を仕込むことは可能です(ネギや楽器など)
  • 物理演算制御に設定可能なボーンはFKでもIK、回転、移動問わず設定可能です
    • ただし、物理演算の制御下に置かれたボーンは、設定されている全てのモーションが無視されます
    • 回転ボーンでも物理演算の設定にしたがって移動することがあります
    • その為、設定の内容によってはモデルの形状が大きく崩壊します
  • 物理演算に関係するボーンに対して2種類の「剛体」を設定します
    • Born追従 : 通常通りの制御です。設定した剛体と他の剛体との衝突判定に利用されます
    • 物理演算 : 物理演算制御です。設定された物理演算情報に従い、自動的に制御されます
  • 「ジョイント」は各剛体同士を繋ぎ合わせるための設定です
    • ジョイントで連結された剛体同士は、設定に従い連結されます。
    • ジョイントが設定されていない(物理演算制御の)剛体は、設定された重力に従い落下します


コメント

名前:
コメント: