Houdini crowds and USD workflow

   5819   11   6
User Avatar
Member
28 posts
Joined: March 2016
Offline
Hello,

Trying to figure out a reliable workflow regarding crowds and USD.
Anyone have any experience with this and who would like to share a common workflow?

Do you still cache your agents to disk pre-sim, using the old workflow, or is there now a process where you cache them as usd?

Is it possible to export agents from a crowd sim to USD (not just reading them into LOPs, but actually exporting them out), then use the USD in a different software utilizing USD workflow.

Is it possible to write out a crowd sim to USD without unpacking the agents?

Thanks.
FX reel https://vimeo.com/523174378 [vimeo.com]
User Avatar
Member
130 posts
Joined: Jan. 2015
Offline
Yes,

Crowd will use usdSkel when exported as USD.
User Avatar
Staff
733 posts
Joined: Oct. 2012
Offline
There's a good chance you'll still want to cache your agents to disk in the usual workflow, particularly if you plan on using lots of bgeo caches for your simulation caches before exporting to USD, or depending on how you import your source characters / share them between files.

In the latest 18.0 builds there is an option to import agents and clips from UsdSkel as well.
And as mentioned above, the SOP Import LOP will convert agent primitives to UsdSkel
User Avatar
Member
28 posts
Joined: March 2016
Offline
Heileif
Yes,

Crowd will use usdSkel when exported as USD.

cwhite
There's a good chance you'll still want to cache your agents to disk in the usual workflow, particularly if you plan on using lots of bgeo caches for your simulation caches before exporting to USD, or depending on how you import your source characters / share them between files.

In the latest 18.0 builds there is an option to import agents and clips from UsdSkel as well.
And as mentioned above, the SOP Import LOP will convert agent primitives to UsdSkel

Thank you Cameron and Heileif for the info and clarifying! This is really awesome.

Managed to export all my agents to USD. I used the “bakeskinning” node in LOPs as well to get deformation on the crowds working correctly in the exported USD. When exporting to USD without the “bakeskinning” lop node, the deformation of my agents were not applied. My question is this:

Is it bad practice to call the UsdSkel.BakeSkinning function to effectively bake the skinning of the agents when writing out the USD as a final result? Considering the documentation for that node states it should be used for debugging.
FX reel https://vimeo.com/523174378 [vimeo.com]
User Avatar
Staff
733 posts
Joined: Oct. 2012
Offline
Aside from debugging, you shouldn't need to use the Bake Skinning node unless the application (or hydra delegate) you're importing the usd file into doesn't support UsdSkel properly. In particular, this is probably the case if an older version of USD is being used.
The Bake Skinning node is basically the equivalent of unpacking the agents
Edited by cwhite - March 26, 2020 08:33:03
User Avatar
Member
28 posts
Joined: March 2016
Offline
cwhite
Aside from debugging, you shouldn't need to use the Bake Skinning node unless the application (or hydra delegate) you're importing the usd file into doesn't support UsdSkel properly. In particular, this is probably the case if an older version of USD is being used.
The Bake Skinning node is basically the equivalent of unpacking the agents

Copy that! Yeah, at the time when I imported my USD into Maya using Multiverse, UsdSkel was not properly supported.

Importing USD files directly through the agent sop looks very promising. I am excited to implement it into our pipeline!


Thank you again cwhite and pardon my late response.
FX reel https://vimeo.com/523174378 [vimeo.com]
User Avatar
Member
44 posts
Joined: Oct. 2014
Offline
It is implemented since Multiverse version 6.3.0, some of our clients round trip skel data from Maya to Houdini (setup crown) and back to Maya. We are waiting for the work to be public to do some marketing about it but they told us it enabled an awesome workflow.
User Avatar
Member
11 posts
Joined: Oct. 2020
Offline
I still haven't been able to get Crowd USDs to work when bringing to other DCCs without unpacking or bakeskinning them. Not sure if USDSkel is just not working but when bringing those USDs into any other DCC they show up as t-pose. Is there any specific setting on the USD export I should be ticking or a specific way to setup the agents before export?
User Avatar
Staff
733 posts
Joined: Oct. 2012
Offline
Older USD versions didn't support instanceable references for skinned characters, so if another program isn't handling that you could use a Configure Primitive LOP to remove the 'instanceable' setting for the SkelRoot prim references
User Avatar
Member
53 posts
Joined: July 2013
Offline
Maya via Maya-USD and Arnold can read crowd agents exported to usd fine. The problem I have is that the export needs a huge amount of memory. I have a few hundreds agents with some low resolution body parts. And it needs about over 110 gb of ram to export several hundred frames. Any ideas how I can reduce this?
User Avatar
Staff
733 posts
Joined: Oct. 2012
Offline
That could be something to submit to support if possible, since it might need some investigation or to see what exactly your setup for the USD export is doing
User Avatar
Member
53 posts
Joined: July 2013
Offline
Okay, good idea. I'll first do a more systematic search for the problems so I can better define where exactly the memory problems appear.
  • Quick Links