What are the steps involved with importing existing animation in FBX files to an existing rig in the skinning pose?
I've used Import–FBX–then chose only Animation= FBX network container which seems empty. I check both radio boxes for subnodes.
I've used Import–FBX–then chose both Animation and joints and Skin= another FBX network container, same rig, same mesh, and with the animation. I also check unlock the CHOP node.
So, at this point I have two subnetwork container nodes in my Scene; one with animation, one without in a skin pose. How do I get only the animation from one into the other?
Thanks!
FBX: Importing animation
9664 14 1-
- DrFrankenRex
- Member
- 69 posts
- Joined: March 2008
- Offline
-
- oleg
- Member
- 350 posts
- Joined: Jan. 2008
- Offline
I've used Import–FBX–then chose only Animation= FBX network container which seems empty. I check both radio boxes for subnodes.This is because the exporter has no geometry to associate animation channels with (since the “Geometry” and “Joints” checkboxes are off).
There currently is no automatic way to do what you want on import; however, you can just reference the corresponding animation channels from the nodes you've imported with animation.
For example, say you have two subnets imported from FBX - simple_skinning_fbx and simple_skinning_fbx_anim (the first one being static, the second one being animated). Then, for joints in the static subnet, you can enter these expression into the “Rotate” xyz fields of each joint (“joint4” in this example):
ch(“../../simple_skinning_fbx_anim/joint4/rx”)
ch(“../../simple_skinning_fbx_anim/joint4/ry”)
ch(“../../simple_skinning_fbx_anim/joint4/rz”)
Then do the same thing for translate and scale, if those are animated, too.
This will reference existing animation channels from the subnet which is animated. Unfortunately, you have to do it for each node you want to animate, so there's probably a better way, I just don't know it.
Oleg Samus
Software Developer
Side Effects Software Inc.
Software Developer
Side Effects Software Inc.
-
- DrFrankenRex
- Member
- 69 posts
- Joined: March 2008
- Offline
-
- edward
- Member
- 8081 posts
- Joined: July 2005
- Offline
-
- DrFrankenRex
- Member
- 69 posts
- Joined: March 2008
- Offline
So, I would put a CHOP node inside each subnetwork FBX object.
And inside each particular CHOP, I would put a Fetch node or a Export node? Is this how it would be accomplished? I watched the CHOP video about the bouncing ball, but couldn't interpolate enough for a rigged, subnet object with existing keyframes. Anyplace I could read up on this, I'll check out.
Thanks.
And inside each particular CHOP, I would put a Fetch node or a Export node? Is this how it would be accomplished? I watched the CHOP video about the bouncing ball, but couldn't interpolate enough for a rigged, subnet object with existing keyframes. Anyplace I could read up on this, I'll check out.
Thanks.
-
- edward
- Member
- 8081 posts
- Joined: July 2005
- Offline
You just need one CHOP network. Inside it, put down a Fetch and then append an Export. I haven't tried in a while whether the Fetch can fetch multiple nodes at once. You might need multiple Fetch nodes, wire them all into a Merge CHOP and then append an Export. Once it's all set up, you need to turn on the orange flag on the Export CHOP.
-
- DrFrankenRex
- Member
- 69 posts
- Joined: March 2008
- Offline
This is really helping, Edward, and by append; you mean to ‘wire’ the Output of the Fetch to the Input of the Export? Then fill in the appropriate entry fields of each node? Sounds very simple, and the ‘multiple’ nodes sounds logical. It's always in where to do this stuf, I get confused.
When you say put down a CHOP node…Could I use the ‘global’ CHOP ‘level’l in the Tree view? or does this need to be at the ‘OBJ’ level. Or does it need to be inside either of the two networks…? I can conceptually grasp the ideas of HD; it's in the mechanics of where and what node to connect where, it gets a bit fuzzy.
But, I'm still very new to HD's nodes; for my needs of exporting, setups are usually very simple.
Sounds like a good subject for some sort of tutorial or visual, this seems very easy enough to transfer data between objects.
I tried as intuitively as I could, when I connected the two nodes Fetch to Export and pointed the Fetch to the animated node and the Export to the static node, I got red errors on the nodes when I check the export button. I'm sure I didn't do something to the nodes before hand that I needed to do?
When you say put down a CHOP node…Could I use the ‘global’ CHOP ‘level’l in the Tree view? or does this need to be at the ‘OBJ’ level. Or does it need to be inside either of the two networks…? I can conceptually grasp the ideas of HD; it's in the mechanics of where and what node to connect where, it gets a bit fuzzy.
But, I'm still very new to HD's nodes; for my needs of exporting, setups are usually very simple.
Sounds like a good subject for some sort of tutorial or visual, this seems very easy enough to transfer data between objects.
I tried as intuitively as I could, when I connected the two nodes Fetch to Export and pointed the Fetch to the animated node and the Export to the static node, I got red errors on the nodes when I check the export button. I'm sure I didn't do something to the nodes before hand that I needed to do?
-
- probbins
- Member
- 1145 posts
- Joined: July 2005
- Offline
Call in a Chop Network manager at the Object level. This is a nice way of managing chops, in that it provides access to a chops editors that can be specific to your needs. Double-click on the node to go into the chops editor.
You can of course use the global chops editor, but personally I use the manager nodes all the time now.
Yes, append means to attach one node to another. Usually what this is implying is that we are doing a RMB on the output of a node, which calls up the tool menu, and then picking what we want to add. The attachment then automatically happens.
You'll have to tell us what the error is saying. Check to make sure you have
the correct channels declared in the export chops.
You can of course use the global chops editor, but personally I use the manager nodes all the time now.
Yes, append means to attach one node to another. Usually what this is implying is that we are doing a RMB on the output of a node, which calls up the tool menu, and then picking what we want to add. The attachment then automatically happens.
You'll have to tell us what the error is saying. Check to make sure you have
the correct channels declared in the export chops.
“gravity is not a force, it is a boundary layer”
“everything is coincident”
“Love; the state of suspended anticipation.”
“everything is coincident”
“Love; the state of suspended anticipation.”
-
- DrFrankenRex
- Member
- 69 posts
- Joined: March 2008
- Offline
Great, no errors this time, from your outline, although; no animations into the new shape.
So, I'll post some images now, to help with a walk thru; as I've done no real node juggling, I have been helping get an ROP shaped and now I'm trying various common game asset building flows. Merging in an animation is one of them…lol.
Here is my base Scene with the two subNetwork FBX imports, one in the static skinning pose and the other in a ‘root’ idle/breathing while weapon holding pose.

