Houdini Tutorial: SOPs in DOPs (Part 1)

Поделиться
HTML-код
  • Опубликовано: 23 окт 2024

Комментарии • 48

  • @18bovende
    @18bovende 4 года назад

    Thank you, a great pleasure to search for something of which you feel others just gloss over and literally find someone talking about that for 2 hours.

    • @DiffuseFX
      @DiffuseFX  4 года назад

      Glad to help - I had the same problem when I was figuring things out, so it seemed this would be a useful topic!

  • @ThomasKlyhnChristensen
    @ThomasKlyhnChristensen 4 года назад +9

    I finally just found this!! my goodness its hard to find something structured on this topic. it's like black magic :D thanks

    • @DiffuseFX
      @DiffuseFX  4 года назад +2

      I felt the same way when I was just starting to figure it out - so I'm glad to hear this was helpful!

    • @ThomasKlyhnChristensen
      @ThomasKlyhnChristensen 4 года назад +1

      @@DiffuseFX I just tried to follow this today, in houdini 18 build 460... for some odd reason at the very end, when I move the gravity and ground, they don't move due to the constraints, and it also seems like every second cube has the old name, giving half of them the same name and the rest new names. if I add a gravity it works because they fall and down spawn inside each other. I don't like it when there is a ton of typing, no errors and different results haha. Hm the scene file supplied is much more complicated than this example too. Not in technical terms but there has been much more added and the structure of things are different too, so hard to compare.
      UPDATE: So I think I figured out what I did wrong, first thing, I forgot to make it so posB actually picked a random point, and not just the same point over and over, 2nd part was that the @P.y offset wasn't enough, because it just spawned them all on top of each other and then nothing, but if I gave it a P.y = rand(xxx) so it wasn't the same for every point, then things started moving around nicely. anyway, it seems to "work" now :D

    • @DiffuseFX
      @DiffuseFX  4 года назад

      @@ThomasKlyhnChristensen The file for this one includes both this tutorial and the follow up part 2. I also try to clean things up and add notes and comments on the hips I post. But the actual code and node flow shouldn't be any different... At any rate - glad you found (and fixed!) the problem :)

  • @AndreyShu
    @AndreyShu 2 года назад

    you just so great, because very few tutors trying to show what buttons and dropdowns they use. Great attention to details

  • @oliverheid4254
    @oliverheid4254 3 года назад +1

    I just can say it again and again: Such great tutorials. Just awesome. Thank you.

  • @tondann
    @tondann Год назад

    Thank you for this well structured tutorial. Needed a quick refresher on that topic

  • @francescomarsano1743
    @francescomarsano1743 4 года назад +1

    Thanks you for your work Sir, one of the most useful channels about Houdini so far!
    I just wanted to point out a little thing for those who might be experiencing the same issue:
    when following along your explanation I found that I could Object merge the constraint geo data from either Geometry or ConstraintGeometry, so i first wanted to ask if you could explain what the difference between the two might be in this case, I couldn't figure it out so far.
    Plus, (i'm on 18.0.287), none of them would work in my case, so after a little trial and error, I found that merging in from the SOP Solver itself (fetch oldvalue) makes sense and actually gives a similar behaviour to the one you showed, colliding correctly with the ground.
    I'd be glad to hear your opinion about this "issue" if you find it interesting!
    Great work!!!

    • @DiffuseFX
      @DiffuseFX  4 года назад +2

      I think I'd need to see your setup to understand... Using the SOP solver alone can work for simple setups like this one, but it will definitely get you in trouble in other cases. If you look at the dynamic fracturing tutorial, you'll see it's often worthwhile to make entirely new containers to store the old data and then pull from those (especially since the order of the constraint solve can be difficult to control).
      I did load the original hip in 18.0.348, and everything works the same way as always, so I don't know what might be going wrong with your merge... Maybe download the hip and take a look? I can't replicate what you're saying about getting the constraint data from Geometry... You could certainly add primitives to that container, but they wouldn't actually behave as constraints. Feel free to get in touch through my website contact form, and I can probably take a look at your hip to see what's going on!

  • @ceracbrown7027
    @ceracbrown7027 4 года назад +3

    Great tutorial Grayden - that was a very clear explanation and i'm very much looking forward to learning more from you. I've watched plenty of tuts from different people, but this is right up there, so thank you. Very Kipping-esque ;) Keep up the good work!

    • @DiffuseFX
      @DiffuseFX  4 года назад +1

      Thanks so much - I really appreciate the feedback!

  • @richnosworthy2497
    @richnosworthy2497 4 года назад +1

    Thankyou, really well explained. Been looking for something like this for ages, for some reason sop solvers in dops always really confused me. This is great!

    • @DiffuseFX
      @DiffuseFX  4 года назад

      Glad to help! It was a stumbling block for me too.

  • @jimmychao6526
    @jimmychao6526 2 года назад

    I had so much fun doing this setup man~ keep up the good work!! Looking forward to see even more tricks and tips about sop solver in dops(with pyro or fluid simulation).

  • @aboldmule
    @aboldmule 3 года назад

    Very well explained and very nicely paced. Thank you!

  • @yanwfx
    @yanwfx 5 лет назад

    Excellent tutorial, thank you. And a really nice input on one of the least documented aspect of dynamics. Really looking forward to part 2 ! Also, being able to see the drop-down menus would be convenient, just as a feedback.

    • @DiffuseFX
      @DiffuseFX  5 лет назад +1

      Thanks! I'm hoping to get part II up in the next couple of days, and I'll be using a capture card this time so we'll get those menus!

  • @Kemer95
    @Kemer95 4 года назад +2

    I watched this, but I was wondering how to do simmilar thing in vellum, and I figured it out!
    Thanks ^^

    • @DiffuseFX
      @DiffuseFX  4 года назад +1

      Glad to hear it! Vellum can be a bit tricky for adding geometry on the fly, so I'm glad you found a solution!

    • @sams_3d_stuff
      @sams_3d_stuff 3 года назад +1

      same :D

  • @lokeshbabu8510
    @lokeshbabu8510 3 года назад

    Wow, this is a masterclass..! Thank you so much, the right video at the right time.

  • @georgedahuha4876
    @georgedahuha4876 2 месяца назад

    Thanks for the Tuto ! this topic is still shady after so many years!

  • @biocinematics
    @biocinematics 5 лет назад +1

    Great tutorial, I learned a lot!

  • @es_ina
    @es_ina 3 года назад

    this is gold. i would devour your entire channel. lol thanks for sharing.

  • @OscarGaya
    @OscarGaya 4 года назад

    Thanks for the tutorial is full of interesting information.

    • @DiffuseFX
      @DiffuseFX  4 года назад

      Thanks so much! Happy to hear it was helpful for you!

  • @marijnkarsten7323
    @marijnkarsten7323 4 года назад

    Many thanks! A lot of information to chew on, I am still a beginner and I am wondering if this technique is the only way or are there more "artist friendly" solutions to get this result?

    • @DiffuseFX
      @DiffuseFX  4 года назад

      In houdini, there's almost always multiple ways to get the same effect, so probably there's another way. I came to houdini with a pretty solid programming background, so this kind of approach is actually more intuitive to me! But this specific setup is really just meant as a toy example for using sop-solvers, and there are definitely cases where there's no way around using those!

    • @marijnkarsten7323
      @marijnkarsten7323 4 года назад

      @@DiffuseFX I wished I had some more programming background, but hey can't have it all..I am trying to wrap my head around transform matrices and while I sort of understand rotation in vex I have great difficulty with scale in vex.. For example I want to scale a box in y direction by a value or an attribute/channel slider, could you point out where to start?
      Thanks!

    • @DiffuseFX
      @DiffuseFX  3 года назад

      @@marijnkarsten7323 You've almost certainly figured this out by now (I haven't replied in six months! I'm ashamed), but my general transform workflow in vex is: make an ident matrix, apply scale, rotate, transform ops to the matrix, multiply your Ps by the resulting matrix. If you want a pivot different than the origin, make a separate transform for that, and do a pre- and post-multiply of your main transform (the equivalent of moving everything to the origin, transforming there, then moving back).

  • @sams_3d_stuff
    @sams_3d_stuff 3 года назад

    How did I miss this :( !

  • @michelcomeau6200
    @michelcomeau6200 4 года назад

    It seems that in houdini 18.0.460 the source cube disappears. Its there but not visible and we can't view in the viewport. Makes it harder to follow.

    • @DiffuseFX
      @DiffuseFX  4 года назад

      Yeah - visibility settings within DOPs have always been a bit dicey...

  • @StephaneSOUBIRAN
    @StephaneSOUBIRAN 4 года назад +1

    Great tutorial, thx ! Can you share the .hip please ?

    • @DiffuseFX
      @DiffuseFX  4 года назад +1

      Sure thing. I have them up for my other tutorials, but this was the first I recorded so I didn't plan for it. I'll reply again when it's up!

    • @DiffuseFX
      @DiffuseFX  4 года назад +1

      Sorry for the delay - hip file is now available on my site (link in description)

  • @eryichen2869
    @eryichen2869 4 года назад

    谢谢,我终于搞懂了sop solver是干嘛的,你可以多讲解点原理上的教程吗,比如vellum的教程。

    • @DiffuseFX
      @DiffuseFX  4 года назад

      I still find many aspects of vellum a bit inscrutable... I will be doing a vellum grains tutorial in the near future though!

  • @oliverheid4254
    @oliverheid4254 3 года назад

    is there a new idea for a tutorial in your head?

    • @DiffuseFX
      @DiffuseFX  3 года назад +1

      I'm afraid I haven't had much time lately to record anything new, and I can't be sure when I'm likely to next... Sorry!

  • @avtpro
    @avtpro 4 года назад

    Hi Grayden,
    I'm new to Houdini but I came across your tutorial on SOPs and DOPs. Would you be so kind to help me solve the error I'm having please?
    mega.nz/file/wyJlhIpA#QkO2_UeIEEaZHjOshFcLyxKz9to5hkOWNFy391iH3YU
    Everything works fine up until 35:04
    I type VEX but I don’t get a name for the second constraint point.
    You have piece0-1 for 0
    and piece0-1 for 1
    and I get
    for 0 piece-37
    but no name for 1.
    also, for referencing the SOP path, I get errors with colon but no error with forward slash.
    I’m using Houdini 17.5 on a Mac.
    It seems like my second constraint point is going to the ground plane graphic instead of the geometry.
    There’s some kind of mismatch on the merge1 node.
    I haven't been able to figure out why I don't get a piece name and why the constraint goes to the ground plane platform graphic.
    Thank you very kindly.
    Alonzo.

    • @DiffuseFX
      @DiffuseFX  4 года назад +1

      Hey there - sorry for the delay. I've just downloaded your scene but won't be able to take a look right away. I'll respond as soon as I can!

    • @avtpro
      @avtpro 4 года назад

      @@DiffuseFX I really appreciate it. Your time is really valuable to me. Thank you again for the great effect.

    • @DiffuseFX
      @DiffuseFX  4 года назад +1

      Ok - finally had a chance to look through this! There were a couple of problems, but I've got it sorted now. First, make sure you're very careful about the paths in the object merge nodes (inside the sopnet). You need to copy the paths exactly, including case, and make sure to follow the colon convention when referencing things inside DOPs. I found errors in both object merges. Fixing that will take care of most of the issues. All that remains are the offsets on the constraints. The problem there is that you don't want to use the current position of the points being attached - you want their *rest* positions - which is just at the origin for this setup. A more generalizable approach is to set a rest position attribute on your source geometry, and then use that for you constraint points (instead of P). Do those things, and it should all work as intended!

    • @avtpro
      @avtpro 4 года назад

      @@DiffuseFX Thank you very much. I will give it a go. Only thing is, I used forward slash instead of colon because it gave me errors. I thought it was a Mac vs PC Windows thing. I'll try it again.