Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Everything posted by jamesr

  1. Here is how I would approach this: 1. Draw out 10 curves. This will give you 10 primitives. Make a merge node and connect them all in there. After that, connect a null and call it something like "REF_ALL_CURVES" 2. Make a primwrangle. Create an attrib called something like "prim_id" and make it equal to primnum (i@prim_id = i@primnum). 3. Make a Null and call it something like "CONTROL". Add an int parameter to it called "cluster" or "wedge" 4. Put a blast node and in the "group" parameter, set it to @prim_id==`ch("../CONTROL/wedge")` and set the entity to "primitives" and "delete non selected". This will isolate one curve at a time 5. Drop another null as a reference point and call it like "REF_CURVE" so you can easily point to it later 6. Do your particle sim as normal. For the curve input, point it to that REF_CURVE null 7. Do your DOP import however you wanna getting the particles out of DOPS. After that lay down your cache node. 8. Inside a ropnet, or the /out context, put a wedge ROP. Uncheck random samples, and click the + sign to add a wedge parameter. Inside "channel" point it to the parameter on the CONTROL node you made in step 3. Set the range to be 0 to nprims("../path/to/REF_ALL_CURVES")+1 . This will keep it nice and procedural. 9. In the cache node, make sure to change the file name! Pick whatever directory you like, but make sure to add $WEDGENUM to it so it will write different sims! Here's an example of a path: $JOB/geo/magicdust/v001/magicdust_particles_v001_$WEDGENUM.$F4.bgeo.sc 10. On the wedge rop, hit "render wedges". Check the directory to make sure it's all working... 11. To bring them back in, just make a for each (number) loop in sops. Connect a file sop to it. There should be a 3rd node, the meta import node, which I usually rename to "m" for shortness. 12. In the file sop, construct the same filepath, but instead of $WEDGENUM, do the following: $JOB/geo/magicdust/v001/magicdust_particles_v001_`detail("../m", "iteration", 0)`.$F4.bgeo.sc This will load all your sims back in! Good luck! I hope I explained it okay.
  2. Animate parameter per cluster

    I think if your shot is laid out, and you know where the explosions are going to go, pre caching a few and either scattering or hand placing them ia the most flexible route. If you or your sup don't like a certain sim, it's easy to just swap in a new one or add more in certain places and rotate/scale them
  3. Animate parameter per cluster

    Hmm I see what you're saying. But would it be difficult to just sim 3 levels of detail? Like a lo/med/hi and assign that as an attribute to your instance points so it picks up the right foreground/midground/background sequences?
  4. Animate parameter per cluster

    I think a good approach for you would be to develop a sort of "master" sim that has the look of the explosion you want. Or, if they are to be drastically different, maybe 3-4 main sims. You could then run them as wedges, changing different "seed" parameters (like seed and offset in various noises, etc) to get different slightly different looks. If you name them like explosion_$WEDGENUM.$F4.bgeo.sc you'll get a set of explosion sequences. Then you can scatter some points, and give them some random rotations about their Y axis (just turning one explosion 90degrees can sometime give you as totally different looking explosion depending on the camera!) You can load the vdbs as a packed prim and use an "activation" or "index" attribute to say what frame you want to the explosion to start on, and set the unexpandedfilename intrinsic to load different frames on the points (see toadstorm's post for a better explanation at the bottom) Loading the caches in as delayed load VDBs will be quite efficient at rendertime, too.
  5. waterman

    First you could start by checking out Mixamo for dancing models. That part should be pretty easy to find online. The rest is pretty straight forward. If you're not sure of what to do, you should definitely start with the shelf tools. probably the "Emit Particle Fluid" one. The important part is going to be computing the velocity first though. Before you activate the shelf tool, lay down a "Trail" SOP and set it to "Compute Velocity". This will make sure that the interesting point velocities that you're getting from the dancing motion make it into the fluid. You can scale that effect by changing "scale source velocity" in the sourcevolume node in DOPS. The rest should be fiddling with some turbulence forces, gravity, drag etc to your liking. You can also use POPs in the Particle input of the solver and Gas nodes in the Gas input, since FLIP uses both.
  6. color gradient in extrusions

  7. Flip Splash - Grid Scale Optimisation

    Have you tried changing the grid scale to 4 to see if it has a big impact on the look of your sim?
  8. color gradient in extrusions

    Hi, Here's a solution. It's not super elegant but may work for what you're doing. extrude_for_elen_vou.hiplc
  9. Cave Ceiling Water Drop

    Check out 35mins in to see how they use surface tension to get droplets sort of like the one you're after
  10. Reflection pass Pyro

    "Indirect Emission" is the AOV you're looking for
  11. best way to add fields to volume

  12. best way to add fields to volume

    Here's a couple ways: volume_for_ejr32123.hiplc
  13. Hey guys, I was wondering if anybody is familiar with using the hou.node.setDeleteScript() method. In the docs, the language arg is set to Python: setDeleteScript(script_text, language=hou.scriptLanguage.Python) But when running the following code, I get an error n = hou.node('/obj/geo1') cmd = 'x = 5; print x' n.setDeleteScript(cmd) OperationFailed: The attempted operation failed. Python is not yet supported in deletion scripts. Just passing an empty string gives the same error. When trying to set the language flag to Hscript with n.setDeleteScript('setenv x = "hello"', language=hou.scriptLanguage.Hscript) It raises another error TypeError: setDeleteScript() got an unexpected keyword argument 'language' Is there something I'm missing? I would normally create an HDA and use the built in 'On Deleted' call and run my code there, but for this particular case I'm unable to use an HDA. I was able to find this function all the way back in the Houdini 12 docs. Is it still not usable? Thanks!
  14. setDeleteScript method does not work?

    addEventCallback from the link you gave is actually way more useful than what I was looking for in my original question. Thanks!!!
  15. setDeleteScript method does not work?

    Oh cool, thanks for that link! I was only using trying to change to hscript as an example but thanks for figuring that out. The callback would be used to alter parmTemplateGroups on another node.
  16. Fluid Explosion with Viscosity

    1. The ground plane doesn't react with the fluid because your inputs are switched. In DOPs, order matters! Generally, you need to go colliders --> dopobject (and solver stuff) left --> right. In other words, just select the merge and hit "shift + r" 2. The reason is coming from your "force". If you look at the Normals (v@N) that you've assigned, they're only pointing in one direction! 3. If you want it to stop emitting, you can either just feed it the source points, and it will only exist on the first frame and you can blow it out, or you can keyframe the source activation and it will emit however long you want it to. Here's your file with some changes to address your list that you can poke around in Fluid_Explosion_002_fix.hip
  17. Pyro Initial Velocity Follow Emitter Normal

    No problem!
  18. Beginner VEX variable questions

    $NPT is the same as @numpt. @npt doesn't work in vex, you'd want to use @numpt or I prefer to use npoints(0) or npoints(1)... and so on, where the number inside () indicates which input you want to pull the info from. Also, you can use npoints() in SOPs as well to stay away from the $NPT syntax which I guess is sort of going away.
  19. Pyro Initial Velocity Follow Emitter Normal

    Your normal vector should follow the animation of the emitter. If that's the direction you want the smoke to go, then you should bind N to the 'v' attribute. In a point wrangle you can just do v@v = v@N; This will get picked up in the fluid source node. It doesn't look like the emitter is animated in the bottom gif though. I threw together a really quick example for you, let me know if it helps. emission_vel.hip
  20. Here's an example for you groupsandstuff.hip
  21. No, you shouldn't have to do any deleting like that in DOPs.
  22. Are you just keeping the dopnet as the output with the display flag on it? If so, go to the object merge tab and change from "*" to something like "pop*" or just the whole dopobject name "popobect1". This way, you're only importing the particles from dops and not the rest of the geo. Or use dopio
  23. I didn't use houdini that long ago, but if you want to set a group in SOPs it's just the "Group SOP". To create an attribute in SOPs you use "attribcreate". If you're in VOPs, you can set groups and add attributes with the "Bind" VOP. For adding an atttribute, just type the attribute name. For adding to groups, type "group_mygroup" but replace mygroup with whatever you want the group to be called.
  24. How could I deal with height of flame ??

    Try scaling your source volume (fuel) to get the flame to crawl higher
  25. Condision in SOP ?

    Hmm okay maybe I understand so here's an example of what I think you might mean unshared_vrman.hip