Exporting APEX animations into fbx, gltf etc.

   3218   13   3
User Avatar
Member
4 posts
Joined: May 2023
Offline
How does one evaluate and export animations from APEX SceneAnimate?
As I understand SceneAnimate contains data inside folders. I was able to extract mesh and skeleton from it, which exports fine. Bones, weights, names, and other stuff are correct. But simple unpacking does not work with animations, I think they need to be evaluated and transferred on the skeleton somehow.

Attachments:
Screenshot_1.png (23.4 KB)

User Avatar
Member
236 posts
Joined: March 2023
Offline
Hello, I Think you can find some information about extracting animation at the end of the hive video :

https://youtu.be/2bjPTvkpNC0?t=1840 [youtu.be]

if not, you probably can put an "Apex Scene Invoke" which will translate the geometry based animation and bake them into the animation.
Edited by ASquirrel - Nov. 10, 2023 16:33:23
Head of Pipeline @ LightVFX
User Avatar
Member
4 posts
Joined: May 2023
Offline
Hey Jacquesf, thank you for answering.

As I understand, in the video they demonstrated translating a KineFX animation to APEX. They extracted APEX control rig and manipulated it using KineFX tools and added it to APEX Scene as APEX animation, and then the scene evaluated the rig and moved skeleton accordingly. So, what I'm looking for is a KineFX skeleton, which is in scene folder, but evaluated using a rig. Like Apex Scene Invoke, but one that exports skeleton rather than geometry.

Also, APEX Control Extract does not output animated rig controls. In scene we have animations in animation folder, it looks like channels for controls, maybe it could be animated with them and then I could somehow invoke graph on skeleton?
User Avatar
Member
236 posts
Joined: March 2023
Offline
Alright, I see what you mean now, I think the trouble here is that the rig of electra have not been configured to output an animated skeleton.

if you unpack the electra Base.rig and dig into the apex graph, you'll notice that only Base.shp is outputed, but not the Base.skel.
maybe an oversight from the developer, It make sense that if you wanted to further edit the animation using kinefx or export it you'd want to export the skeleton animation and not just the shape.

I've attached a simple scene with an apex graph that will connect the skeleton to the output as an exemple.

ps : you might have to use the reset button on your sceneanimate for the change to take effect, you'll have to play with the "Reset Custom" to keep your animation intact.
Edited by ASquirrel - Nov. 11, 2023 10:21:15

Attachments:
output_anim_skel.hiplc (6.4 MB)

Head of Pipeline @ LightVFX
User Avatar
Member
4 posts
Joined: May 2023
Offline
I examined your example, the fix is really simple. Thank you very much.
I've tried using Base.skel as output in scene invoke but it was not working. Now I know why.
I hope developers will add a skeleton as output to Electra's rig, so that it would be easier to start testing animation workflow for game developers.
User Avatar
Member
236 posts
Joined: March 2023
Offline
I assume that they don't want to override the Base.skel with animation as that would probably mess consecutive animatate node ? like it supposed to represent the 'rest skeleton', so maybe it should be saved as maibe Anim.skel instead ?

apex is still a baby so maybe even the dev don't know yet what will be the best workflow ^^
Head of Pipeline @ LightVFX
User Avatar
Member
4 posts
Joined: May 2023
Offline
Yeah, like Anim.skel or something like that^^
While APEX is still a baby, it looks like a really powerful tool.
It feels very flexible.

Also, quick question: how did you rename parms port to rigname?

--
Found out, middle mouse button click. If it throws error try to relaunch Houdini
Edited by sergey.mi.dev - Nov. 11, 2023 13:08:46
User Avatar
Staff
83 posts
Joined: May 2021
Offline
Hi there, yes that is unfortunately a bug with the missing Base.skel output for Electra. It is already fixed and you should be able to pick it up with the next daily builds.
User Avatar
Staff
83 posts
Joined: May 2021
Offline
and yes the approach would always be to use the Scene Invoke SOP in order to fetch that animated skeleton.
User Avatar
Member
76 posts
Joined: Oct. 2018
Offline
I wanted to put in my two cents in case anybody else has trouble with this. I've recently created a custom car rig using APEX, and was able to export the model along with its animation to Unity.

I noticed I wasn't able to get the skinned geo from the unpack node (something off with my set up no doubt) so I just grabbed the original skinned geo from before the APEX setup. From there I extracted the Base.skel from the Unpack Folder.

The resulting skeleton from the unpack folder was animated, so I froze the first frame for the rest pose(totally unecessary - I could've just grabbed the original skeleton like I did with the skinned geo) and piped all three into the fbxcharacterrop as you usually would.

Kinda janky, but it worked in the end. Like many of us, I'm still figuring out this insanely powerful framework.




Attachments:
Screenshot_1.png (762.0 KB)
Screenshot_2.png (84.0 KB)

User Avatar
Member
7871 posts
Joined: July 2005
Offline
benttoenail
I noticed I wasn't able to get the skinned geo from the unpack node (something off with my set up no doubt) so I just grabbed the original skinned geo from before the APEX setup. From there I extracted the Base.skel from the Unpack Folder.

Unless you also wire these inputs as outputs, then you won't be able to get these after the APEX Scene Invoke so I think would also just pipe in the rest geometry and skeleton from before they're used by APEX as well for export.
User Avatar
Member
3 posts
Joined: Aug. 2024
Offline
It would be really helpful if some things where explained in the docs.
Like how do you save only the animation of a character.
I know there is a packed "animation" folder .tried to save only that packed prim or even with all other packed prims.


I have forgotten to change the character name at the "APEX scene add Character node"
and animated my character. if I now change the character name at the add character node i lose all the animation.
That`s why i tried to save the animation and "hack" it into a separate addcharacter node with the Apex add animation node.

Thought that if i split unpack the animation primitive and change the rig_path detail attribute and then repack would do the trick.

Any help would be greatly appreciated. For now i just use the default name but i would like to know for future project how to deal with those things!
Edited by gavagiannis - Nov. 20, 2024 12:01:48
User Avatar
Staff
31 posts
Joined: June 2021
Offline
What you can do is copy the anim from one sceneanimate to another using selection sets. Part 6 of the animation workshop goes over this. In it, you can see I have different names (Electra and electra), but if it's the same character then it will have the same controls, so you can just copy all the channels from the one with the bad name, to a new chain with the correct name.

Part 6 is what you want to look at

https://www.sidefx.com/tutorials/animation-workshop/ [www.sidefx.com]
User Avatar
Member
3 posts
Joined: Aug. 2024
Offline
warrenl
What you can do is copy the anim from one sceneanimate to another using selection sets. Part 6 of the animation workshop goes over this. In it, you can see I have different names (Electra and electra), but if it's the same character then it will have the same controls, so you can just copy all the channels from the one with the bad name, to a new chain with the correct name.

Part 6 is what you want to look at

https://www.sidefx.com/tutorials/animation-workshop/ [www.sidefx.com]

Ohh I feel silly! never thought that it could work like that(that`s too high level for houdini).Got to see all the videos!!!

Thanks a lot!
Edited by gavagiannis - today 05:01:26
  • Quick Links