Next is inside the CHOP network I put at the OBJ level, with the Fetch and Export nodes connected and the parameters exposed. This is where I've probably gone wrong. I chose a wild card default for ALL channels? to fetch ?

Lastly, is inside the Export node to expose it's parameters…again; undoubtedly where I erred as well.

Thanks for walking me thru this; I'm sure in time it will become easier as I try more things on nodes and shapes.
So, I'll post some images now, to help with a walk thru; as I've done no real node juggling, I have been helping get an ROP shaped and now I'm trying various common game asset building flows. Merging in an animation is one of them…lol.
Here is my base Scene with the two subNetwork FBX imports, one in the static skinning pose and the other in a ‘root’ idle/breathing while weapon holding pose.

Next is inside the CHOP network I put at the OBJ level, with the Fetch and Export nodes connected and the parameters exposed. This is where I've probably gone wrong. I chose a wild card default for ALL channels? to fetch ?

Lastly, is inside the Export node to expose it's parameters…again; undoubtedly where I erred as well.

Thanks for walking me thru this; I'm sure in time it will become easier as I try more things on nodes and shapes.
-
- edward
- Member
- 8081 posts
- Joined: July 2005
- Offline
-
- DrFrankenRex
- Member
- 69 posts
- Joined: March 2008
- Offline
Things progressed much better with your example, Edward!
I see the small changes in pathing that you made, and for the greater part, it worked.
I did observe that I had to remove the ‘wildcard’ symbol from my ‘export to’ node parameter. Keeping it in place, caused the ‘fetched’ mesh of that container to do some oddities; a few ‘points’/verts moved away from the rig and caused nasty stretching. Once I removed the “*” from the pathing, those stray verts snapped back into place on the animated container. Once the ‘cooking’ was complete, the un animated shape ‘snapped’ to the pose of the sequence and it followed along, in sync, with the original animated shape.
Few more observations: I seem to have picked up a few really odd keyframes during both sequences once everything was finished.
These few oddities are probably to due with some setting radio boxes during the process. I ‘think’ things could be streamlined to parse only the animated channels. It's very close to 100% and I am somewhat relieved to see some animation brought into HD and loaded into a similar shape.
In my first attempt, my shapes had slightly differing rigs, the un animated rig still contained some extra bones not parsed during the ROP/exporting to my target formats. My sequence I stuffed into this shape, had considerabaly fewer Bones/nulls, although I still saw this few stray verts moving away from the mesh…..
Thanks. I see the underlying concepts now…nearly had it; just some mechanics of pathing…lol.
I see the small changes in pathing that you made, and for the greater part, it worked.
I did observe that I had to remove the ‘wildcard’ symbol from my ‘export to’ node parameter. Keeping it in place, caused the ‘fetched’ mesh of that container to do some oddities; a few ‘points’/verts moved away from the rig and caused nasty stretching. Once I removed the “*” from the pathing, those stray verts snapped back into place on the animated container. Once the ‘cooking’ was complete, the un animated shape ‘snapped’ to the pose of the sequence and it followed along, in sync, with the original animated shape.
Few more observations: I seem to have picked up a few really odd keyframes during both sequences once everything was finished.
These few oddities are probably to due with some setting radio boxes during the process. I ‘think’ things could be streamlined to parse only the animated channels. It's very close to 100% and I am somewhat relieved to see some animation brought into HD and loaded into a similar shape.
In my first attempt, my shapes had slightly differing rigs, the un animated rig still contained some extra bones not parsed during the ROP/exporting to my target formats. My sequence I stuffed into this shape, had considerabaly fewer Bones/nulls, although I still saw this few stray verts moving away from the mesh…..
Thanks. I see the underlying concepts now…nearly had it; just some mechanics of pathing…lol.
-
- edward
- Member
- 8081 posts
- Joined: July 2005
- Offline
-
- DrFrankenRex
- Member
- 69 posts
- Joined: March 2008
- Offline
This example proved very nice, Edward; you certainly know these expressions and parameters, something I'll be developing in myself as I forge onward.
I determined my ‘keyframe’ oddities were/are due to the FBX importing the animation. My FBX file has a very long timeline, it contains frames with keys, some without, which provides some ‘tweening’ or interpolating. When I Import FBX with animation, I'm given a choice of TCB curves only or all Cubic curves; and a resample rate.
With either choice, my ‘tween’ frames, are now keyframed; and filled with garbage values. I looked at the curve editor and saw how my graph for a particular null had jumped wildly to the other side of graph! I haven't found out how to delete a particular key yet, so I began to just manipulate the handles of the curve and it did readjust the pose, kinda like deleting the entire frames keys….which I did looking at the FBX from it 3rd party generator. I also noticed when I reimported my FBX in the 3rd party app, I had the choice of sampling at every frame, or not. When I chose not, it imported back into the 3rd party fine, when I chose to resample….it gave the garbage keys I had in HD. This tells me, not to resample at all, and rely upon the keys only…..I'm off to try a resample value of 0 frames…prolly bork out, lol.
Thanks.
I determined my ‘keyframe’ oddities were/are due to the FBX importing the animation. My FBX file has a very long timeline, it contains frames with keys, some without, which provides some ‘tweening’ or interpolating. When I Import FBX with animation, I'm given a choice of TCB curves only or all Cubic curves; and a resample rate.
With either choice, my ‘tween’ frames, are now keyframed; and filled with garbage values. I looked at the curve editor and saw how my graph for a particular null had jumped wildly to the other side of graph! I haven't found out how to delete a particular key yet, so I began to just manipulate the handles of the curve and it did readjust the pose, kinda like deleting the entire frames keys….which I did looking at the FBX from it 3rd party generator. I also noticed when I reimported my FBX in the 3rd party app, I had the choice of sampling at every frame, or not. When I chose not, it imported back into the 3rd party fine, when I chose to resample….it gave the garbage keys I had in HD. This tells me, not to resample at all, and rely upon the keys only…..I'm off to try a resample value of 0 frames…prolly bork out, lol.
Thanks.
-
- oleg
- Member
- 350 posts
- Joined: Jan. 2008
- Offline
Can you provide a file which results in these garbage resample keyframes?
From the sounds of it, there may be little we can do on our side, because it seems almost as if resampling goes wrong within the FBX SDK itself, although without seeing the actual file, I can't be 100% sure.
Also, what do you mean by “tween” keyframes?
From the sounds of it, there may be little we can do on our side, because it seems almost as if resampling goes wrong within the FBX SDK itself, although without seeing the actual file, I can't be 100% sure.
Also, what do you mean by “tween” keyframes?
Oleg Samus
Software Developer
Side Effects Software Inc.
Software Developer
Side Effects Software Inc.
-
- DrFrankenRex
- Member
- 69 posts
- Joined: March 2008
- Offline
The ‘tween’ frames I'm referencing would be ‘empty’ frames of any keyframe values on any node/null/joint/etc…to allow program interpolation between keyframes.
This is a really lengthy sequence, with nearly all frames keyed, with just a few frames here and there with absolutely no keyed values at all, for ‘tweening’ via the 3rd party app, and HD would do as well. It is with no ability to specify ‘no Resample’, which is causing the glitch. When I Imported my FBX back into it's source platform, I got the same garbage results with the Resample ON and I have empty ‘channels’ perhaps? When I chose not to Resample, my original unborked sequence was Imported. I agree, perhaps in the FBX sdk…when it resamples…it does very odd things.
I'll see if I can put together an example I can pass along. I'm fairly certain if I go back into my source file of the sequence and key in those ‘empty’ frames, the issue will disappear when I Import the FBX into HD.
This is a really lengthy sequence, with nearly all frames keyed, with just a few frames here and there with absolutely no keyed values at all, for ‘tweening’ via the 3rd party app, and HD would do as well. It is with no ability to specify ‘no Resample’, which is causing the glitch. When I Imported my FBX back into it's source platform, I got the same garbage results with the Resample ON and I have empty ‘channels’ perhaps? When I chose not to Resample, my original unborked sequence was Imported. I agree, perhaps in the FBX sdk…when it resamples…it does very odd things.
I'll see if I can put together an example I can pass along. I'm fairly certain if I go back into my source file of the sequence and key in those ‘empty’ frames, the issue will disappear when I Import the FBX into HD.
-
- Quick Links


