サイズの異なるモデルへのモーション移植


現在、MMDでは次々とユーザ作成のモデル(ユーザモデル)が登場しており、またダンスモーションの公開も盛んに行われており、これらを組み合わせた動画作品が数多く登場しています。基本的にはボーン名とボーンの特性、大まかな位置関係が同じならモーションは読み込むだけで異なるモデル間でも利用できます。

一方、モーションの互換性があっても、実際にはそのモデルのサイズが異なっているため、モーションが極端になる(足が股さけ状態になったり、顔に手が食い込んだり)ことも多く見られます。特に動きの激しいダンスモーションではそれが顕著に出ます。

MMDには、これをフォローするための機能として「フレーム位置角度調整」があります。この機能を利用することで、異なるモデルでも破綻の少ないモーションの共有を行うことが出来ます。

  • 注意)
    • この機能はフォロー機能であり全てのモデルの柔軟な互換性を保障するものではありません。
    • この機能はモデル間の互換性を保つためだけでなく、同一モデルの動きの表現調整(大きく/小さく)などを行う際に利用する機能です。
      • 1つのモーションの繰り返しで少しづつ激しく動かしていく場合や、モーションの微調整をしたい場合などにも利用できます。
    • モデルの初期状態に強く依存しますので、場合によってはモデルの初期状態を変更した方が調整が容易になる場合があります。
    • また、「移動」はモーションおよびモデルの初期位置にも影響されますので、利用の際には原点からの調整を行ってください。
    • 本機能を利用した後、モーションのチェックを行ってズレや違和感のある箇所は手動で調整を行ってください。
    • 本ページの内容は「数字」や「計算」の成分が若干多く含まれています。 あらかじめご了承下さい。

TitleImage00.png
フレーム位置角度調整


■ 目次 ■


モーションの基礎「回転」と「移動」


(あたりまえのことですが)MMDにおけるモデル操作は、単純に「回転」と「移動」しかありません。この2つの作業の繰り返しがモーション付けであり、これらを複数の関節・箇所を設定し、それらが同時に動くことで、自然なモーションを生み出します。
この2つのモデル操作を、少し言い換えるとすると、

「回転・移動」とは「モデルの初期位置(角度、座標)からの変化量」

となります。「初期位置からの」が重要なポイントとなります。

回転、移動と初期位置との関係


具体的な例で見ていきます。両手両足を広げた状態の「初音ミク」モデルです。
この状態から「回転」と「移動」をそれぞれ1/2倍、1/4倍、そして0倍(初期化)してみます。最後は見慣れたポーズに戻っているのが判ります。
RotateAndMove01.png RotateAndMove02.png
サンプルポーズ(X=-4.0) x1/2 (X=-2.0)
RotateAndMove03.png RotateAndMove04.png
x1/4 (X=-1.0) x0.0 (X=0.0)
  • 注)サンプルの自然さを出す為、左右髪IKおよびセンターボーンも同時に変化させています。
  • 注)割り算していますが、掛け算でも基本的には同様です。当然ですが、回転の場合は限界があります。

上図に記載されている「Xの値」とは、「右足IK」の座標位置です。この数字が倍率に伴い変化していることが確認できます。また、モーションの位置も初期値(x0.0)と比べてその数値分移動している事がわかります。そして、数値上「0.0」になっていますが、原点座標(X軸、Y軸、Z軸の交点)とは違っている事に注意してください。

原点座標との関係について


回転は「基本的に親ボーンとの相対関係」のみ意識すればOKですが、移動の場合は絶対座標の位置情報として計算される為、原点との位置関係がとても重要になります。また、センターボーンとの関係にも注意が必要です。
先ほどと同じポーズを、原点座標と異なる場所でセンターを動かさなかった場合と動かした場合の例を示します。(1/2倍)

RotateAndMove05.png RotateAndMove06.png RotateAndMove07.png
原点座標からズレている場合 センター移動なし センター移動あり

この例では3つの確認ポイントがあります。

