Houdini | Writing out animated USD assets and time offsetting instances.

Поділитися
Вставка
  • Опубліковано 23 січ 2025

КОМЕНТАРІ • 27

  • @gold_kult6690
    @gold_kult6690 Рік тому +7

    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. 👏

  • @amoss-vfx
    @amoss-vfx Рік тому +5

    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.

  • @HristoVelev
    @HristoVelev Рік тому +2

    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.

  • @luisfoscg
    @luisfoscg Рік тому +1

    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.

  • @agustingarcia6448
    @agustingarcia6448 20 днів тому

    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.

  • @pinkmoon5332
    @pinkmoon5332 6 місяців тому

    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.

  • @HristoVelev
    @HristoVelev Рік тому +1

    Great insights, been looking for that, thanks! Have you done transform pieces in LOPs?

    • @HristoVelev
      @HristoVelev Рік тому

      that's working with the transform from sop points now :)

  • @Daniele_1210
    @Daniele_1210 4 місяці тому

    Thank you Mister Robot

  • @nicolaastanghe475
    @nicolaastanghe475 Рік тому +1

    Anny way to change playspeed ?

    • @latimerias
      @latimerias  Рік тому

      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
      @latimerias  Рік тому

      I'm just looking actually and it says there's a "timescale" attribute on the regime instances as well as a time shift lop

    • @nicolaastanghe475
      @nicolaastanghe475 Рік тому

      @@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 !

    • @latimerias
      @latimerias  Рік тому

      @@nicolaastanghe475 I think time short is not meant for instances it says in the documentation, let me know if you figure something out!

    • @nicolaastanghe475
      @nicolaastanghe475 Рік тому

      @@latimerias will do!

  • @yayitsyasuo
    @yayitsyasuo 9 місяців тому

    great method, thank you for sharing.

  • @cgaltruist2938
    @cgaltruist2938 Рік тому

    Thanks for the update Josh. Learned tons, I have a question, how I can loop the animation?

    • @latimerias
      @latimerias  Рік тому +1

      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.

    • @cgaltruist2938
      @cgaltruist2938 Рік тому

      @@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 ^^

    • @cgaltruist2938
      @cgaltruist2938 Рік тому

      @@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?

  • @chr1st0pher
    @chr1st0pher Рік тому +1

    this is great, loving your videos. would happily donate to help get you a better microphone though!!! 😅

    • @latimerias
      @latimerias  Рік тому

      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.

  • @ahmedaborady7883
    @ahmedaborady7883 Рік тому

    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

  • @ripvangu
    @ripvangu 7 місяців тому +3

    ur sound is very bad

  • @affectreflect
    @affectreflect 4 місяці тому

    does this work with changing topology on the mesh?