Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


Everything posted by Atom

  1. You could just parent a box or cone to the camera. Then use it to create a group for particles that fall within that boundary/area. Apply a @pscale multiplier to the particles that reside within that group to keep them from getting too large. @pscale *=0.5;
  2. Smoke attracted in a sphere

    I ran across this scene on the forum a while back. It has some of the characteristics you may be looking for. Animated Deforming Smoke Emitter Smoke Target Static Shapes ap_target_smoke_run_051718.hiplc
  3. Check out Rohan Dalvi's series on recreating C4D in Houdini. There are other videos in the series as well. So browse his Vimeo.
  4. Random Voronoi Fracturing

    The look is determined by the point locations. You control those locations so play around with it. I often follow my scatter with a low count point replicate. This allows me to keep the original scatter count low and generate a cluster of points around that original point. This results in more smaller fracture pieces being generated around a single point rather than that canned C4D Thrausi look you mention.
  5. Python in Houdini Question

    Try using setInput() instead. (supplying None) http://www.sidefx.com/docs/houdini/hom/hou/Node.html#setInput
  6. Attribute isn't created within Condition ?

    You can't really conditionally create attributes, they either exists on all points (prims etc...) or they don't. You can conditionally set values on a previously created attribute. If the attribute does not exist, it will be created when first referenced and set to a default value (typically zero). In your current setup if your condition is never met then the attribute will never be created because it will have never been referenced.
  7. Affordable SpeedTree Cinema alternatives

    Here is another one. (Windows only) http://www.evolved-software.com/treeit/treeit
  8. Viewport visual of smoke looks too low detail

    Under smokeobject guides I typically set density to 10 to boost the display value. It does not actually multiply density by 10 it just boosts display by 10. The viewport is just an approximation, it is better to focus on what your pyro looks like in your render output.
  9. Stamp really does not show a performance penalty until you are over a few thousand points. So it is still quite valid on lower point count geo. And even if you have a 60,000+ point object you can still leverage stamp() and just write out the result after the stamp operation. Place a FileCache node after your massive stamp operation to recover performance.
  10. MTL To Redshift Material

    I put together a simple script to read the .mtl file, typically associated with a .obj, and create a Redshift material for each entry it finds in the .mtl with a map_Kd token. A Redshift material is created and a texture map is linked to the diffuse color with the filename for the map populated with what is found in the .mtl entry. This is useful when importing architectural .obj files that typically have a large number of materials associated with them. Expected .mtl format of supported tokens. #newmtl _4_2_ <- Material name. #Ns 96.078431 <- Specular intensity #Kd 0.640000 0.640000 0.640000 <- Diffuse color. #Ks 0.500000 0.500000 0.500000 <- Specular color. #Ni 1.000000 <- Index of refraction. #d 1.000000 <- Opacity. #map_Kd 21_budova/_4_2_.jpg <- Map name. The result of one-click texture mapping. Here is the Colosseum auto texture mapped. The path to the .mtl file and texture path is hard coded. Place the code in a shelf tool button and adjust the path to point to your .mtl file. mtl_to_redshift_022418.zip
  11. Atom's Link Page

    There are so many nice example files on this website that I am often searching for. I wanted to use this page as a link page to other posts that I find useful, hopefully you will too. Displaced UV Mapped Tubes Particles Break Fracture Glue Bonds Render Colorized Smoke With OpenGL Rop Moon DEM Data Creates Model Python Script Make A Belly Bounce Helicopter Dust Effect Conform Design To Surface Benjamin Button Intro Sequence UV Style Mapping UV Box and Multiple Projection Styles Ping Pong Frame Expression Instance vs. Copy (Instance Is Faster) Particle Bug Swarm Over Vertical and Horizontal Geometry Rolling Cube Rounded Plexus Style Effect Pyro Smoke UpRes Smoke Trails From Debris Align Object Along Path Fading Trail From Moving Point Swiss Cheese VDB To Polygons Get Rid Of Mushroom Shape In Pyro Sim A Tornado Ball Of Yarn Particles Erode Surface Unroll Paper Burrow Under Brick Road Non Overlapping Copies Build Wall Brick-By-Brick FLIP Fluid Thin Sheets Smoke Colored Like Image Volumetric Spotlight Moving Geometry Using VEX Matt's Galaxy Diego's Vortex Cloud Loopable Flag In Wind Eetu's Lab <--Must See! Wolverine's Claws (Fracture By Impact) Houdini To Clarisse OBJ Exporter Skrinkwrap One Mesh Over Another Differential Growth Over Surface Rolling Clouds Ramen Noodles Basic Fracture Extrude Match Primitive Number To Point Number Grains Activate In Chunks Fracture Wooden Planks Merge Two Geometry Via Modulus Fill Font With Fluid DNA Over Model Surface VDB Morph From One Shape To Another Bend Font Along Curve Ripple Obstacle Across 3D Surface Arnold Style Light Blocker Sphere Dripping Water (cool) Exploded View Via Name Attribute VEX Get Obj Matrix Parts eetu's inflate cloth Ice Grows Over Fire Flying Bird As Particles DEM Image To Modeled Terrain Pyro Temperature Ignition Extrude Like Blender's Bevel Profile Particles Flock To And Around Obstacles BVH Carnegie Mellon Mocap Tweaker (python script) Rolling FLIP Cube Crowd Agents Follow Paths Keep Particles On Deforming Surface Particle Beam Effect Bendy Mograph Text Font Flay Technique Curly Abstract Geometry Melt Based Upon Temperature Large Ship FLIP Wake (geo driven velocity pumps) Create Holes In Geo At Point Locations Cloth Blown Apart By Wind Cloth Based Paper Confetti Denim Stitching For Fonts Model A Raspberry Crumple Piece Of Paper Instanced Forest Floor Scene FLIP pushes FEM Object Animated Crack Colorize Maya nParticles inside an Alembic Path Grows Inside Shape Steam Train Smoke From Chimney Using Buoyancy Field On RBDs In FLIP Fluid Fracture Along A Path COP Based Comet Trail eetu's Raidal FLIP Pump Drip Down Sides A Simple Tornado Point Cloud Dual Colored Smoke Grenades Particles Generate Pyro Fuel Stick RBDs To Transforming Object Convert Noise To Lines Cloth Weighs Down Wire (with snap back) Create Up Vector For Twisting Curve (i.e. loop-d-loop) VDB Gowth Effect Space Colonization Zombie L-System Vine Growth Over Trunk FLIP Fluid Erosion Of GEO Surface Vein Growth And Space Colonization Force Only Affects Particle Inside Masked Area Water Ball External Velocity Field Changes POP particle direction Bullet-Help Small Pieces Come To A Stop Lightning Around Object Effect Lightning Lies Upon Surface Of Object Fracture Reveals Object Inside Nike Triangle Shoe Effect Smoke Upres Example Julien's 2011 Volcano Rolling Pyroclastic FLIP Fluid Shape Morph (with overshoot) Object Moves Through Snow Or Mud Scene As Python Code Ramp Scale Over Time Tiggered By Effector Lattice Deforms Volume Continuous Geometric Trail Gas Enforce Boundary Mantra 2D And 3D Velocity Pass Monte Carlo Scatter Fill A Shape Crowd Seek Goal Then Stop A Bunch Of Worms Potential Field Lines Around Postive and Negative Charges Earthquake Wall Fracture Instance Animated Geometry (multiple techniques) Flip Fluid Attracted To Geometry Shape Wrap Geo Like Wrap3 Polywire or Curve Taper Number Of Points From Second Input (VEX) Bullet Custom Deformable Metal Constraint Torn Paper Edge Deflate Cube Rotate, Orient and Alignment Examples 3D Lines From 2D Image (designy) Make Curves In VEX Avalanche Smoke Effect Instant Meshes (Auto-Retopo) Duplicate Objects With VEX Polywire Lightning VEX Rotate Instances Along Curved Geometry Dual Wind RBD Leaf Blowing Automatic UV Cubic Projection (works on most shapes) RBD Scatter Over Deforming Person Mesh FLIP Through Outer Barrier To Inner Collider (collision weights) [REDSHIFT] Ground Cover Instancing Setup [REDSHIFT] Volumetric Image Based Spotlight [REDSHIFT] VEX/VOP Noise Attribute Planet [REDSHIFT] Blood Cell Blood Vessel Blood Stream [REDSHIFT] Light Volume By Material Emission Only [REDSHIFT] Python Script Images As Planes (works for Mantra Too!) [REDSHIFT] MTL To Redshift Material [REDSHIFT] Access CHOPs In Volume Material [REDSHIFT] Mesh Light Inherits Color Dragon Smashes Complex Fractured House (wood, bricks, plaster) Controlling Animated Instances Road Through Height Field Based Terrain Tire Tread Creator For Wheels Make A Cloth Card/Sheet Follow A NULL Eye Veins Material Matt Explains Orientation Along A Curve Mesh Based Maelstrom Vortex Spiral Emit Multiple FEM Objects Over Time Pushing FEM With Pyro Spiral Motion For Wrangle Emit Dynamic Strands Pop Grains Slope, Peak and Flat Groups For Terrains Install Carnegie Mellon University BVH Mocap Into MocapBiped1 Ramp Based Taper Line Fast Velocity Smoke Emitter Flip Fill Cup Ice Cubes Float [PYTHON]Export Houdini Particles To Blender .bphys Cache Format Collision Deform Without Solver or Simulation Mograph Lines Around Geometry Waffle Cornetto Ice Cream Cone Ice Cream Cone Top Unroll Road Or Carpet Burning Fuse Ignites Fuel or Painted Fuel Ignition Painted Fuel Combustion Small Dent Impact Deformation Particle Impact Erosion or Denting Of A Surface Helicopter Landing Smoke And Particles Radial Fracture Pieces Explode Outwards Along Normal Tangent Based Rocket Launch Rolling Smoke Field Tear/Rip FLIP (H12 still works in H16) Rain Flows Over Surface Smoke Solver Tips & Tricks Folding Smoke Sim VEX Generated Curve For Curling Hair Copy and Align One Shape Or Object To The Primitives Of Another Object (cool setup) A Better Pop Follow Curve Setup FEM Sea Cucumber Moves Through Barrier Fracture Cloth Smoke Confinement Setup Merge multiple .OBJ directly Into A Python Node Blood In Water Smoke Dissipates When Near Collision Object Whirlpool Mesh Surface Simple Bacteria Single Point Falling Dust Stream Flames Flow Outside Windows Gas Blend Density Example Localized Pyro Drag (smoke comes to a stop) Granular Sheet Ripping Post Process An Export (Post Write ROP Event) Corridor Ice Spread or Growth Set Velocity On Pieces When Glue Bonds Break Water Drops Along Surface Condensation Bottle Grains Snow or Wet Sand Starter Scene A Nice Little Dissolver Turn An Image Into Smoke Fading Ripples Grid Example Stranger Things Wall Effect Face Through Rubber Wall [PYTHON]Create Nurbs Hull Shelf Tool [PYTHON] Ramp Parameter Select Outside Points Of Mesh, Honor Interior Holes Sparks Along Fuse With Smoke Umbrella Rig Melt FLIP UVs Tire Burn Out Smoke Sim Use Google To Discover Attached HIP Files Useful Websites: Tokeru Houdini Houdini Vex Houdini Python FX Thinking iHoudini Qiita Ryoji Video Tutorials: Peter Quint Rohan Dalvi Ben Watts Design Yancy Lindquist Contained Liquids Moving Fem Thing Dent By Rigid Bodies Animating Font Profiles Guillaume Fradin's Mocap Crowd Series(no longer available) Swirly Trails Over Surface http://forums.odforce.net/topic/24861-atoms-video-tutorials/ http://forums.odforce.net/topic/17105-short-and-sweet-op-centric-lessons/page-5#entry127846 Entagma SideFX Go Procedural
  12. I am just wondering how others tackle the enormous task of generating characters for the crowd simulator? I will need about 40-60 unique characters in various races, sexes and ages. The requirements I am looking to fulfill are... good quality all quads mesh nice textures and uv mapping deforming clothing deforming hair mocap driven Style sheets are not as important to me as unique meshes. Has anyone used the crowd simulator for stadium work? How did you link the mocap to the characters? How long did it take?
  13. Creating Uvs for viscous flip sim

    Basically promote your UVs from Vertex to Point before you simulate then afterwards, fetch them back from points and re-promote them to vertex. Key take aways.... you need to add those attributes (Cd, uv, shop_materialpath) to the transfer list of the fluidcompress and the particlefluidsurface nodes
  14. I have one bone being moved by a CHOPs channel driving each rotation axis. I want to use the same CHOPs information to drive a bone in another rig. What CHOPs expression do I use to achieve this? I want the BLUE bone to move the same way the other bone moves. ap_mocap_retarget_one_bone_050718.zip
  15. Alembic Motion Blur

    Try throwing down an Unpack. Otherwise you are just applying a trail to a single non-moving point. Once unpacked each point can have a different compute velocity.
  16. I am trying to use python to create a series of CHOP expressions to link a mocap/.bclip driven bone structure to a NULL based FBX rig. While this CHOP technique works fine for translation (hips track mocap good), it does not seem to work for rotation. I have tried all kinds of offsets and axis re-mappings but none of them produce a tracked result that I need to continue with this work. Is there some kind of math that needs to happen to rotation values to transfer them from one node to another? Here is my basic working expression, with 90 being an manual offset I tried. (90+chop("/obj/crowd_mocap_SOURCE/mocap/data/calf_L:rx")) The attached scene contains my entire working setup so far, including the fixup scripts I used to prepare the BVH data from mocapdata.com for .bclip conversion. As you can see in the animated image I do get some tracking on the thigh, but it does not fully match the range of movement found in the mocap. mocap_retarget_issue.zip
  17. [PYTHON] Mocap Retarget Problem?

    I have spine neck and head installed. It looks like each expression set requires it's own def to update the expressions when the sliders change. def updateSpine(): value_X = hou.Node.evalParm(node_self, "rot_spine_X") value_X_range = hou.Node.evalParm(node_self, "rot_spine_X_range") #45 value_Y = hou.Node.evalParm(node_self, "rot_spine_Y") value_Y_range = hou.Node.evalParm(node_self, "rot_spine_Y_range") #45 value_Z = hou.Node.evalParm(node_self, "rot_spine_Z") value_Z_range = hou.Node.evalParm(node_self, "rot_spine_Z_range") #45 # Spine from pelvis up to head. target_candidate = "%s/%s" % (bone_target, "spine01") t = hou.node(target_candidate) if t != None: expr = 'fit(chop("/obj/crowd_mocap_SOURCE/mocap/OUT/spine02:rx"),-1,1, %s,(%s+%s))' % (value_X,value_X_range,value_X) t.parm('rx').setExpression(expr) expr = 'fit(chop("/obj/crowd_mocap_SOURCE/mocap/OUT/spine02:ry"),-1,1, (%s+%s),%s)' % (value_Y,value_Y_range,value_Y) t.parm('ry').setExpression(expr) expr = 'fit(chop("/obj/crowd_mocap_SOURCE/mocap/OUT/spine02:rz"),-1,1, (%s-%s),%s)' % (value_Z,value_Z_range,value_Z) t.parm('rz').setExpression(expr) target_candidate = "%s/%s" % (bone_target, "spine02") t = hou.node(target_candidate) if t != None: expr = 'fit(chop("/obj/crowd_mocap_SOURCE/mocap/OUT/neck:rx"),-1,1, %s,(%s+%s))' % (value_X,value_X_range,value_X) t.parm('rx').setExpression(expr) expr = 'fit(chop("/obj/crowd_mocap_SOURCE/mocap/OUT/neck:ry"),-1,1, (%s+%s),%s)' % (value_Y,value_Y_range,value_Y) t.parm('ry').setExpression(expr) expr = 'fit(chop("/obj/crowd_mocap_SOURCE/mocap/OUT/neck:rz"),-1,1, (%s-%s),%s)' % (value_Z,value_Z_range,value_Z) t.parm('rz').setExpression(expr) target_candidate = "%s/%s" % (bone_target, "spine03") t = hou.node(target_candidate) if t != None: expr = 'fit(chop("/obj/crowd_mocap_SOURCE/mocap/OUT/head:rx"),-1,1, %s,(%s+%s))' % (value_X,value_X_range,value_X) t.parm('rx').setExpression(expr) expr = 'fit(chop("/obj/crowd_mocap_SOURCE/mocap/OUT/head:ry"),-1,1, (%s+%s),%s)' % (value_Y,value_Y_range,value_Y) t.parm('ry').setExpression(expr) expr = 'fit(chop("/obj/crowd_mocap_SOURCE/mocap/OUT/head:rz"),-1,1, (%s-%s),%s)' % (value_Z,value_Z_range,value_Z) t.parm('rz').setExpression(expr) target_candidate = "%s/%s" % (bone_target, "neck") t = hou.node(target_candidate) if t != None: expr = 'fit(chop("/obj/crowd_mocap_SOURCE/mocap/OUT/headEnd:rx"),-1,1, %s,(%s+%s))' % (value_X,value_X_range,value_X) t.parm('rx').setExpression(expr) expr = 'fit(chop("/obj/crowd_mocap_SOURCE/mocap/OUT/headEnd:ry"),-1,1, (%s+%s),%s)' % (value_Y,value_Y_range,value_Y) t.parm('ry').setExpression(expr) expr = 'fit(chop("/obj/crowd_mocap_SOURCE/mocap/OUT/headEnd:rz"),-1,1, (%s-%s),%s)' % (value_Z,value_Z_range,value_Z) t.parm('rz').setExpression(expr)
  18. [PYTHON] Mocap Retarget Problem?

    I created a def to link offset values to the expression. The slider callback is linked to the def.This makes it easier to dial in a specific bone section on the target rig. exec(kwargs['node'].parm('python').eval());updateUpperArm() node_self = hou.pwd() bone_target = node_self.parm("rig_target").eval() def updateUpperArm(): value_X = hou.Node.evalParm(node_self, "rot_upper_arm_X") value_Z = hou.Node.evalParm(node_self, "rot_upper_arm_Z") # Right. target_candidate = "%s/%s" % (bone_target, "upperarm_R") t = hou.node(target_candidate) if t != None: expr = 'fit(chop("/obj/crowd_mocap_SOURCE/mocap/OUT/lowerarm_R:ry"),-1,1, (%s-90),%s)' % (value_X,value_X) t.parm('rx').setExpression(expr) expr = 'fit(chop("/obj/crowd_mocap_SOURCE/mocap/OUT/lowerarm_R:rx"),-1,1, %s,(%s-90))' % (value_Z,value_Z) t.parm('rz').setExpression(expr) # Left. target_candidate = "%s/%s" % (bone_target, "upperarm_L") t = hou.node(target_candidate) if t != None: expr = 'fit(chop("/obj/crowd_mocap_SOURCE/mocap/OUT/lowerarm_L:ry"),-1,1, %s, (%s-90))' % (value_X,value_X) t.parm('rx').setExpression(expr) expr = 'fit(chop("/obj/crowd_mocap_SOURCE/mocap/OUT/lowerarm_L:rx"),-1,1, -%s,(-%s+90))' % (value_Z,value_Z) t.parm('rz').setExpression(expr)
  19. [PYTHON] Mocap Retarget Problem?

    I managed to get the upper arms socket mapped to two axis from the mocap data. So on this particular joint, RZ is driven by RX data and RX is driven by RY. RZ gets these expression. // Left Side. fit(chop("/obj/crowd_mocap_SOURCE/mocap/OUT/lowerarm_L:rx"),-1,1, -70,(-70+90)) // Right Side. fit(chop("/obj/crowd_mocap_SOURCE/mocap/OUT/lowerarm_R:rx"),-1,1, 70,(70-90)) RX gets these expressions. // Left Side. fit(chop("/obj/crowd_mocap_SOURCE/mocap/OUT/lowerarm_L:ry"),-1,1, 45,(45-90)) // Right Side. fit(chop("/obj/crowd_mocap_SOURCE/mocap/OUT/lowerarm_R:ry"),-1,1, (45-90),45)
  20. For tracing logos I prefer bezier curves because the resulting curve goes through the points. With nurbs there is some kind of offset between the curve and the point. With the curve flowing through the point you can drop the points on the exact corners of the font or shape, in front or side view. For best tracing results, set the viewport to an orthographic view before you begin drawing.
  21. Broken Pencil Effect

    If you mean my small animation, it is just an animated GIF. I screen captured MPLAY using licecap for Windows (it's free).
  22. I think for such a simple logo, you may want to consider re-drawing it using the curve tool. Then the polybevel may work correctly. The trace is a nice option but in the end it always ends up stair stepping along curves.
  23. Broken Pencil Effect

    Here is a basic setup that demonstrates how to delay fracture activation till a certain frame. ap_pencil_break_050418.hiplc
  24. You can put a group inside a loop and group the edges for a single piece. Place additional processing for that single piece within the loop as well. ap_group_edges_of_vornoi_fracture_piece.hiplc