この記事の3行まとめ
- COYOTE 3DCG STUDIO、Mayaの3DモデルデータをFBX化してBlenderで取り込む際に、初期体勢とレストポーズが一致しない問題を記事で解説
- Maya上でのバインド直後に「bindPreMatrix」が記録されたのち、バインドポーズが変更されたことが原因
- bindPreMatrixはメッシュ変形時に参照されるアトリビュート。その性質や、レストポーズを上書きする手順などを解説している
クリーク・アンド・リバー社の3DCG制作チーム「COYOTE 3DCG STUDIO」は2026年8月25日(火)、『MayaからBlenderへキャラクターを移植!レストポーズの罠』と題した記事を、技術ブログで公開しました。
記事では、Mayaで作成した3DモデルデータをFBXで出力し、Blenderにインポートした際に、インポート直後のモデルの姿勢とレストポーズ(初期姿勢)が一致しない現象について、原因と解決策を解説しています。
(画像は記事本文より引用)
記事中での作業環境は、「Maya 2024.2.4」および「Blender 4.5.8」
記事によると、Mayaで作成したモデルデータをFBX化してBlenderに取り込み、ボーンを操作したあとに「トランスフォームをクリア」でレストポーズに戻したところ、インポート時とは異なる姿勢になったとのこと。
Blenderにインポートした直後の姿勢と、「トランスフォームをクリア」でレストポーズに戻した際の、3Dモデルの姿勢の違い。
レストポーズのほうがやや腕の角度が下がっているなど、わずかな違いが見て取れる(画像は記事本文より引用)
原因を解明するべく、Mayaデータのジョイントのrotateや、jointOrientの様子などさまざまな要素を洗った結果、MayaのskinClusterノードに付属する「bindPreMatrix」というアトリビュートが関与していることが判明。
「bindPreMatrix」は、メッシュとジョイントをバインドした時点での各ジョイントの姿勢を記録したもの。メッシュの形状変化の際に参照されます。
(画像は記事本文より引用)
バインドポーズ自体は後から変更が可能ですが、バインド時に記録される「bindPreMatrix」はバインドポーズを変更しても初期状態が維持されます。
つまり、バインドの瞬間に「bindPreMatrix」が記録された後、バインドポーズが上書きされたことが原因で、レストポーズがインポート時の姿勢と食い違ったということになります。
Tスタンスでバインドしたキャラクターモデルに対して、bindPreMatrixのみをAスタンスのものに上書きすると、モデルの姿勢とbindPreMatrixが不一致となり、メッシュ変形の結果にも支障が出てしまう(画像は記事本文より引用)
記事では、「bindPreMatrix」の性質やメッシュ変形において果たす役割などを解説しているほか、Blender上でレストポーズを上書きする手順について説明。
また余談として、skinClusterによって記録されているbindPreMatrixが食い違っているデータをBlenderに持ち込んだ際の挙動についても紹介しています。
詳細は、記事本文をご確認ください。
MayaからBlenderへキャラクターを移植!レストポーズの罠 | TECH-COYOTE|C&R Creative Studios