KineFXを使ったジョイントのReparentとそのFBX出力について。

   1098   2   0
User Avatar
Member
5 posts
Joined: July 2018
Offline
いつもお世話になっております。

KineFXを使ってFBXのキャラクターデータから、
ジョイントの削減や、親の構造の変更などを勉強しています。

実現したいことは、ImportしたFBXの骨構造を少し変更し、Exportするような簡単な内容ですが、
(例えばスカートのジョイントをpelvisの子からspineの子に変えるなどを想定しています。)

どうも、reparent jointノードを使った親の変更は、Houdini上では問題ない動作するものの、
FBXに出力したデータは、元の骨構造に戻ってしまうようでした。

自分でいろいろ調査した結果、骨の親構造を示すpathアトリビュートが、
reparent後も変更されていないことを見つけたので、
AttributeWrangleで無理やり変更してみた結果、
望むような骨構造で、FBXデータを出力することができました。

ほしいものは実現したものの、私はまだまだHoudiniは初心者なので、
そもそも何か使い方を見誤っているのか気になりました。
こちらWrangleじゃなくてKineFXで用意されているノードで実現できますでしょうか。


添付ファイルのシーンでは、
Ericのlowerarm_lを、clavicle_lの子供に移動するテストをしています。
(こんな構造変更は普段しないですが、あくまでテストデータとして)

Attachments:
joint_reparent_test_ss.jpg (77.2 KB)
joint_reparent_test.hipnc (298.8 KB)

User Avatar
Member
2 posts
Joined: Sept. 2015
Offline
シーンファイルを下記のように修正しました。
ROP FBX Character OutputのCapture Poseに入力するのは、FBX Character ImportのCapture Poseを元にします。
Rest Geometryへの入力は、Nameアトリビュートとpathが必要なので追加します。
これで出力し、Mayaでロードすると画像のようにclavicle_lの子供にlowerarm_lが変わっています。
オリジナルはshoulder_lの子供になっているので変更されていると思います。
Edited by Yoshi_Hi - Aug. 12, 2021 01:18:11

Attachments:
スクリーンショット 2021-08-12 133752.jpg (39.3 KB)
スクリーンショット 2021-08-12 134140.jpg (15.7 KB)
スクリーンショット 2021-08-12 134157.jpg (15.5 KB)
スクリーンショット 2021-08-12 134434.jpg (8.6 KB)
joint_reparent_test_test_edit.hipnc (1.2 MB)

User Avatar
Member
5 posts
Joined: July 2018
Offline
Yoshi_Hi
シーンファイルを下記のように修正しました。
ROP FBX Character OutputのCapture Poseに入力するのは、FBX Character ImportのCapture Poseを元にします。
Rest Geometryへの入力は、Nameアトリビュートとpathが必要なので追加します。
これで出力し、Mayaでロードすると画像のようにclavicle_lの子供にlowerarm_lが変わっています。
オリジナルはshoulder_lの子供になっているので変更されていると思います。

Yoshi_Hi様、わざわざありがとうございます。
頂いた修正シーンをヒントに、いろいろ試してみました。

確かにCapturePoseを使う場合、
Reparentした親子構造が素直にFBXの出力に反映されましたので、
一番シンプルな解決策になりそうです。

なお私の環境では、RestGeometryにPathアトリビュートを追加しなくてもOKのようでした。
(18.5.633)


しかしAnimationを一緒に書き出そうと思うとその限りではないようで、
やはりAnimationPoseのPathアトリビュートを修正しないと、
出力後のFBXの親子構造は元に戻ってしまうようです。


もう一つ、
CapturePoseにはPathアトリビュートが無いことに気が付いたので、
AnimationPoseのPathを丸ごと消してみたら、
こちらも望むような親子構造でFBX出力されるようになりました。

なんとなく検証が必要そうな気もしますが、
AnimationPoseポーズもセットで書き出すなら、
この方法が一番楽できそうな気がしました。
ありがとうございます!

Attachments:
joint_reparent_test_2.jpg (90.7 KB)

  • Quick Links