The Houdini Megathread

GordigGordig Posts: 10,107

Since we don't have our own subforum yet, I thought I'd start a thread to see who else is using Houdini, what they're working on, etc. I started using Houdini in earnest earlier this year because I was working on an animation project in C4D and wanted to add a crowd simulation to it, and because I'm a lunatic, that was my first serious project in Houdini. Since then I've been experimenting a lot with vellum, pyro and have even done some modeling. Most recently, I started using FEM for softbody simulations. Here are the results of that: 

It's taken an inordinate amount of time to get a particular outfit to properly simulate, and then I have to sim hair on top of it, but I'm nearly finished with this little project. What's everyone else working on?

Comments

  • I was just looking at this program a couple hours ago.  The topology transfer looks very interesting.  The pricing levels and "rental" model is discouraging (and a bit confusing), though.  Even if it is a leader in the market, it's a bit too expensive for one function I'm interested in.

  • GordigGordig Posts: 10,107

    Houdini has a lot going for it. There are some things that Houdini does so well that there's no reason to even look at other programs. Even outside of those things, Houdini is still incredibly powerful, and it's only $269/year for the Indie license. The modular workflow definitely takes some getting used to, but it's not impenetrable.

  • Write IdeaWrite Idea Posts: 319
    edited November 2023

    Gordig said:

    Houdini has a lot going for it. There are some things that Houdini does so well that there's no reason to even look at other programs. Even outside of those things, Houdini is still incredibly powerful, and it's only $269/year for the Indie license. The modular workflow definitely takes some getting used to, but it's not impenetrable.

    I looked over the levels, and it doesn't seem terribly unreasonable for the indie license--like you said.  I really only use Gen8 cos I've invested so much money into it.  Is the toplogy transfer any good?  I've seen videos where it says it'll do everything and the kitchen sink, but that's retail for you.

    Post edited by Write Idea on
  • GordigGordig Posts: 10,107

    I haven't used topology transfer, I just use G8 figures in Houdini. What do you want the topology transfer to do?

  • FaceBuilder for Blender looks like a great tool, but I haven't seen any successful ways to transfer that to the Gen8 figure.  That's why I started looking into Houdini and Wrap4D.

  • wolf359wolf359 Posts: 3,830

    I use the free Apprentice version
    to make smoke & pyro for export to VDB for Blender
    beyond that I dont have time/desire to tackle Houdini’s complexity
    because all of my other Character animation tasks are easily handled with Blender.

  • I had started a Houdini/Daz Studio thread several years ago with information on how to transfer geometry between the two.  I haven't gone back to see how much has changed in the latest versions of Daz Studio and Houdini.  It might be useful to some https://www.daz3d.com/forums/discussion/196556/daz-studio-and-houdini-go-procedural/p1

  • GordigGordig Posts: 10,107

    RobotHeadArt said:

    I had started a Houdini/Daz Studio thread several years ago with information on how to transfer geometry between the two.  I haven't gone back to see how much has changed in the latest versions of Daz Studio and Houdini.  It might be useful to some https://www.daz3d.com/forums/discussion/196556/daz-studio-and-houdini-go-procedural/p1

    Looks like there's some really good information in there, if you're interested in rendering in DS. For now I'm rendering everything in Houdini using Karma, although once I've subscribed to Houdini Indie I'll either use Arnold to render, or export Alembic to C4D and render in Arnold there.

  • GordigGordig Posts: 10,107

    Does anybody have any idea how I would halve the rotations of various bones on an animation?

  • Gordig said:

    Does anybody have any idea how I would halve the rotations of various bones on an animation?

    Hi Gorgig, up to something interesting again, I take it.

    Just halving Euler angles doesn't work. I mean spectacularly doesn't work :) I don't know how it is done in Houdini, but the math behind it is governed by Quaternion Spherical Linear Interpolation, so you might want to goole SLERP. Houdini has got to have some sort of facilities for it.

     

  • GordigGordig Posts: 10,107

    Short term, I just solved my problem by choosing different bones to retarget. I will look into SLERP, though.

  • GordigGordig Posts: 10,107

    I spent way too long trying to figure out how to simulate vellum hair within a DOP network so I could add additional wind force, turbulence and whatnot. Nothing worked, and the hairs would just infinitely stretch. Finally, watching a tutorial, I discovered something that should have been obvious.

    Helpful hint: you can just dive into the Vellum Solver SOP to add forces.

  • GordigGordig Posts: 10,107

    Does anyone know how to project textures across UVs? I'm trying to transfer a haircap texture from a haircap to the figure itself, because Karma isn't the best at resolving opacity on overlapping objects. There's a Labs UV Transfer SOP, but I don't want to overwrite any of the figure's UVs.

  • GordigGordig Posts: 10,107
    edited January 26

    I feel like there has to be an easier way of doing this that just hasn't occurred to me. I tried the UV Transfer SOP to transfer the figure UV to the haircap (rather than vice versa, which is what I was originally trying to do), then exported the haircap with the new UV, imported that into DS as a UV set for the haircap, map transferred the opacity map to the G8 UV and then imported those maps into Houdini. It turned out to be an imperfect solution.

    CapSplit.PNG
    533 x 527 - 539K
    Post edited by Gordig on
  • GordigGordig Posts: 10,107
    edited January 26

    I'd gotten into the habit of turning bleed factor all the way down when map transferring, so I set that back to default just this once. It's still not perfect, but it's good enough for my purposes.

     

    CapUnSplit.PNG
    500 x 524 - 545K
    Post edited by Gordig on
  • GordigGordig Posts: 10,107

    TheMysteryIsThePoint said:

    Gordig said:

    Does anybody have any idea how I would halve the rotations of various bones on an animation?

    Hi Gorgig, up to something interesting again, I take it.

    Just halving Euler angles doesn't work. I mean spectacularly doesn't work :) I don't know how it is done in Houdini, but the math behind it is governed by Quaternion Spherical Linear Interpolation, so you might want to goole SLERP. Houdini has got to have some sort of facilities for it.

    I don't know why I didn't think to clarify this at the time, but would it make a difference if the rotations were only along a single axis, with the other axes remaining at 0?

  • Gordig said:

    TheMysteryIsThePoint said:

    Gordig said:

    Does anybody have any idea how I would halve the rotations of various bones on an animation?

    Hi Gorgig, up to something interesting again, I take it.

    Just halving Euler angles doesn't work. I mean spectacularly doesn't work :) I don't know how it is done in Houdini, but the math behind it is governed by Quaternion Spherical Linear Interpolation, so you might want to goole SLERP. Houdini has got to have some sort of facilities for it.

    I don't know why I didn't think to clarify this at the time, but would it make a difference if the rotations were only along a single axis, with the other axes remaining at 0?

    Hi @Gordig

    I've never realy thought about it, but yes, that should greatly simplify things. A quaternion is defined by 4 floats: ( x, y, z, w ). The first three define a vector around which the object will be rotated, and w is the cosine of half the angle around that vector that the object will be rotated. So you'll take w, calculate the arc cosine to get back to an angle in radians. Divide that by two, and take the cosine again. That's your new w, call it w2. Basically:

    q' = ( qx, qy, qz, cos( acos( qw ) / 2) )

    I've already seen your VEX-Fu, so I'm sure you can take it from there. Try it and let me know if I'm off.

     

     

  • GordigGordig Posts: 10,107

    Who knows CHOPs? I've done very little in them so far, but I'm trying to drive JCMs on an imported character. I've got the Character Blend Shapes SOP driven by the Character Blend Shapes Channels, everything is working just fine there, but I don't know the next steps. I'm assuming I need to extract joint rotations so that I can connect them to channels for each JCM, but I haven't found the right CHOP for extracting the joint rotations. 

  • GordigGordig Posts: 10,107

    I think I've figured out the basic concept: use a Channel CHOP to create a channel for each joint that will fire a JCM, then do whatever range mapping needs to be done to turn those rotation values into percentages on the blend shape SOP. The problem I'm running into now is that I can't figure out which SOP to reference in order to get those joint rotations.

  • GordigGordig Posts: 10,107

    I've made SOME progress with CHOPs, but only to the point that I can automate a character blinking. Now I'm learning how to set up an HDA so I can easily drop one of my characters into a new scene and control parameters from the main page, which is involving some funky VEX just to control the rate of blinking:

    ch("../../blinkratevar") + efit(round(10 * rand(ch("../../blinkratevar"))), 0, 10, -1 * ch("../../blinkratevar"), ch("../../blinkratevar"))

    And even that isn't finished yet.

  • GordigGordig Posts: 10,107

    After more time, effort and outside help than I'd care to admit, I finally cracked the code (no pun intended) on varying up the blink rate. It required me to learn the difference between "channels" and CHANNELS, how to reference one vs. the other, how to get data into and out of CHOPs, how to use a Solver SOP....the final setup was actually rather simple: inside a Solver SOP, an Attribute Wrangle generates the frame at which a blink should begin. That gets referenced in the CHOP network by a Geometry CHOP, which is NOT fed in to a Pulse CHOP, but rather the value is referenced as the start and end times of the pulse. Previously, I was using a Wave CHOP fed into a Shift so that the eyes were open at the beginning of the timeline. That worked, but didn't allow for variation.

    I've also been experimenting with using Tetrahedral Soft Body simulation via Vellum, rather than FEM. If anyone has any advice for that, I'd appreciate it, as it took a VERY long time spent changing one parameter after another to get settings that even sort of worked, so if there are any best practices or other tips, please do share.

  • GordigGordig Posts: 10,107

    I've made quite a bit of headway with Tetrahedral Softbody sims, but I can't quite figure out how to make the softbody and cloth simulations mutual affectors. If a character is wearing a bra, the bra should move with the breasts but also restrict their movement. So far, every attempt to make them influence each other mutually results in the clothes reacting violently to the skin.

    Anyway, here's my most recent attempt at all of that. I just had to simulate the body and clothing separately, and I'm not sure exactly which setting I have wrong, but it looks like the shirt is too influenced by the body and not moving as naturally as I'd like. Also, because I live to make things more difficult for myself, her nipples are pierced, and it took some finagling to get the piercings to both stay in place throughout the softbody simulation and collide properly with the shirt. I'm sure there's an easy way to "hairspray" hair so that it retains its original shape better than what I've got here.

  • GordigGordig Posts: 10,107
    edited June 26

    I got a significant windfall, so I finally paid for a license for Houdini Indie. I was under the vague understanding that files created with Apprentice couldn't be opened in Indie (or any other paid tier), but what I'm now realizing is that even copying a single node from an Apprentice file to an Indie file pops up a warning that you're about to enter non-commercial mode. That is infuriating, because I've built several complex character HDAs, fully-textured environments and so on that I don't have an easy way to replicate without meticulously recreating every single node and copying the parameters from one Houdini instance to another. If nothing else, I guess I should just finally buckle down and really learn how USD works.

    edit: oh thank God.

    Post edited by Gordig on
  • GordigGordig Posts: 10,107

    Looks like there's a ton of incredible stuff coming in 20.5, especially for characters.

  • GordigGordig Posts: 10,107

    I only recently started playing around with SOP-level crowd sims, and while they're not (yet?) as powerful as DOP crowd sims, it's much, much more straightforward. I haven't gone super in-depth with the car controller SOP, but it is also very easy to use.

  • GordigGordig Posts: 10,107
    edited December 15

    Has anyone figured out how to make APEX play nice with a G8 skeleton? I was finally getting the hang of it when I thought I'd give Electra a try, and a lot of the things that I was struggling with getting my G8 characters to work just weren't issues with Electra, and the same turned out to be true for a G9. The MultiIK component just WORKS with other figures the way it doesn't with G8.

    edit: I'm so angry. Literally just re-parent the elbows, hands and knees to the bend joints, but WITHOUT deleting the twist bones.

    Post edited by Gordig on
Sign In or Register to comment.