Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


Everything posted by LaidlawFX

  1. Hello all, We are relaunching the Seattle Houdini User Group as we have hit critical mass in the Puget Sound region so we can host this events regularly. The first meetup is a smaller get together so feel free to come by if you are in the area. Thanks, - LaidlawFX
  2. HDA "on name changed"

    Hello, This should work fine in the on name change event, without the button press node = kwargs["node"] hdaname = node.name() for child in node.children(): child.setName(hdaname) print ("the child node name has been changed to {}".format(hdaname)) As a warning though this style of renaming nodes will generally cause more issues than you are trying to solve. -Ben
  3. Link toggle values

    You'll need to use a callback script if you want to actually change the toggle values. I will say depending on the complexity just disabling/hiding the parameter and in the network or code disabling with a condition should suffice. It's like a magic trick the UI does something different than the actual network.
  4. Twisting a sweep

    Hello Kalin welcome to the Forum! You can use the copy to points and skin sop to do this effect. I know I have an example of it I stashed here in this thread. It even does UVs.
  5. changing $Home location

    Houdini.env only allows you to change your personal preferences. There is an order of operations with environment variables. houdini.env is in $HOME which is equal to $HOUDINI_USER_PREF_DIR. So you can't use houdini.env to set those. You need to set those in the operating system environment or the shell before launching Houdini. Also the main reason not to set $HOME is that other programs will use $HOME, so if you change the default system variable for $HOME you may be accidentally screwing up those other programs. Where as $HOUDINI_USER_PREF_DIR is unique to Houdini. I think what you really want to be using is $HOUDINI_PATH and $HSITE, the respective two main environment variables of Houdini. You can set these in houdini.env, but you should really be setting these variables before houdini.env is called as that is your personal preference directory. $HOUDINI_PATH allows you to have a string of different project paths, so you can have $StudioTools;$ProjectTools;$MOPS;$QLIB;$REDSHIFT;& with the & representing the Houdini's install directory $HFS and $HOUDINI_USER_PREF_DIR. $HSITE allows you to have version specific tools like compiled library or version specific handling like $HIPNAME, the path is set up such as $HSITE = "p:/studio/tools/" and inside are folders for 17.5, 17.0, 16.5... HOUDINI_PATH The path of directories where Houdini looks for configuration files. HSITE The HSITE variable is a path to the site-specific Houdini configuration information. This allows a site to have a common set of defaults and files. It is, by default, in the HOUDINI_PATH between HOME and HFS. To change global configuration information, you should use this rather than editing the contents of $HFS/houdini. Like HOME, Houdini uses $HSITE/houdiniVERSION, where version is the current version number (ie: $HSITE/houdini16or $HSITE/houdini16.1)
  6. changing $Home location

    Don't change $HOME set the variable HOUDINI_USER_PREF_DIR The directory to store user preference files. The value of this variable must include the substring __HVER__, which will be replaced at run time with the current MAJOR.MINOR version string. On Windows and Linux, this defaults to the expanded value of $HOME/houdini__HVER__. On Mac OSX, it will also use this default if the directory exists, else it uses the expanded value of $HOME/Library/Preferences/houdini/__HVER__ https://www.sidefx.com/docs/houdini/ref/env.html
  7. Enforce Prototypes @ptnum

    Thanks for that. I just re-read what you said and that link you sent. Had to do a double check and it follows the pattern in cvex, too. It's been a long time since I looked at vex like this. cvex obj_geo1_pointvop1(int ptnum = 0; export int Cd = 0) { // Code produced by: bind1 Cd = ptnum; } Thanks again. Found the declaring part in the docs again, too. https://www.sidefx.com/docs/houdini/vex/snippets.html#declare
  8. Enforce Prototypes @ptnum

    Hello, So doing some clean up on my vex code in a wrangle and I turned on Enforce Prototypes to remove a bunch of the hacks to get the code setup. The one thing I can not find out a cleanup for is to replace @ptnum with a non @ function. Is the only way to declare it prior to the wrangle as another attribute? That just seems messy. Even declaring before hands means you need @ptnum to source that attribute. Thanks, -Ben
  9. Enforce Prototypes @ptnum

    Here is an example file of using @ptnum to source a point attribute that errors out when enforce Prototype is on. int id = point(0,"id",@ptnum); setpointattrib(0,"Cd", @ptnum,id); Upstream of that I have an attribute create that does a basic. i@id=@ptnum; ptnum.hip
  10. If you have a multi plane texture like a .exr, or a rendered image from mantra extra image planes you just type in the name of the channel. In the attached scene it loads up temp.exr which is a combo of the butterfly and mandril. They are on channels Cr and C respectively. With Cr typed into the respective parameter it renders that image instead. You can use mplay, to view the different channels in the .exr. temp.exr MultiChannelTexture.hip
  11. If the point count is changing then on export the selection method was not even. An alembic exported correctly will preserve geometry info from frame to frame. A method is to do a bounding box from a group sop to a blast node. You can use a delete sop straight up, but there are a lot less procedural ways to animate the size and bounds. You can try for connectivity/assemble too and see if that brings a consistent result if you are looking to remove a whole tooth. There are more options, but it really depends on how inconsistent the topology is and what part you are trying to delete. Generally speaking direct face selection is generally not done as it can often be defined as a destructive method. You can use direct face selection in a few ways, but with consistent topology.
  12. Not sure why it is called image plane at that level. https://www.sidefx.com/docs/houdini/nodes/vop/texture.html Texture Channel This specifies which color channel for multi-plane textures should be evaluated.
  13. Houdini 18 Wishlist

    Houdini's handles are implemented on a per product basis. So Maya does not have them, but Unity does. They can be implemented, but there probably hasn't been a large request. Also Houdini supports more handles types than most 3D programs so there is a bit of picking and choosing on what you want to be integrated. Generally when it comes to Handles studios implement their own custom variety. https://www.sidefx.com/docs/maya/ https://www.sidefx.com/docs/unity/_handles.html
  14. Get Parent Expression

    Sounds like you should be working in a SOP construct if you need the attributes that much. `opinputpath("..",0)`/OUT Just make sure you always have an OUT or similar designated output node. Otherwise you can go into python land find the display flag, but that is a whole different set of issues.
  15. Final Export Error

    .exr is the image sequence format of choice for most offline render needs now a days. You may still see some legacy .tif an .tga, but that is more rare.
  16. Final Export Error

    Hello Russ, Welcome to the forum. Historically it has been best to not create videos from inside Houdini but use a third party program that is good with videos. Like Nuke, Aftereffects, Premiere, Final Cut Pro, etc... If you were not on Apprentice I would suggest using TOPs and the image magick plugin. TOPs is not available in apprentice. However you could use image magick as a standalone application. As for a solution to your actual problem it sounds like your system is a bit off if it is complaining about your HOUDINI_USER_PREF_DIR is off. This is where your personal preferences for Houdini live. However the No License Could be Found to run this program could have been a check to see if you have a paid version of the program. The apprentice version has a bunch of limits. I'm not aware if saving as video is one, but as I said nobody saves videos from Houdini, nor any other 3D based DCC by default. Hope that helps, -Ben
  17. You have two main ROP options. Make a subnet and use the Scripts python module. Make a shell rop and use the shell or post script commands to run an external file. The third for fun option is to do it in TOPs. This is probably better designed for what you want to do and it comes complete with tons of python control. Just not a lot of internet wisdom yet when you get stuck. Plus not direct Redshift control so you need to use the ROP Fetch node, which has not been too painful converting all the old setups too.
  18. Tab Menu

    Yeah you would have to RFE that request like if do Tab > and type d - e - l - e - t - e I can not select the world "delete". Then again the whole Tab Menu could use lots of love in the first place, it hasn't changed since version 9 with the new UI if I remember correctly.
  19. Render Farms

    Hello, I'm looking to find out what off the shelf render farms people prefer currently for production; likes and dislikes? Short background: We need to use our nodes for Houdini, Max, Maya, fume, and a few other software. Currently about ~100 nodes, and we don't have a dedicated render farm technician so the most hands off, off the shelf is the best. I have experience with Hqueue, Rush, Deadline, and Qube, so I am looking for any additional off the shelf software, too beyond those. Thanks -Ben
  20. Tab Menu

    Tab is an old menu system as I understand. You could RFE it for sure. However, I would outline a good series of use cases for it. I do not know of a case where by default you can select multiple stock nodes via the different options. Scripting like bunker showed is a completely different case.
  21. Tab Menu

    Nope. You can not override the tab menu with hotkeys it's not designed for it. You could do stuff in python to create multiple nodes if you know what you want.
  22. Operator default name override ?

    Yeah use the OPcustomize script in your preference. A copy can be found in $HH/OPcustomize // In order to change the initial name of the op to something // other than the internal name, the opfirstname command can // be used. opfirstname Driver ifd mantra As for foreach_begin if it is being placed down via a script it might depend on how the script is creating it to override it. But to say change the output sop to OUT on creation opfirstname Sop output OUT
  23. Scene viewport : Set path from node button press

    Ok I figured it out a bit based on this chat. This code was put into the Python Source Editor. If you have a geometry object /obj/geo1 in your scene, it will change the path of the SceneViewer to node. It will do a simple check if it is pinned and pin it. Probably could use a bunch of exceptions... import hou node = hou.node('/obj/geo1') scene_pane = hou.ui.curDesktop().paneTabOfType(hou.paneTabType.SceneViewer) if scene_pane.isPin() : scene_pane.setPin(False) scene_pane.setPwd(node) scene_pane.setPin(True) https://www.sidefx.com/docs/houdini/hom/hou/ui.html to https://www.sidefx.com/docs/houdini/hom/hou/Desktop.html which needs one of these https://www.sidefx.com/docs/houdini/hom/hou/paneTabType.html Then you can use these. https://www.sidefx.com/docs/houdini/hom/hou/PathBasedPaneTab.html Hope that helps future me, and other fine folks.
  24. Hello, I am trying to set the path of the current scene viewport via a button press from a hda. I know these python docs below are the key, but I can't seem to tie the relevant python functions together. https://www.sidefx.com/docs/houdini/hom/hou/PaneTab.html https://www.sidefx.com/docs/houdini/hom/hou/PathBasedPaneTab.html https://www.sidefx.com/docs/houdini/hom/hou/SceneViewer.html https://www.sidefx.com/docs/houdini/hom/hou/GeometryViewport.html Any help would be great. Thanks, -Ben