Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Atom last won the day on March 17

Atom had the most liked content!

Personal Information

  • Name
  • Location
    Columbus, Ohio

Recent Profile Visitors

16,896 profile views

Atom's Achievements


Apprentice (3/14)

  • Well Followed Rare
  • Very Popular Rare
  • Dedicated Rare
  • Reacting Well Rare
  • First Post Rare

Recent Badges



  1. Try passing the direct path instead of 0. string handle_path = "op:/obj/geo1/dopnet1:crowdobject1/Geometry"; float len = agentcliplength(handle_path, @id, "walk"); f@attr_len = len;
  2. You're blurring the concept of scope. The variable float len is not an attribute, it's a local variable that falls out of scope when the wrangle terminates. Thus when you reference the attribute, it defaults to 0. Try: f@len = agentcliplength(0,0,"walk");
  3. You might want to double check the reported error. Looks like an OS pathing error to me. Although only 26BG of free disk space might also be the culprit..?
  4. You can leverage the post-render script to press the button on the next ROP. node = hou.node("/obj/geo1/cop2net1/tex1") node.parm('execute').pressButton() Place this code in the post render script field of your first ROP. Don't forget to switch the language from hScript to Python or the code won't execute.
  5. There is a similar problem at this link, with an example file. It's MOPs related, but illustrates how to pull in an animated attribute. https://www.sidefx.com/forum/topic/87419/
  6. Before the mesh becomes cloth, drop down a point wrangle. Add a float value to the interface. Place your keyframes there. f@my_attrib_name = chf("animate_me"); After the wrangle, drop down a NULL named OUT_ATTRIBS. Dive into the solver to configure the vellumconstraintproperties. On the inputs tab change one of the non-used inputs to fetch from sop, OUT_ATTRIBS. Then it's just a vex transfer of the animated value to the attribute you want to drive. float my_animated_value = point(1,"my_attrib_name",@ptnum); stiffness = my_animated_value; Don't forget to turn on the check box for the Stiffness value so the code can overwrite it.
  7. It's the same value as stiffness for the cloth node. if(@Frame>30){stiffness = 0.0;}
  8. Use the animation editor. V-KEY on selected node with keyframes. Click the box handle with pivot icon, and drag the handle to reverse the key frames.
  9. Try deleting more attributes before exporting. From what I recall, Unreal can only import triangles and quads, no n-gons allowed. Are you sure the Unreal engine can leverage only lines? Worse case scenario, throw a polywire on the final and try that. You'll at least be supplying true geometry to the import section.
  10. Instead of removing the point in the wrangle, just create a group containing only that point. Supply that group name to the blast node. if(@ptnum==(@numpt-1)){i@group_last_point = 1;}
  11. Johnny made an attempt at this a while back. Check out the HIP file here.
  12. Check out the content library. There area few example of how to setup different colors for different streams. You could filter by an id attribute and place a material node on each separate network chain before merging them together. https://www.sidefx.com/contentlibrary/ The flip multi-phase is pretty cool.
  13. Add a switch to your material network and drive it from an integer attribute. There might be a limit on the number of connection you can make.
  14. Another thing I've done in cases like this is to sort source and targets points along the same axis. Divide your VFX points in half to have each crowd group seek only those points. Less crossing another's path and triggering wander/avoid.
  15. I've done this before by setting up a render loop, which is essentially a PopWrangle that executes every frame. Inside that wrangle add code to measure the distance between the current location the goal. Once that distance is small, you know the agent has arrived, and can trigger a new state.
  • Create New...