This is great stuff! You are the first youtuber I see that uses Solaris in a proper USD way for animation! I love that you are not using the component builder and that you are showing the USD files as ascii. 👏
Great lesson. This is a lot better than the previous version of this tutorial. A couple things: 1. You click something @ 4:57, it's very easy to miss. It sets the Primitive Definition > Other Primitives parm to "Overlay". Loading the animated reference didn't work for me unless this was set. 2. The audio in this particular video isn't very good. The audio in your other vids are good. It seems this one is the only one affected. Thanks again Josh, this was a huge help. Update: Maybe the issues I was having wasn't related to the "Overlay". I ran into more errors when I loaded the animation into the second reference lop. The error was throwing something like "Can't read layers @:". Problem: Writing out a .usda that is larger than 4GB throws errors. ASCII - slower, larger, human readable, best for simple assets. Solution: Write out a .usdc. Binary(Crate) - faster, smaller, NOT human readable, good for large geo. The asset I'm working with is a tree I made in speedtree which I then export to houdini, run it through my tree rig, and write to disk. So it's a animated windy tree + 300,000 leaves. usda file - 174 frames of animation came out to 24 GB. Errored upon importing, I'm assuming this has something to do with very large ASCII files. usdc file - 174 frames of animation came out to 6 GB. Works great! After I sorted that out, I can now populate a scene with 800+ plus trees(billions of poly's) and render them in Redshift/Solaris and I'm sure I can optimize even further with component builder, proxies, and LOD's. I have no idea how to do that yet and it would be great to see a video or two relating to proxies and LOD's.
I had to also set the time of the layer that I was saving as animation, to have the stitch clips work correctly, works when the in/out time of the layer is set to $F so the in and out in each usd frame point to the current frame only.
thanks very useful! how would this approach differ if you needed multiple variants of flower sims? how about if the flowers were vdb file sequences, does the stitch method still apply? I'm struggling with instancing and retiming vdb explosions on points. Not sure if my data is correct or the viewport is buggy. I've tried a workflow of sopimporting packed disk sequences instead of stitchclips as thought it would be easier to manage, but not sure if this workflow is supported.
Hey, great video! thanks. Why do u use the cache node? I still dont quite get what to use it for. I understand it saves every animated thing to the ram and eliminates time dependency, but i dont get why that would be useful.
great video. second half, flower offset is a bit hard to follow. I'm using a sopimport and a collection as the input to the instancer. When I get to dropping down nodes inside the retimeinstance, the data is blank, but yet I'm seeing the instances at the stage level.
I'm not sure I haven't looked into that, maybe you could do something with the times[] array where if you wanted to make the clip half as slow you say at frame 1 read frame 1 and at frame 2 read frame 1 like times = [1,1], [2,1],[3,2]. But this would also half your frame rate and since USD is baked there is no way to get and extra frames unless you planned ahead and saved out at a higher fps so you could do this. I'm sure there's a better way, maybe something could be found with how crowds animations are varied but I don't know now.
@@latimerias I`ll have a look at that time shift lop. the timescale atribute just gave me frozen frame or a slight offset nothing i could use. THX 4 the reply !
I currently havent had too much time to mess around with it so i dont fully understand the solaris integration. That being said you should be able to do whats called a " jump discontinuity" which can be done with the Value Clip LOP with "Loop First and Last Frames Match" turned on (note this isnt a feature in older version of 19.5). I will see if i can figure it out, sorry cant help more.
@@latimerias Hi josh, no worries, thank you for your reply. I will play around with it myself, thanks for the tips. Let's us know if you find the way to ^^
@@latimerias Hi Josh, no worries, I'm using the value clip but I have this error on the clip set, I do not know where this date is coming from, do I need to create the clip set in the actual animated primitive? Is a bit confusing. The USD glosary show an example of the clips sets on a prim, I'm assuming that it's the animated asset? Where you define the clip, in the manifest?
It'd probably help if I didn't try to record it in one take. My voice gets pretty worn out if I have to redo them. This one I was trying to pack so much info into a short timespan I kept forgetting things.
great content but explaining honestly could be better i hope you would get into these topics in more detail and structured way I'm sure many will benefit
This is great stuff! You are the first youtuber I see that uses Solaris in a proper USD way for animation! I love that you are not using the component builder and that you are showing the USD files as ascii. 👏
Great lesson. This is a lot better than the previous version of this tutorial. A couple things:
1. You click something @ 4:57, it's very easy to miss. It sets the Primitive Definition > Other Primitives parm to "Overlay". Loading the animated reference didn't work for me unless this was set.
2. The audio in this particular video isn't very good. The audio in your other vids are good. It seems this one is the only one affected.
Thanks again Josh, this was a huge help.
Update: Maybe the issues I was having wasn't related to the "Overlay". I ran into more errors when I loaded the animation into the second reference lop.
The error was throwing something like "Can't read layers @:".
Problem: Writing out a .usda that is larger than 4GB throws errors. ASCII - slower, larger, human readable, best for simple assets.
Solution: Write out a .usdc. Binary(Crate) - faster, smaller, NOT human readable, good for large geo.
The asset I'm working with is a tree I made in speedtree which I then export to houdini, run it through my tree rig, and write to disk. So it's a animated windy tree + 300,000 leaves.
usda file - 174 frames of animation came out to 24 GB. Errored upon importing, I'm assuming this has something to do with very large ASCII files.
usdc file - 174 frames of animation came out to 6 GB. Works great!
After I sorted that out, I can now populate a scene with 800+ plus trees(billions of poly's) and render them in Redshift/Solaris and I'm sure I can optimize even further with component builder, proxies, and LOD's. I have no idea how to do that yet and it would be great to see a video or two relating to proxies and LOD's.
I had to also set the time of the layer that I was saving as animation, to have the stitch clips work correctly, works when the in/out time of the layer is set to $F so the in and out in each usd frame point to the current frame only.
thanks very useful!
how would this approach differ if you needed multiple variants of flower sims?
how about if the flowers were vdb file sequences, does the stitch method still apply?
I'm struggling with instancing and retiming vdb explosions on points. Not sure if my data is correct or the viewport is buggy. I've tried a workflow of sopimporting packed disk sequences instead of stitchclips as thought it would be easier to manage, but not sure if this workflow is supported.
Hey, great video! thanks. Why do u use the cache node? I still dont quite get what to use it for. I understand it saves every animated thing to the ram and eliminates time dependency, but i dont get why that would be useful.
great video. second half, flower offset is a bit hard to follow. I'm using a sopimport and a collection as the input to the instancer. When I get to dropping down nodes inside the retimeinstance, the data is blank, but yet I'm seeing the instances at the stage level.
Great insights, been looking for that, thanks! Have you done transform pieces in LOPs?
that's working with the transform from sop points now :)
Thank you Mister Robot
Anny way to change playspeed ?
I'm not sure I haven't looked into that, maybe you could do something with the times[] array where if you wanted to make the clip half as slow you say at frame 1 read frame 1 and at frame 2 read frame 1 like times = [1,1], [2,1],[3,2]. But this would also half your frame rate and since USD is baked there is no way to get and extra frames unless you planned ahead and saved out at a higher fps so you could do this. I'm sure there's a better way, maybe something could be found with how crowds animations are varied but I don't know now.
I'm just looking actually and it says there's a "timescale" attribute on the regime instances as well as a time shift lop
@@latimerias I`ll have a look at that time shift lop.
the timescale atribute just gave me frozen frame or a slight offset nothing i could use.
THX 4 the reply !
@@nicolaastanghe475 I think time short is not meant for instances it says in the documentation, let me know if you figure something out!
@@latimerias will do!
great method, thank you for sharing.
Thanks for the update Josh. Learned tons, I have a question, how I can loop the animation?
I currently havent had too much time to mess around with it so i dont fully understand the solaris integration. That being said you should be able to do whats called a " jump discontinuity" which can be done with the Value Clip LOP with "Loop First and Last Frames Match" turned on (note this isnt a feature in older version of 19.5). I will see if i can figure it out, sorry cant help more.
@@latimerias Hi josh, no worries, thank you for your reply. I will play around with it myself, thanks for the tips. Let's us know if you find the way to ^^
@@latimerias Hi Josh, no worries, I'm using the value clip but I have this error on the clip set, I do not know where this date is coming from, do I need to create the clip set in the actual animated primitive? Is a bit confusing. The USD glosary show an example of the clips sets on a prim, I'm assuming that it's the animated asset? Where you define the clip, in the manifest?
this is great, loving your videos. would happily donate to help get you a better microphone though!!! 😅
It'd probably help if I didn't try to record it in one take. My voice gets pretty worn out if I have to redo them. This one I was trying to pack so much info into a short timespan I kept forgetting things.
great content but explaining honestly could be better i hope you would get into these topics in more detail and structured way I'm sure many will benefit
ur sound is very bad
does this work with changing topology on the mesh?