Eric Yoo
muviing_02
About Me
Connect
LOCATION
Not Specified
WEBSITE
Houdini Skills
Availability
Not Specified
Recent Forum Posts
Best Practice for Applying External FBX Animation to an APEX June 18, 2025, 7:42 p.m.
Hi everyone,
I'd like to ask the Houdini experts here for some advice on an APEX workflow.
1. I have a character rig built using APEX in Houdini.
2. I exported the character's skeleton and geometry to Cascadeur, created an animation, and imported it back into Houdini as an FBX file.
3. My Goal: I need to update the controllers of the original APEX rig to match the animation from Cascadeur. This is so I can continue to use the APEX rig for further modifications and rendering within Houdini.
※ The most important condition: The skeleton used in the original Houdini APEX rig and the one used in Cascadeur are 100% identical in terms of hierarchy, joint names, and Rest Pose.
My current workflow was built by adapting the methods from the official KineFX/APEX Workflow content library by SideFX
((https://www.sidefx.com/contentlibrary/kinefxapex-workflow/)).
I understand that this tutorial primarily covers retargeting between two *different* skeletons and workflows for cleaning MoCap animation. I tried to adapt its concepts for my use case, which led me to the following process:
- First, I import the animation with `FBX Character Import`.
- Then, I use `Apex Control Extract` to get the controllers.
- I match the position/scale with my original skeleton using nodes like `rigmatchpose` and `mappoints`.
- I then copy the skeleton's motion with `rigcopytransforms`.
- Next, I update the controller parameters with `Apex Control Update Parms`.
- Finally, I feed this into a `Motion Clip Create` node and then a `Scene Add Animation` node to apply it to the final rig.
This brings me to my fundamental question: Why is such a complex retargeting and mapping process necessary when the base skeleton is completely identical?
I understand that the APEX philosophy is "controller-centric," but is there a more intuitive or direct way to have the APEX controllers automatically reverse-calculate and update based on the imported skeleton's animation? I'm looking for a way to simplify this "translation" process from skeleton motion to controller values.
****
1. Is the **simplified workflow** I hypothesized above the most efficient and standard "best practice" for this specific scenario?
2. Am I missing a simpler node, a different technique, or a completely different approach that I'm unaware of? (For example, a method that might only require the `Apex Control Update Parms` node).
3. Is the common solution in a professional production environment to simply automate this entire workflow by wrapping it in an HDA?
4. Regarding Controller Types: My character rig has both **IK and FK** controllers. I've noticed that my workflow only succeeds when I extract and process the **IK controllers**. If I try to include my FK controllers in this process (extracting them and mapping them via `mappoints`), the final baked animation becomes corrupted and twisted.
- Is it standard practice to only use IK targets for this kind of reverse-update workflow?
- If not, what is the correct method to properly include FK controllers in this process?
I would appreciate any advice from experienced users. Thank you for your time and expertise.
I'd like to ask the Houdini experts here for some advice on an APEX workflow.
1. I have a character rig built using APEX in Houdini.
2. I exported the character's skeleton and geometry to Cascadeur, created an animation, and imported it back into Houdini as an FBX file.
3. My Goal: I need to update the controllers of the original APEX rig to match the animation from Cascadeur. This is so I can continue to use the APEX rig for further modifications and rendering within Houdini.
※ The most important condition: The skeleton used in the original Houdini APEX rig and the one used in Cascadeur are 100% identical in terms of hierarchy, joint names, and Rest Pose.
My current workflow was built by adapting the methods from the official KineFX/APEX Workflow content library by SideFX
((https://www.sidefx.com/contentlibrary/kinefxapex-workflow/)).
I understand that this tutorial primarily covers retargeting between two *different* skeletons and workflows for cleaning MoCap animation. I tried to adapt its concepts for my use case, which led me to the following process:
- First, I import the animation with `FBX Character Import`.
- Then, I use `Apex Control Extract` to get the controllers.
- I match the position/scale with my original skeleton using nodes like `rigmatchpose` and `mappoints`.
- I then copy the skeleton's motion with `rigcopytransforms`.
- Next, I update the controller parameters with `Apex Control Update Parms`.
- Finally, I feed this into a `Motion Clip Create` node and then a `Scene Add Animation` node to apply it to the final rig.
This brings me to my fundamental question: Why is such a complex retargeting and mapping process necessary when the base skeleton is completely identical?
I understand that the APEX philosophy is "controller-centric," but is there a more intuitive or direct way to have the APEX controllers automatically reverse-calculate and update based on the imported skeleton's animation? I'm looking for a way to simplify this "translation" process from skeleton motion to controller values.
****
1. Is the **simplified workflow** I hypothesized above the most efficient and standard "best practice" for this specific scenario?
2. Am I missing a simpler node, a different technique, or a completely different approach that I'm unaware of? (For example, a method that might only require the `Apex Control Update Parms` node).
3. Is the common solution in a professional production environment to simply automate this entire workflow by wrapping it in an HDA?
4. Regarding Controller Types: My character rig has both **IK and FK** controllers. I've noticed that my workflow only succeeds when I extract and process the **IK controllers**. If I try to include my FK controllers in this process (extracting them and mapping them via `mappoints`), the final baked animation becomes corrupted and twisted.
- Is it standard practice to only use IK targets for this kind of reverse-update workflow?
- If not, what is the correct method to properly include FK controllers in this process?
I would appreciate any advice from experienced users. Thank you for your time and expertise.