USD: understanding changing the animated character caches

   3946   8   4
User Avatar
Member
644 posts
Joined: Aug. 2013
Offline
Hi All.
I know quite a few SideFX talks talk about using Solaris to change the animated cache version of characters by only bringing in a point cache of the character and layering it below the reference of the mesh primitive.

I am a bit stuck on how to do this. My pic should explain what I am trying to do. From what I understand I can somehow save out only the animated point data as a usd file to bring in and sublayer below the geo rest pose. Therefore saving disk space with animated point revisions.

Have I got any of this correct? And if I have how do you save out usd animated point data while ignoring the polys/faces of a character?

Thanks in advance and sorry if I have got this completely wrong. Best Mark

Attachments:
Capture.JPG (27.2 KB)

User Avatar
Member
34 posts
Joined: Sept. 2014
Offline
Hey Mark,

Hopefully this example helps, took me a bit to wrap my head around it too.

Essentially you are overriding a portion of the prim path with an new opinion of the geometry.

In my green subnet, i have grabbed the rubber toy and reorganized him so that all his geometry lives under:
/asset/geo
And his materials under:
/asset/materials

In my purple subnet i have also reorganized the rubber toy to have the geometry in the same prim path, but i have broken all the surfacing, so that we are only saving out a usd with a prim path of:
/geo


So above give me 2 usd files, one my surfacing asset, the second file is geometry.

In my grey box, Im essentially making a shot layer/stage. I have tried to break this down simply, i would usually use a stagemanager to bring in all the assets and setup there asset prim path, in this case node "surfacing_in", i have referenced in my surfacing file, i have also brought it into a asset or namespace primpath of:
/my_awesome_asset

if i do not give it a prim path when i bring it in, it will default back to /asset , which is good if i only have one rubber toy in my scene and bad if i have more than one.

so in order to bring our surfaced asset asset and our animated geometry in we need to layer the geometry in as a higher opinion, we do this by having another reference node "updated_geometry", in this node, im providing the usd path to the animated geometry and im bringing it into the prim path of:
/my_awesome_asset/geo

By doing this im changing just the opinion of what the geometry will be in this layer.
Doing this keeps the material bindings that exist in the surfacing asset.

I have provided the hip so that you can see how these layer together.

Hope this helps.
Kym

Edit: updated the hipfile so the mesh is saved out with animation....
Edited by Kym Watts - May 17, 2021 17:30:03

Attachments:
simple_geometry_update.PNG (64.8 KB)
replace_geometry_example.hiplc (367.0 KB)

User Avatar
Member
644 posts
Joined: Aug. 2013
Offline
Hi Kym

Thanks so much!

I need to explain this concept to my students so I am trying to really make sure I fully understand it. The graduates of the future thank you!

Best

Mark
User Avatar
Member
918 posts
Joined: March 2014
Offline
Thanks Kym, this is really helpful.

Regarding writing the animated geo… What is the correct way to write out the USD? I remember reading that USD only writes out the transforms of the meshes points. Is this done automatically or are there special options on the USD ROP to look out for?

Thank you for any insights.
User Avatar
Member
7747 posts
Joined: Sept. 2011
Offline
Andy_23
Thanks Kym, this is really helpful.

Regarding writing the animated geo… What is the correct way to write out the USD? I remember reading that USD only writes out the transforms of the meshes points. Is this done automatically or are there special options on the USD ROP to look out for?

Thank you for any insights.

The sop import node and usdconfigure sop control how sops is translated to usd, including whether or not animation is created. The ROP only controls the frame range to execute and how the layers are saved.

The sop import emits static/animated or no topology information, controls which attributes record default values vs time samples, including which attributes are imported at all. These options allow for importing animation from sops to save as a minimal layer limited to a points array timesamples and/or transform timesamples.
Edited by jsmack - Oct. 2, 2021 20:32:57
User Avatar
Member
918 posts
Joined: March 2014
Offline
jsmack
These options allow for importing animation from sops to save as a minimal layer limited to a points array timesamples and/or transform timesamples.

Hey jsmack,

I really appreciate you taking time answering to my many Solaris questions — Thank You.

If I understand correctly, I'd write out the PointCache with minimal data such as @P and igrnore everything else. If the PointCache USD only contains @P data, how are Normals updated/recomputed during layering?
User Avatar
Member
644 posts
Joined: Aug. 2013
Offline
Hi Andy

Here is a quick example for you. These are actually exports from Multiverse in Maya. but the idea is the same. I am trying to figure out how to just export the point anim data with a usd_rop next. If I do ill post it up here.

Best

Mark
Edited by Mark Wallman - Oct. 3, 2021 05:54:40

Attachments:
anim_and_static.zip (36.9 KB)
Capture.JPG (21.7 KB)

User Avatar
Member
8535 posts
Joined: July 2007
Offline
Andy_23
If I understand correctly, I'd write out the PointCache with minimal data such as @P and igrnore everything else. If the PointCache USD only contains @P data, how are Normals updated/recomputed during layering?
should be as straightforward as in SOPs

so if the original layer has normals property, it will be unchanged
if it doesn't then normals argonna be computed implicitly

so if your original layer has normals and you want to recompute them either include recomputed normals in your animation layer along with points property
or author an override that blocks normals property and therefore when sublayered over original it will remove normals values
Edited by tamte - Oct. 3, 2021 14:04:24
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
918 posts
Joined: March 2014
Offline
Thank you both Mark and tamte.

@tamte It's good to know that USD doesn't provide anything beyond the basics here. Having to take care of the normals is excactly what I prefer to do.
  • Quick Links