このページは編集途中です。
MMDモデルの規約によってはMMDやその派生ソフトウェア以外にモデルを持っていくのを禁止している物もあります!ご注意下さい!
BlenderでMMDモデルを使って.vmdモーションを作成します。
また、Blenderへ動画を読み込んでMMDモデルを使って(手動で)トレースしてみます。
Blender Addonのmmd_toolsを利用します。
導入方法はこちらをどうぞ
BlenderへMMDモデルをインポートする方法に関してはBlender 2.8 mmd_tools Addon/インポートをご覧下さい。
このページでは、ニコニ立体ちゃんモデルを利用させてもらいます。
ボーン(アーマチュア)を選択し、[TAB]キーを押してボーン編集モードへ入ります。
手首ボーンを選択し、3Dビューの左側のアイコン(表示されていない場合は3Dビュー上で[T]キーを押す)から押し出しをクリックして表示された+ボタンをドラッグし、手首ボーンから押し出します。
押し出す長さは適当でいいですが、あまりにも短いと選択しづらいので適度な長さにします。
ボーンプロパティから関係タブを開き、ペアレントの右の☓をクリックしてペアレントを解除します。
[Ctrl]+[TAB]キーを押してポーズモードへ入り、手首ボーンを選択します。
ボーンコンストレイントプロパティを開き、ボーンコンストレイント追加からインバースキネマティクス(IK)を選択して追加します。
ターゲット:にモデル名_armを、ボーン:に先ほど押し出したボーン(手首LorR.001となっているはず)を指定します。
チェーンの長さを肩または腕ボーンまで黄色い点線が伸びるように指定します。
ウェイト:の回転は必要に応じてチェックを入れます(チェックを入れると手首が手首LorR.001ボーンと同じ方向に向きます)
手首LorR.001ボーンを選択し、[F2]キーを押してボーン名を手首LorR.IKとでもしておきます。
これで腕がIK化されました。
IKボーンを操作すると腕が動くはずです。
ボーン(アーマチュア)を選択し、[TAB]キーを押してボーン編集モードへ入ります。
手首ボーンを選択して[shift]+[D]キーを押してボーンを複製します。
適当な位置に複製したボーンを持っていきます。
ボーンプロパティから関係→ペアレントの右の☓をクリックしてペアレントを解除します。
[TAB]キーを押してポーズモードへ入り、適当な指ボーン(ここでは人指3)を選択します。
ボーンコンストレイントプロパティからボーンコンストレイント追加→回転コピーを選択して追加します。
使用空間:をローカル空間↔ローカル空間にし、ターゲット:をモデル名_arm、ボーン:を先ほど複製したボーンを指定します。
[C]キーを押して円で塗りつぶし選択でほかの指ボーンを追加で選択し、左上のポーズからコンストレイント→選択したボーンにコンストレイントをコピーでコンストレイントをほかのボーンにコピーします。
[F2]キーを押して握りボーンの名前をわかりやすいものにしたら完成です。親指ボーンも同様の作業で親指握りボーンを作成すれば指のポーズ作りが楽になります。
MMDモデルの規約によってはMMDやその派生ソフトウェア以外にモデルを持っていくのを禁止している物もあります!ご注意下さい!
BlenderでMMDモデルを使って.vmdモーションを作成します。
また、Blenderへ動画を読み込んでMMDモデルを使って(手動で)トレースしてみます。
Blender Addonのmmd_toolsを利用します。
導入方法はこちらをどうぞ
BlenderへMMDモデルをインポートする方法に関してはBlender 2.8 mmd_tools Addon/インポートをご覧下さい。
このページでは、ニコニ立体ちゃんモデルを利用させてもらいます。
MMDの人型モデルは一般的に標準ボーン、準標準ボーンと言われるボーン名(ボーン構造)が利用されています。
作ったモーションを配布するorほかのモデルにも利用する場合はこれらの標準ボーン(準標準ボーン)のみを操作してキーを登録しないと、ほかのモデルに対してモーションファイルの互換性がなくなります。
逆を言えばモーションを作成したモデルでしか利用しない場合はそのモデルのボーンをすべて使えます。
モデルによって実装されているボーンやボーン名が異なる(厳密にボーン名などが定義されているわけではない)のでご注意ください。
作ったモーションを配布するorほかのモデルにも利用する場合はこれらの標準ボーン(準標準ボーン)のみを操作してキーを登録しないと、ほかのモデルに対してモーションファイルの互換性がなくなります。
逆を言えばモーションを作成したモデルでしか利用しない場合はそのモデルのボーンをすべて使えます。
モデルによって実装されているボーンやボーン名が異なる(厳密にボーン名などが定義されているわけではない)のでご注意ください。
標準ボーン、準標準ボーン名 | 説明 |
全ての親 | 準 |
センター | 標準 Y移動はグルーブの方で動かす |
グルーブ | 準 ”グループ”ではなく”グルーブ” |
下半身 | 標準 |
腰 | 準 |
上半身 | 標準 |
上半身2/2(全角) | 準 モデルによって2(半角)と2(全角)に分かれる |
首 | 標準 頭部を動かす際は”頭ボーン”を動かす方が比率としては大きい,首ボーンは補助的 |
頭 | 標準 頭部を動かす際は主としてこちらのボーンを動かす |
左/右目 | 標準 上下左右方向のみ回転させる(奥行き方向へは回転させない) |
両目 | 準 左目と右目を両方動かせるボーン,上下左右方向のみ回転させる(奥行き方向へは回転させない) |
左/右肩 | 標準 操作はY,Z回転のみにするのが無難 |
左/右腕捩 | 標準 腕を回転(ひねる)させる際に使う |
左/右腕 | 標準 ひねる場合は”左/右腕捩”で回転させた方が良い |
左/右ひじ | 標準 ひねる場合は”左/右手捩”で回転させた方が良い,操作はZ回転のみにするのが無難 |
左/右手捩 | 準 ひじを回転(ひねる)させる際に使う |
左/右手首 | 標準 |
左/右親指1/1(全角) | 標準 モデルによって数字部分が半角と全角に分かれる |
左/右親指2/2(全角) | 標準 モデルによって数字部分が半角と全角に分かれる |
左/右人差指1/1(全角) | 標準 モデルによって数字部分が半角と全角に分かれる |
左/右人差指2/2(全角) | 標準 モデルによって数字部分が半角と全角に分かれる |
左/右人差指3/3(全角) | 標準 モデルによって数字部分が半角と全角に分かれる |
左/右中指1/1(全角) | 標準 モデルによって数字部分が半角と全角に分かれる |
左/右中指2/2(全角) | 標準 モデルによって数字部分が半角と全角に分かれる |
左/右中指3/3(全角) | 標準 モデルによって数字部分が半角と全角に分かれる |
左/右薬指1/1(全角) | 標準 モデルによって数字部分が半角と全角に分かれる |
左/右薬指2/2(全角) | 標準 モデルによって数字部分が半角と全角に分かれる |
左/右薬指3/3(全角) | 標準 モデルによって数字部分が半角と全角に分かれる |
左/右小指1/1(全角) | 標準 モデルによって数字部分が半角と全角に分かれる |
左/右小指2/2(全角) | 標準 モデルによって数字部分が半角と全角に分かれる |
左/右小指3/3(全角) | 標準 モデルによって数字部分が半角と全角に分かれる |
左/右足 | 標準 |
左/右ひざ | 標準 |
左/右足首 | 標準 足IKがONの時はY軸(ローカル)のみ操作するのが無難 |
左/右つま先 | 標準 |
左/右足IK親 | 準 |
左/右足IK | 標準 |
左/右つま先IK | 準 |
ボーンだけでなく、表情モーフにも標準(基本、または必須)モーフなどと言われる物があります。
こちらも厳密な定義があるわけではありませんが、このページではMMDに付属するモデルのモーフを標準モーフ、PMXEditorプラグインの標準モーフチェッカーでチェックできるモーフやニコニ立体ちゃんに実装されてるその他の表情モーフを準標準モーフとします。
表情モーフもモデルごとに実装されているモーフやモーフ名が異なるのでご注意ください。
MMD上では各モーフはモーフ名が同一なら、カテゴリ(左上(目)など)やモーフの種類(頂点モーフかグループモーフか、など)の違いは無視され、適用されます。
こちらも厳密な定義があるわけではありませんが、このページではMMDに付属するモデルのモーフを標準モーフ、PMXEditorプラグインの標準モーフチェッカーでチェックできるモーフやニコニ立体ちゃんに実装されてるその他の表情モーフを準標準モーフとします。
表情モーフもモデルごとに実装されているモーフやモーフ名が異なるのでご注意ください。
MMD上では各モーフはモーフ名が同一なら、カテゴリ(左上(目)など)やモーフの種類(頂点モーフかグループモーフか、など)の違いは無視され、適用されます。
左上(目) | 説明 |
まばたき | 標準 |
はぅ | 標準 |
笑い | 標準 |
ウィンク | 標準 ”ウィンク”は半角の場合もある |
ウィンク2 | 準 数字は全角,半角の場合もある |
ウィンク右 | 準 ”ウィンク”は半角の場合もある |
ウィンク2右 | 準 数字は半角の場合もある |
なごみ | 準 |
びっくり | 準 |
じと目 | 準 |
なぬ! | 準 |
キリッ | 準 半角の場合もある |
はちゅ目 | 準 |
ハイライト消し | 準 |
瞳小 | 準 ”右下(その他)”に登録されている場合もある |
右上(口) | 説明 |
あ | 標準 |
あ2 | 準 数字は半角の場合もある |
い | 標準 |
う | 標準 |
え | 標準 |
お | 標準 |
ん | 準 |
ワ | 準 |
ワ2 | 準 数字は半角の場合もある |
にやり | 標準 |
にやり2 | 準 数字は半角の場合もある |
にっこり | 準 |
呆 | 準 |
怒 | 準 |
▲ | 準 |
∧ | 準 |
■ | 準 |
ω | 準 |
ω□ | 準 |
はんっ! | 準 |
えー | 準 |
左下(眉) | 説明 |
真面目 | 標準 |
困る | 標準 |
にこり | 標準 |
怒り | 標準 |
上 | 標準 |
下 | 標準 |
寄せ | 準 |
右下(その他) | 説明 |
照れ | 準 |
照れ2 | 準 数字は半角の場合もある |
涙 | 準 ”左上(目)”に登録されている場合もある |
瞳小 | 準 ”左上(目)”に登録されている場合もある |
ぺろっ | 準 ”右上(口)”に登録されている場合もある |
ウインドウの配置に関しては好み等もありますが、ドープシート(アクション)とグラフエディターがあると便利です。
以下、自分用のウインドウ配置設定
トップバーからAnimationタブを開きます。左上のエディタータイプアイコンをクリックしてエディタータイプをアニメーション→ドープシートにします。
ドープシートとなっているプルダウンメニューの右横の三本線のアイコンをクリックしてビュー→表示範囲を同期にチェックを入れます。
下部ウインドウのエディタータイプアイコンをクリックしてグラフエディターを選択するか、マウスカーソルを下部ウインドウに持っていった状態で[Ctrl]+[TAB]キーを押します。
下部ウインドウのビュー→表示範囲を同期にチェックを入れます。これでドープシートとグラフエディターの表示範囲が同期されます。
TIPS:
新規ではアクションは作成されていませんが、ボーンにキーを打つと自動的にアクションが作成されます。
mmd_toolsではアクティブな(選択されている)アクションが.vmdとして出力されます。
以下、自分用のウインドウ配置設定
トップバーからAnimationタブを開きます。左上のエディタータイプアイコンをクリックしてエディタータイプをアニメーション→ドープシートにします。
ドープシートとなっているプルダウンメニューの右横の三本線のアイコンをクリックしてビュー→表示範囲を同期にチェックを入れます。
下部ウインドウのエディタータイプアイコンをクリックしてグラフエディターを選択するか、マウスカーソルを下部ウインドウに持っていった状態で[Ctrl]+[TAB]キーを押します。
下部ウインドウのビュー→表示範囲を同期にチェックを入れます。これでドープシートとグラフエディターの表示範囲が同期されます。
TIPS:
新規ではアクションは作成されていませんが、ボーンにキーを打つと自動的にアクションが作成されます。
mmd_toolsではアクティブな(選択されている)アクションが.vmdとして出力されます。
Animationタブではなく、Layoutタブになっていますが気にしないで下さい。
ボーンをクリックします。ポーズモードになっているはずですが、ポーズモードになっていない場合は[Ctrl]+[TAB]キーを押してポーズモードに入ります。
3Dビューの左側にツールバーが表示されているはずです(表示されていない場合は3Dビュー上で[T]キーを押す)
ツールバーの移動or回転を選択した状態でボーンをクリックし、ギズモまはたマニピュレーターと呼ばれるアイテムをドラッグして移動or回転させます。
赤色のラインが左右軸、青色のラインが上下軸、緑色のラインが前後軸となっています。
3Dビュー中央上部のグローバルとなっている所をクリックして開くと、移動or回転させる座標軸をグローバル座標かローカル座標か選択できます。
もう一つ、ボーンを操作する方法があります。
ボーンを選択した状態でキーボードの[R](回転) or [G](移動)を押した後に[X]or[Y]or[Z]を入力し、テンキーから数値を入力するか、マウスを移動させる方法です。
[R]or[G] → [X]or[Y]or[Z]を入力した後にもう一度同じ座標のキーを入力するとボーンに設定されたローカル軸で操作できます。(例:[R]→[X]→[X]→マウス移動など)
ボーンをクリックします。ポーズモードになっているはずですが、ポーズモードになっていない場合は[Ctrl]+[TAB]キーを押してポーズモードに入ります。
3Dビューの左側にツールバーが表示されているはずです(表示されていない場合は3Dビュー上で[T]キーを押す)
ツールバーの移動or回転を選択した状態でボーンをクリックし、ギズモまはたマニピュレーターと呼ばれるアイテムをドラッグして移動or回転させます。
赤色のラインが左右軸、青色のラインが上下軸、緑色のラインが前後軸となっています。
3Dビュー中央上部のグローバルとなっている所をクリックして開くと、移動or回転させる座標軸をグローバル座標かローカル座標か選択できます。
もう一つ、ボーンを操作する方法があります。
ボーンを選択した状態でキーボードの[R](回転) or [G](移動)を押した後に[X]or[Y]or[Z]を入力し、テンキーから数値を入力するか、マウスを移動させる方法です。
[R]or[G] → [X]or[Y]or[Z]を入力した後にもう一度同じ座標のキーを入力するとボーンに設定されたローカル軸で操作できます。(例:[R]→[X]→[X]→マウス移動など)
メッシュオブジェクトだけ選択しているとモーフアニメーションのみ、ボーン(アーマチュア)だけ選択しているとボーンアニメーションのみ出力されるため、エンプティオブジェクトを選択してエクスポートする(エンプティオブジェクトを選択して出力するとモーフとボーンアニメーションの両方が出力される)
Use Frame Rangeにチェックを入れる。
MMDモデルのインポート時に倍率を0.08にした場合はエクスポート時の倍率は12.5にする。
Use Frame Rangeにチェックを入れる。
MMDモデルのインポート時に倍率を0.08にした場合はエクスポート時の倍率は12.5にする。
アクションをストリップ化する事でNLAエディターでアクションをループさせたり、複数のアクションを組み合わせる事ができます。
(例えば歩行アクションと手を振るアクションを組み合わせて歩行しつつ手を振ったりなど)
ただし、mmd_toolsアドオンはNLAトラックをサポートしていないためストリップ化してしまうと新規アクションにベイクする必要があります。
この際、キーが全打ちされてしまうので.vmdファイルが肥大化し、配布する場合では貰った人が修正するのが困難になるなど弊害があります。
(Simplify Curvesアドオンである程度キーを間引けますがその分、元の動きとは違ってきます)
キー全打ちでも構わないなら、複数のアクションが含まれるドラマの作成などに便利です。(歩行、ドアを開く、座る、など)
ダンスモーションなどは一つのアクションにしておいてストリップ化せずに出力する方が良いでしょう。
(例えば歩行アクションと手を振るアクションを組み合わせて歩行しつつ手を振ったりなど)
ただし、mmd_toolsアドオンはNLAトラックをサポートしていないためストリップ化してしまうと新規アクションにベイクする必要があります。
この際、キーが全打ちされてしまうので.vmdファイルが肥大化し、配布する場合では貰った人が修正するのが困難になるなど弊害があります。
(Simplify Curvesアドオンである程度キーを間引けますがその分、元の動きとは違ってきます)
キー全打ちでも構わないなら、複数のアクションが含まれるドラマの作成などに便利です。(歩行、ドアを開く、座る、など)
ダンスモーションなどは一つのアクションにしておいてストリップ化せずに出力する方が良いでしょう。
空の.vmd(モデルモーションでもよい)をカメラにインポートしてMMD_Cameraオブジェクト(エンプティ)を作成させ、MMD_Cameraオブジェクト(エンプティ)にキーを打って選択してエクスポート
(フレーム範囲に注意)
(フレーム範囲に注意)
操作しやすいようにBlender上で腕IKや握りボーンを追加します。
ただし、このページで解説する方法ではBlender上でしか作動しません(腕IKなどを追加したMMDモデルをエクスポートしてもMMDでは正常に作動しない)
MMD上でも作動する腕IKや握りボーンを追加したい場合は、IK Maker X(腕IK)や、GripsX2(握りボーン)プラグインをご利用下さい。
また、.vmdとして出力するならアクションのベイクを実行して標準ボーンに置き換える必要があります。
ただし、このページで解説する方法ではBlender上でしか作動しません(腕IKなどを追加したMMDモデルをエクスポートしてもMMDでは正常に作動しない)
MMD上でも作動する腕IKや握りボーンを追加したい場合は、IK Maker X(腕IK)や、GripsX2(握りボーン)プラグインをご利用下さい。
また、.vmdとして出力するならアクションのベイクを実行して標準ボーンに置き換える必要があります。
ボーン(アーマチュア)を選択し、[TAB]キーを押してボーン編集モードへ入ります。
手首ボーンを選択し、3Dビューの左側のアイコン(表示されていない場合は3Dビュー上で[T]キーを押す)から押し出しをクリックして表示された+ボタンをドラッグし、手首ボーンから押し出します。
押し出す長さは適当でいいですが、あまりにも短いと選択しづらいので適度な長さにします。
ボーンプロパティから関係タブを開き、ペアレントの右の☓をクリックしてペアレントを解除します。
[Ctrl]+[TAB]キーを押してポーズモードへ入り、手首ボーンを選択します。
ボーンコンストレイントプロパティを開き、ボーンコンストレイント追加からインバースキネマティクス(IK)を選択して追加します。
ターゲット:にモデル名_armを、ボーン:に先ほど押し出したボーン(手首LorR.001となっているはず)を指定します。
チェーンの長さを肩または腕ボーンまで黄色い点線が伸びるように指定します。
ウェイト:の回転は必要に応じてチェックを入れます(チェックを入れると手首が手首LorR.001ボーンと同じ方向に向きます)
手首LorR.001ボーンを選択し、[F2]キーを押してボーン名を手首LorR.IKとでもしておきます。
これで腕がIK化されました。
IKボーンを操作すると腕が動くはずです。
ボーン(アーマチュア)を選択し、[TAB]キーを押してボーン編集モードへ入ります。
手首ボーンを選択して[shift]+[D]キーを押してボーンを複製します。
適当な位置に複製したボーンを持っていきます。
ボーンプロパティから関係→ペアレントの右の☓をクリックしてペアレントを解除します。
[TAB]キーを押してポーズモードへ入り、適当な指ボーン(ここでは人指3)を選択します。
ボーンコンストレイントプロパティからボーンコンストレイント追加→回転コピーを選択して追加します。
使用空間:をローカル空間↔ローカル空間にし、ターゲット:をモデル名_arm、ボーン:を先ほど複製したボーンを指定します。
[C]キーを押して円で塗りつぶし選択でほかの指ボーンを追加で選択し、左上のポーズからコンストレイント→選択したボーンにコンストレイントをコピーでコンストレイントをほかのボーンにコピーします。
[F2]キーを押して握りボーンの名前をわかりやすいものにしたら完成です。親指ボーンも同様の作業で親指握りボーンを作成すれば指のポーズ作りが楽になります。
Blender上で作った腕IKや握りボーンにキーを打っても標準ボーンへ置き換えなければほかのモデルへ使えません。
”アクションのベイク”でIKや握りボーンの動きを(腕IKや握りボーンの影響を受けた)標準ボーンへ置き換えます。
ここでは握りボーンを標準ボーンの指ボーンに置き換えてみます。
置き換えたい(腕IKや握りボーンの影響を受けた)ボーンを選択します。
左上のポーズからアニメーション→アクションをベイク...を選択します。
表示されたウインドウの選択ボーンのみ、ビジュアルキーイング、コンストレイントをクリアにチェックを入れ、開始フレームと終了フレームを指定してOKをクリックします。
※必要なら現在のアクションを上書きにチェックを入れて新規にアクションを作成せず、現在のアクションに上書きします。
握りボーンに打ってあったキーは削除されて選択していた指関連のボーンにキーが打たれます。
ご覧の通り、1フレームに1キー打たれています。
このままだと.vmdファイルが肥大化し、修正する場合も困難になるなど弊害があります。
Simplify Curvesアドオンでキーフレームをある程度は間引けますので詳しくはアドオンのページをご覧ください。
”アクションのベイク”でIKや握りボーンの動きを(腕IKや握りボーンの影響を受けた)標準ボーンへ置き換えます。
ここでは握りボーンを標準ボーンの指ボーンに置き換えてみます。
置き換えたい(腕IKや握りボーンの影響を受けた)ボーンを選択します。
左上のポーズからアニメーション→アクションをベイク...を選択します。
表示されたウインドウの選択ボーンのみ、ビジュアルキーイング、コンストレイントをクリアにチェックを入れ、開始フレームと終了フレームを指定してOKをクリックします。
※必要なら現在のアクションを上書きにチェックを入れて新規にアクションを作成せず、現在のアクションに上書きします。
握りボーンに打ってあったキーは削除されて選択していた指関連のボーンにキーが打たれます。
ご覧の通り、1フレームに1キー打たれています。
このままだと.vmdファイルが肥大化し、修正する場合も困難になるなど弊害があります。
Simplify Curvesアドオンでキーフレームをある程度は間引けますので詳しくはアドオンのページをご覧ください。
Blenderで綺麗なポーズを作ったのに、.vmd(or .vpd)に出力してMMDに読み込ませるとなんだが違う...といった場合、視野角(焦点距離)の問題かもしれません。
視野角や焦点距離の詳細はまた別の機会として、Blenderの3Dビュー上でMMDのデフォルトである視野角30°にしたい場合は、3Dビューのサイドバー→ビュー→焦点距離を44.7846mmにすればOKです。
メモ:
mmd_toolsを使ってカメラオブジェクトにカメラでない(通常の)モーション(.vmd)を読み込ませるとカメラオブジェクトの設定がMMDのデフォルト視野角(焦点距離)になる。
視野角や焦点距離の詳細はまた別の機会として、Blenderの3Dビュー上でMMDのデフォルトである視野角30°にしたい場合は、3Dビューのサイドバー→ビュー→焦点距離を44.7846mmにすればOKです。
メモ:
mmd_toolsを使ってカメラオブジェクトにカメラでない(通常の)モーション(.vmd)を読み込ませるとカメラオブジェクトの設定がMMDのデフォルト視野角(焦点距離)になる。