ニコニコ
ユーザーブロマガは2021年10月7日をもちましてサービスを終了いたしました。
このページは皆さまから投票いただいた記事を保存したものです。

酒エンジン

【MMD】多段ボーンモーションを準標準ボーン用に統合する方法

2015-06-05 23:12:40
はじめに
 多段ボーンで作成したモーションを、標準/準標準ボーンのモデルに流し込めるようにする方法を解説します。想定読者はPMX Editorを使用して、ボーンの名称変更や多段化はできる人です。統合後は全フレームにキーが打たれた状態になって、ファイルは大きくなり読み込みに少々時間がかかります。


何か間違いだとか、他の良い方法があればぜひ教えてください。

目次
①「VMD Motion Integrator」の使い方、使用上の注意
②MikuMikuMovingによる統合の方法
③連動・キャンセルボーンを統合する方法
④おまけ:単段のモーションを多段に分解する方法
VMD Motion IntegratorとMikuMikuMoving配布サイト

①「VMD Motion Integrator」の使い方、使用上の注意
 このツールは捩りボーン及び多段ボーンを標準/準標準ボーンに統合する機能を持ちます。(捩りの統合は最近のモデルならあんまり必要ないと思います。)

 このように「親」などの判断文字を拾って候補が表示されるので、そこから統合したいボーンを選択します。捩りのチェックを外して「全てのフレームを~」にチェックを入れてください。そしてメニューから統合を選択すればOKです。キーが多いので少々時間がかかります。
 さてこのツールですが2011年に作成された古い物のため、最新のMMDで出力されたモーションファイルでは、補間曲線をうまく処理できないようです。MMD ver9.00~9.06において行われた「モーションファイルの入出力バグ修正」の影響っぽい。対策は「MMD ver8.14以前でモーションを出力する」ことです。
 また多段ボーンの最終フレームがずれていると少しおかしくなるようです。最終フレームが90と100のキーがあると91でおかしくなる感じです。対策としては全ての多段ボーンの最終フレームにキーを追加しましょう。

 MMDの旧バージョンが手に入らなくても、MMM(MikuMikuMoving)を使用する手があります。

②MikuMikuMovingによる統合の方法
 MMMにはモデル改造なしで段数を増やす「モーションレイヤー」機能があり、レイヤーを統合してモーションを出力することもできます。多段ボーンのモーションを統合するにはまず各ボーンのキーをひとつのボーンのモーションレイヤーに移植する必要があります。
 モーションレイヤーはMMMの画面でボーン名を右クリックして簡単に追加できます。多段ボーンの段数分レイヤーを追加したら、ボーンの親子関係と「逆順に」レイヤーに貼り付け(メニューの編集→他ボーンに貼り付け)します。


 次に元の多段ボーンのキーを削除し、動作確認してください。問題なければモーションを保存します。レイヤー統合にチェックを忘れずに。レイヤー分けしていないボーンも全フレ打ち状態で出力されるので、統合したいボーンだけ選択して後で合成するような工夫が必要です。

 なお上記の手順は自作のJEWELモーションで確認していますが、私はMMMには詳しくないので他のモーションに適用できない可能性もあります。そのような個別のケースには対応できませんのでご了承ください。

③連動・キャンセルボーンを統合する方法
 連動とキャンセルはモデルのボーン構造であってキーフレームに反映されないので、モーション統合はできません。しかしモーションを配布・流用するためにはこれらも統合してしまいたい所です。

 方法はいたって単純。連動・キャンセルの回転付与元になっているボーンのキーを、付与先の多段ボーンにコピーします。そしてキャンセルならキーフレーム編集で-1倍し、それらをモーション保存して統合してしまいます。
「ボーンフレーム位置角度補正」機能

 具体例を上げましょう。私がオススメしている「下半身キャンセル」構造では、足ボーンを多段化した親ボーンに下半身ボーンの回転付与-1倍を設定しています。この場合は足親ボーンに下半身ボーンのキーをコピーして-1倍すればキャンセルと同じ動作をします。またよく使われる肩キャンセルボーンなら、肩P(操作用ボーン)のキーを腕の親ボーンにコピーして-1倍です。
 これで(連動・キャンセルではない)多段ボーンのキーフレームになったので、統合すれば完成です。

 そんなわけで、多段ボーンと下半身キャンセルを統合した、「JEWEL」準標準ボーン版モーションを配布開始しました。元の多段ボーン版も同梱しているので、上記の各種操作を試したい時にもどうぞ。
bowlroll配布ページ

④おまけ:単段のモーションを多段に分解する方法
 需要があるか分かりませんが、MMDの角度の話をするついでに、単段ボーンのモーションを多段ボーンに分解する方法を紹介します。
 MMDの画面下に表示される角度は3つの数値で表される「オイラー角」です。MMDではYXZ型を採用しており、これは角度0の状態からローカル軸Y,X,Zの順番でその数値通りに回すと、そのボーンの角度になることを意味しています。
 実際にMMDで試してみてください。例えばXYZの値が1,2,3なら、YXZの順で2,1,3ずつ回せばXYZが1,2,3になりますが、XYZの順に1,2,3ずつ回すと、別の結果になってしまいます。
 これを多段化して単段ボーンのモーションと同じ結果を得るには、多段ボーンの親側から順にYXZの回転を割り振ればOKです。用意した親ボーンに元のボーンのキーをコピーしてから、不要な回転だけ0倍にします。
 これで少なくともキーフレーム上では完全に一致します。補間部分はわずかにずれることがありますが、動いていれば気づかないでしょう。もっともこれだけでは前と同じ動きに過ぎません。使い方次第ですね。

画像:上半身ボーンを3段に分解。奥が元のモーション、手前がYXZ順、中央はZXY順。

以上でございますー


投稿者:

HOPHEAD(倶楽部P)

プロフィールページ