多段ボーンを操作する時のローカル軸のずれ

モーショントレースのセルフ比較動画を上げました。




元PVは振り付けのあるダンスではなくて体を揺らす動きですね。
映像自体は簡素なものですがデビュー前後の宇多田ヒカルの魅力が出ていて好きです。

今回、すべての動きを再現できるように体幹ボーンを3段に多段化してみたのですが、
多段モーションの管理については少しわからない疑問が残りました。

3段に分けた回転ボーンをX軸、Y軸、Z軸の3軸に振り分けるというような、
ボーン構成は時々見かけるような気がするんですが単純に多段化して
XYZ軸ごとに動かすとローカル軸が別の方向を向いてしまうんです。




ジンバルロック

つまり、X軸→Y軸→Z軸と順番に動かした場合、
X軸⇔Y軸、Y軸⇔Z軸の2軸のローカル軸のずれはまだ許容できますが、
X軸とZ軸のローカル軸のずれはちょっとやってられない感じになります。

順番に動かしながらモーション付けに一切のミスがなければこれでも問題ないんですが、
調整段階ではそうならないしこれを皆さん一体どうしてるのかなあと。。。

回転ボーンを多段化するメリットは軸ごとにずらして補間曲線を付けられることですが、
今回の場合、最終的に1段目と2段目でなるべく交互にフレームを打ちながら、
3段目で微調整するという打ち方で3軸を完全に分離したモーション管理は断念しました。

3軸のローカル軸のずれを解消する管理の仕方は思いつかなくもないんですが、
たとえば付与親を使って3軸の回転を分けて与えれば同じローカル軸を保つことができます。

単純な多段化
腰(センター/グルーブ) → 上半身親1 → 上半身親2 → 上半身

付与親を使った多段化
腰(センター/グルーブ) → 上半身親1
                ↓(付与親)
     〃       → 上半身親2
                ↓(付与親)
     〃       → 上半身

図に整理するとこんな感じ。
モーションをやり直すのもイヤだし実際には使いませんでしたが。。。

もしくは最初は1段で付けてしまって、そこから3軸に分解する手もなくはないです。
そこからキーをずらすのが面倒なのでする気はおきませんが・・・
答えが出てないわけでもないのですが実際のところ皆さんどうなんでしょうね。

追記)
HOPHEAD(倶楽部P)さんの多段モーションの統合と分解の記事を読んで、
いくつか疑問が解決しました。

MMDの画面下に表示される角度は3つの数値で表される「オイラー角」です。MMDではYXZ型を採用しており、これは角度0の状態からローカル軸Y,X,Zの順番でその数値通りに回すと、そのボーンの角度になることを意味しています。」

単純に多段化する場合はYXZの順番に多段管理しないとダメみたいです。
私の書いたことがこれですべて解決するのかは試してませんが
モーションの統合と分解は面白いのでぜひ読んでみることをオススメします。

MMD】多段ボーンモーションを準標準ボーン用に統合する方法http://ch.nicovideo.jp/HOPHEAD/blomaga/ar805999


なんか動画の話になりませんでしたね、

ちなみにトレスしてから衣装やモデルに合わせて動きを変えてしまったり、
指の動きなんかは勝手に付け加えたりしてます。。。
人間の体と3Dモデルとプロポーションも違うしある程度は仕方ないかなと