D日記

モーションアーティストの技術ブログだよ。日常も書くよ。

MENU

【Maya】ジョイントをペアレントすると謎のTransformノードが出来上がる


以前こんなツイートをしました。

3dsMaxから持ってきたジョイントはたまに問題起こる。
Maya上でジョイントの階層関係を変更すると、なぜかGroup化されてしまう。
よくわからないので、全てのジョイントを同じ位置に作り直したよ・・・・・

今回この解決方法がようやくわかりました。

どんな問題か?

こういう骨があるじゃろ?


ジョイントを新規作成するじゃろう?


作ったジョイントを、腰の子にすると謎のTransformノードが出来上がるのじゃ!!

解決策1

スキニング情報を逃がす

何はともあれまずはスキニングしているデータの情報を逃さなければなりません。
スキニングデータ逃さないと不安よな。
ドラスキン、動きます。
DoraSkinWeightImpExp

メッシュを選択して、任意の名前(ウェイトデータ)をつけて赤枠内押下。シーン内にウェイト情報を保存します。


シーン内にこんなノードが出来上がればOK。


はいこれで、ウェイト情報は脱出出来ました!

バインドしているジョイントを選択セットへ保持

デタッチの前にバインドしているジョイントを覚えておきたいので、メッシュを選択して下記スクリプトを実行してください。

スキニングされたメッシュ(transform)を選択して実行すると、バインドジョイントの選択セットを ...


シーンに下記の選択セットができればOK。

スキンのデタッチ

あとは、スキニングメッシュを選択して、[ Shift + Alt + D ] でアンバインド!

【本題】ジョイントのトランスフォームのフリーズ

全てのジョイントを選択して、トランスフォームのフリーズ(スケールだけでOK)。


これをやるためだけの下準備がとても長かったですね^^; えへへ。
でもお陰でこの通り直りましたー!!!!!

あとは元に戻してください

1.選択セットに保持した全ジョイント と メッシュを選択
2.スキニング
3.スキニングメッシュを選択して、ドラスキンでインポート。

解決策2 そもそも起こさない

親ノードのスケールが1以外だとtransformノードが作られてしまうみたいです!
親スケールを一旦1にして、ペアレント後に元のスケールに戻せばいいですね!


最後急ぎ足でしたがこれで終わりです!めんどくさいですね!
他に良い方法があれば教えてください!