Character setup with multiple mesh resolutions

   963   11   4
User Avatar
Member
56 posts
Joined: March 2014
Offline
Hi,
I'm very new to APEX and I'm not even a rigger. I'm the pipeline guy trying to figure out how we are going to export the animation bakes properly for our USD pipe.

I'm trying to setup a character that has two resolutions. A hiand a lo. The idea here is to have a more complex deformation on the hishape like wrinkles etc. And we want to export both resolutions when we are done with the animation so lighters can view the loin the viewport and the hiin the render. Instead of packing a folder with the basic `Base.shp`, I did it this way.


Then I added a simple_fk auto rig component, and then a bonedeform for each shape, like this.


I also added this character twice in a scene so I can test with multiple characters. I can see both characters in the Scene Animate node, but I only see the lomeshes.

Then I added a Scene Invoke node like this.


And finally I added two Unpack Folder nodes to extract the loand hiof one character. I want to export them as separate usdc files. The problem is that both nodes export the same data: the loonly.


So the question is: how to setup a character with multiple mesh resolutions, how to choose which one to see in the Scene Animate node, and how to extract them separately for export?

Thanks!
Edited by flord - Aug. 16, 2024 11:44:08

Attachments:
20240816-111832.png (8.8 KB)
20240816-112616.png (66.6 KB)
20240816-113343.png (46.1 KB)
20240816-113835.png (10.2 KB)

User Avatar
Member
56 posts
Joined: March 2014
Offline
I can create a hi.rig and a lo.rig, but then when I animate one, the other does not follow.
User Avatar
Member
71 posts
Joined: Aug. 2017
Offline
Couldn‘t you just go through apex with the low res version and do a post animation step with bineform and wrinkles on the highres one?
User Avatar
Staff
49 posts
Joined: Oct. 2023
Offline
It might be simpler to add groups or a path attribute to the hi and lo mesh and then combine them in one Base.shp mesh. You can use the visibility node to hide the lo res mesh. Now you can deform all the meshes at the same time.

This will also remove the need for using another bonedeform node.
User Avatar
Member
71 posts
Joined: Aug. 2017
Offline
would this setup evaluate the invisible mesh (bonedeform etc.)?
User Avatar
Staff
49 posts
Joined: Oct. 2023
Offline
Yes it should
User Avatar
Member
71 posts
Joined: Aug. 2017
Offline
sorry, what I actually meant was: will this evaluate the invisilbe mesh when animating hence slowing down interaction. So say I have the lowres mesh visible because it is faster to work with, will this still evaluate the highres mesh as well(even though it is not showing) in the animation state.
User Avatar
Staff
49 posts
Joined: Oct. 2023
Offline
yes it will still evaluate the hidden geo, so things might get slow if you have a very heavy mesh.

Another thing you can do, is to only add the proxy mesh to the Base.shp folder while you are animating. When you are done you can add the hi rez to the Base.shp
User Avatar
Staff
49 posts
Joined: Oct. 2023
Offline
here is a simple example of how you can add the proxy mesh and then change the graph to read in the proxy instead of the base mesh

Attachments:
proxy_switch.gif (352.4 KB)
proxy_switch.hip (293.5 KB)

User Avatar
Member
71 posts
Joined: Aug. 2017
Offline
Thanks, interesting solution.
User Avatar
Member
56 posts
Joined: March 2014
Offline
I successfully solved part of my problem by adding a prefix to the bonedeformcomponents. This way, the two nodes are independant in the APEX graph. I had to move the wrinkle component after the first bonedeform for everything to work properly.

The only thing that is missing now would be for the Scene Animate node to allow hiding shapes we don't want to see/evaluate.
I can export the hi and the lo of each character independently, but looking at the time it takes to export both, it looks like Houdini is evaluating the whole graph. I was expecting it to be much quicker when exporting the lo since it doens, have the wrinkle node. Of course, the Scene Animate node is slow to interact with for the same reasons. I hope we can hide some shapes directly from within the Scene animate node in the future so animators can choose what to see while working without having to leave the node. But Houdini will have to be smarter and evaluate juste the parts of the graph that are needed then.

I tested the proxy switch solution and figured that I could change the bool parm for an int. This way I can use more than just two resolutions. This could be useful for muscles and such. I don't quite like the fact that I need to go back up the grah and change the switch after each export but it is a workaround I can live with. I will explore solutions around it in more detail.

Thanks!

F
Edited by flord - Aug. 23, 2024 14:10:55

Attachments:
20240819-143034.png (160.9 KB)

User Avatar
Member
7863 posts
Joined: July 2005
Offline
I think that should be doable if you had an abstract controller that then drove which bone deform gets used. In this case, the idea is to make sure that you only output one .shp and not both.
  • Quick Links