検索 - User list
Full Version: KineFXを使ったジョイントのReparentとそのFBX出力について。
Root » 日本語フォーラム » KineFXを使ったジョイントのReparentとそのFBX出力について。
saladmix00
いつもお世話になっております。

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

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

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

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

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


添付ファイルのシーンでは、
Ericのlowerarm_lを、clavicle_lの子供に移動するテストをしています。
(こんな構造変更は普段しないですが、あくまでテストデータとして)
Yoshi_Hi
シーンファイルを下記のように修正しました。
ROP FBX Character OutputのCapture Poseに入力するのは、FBX Character ImportのCapture Poseを元にします。
Rest Geometryへの入力は、Nameアトリビュートとpathが必要なので追加します。
これで出力し、Mayaでロードすると画像のようにclavicle_lの子供にlowerarm_lが変わっています。
オリジナルはshoulder_lの子供になっているので変更されていると思います。
saladmix00
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ポーズもセットで書き出すなら、
この方法が一番楽できそうな気がしました。
ありがとうございます!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.