1) 回転およびセンターボーン配下の移動は影響を受けない
いずれの場合も回転(腕部分)については特に問題は起きていません。また、左右髪IKの移動についても正常に変化していることが確認できます。
2) 足IKはセンターボーン外の為、センターとあわせた調整が必要
左右足IKについては、センターボーンの影響を受けない構造となっています。そのため、センターボーンを移動させなかった事で位置関係がおかしくなっています。調整の際には注意が必要です。
3) 各座標の移動量は単純計算で行われる
座標をX軸とZ軸でそれぞれ+5した上図の例では、「X=1、Y=0、Z=5」になっていました。先の例では左右同じ移動量でしたが、この位置から1/2倍すると、Xは "0.5" しか移動していません。
図には数値の表記はありませんが、左足IKのXが「X=9」から「X=4.5」(1/2) に変化しています。結果としての差は一致しますが、左右で足の移動量(変化量)が異なっています。
※ 図でも右足に比べ左足が大きく中央(原点座標)に寄せられているのが確認できます。

これらの事から移動の調整を行う場合、(左右足IKとセンターボーンは)「原点座標に引き寄せられる」という事に注意が必要です。


サイズのみ異なる場合


モデルの形状およびボーンの構造が基本的に同じ場合、「フレーム位置角度調整は「移動のみ」意識すればよい形となります。

「初音ミクver2」のモデルを1/2縮尺にしたサンプルでその手順を説明します。

(1) モーションの読み込み

基本的にモーションの読み込みはサイズが異なる場合でも手順は同じです。ファイルメニューの「モーションデータ読込」を実行し、取り込みたいモーション(VMD形式)を指定してください。

MotionConv01.png
モーションデータ読込
  • 注)モデル構造(ボーン名)の違いからモーションの一部が取り込まれない場合があります。
  • 注)モーションの初期状態(座標など)やセンターボーンの座標位置などによっては、読み込んだ直後からモデルの姿勢が大きく崩れる場合があります。
  • MMD付属のサンプルモーションを利用しています。

(2) センター、IK座標の移動量調整

形状が同じでサイズのみ異なる場合は回転は特に問題はありません。「フレーム位置角度調整」のダイアログを開き、モデルの縮尺に合わせて「移動」の倍率を調整してください。

MotionConv02.png MotionConv03.png
フレーム位置角度調整 移動の倍率指定
  • 注)MMD画面左にある「ボーン・フレーム操作」のフレーム内において、調整対象となるボーンが全て選択されていることを確認してください。
    • 選択されていない場合は、「ボーンフレーム全て選択」などを使用し、調整したいボーンを指定してください。
    • また、フレームの範囲を指定し一部分だけ調整することも可能です。

(3) モーション結果確認

変更したモーションの内容がおかしくなっていないか確認します。
Undoによるやり直しが利きますので、モーションがおかしくなった場合はもう一度やり直すなど、調整を行ってください。

MotionConv04.png
再生によるモーション確認

※ 以下、「調整しなかった場合」と「調整した場合」のサンプル比較

MotionConv05.png MotionConv06.png MotionConv07.png
(調整前) 調整後 (X軸確認) 調整後 (Y軸確認)
  • 移動量の把握をしやすくするため、パースを切って表示しています。

(4) 注意事項

前段の通り、「移動」の調整は原点座標に大きく影響されますので、モデルの中心を必ず原点にいる状態で行ってください。バイアス位置調整などで位置を移動させた場合、モーションが正しく調整されない(姿勢が大きく崩れる)ことがあります。

  • 場合によっては、モーション取り込み後に原点座標に移動するようにバイアス位置調整を作業前に行ってください。
  • 部分的なフレームの位置情報を調整する場合、上記影響を考慮して調整してください。
  • 確認後、サイズが小さいことで出てくるモーションの違和感が出る場合があります。手動による調整も必要です。


モデル形状の異なる場合


モデルの形状が異なる場合、初期ボーンの角度や読み込むモーションによっては、手が顔や地面などに食い込むなどの現象が起こることがあります。
特に頭の大きさが極端に大きい「SD」と呼ばれるモデルなどの場合、手をまっすぐ上に上げられないなど、激しいダンスモーションを利用する場合は調整が必要です。

モデルの形状が異なる場合、部分的にボーンを指定しながら「回転」の調整を行う形となります。

