Jump to content


  • Content count

  • Donations

    30.00 CAD 
  • Joined

  • Last visited

  • Days Won


Everything posted by ikoon

  1. I am looking for a VEX equivalent of chop() expression. I have tried the ch() function as attached. I know, that ch() in the Wrangle is usually used to read the Parameter from the Interface. But the help file says "Evaluates a channel (or parameter) and return its value." Am I close, please? What is the best practice for this? vex read chop.hiplc
  2. In vex, we cannot specify geometry as relative path. a. You may wire the MUDGUARDS into the second input, and the vex will be: point(1,"name",0) b. If you don't want to wire (or you cannot), you can add a spare input, and change vex to: point(-1,"name",0) c. Another solution, worse than b. Rewrite your vex to this: point("op:/obj/yourgeoname/MUDGUARDS","name",0) But this is probably bad, because if you rename anything in the path, vex doesn't update the code automatically, so this path gets broken. As regards spare input, it is described here: http://www.sidefx.com/docs/houdini/model/compile More is here: http://www.sidefx.com/docs/houdini/io/op_syntax.html
  3. Output render file naming

    Hi Marian, EDIT: sorry for the previous code, this one is better: $HIP/render/${HIPNAME}_`opname(chs("RS_renderCamera"))`_$F4.exr Those curly brackets are needed, because without them $ searches for the variable HIPNAME_ ... because _ can be included in the variable name.
  4. Please, is there any kind of File Cache SOP manager? I use the filecache more and more in my setups and I had an idea to create a script, which will: - create some kind of CRC for all the filecache's upstream (or referenced) nodes and parameters - check if saved cache's CRC is the same as actual CRC in the scene - colour the filecache node if its cache is obsolete, disable "load from disk", print it to console, etc. It feels almost the same as if Houdini is checking for dirty nodes. But I am not that skilled to use HDK. I can do just quite simple python. Maybe there already is a tool for the Cache management? Could you direct me, please?
  5. Animation editor usage

    Hi Pancho! I am glad that I helped. I like the Houdini Animation Editor a lot, there are many "hidden" features to all those handles ... which made me confused at first. But they are useful. To make my answer more complete, for bezier keyframe, you may also select (or drag) the tip of the bezier handle or the "line" of the bezier handle. Then, for example, with Ctrl pressed, each of these partial handles give you different behaviour. Good luck with your work!
  6. Animation editor usage

    Hi Tom, as regards the greying out. I am not sure if I understand right. The "keyframe" can be selected as time, when you click on the vertical handle: as a value, when you click on the rhombus : or as both value and time, when you select both (most often by dragging a marque): I have this setting, because I don't like nonselected handles visible: As regards the scaling. You can enable "box handle" for selected keyframes and pivot here with these icons, default hotkeys are Y and Shift-Y
  7. New to houdini

    Btw maybe the "overwhelming" feeling is good for us, as our brain needs to embrace the complexity. I am no guru, but smart ideas and good solutions in Houdini come from utilizing the complexity. Sometimes using CHOPs is the simpliest solution, sometimes vex, python. Sometimes smart SOPs before sending the geometry to DOPs. Sometimes SOP solver inside DOPs. Houdini is complex, but it becomes joy.
  8. New to houdini

    Hi Abhigyan, welcome! I think that the "overwhelming" feeling is inevitable at the beginning. Or ... I don't know a way how to avoid it, I was there also (and I am, often, still). I wish you the best luck. Sepu mentioned very good resources. Here was similar talk, so maybe some more tips: https://forums.odforce.net/topic/30359-tips-suggestions-and-strategies-for-learning-houdini/
  9. Tumble around current object

    Hi Antoine. Try to compare your settings to these I post below. And also, after you Apply the settings ... create new Scene View, to be sure, that you are trying the new settings:
  10. Please, how do you manage your .sim checkpoint files? So far, I just delete them manually. I am thinking about writing a simple python scripts: - delete all the .sim files - delete all, but keep the last one - keep the first .sim file in the preview range (for the case, when I am satisfied with previous frames and I animate parameters in the preview range) Or is there any existing tool or script, that could help me? I would use os.remove() If not, I will post my solution here, later.
  11. Houdini 17 Wishlist

    It is possible to pick colors outside of Houdini, MMB and drag the colour "preview rectangle" https://houdinitricks.com/sample-colors-outside-of-houdini/
  12. File Cache SOP / checking for "dirtiness"

    Petr this looks amazing!!! You did exactly what I wanted! We should have "donate" button here, not just emoticons I will dig into it. I want to use it in cases, when I build an effect in sops (motion design, videomapping to music), when I branch the SOPs a lot. For example I animate geo, I use it for sourcing particles. I also convert the geo to VDB, and morph it slowly to another shape. Calculate velocity field, swirling around the morphing shape. Then volume vop the velocity field to music... etc. and I still emit particles on each music beat from the initial animated geo. I have filecaches along those branches, to be able to preview and iterate. But if I have to update some "far" upstream parameter ... then I get lost what filecache should I recompute. You really REALLY help me to save a lot of time and nerves I will PM you!
  13. Ben, thank you very much!!! I also plan to use .sim checkpoints for additional animating of forces, or amounts of dissipation, sourcing... Lets say I have simulated 300 frames. Until frame 150 the sim looks fine. Then the particles should stick more to the moving geometry ... but they fly away, so I will animate the attraction force, and slowly increase drag, from frames 160 to 200. Maybe it is not the right attitude, to patch the simulations like this. I am DOP beginner, I do quite simple motion design and learn, so far. Technically it should be fine, as long as I only animate the channels?
  14. OpenGL Vertex Cache

    I got an answer from SideFX (twod) so I just repost it here: You can't use it directly. Packed Alembic and Packed Disk Primitives/Sequences can cache geometry there, and all currently displayed geometry will use the cache until it's deleted. But there's no way to manually cache things. With HScript we may set the memory limits: http://www.sidefx.com/docs/houdini/commands/glcache.html
  15. Please, do you know how to utilize the GPU OpenGL Vertex Cache? I use it for fast realtime SOP viewport previews. It is much faster then the Cache SOP, but I use Alembic as a disk cache, so it is usually a dead end. Any tips how to utilize GPU Vertex Cache without .abc are highly appreciated! An example of speed comparison, the scene is attached: Cache SOP ~ 25 fps OpenGL Vertex Cache ~ 45 fps OpenGL Vertex Cache, point cloud ~90 fps (I have also raised Max allowed size of Vertex Cache in the Cache Manager to get these results) vertexcache.hiplc
  16. Ben, thank you very much for your answer and valuable insight! I will do some simple python and post it here.
  17. Very often, I need to select previously selected node. Usually because I go upstream and change some parameter, then I want to return back down. Or I want to compare parameters of few nodes and toggle between them. I just had two ideas how to do that: 1) bind event callback for hou.nodeEventType.ChildSelectionChanged and save my own undo history ... this works, but it is probably bad idea, because I would have to add callback for every node? 2) save selection with putenv (more than one node) and switch between those nodes ... this is fine, when I want just to compare few node's parameters Please, do you have any idea, how to do it right? Here is my script which helps me toggle selection between few nodes: def selection_switch () : nodes = hou.selectedNodes() count = len(nodes) if count > 1 : # if few nodes are selected, then initialize, save that selection selection_stack = ','.join(node.path() for node in nodes) hou.putenv('selection_stack', selection_stack ) hou.putenv('selection_current', '0' ) hou.putenv('selection_count' , str(count) ) # even if one node is selected... selection_stack = hou.getenv('selection_stack', 'none') selection_current = hou.getenv('selection_current', 'none') selection_count = hou.getenv('selection_count', 'none') # go to next node... stack = selection_stack.split(',') current = int(selection_current) + 1 count = int(selection_count) if current == count : current = 0 # update the saved variable hou.putenv('selection_current', str(current) ) # select that node in current pane target = hou.node(stack[current]) parm_pane = wf_selection.pane_linkGroup( hou.paneTabType.Parm ) parm_pane.setCurrentNode(target,True)
  18. Hi Jim, you could unlock the "container" node, whose children you want to enable OpenCL, and then run similar python script as this one: container = hou.selectedNodes()[0] nodes = container.allSubChildren() for node in nodes: if not node.isInsideLockedHDA(): parms = node.parms() for parm in parms: if parm.name()=='opencl': try: parm.set(1) except hou.PermissionError: pass
  19. This might also help you: there is a "possibly skipping frames" option. I bound a hotkey Alt+R to switch these two things and I use it all the times: hou.playbar.setRealTime(not hou.playbar.isRealTime()) hou.playbar.setRealTimeSkipping(hou.playbar.isRealTime()) So I switch between these two modes: 1) realtime + possibly skipping 2) not realtime, not skipping
  20. I am glad that I helped a bit. I am quite lame unfortunately I never did this kind of thing. Maybe you should post your scene also for others?
  21. Excuse me, I was blind. Here might be a solution with Rest and Subdiv ... I hope that this combination keeps your topology. Or, it would also help if you have consistent UVs on those imported pieces. timeshift.hiplc
  22. Hi Miguel, you probably need a Timeshift SOP, Ctrl+Shift+LMB to remove expression and put the desired frame number in the Frame.
  23. To return a string value, use points() instead of point() http://www.sidefx.com/docs/houdini/expressions/points.html The same applies for detail() / details() and prim() / prims(). This should work, last argument (the index 0) is not used with points() points("../pointwrangle1/", detail("../foreach_begin1_metadata1/","iteration",0), "letter")
  24. Hi Ezequiel, I did a similar version long time ago. Not a best solution today (we dont copystamp now), but it may help you in a way, if nobody else has better solution: https://forums.odforce.net/topic/27665-multiple-objects-along-curve-aligned-to-curve-solved
  25. Show curve thickness in viewport

    This is magic, thank you very very much! I wasn't able to find it. (btw, also for the others, the required point attribute is @width)