MMD標準モデルは大きな違いが無いため、本項ではユーザモデル「はちゅねミク(エナメルP)」を利用して説明します。
(指定する倍率等は異なりますが、手順は他のモデルでも基本的に同様です)

(1) モーションの読み込み

モーションの読み込みは形状が異なる場合でも手順に違いはありません。
※ 比較用に下図ではモーション未調整のモデルを左右に配置してあります。中央が調整対象です。
※ 以降の説明では、影響結果を把握をしやすくするため、パースを切って表示しています。

MotionConv08.png
異なる形状モデルへの移植
  • 注)モデル構造(ボーン名)の違いからモーションの一部が取り込まれない場合があります。
  • 注)モーションの初期状態(座標など)やセンターボーンの座標位置などによっては、読み込んだ直後からモデルの姿勢が大きく崩れる場合があります。
  • MMD付属のサンプルモーションを利用しています。

(2) センター、IK座標の移動量調整

モデルの形状が異なる場合、センターおよびIKボーンの座標移動量は、それぞれのモデル毎に異なります。特に慎重が違う場合だけでなく、設定されている関節の位置により、大きく影響される場合がありますので、確認しながら作業を行ってください。

設定する方法としては、サイズのみ異なる場合と基本的に同じですが、モデル形状の違いから設定するボーンを個別に指定する対応も必要になります。

MotionConv10.png MotionConv09.png
ボーンの移動座標調整 移動の倍率指定
  • 注)MMD画面左にある「ボーン・フレーム操作」のフレーム内において、調整対象となるボーンが全て選択されていることを確認してください。
    • 選択されていない場合は、調整したいボーンを個々に指定してください。
    • 表示されている倍率は参考値です。モデル形状だけでなく、表現・演出により調整を行ってください。
    • 本サンプルでは一度に行っていますが、調整したいモデルの形状、ボーン構造に従い、場合によって複数回行ってください。
  • 上図では、足の位置が右のモデルと異なっているのが判ります。(足IKの位置が調整されたため)

(3) 稼動関節の回転量調整

モデルの形状が異なる場合、関節によっては移動可能量を制限(拡大)したい場合が発生します。その場合も基本的には同様の操作・手順で対応可能です。
設定する方法としては、調整をしたいボーンのみを個別に指定し、回転角度の比率を指定します。

MotionConv12.png MotionConv11.png
ボーンの回転角度調整 回転の倍率指定
  • 注)MMD画面左にある「ボーン・フレーム操作」のフレーム内において、調整対象となるボーンが選択されていることを確認してください。
    • 選択されていない場合は、調整したいボーンを個々に指定してください。
    • 表示されている倍率は参考値です。モデル形状だけでなく、表現・演出により調整を行ってください。
    • 本サンプルでは一度に行っていますが、調整したいモデルの形状、ボーン構造に従い、場合によって複数回行ってください。
  • 上図では、両手の位置が右のモデルと異なっているのが判ります。(手の角度、回転量が調整されたため)

上記座標(X,Y,Z)は、全てGlobal座標です。また、倍率は「モデルの初期位置からの変化量」ですので、初期位置を中心として上下左右に回転することになります。

本項のサンプルでは「肩、腕、ひじ」の左右のボーンのみを選択し、倍率を指定しています。(それ以外の部分は調整していません)

(4) モーション結果確認

変更したモーションの内容がおかしくなっていないか確認します。
Undoによるやり直しが利きますので、モーションがおかしくなった場合はもう一度やり直すなど、調整を行ってください。

MotionConv13.png
再生によるモーション確認

(5) 注意事項

基本的に「サイズのみ異なる場合」と同様です。指定するボーンや影響角度の倍率に注意し、何度か試してください。

なお、影響角度の倍率については、「特定方向への移動の制限」や「移動限界値の設定」を行うワケではありません。仮に「上部方向への移動を制限したい」としても、同時に(初期位置からの)「下部方向への移動も制限される」形になります。

場合によっては、モデルの初期位置の角度(手や足などの)を設定として変更した方が、最終的な調整が楽になる場合もあります。


関連動画



関連ツール


  • MotionConverter (Yumin Space)
    • 配布先URLは本wiki内、「リンク」参照


コメント

名前:
コメント: