Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Everything posted by eyevex

  1. New video blog post! Time indoors has lead to A VERY detailed step-by-step video on how to set up Houdini Engine and Unreal Engine on Linux, including obtaining source, licensing, compiling and installing. http://eyevex.com 40 Minutes of excitement guaranteed (|;-D>
  2. New blog post series on building a Python Rop in Houdini Useful if you need the Rop or intro to HDA building tutorial. Included download for noncom. Check it out. Thanks. http://www.eyevex.com/
  3. Python - Parameters 'Type'

    above should work on numerical parms, once that is determined and for string parms you could try something like.... is_exp=False raw = parm.unexpandedString() if any(['`' in raw, '$' in raw, '(' in raw]): is_exp = True or some variation depending on exaxtly what other than string literal you are trying to detect
  4. I have been poking around the shape library generated as part of the crowds agent definition on disk. It seems to only want bgeo packed prims adding all shapes used via declared layers into the single bgeo file. This potentially means bringing in geometry from disk ala file sop, since Agent Layer want an oppath, pointing to it and having the definition bake the unmodified geometry to disk landing in smoo_shapelib.bgeo Toggling "keep external" doesnt seem to affect this. this all seems a little inefficient. It would be desirable to include items already on disk. Agent Clip sop seems to afford this via "keepexternal' and source as file. There seems to be nothing equivalent for dealing with shapes and layers. Does anyone know a technique to achieve this? I did find a hopeful detail attrib on the generated shape lib, but no info seems to be available on the detail attrib "shapelib_include" -- although I imagine it might be what Im looking for but am unsure what it expects. Any info or idea on this attrib, how to include external geometry on disk (if possible) and preferably not have it re-cached out and remain as included would be great. The documentation on the shapelib seems to be minimal. thans ahead for thoughts and idea. Dan [eyevex] (|;-D>
  5. Excellent. Thanks a lot for all the info. This will help solve some serious problems for me.
  6. That's awesome and sounds like it may be what I am looking for! A couple of followup questions -- if you know.... Both the paths in the tuple are pointing to the shape lib? A little confused about the first element... as the agent def could be used in multple files and locations for crowd setups. are both elements required? Do the shape libs included need to generated via agent caching or can I include any bgeos -- just ass the name attib? I would still assume only packed and bgeo?
  7. The Hotkeys should work on all desktops, I think this was added somewhere in Houdini 15 or 15.5? But I don't see the KB command in the menu in the screen grab... Did you try searching the hotkey manager and see if its is remapped? Have you hand edited the hotkeys file? Try edit --> hot keys --> search --> String --> Maximize in split direction and see where it is. Maybe close Houdini, rename you hotkey file in your home directory HoudiniXX.y/HotkeyOverrides... maybe its corrupt? It is odd that you tried to map a hot key to it previously ... it should have had the default. Are you running this on very old or low powered hardware? shooting in the dark a little ....
  8. There is ALT + \ This will max a splitpane, how it was split depends on if it will max horiz or vert but should reflect the same menu item available. Be careful not to confuse with ALT+/ (forward slash) -- this will close the tab instead of maxing i am surprised it doesn't show this shortcut in your screen grab as it should be a default
  9. Floating Parameters Dialog

    Im not sure why you would see the interface for tabs like this although you will still see network controls... I am on kde/kunix h16. To make what for me looks and act exactly like the floating param via RMB -->Parameters and Channels -> parameters try this... node = hou.node('/obj/some/valid/oppath/to/look/at') # get desktop dt = hou.ui.curDesktop() # floating pane (pane not availible via floating pane tab) pane = dt.createFloatingPane(hou.paneTabType.Parm) # what parameters are in view pane.setCurrentNode(node) pane.setPin(True) # hide network interface and pane bar hou.hscript("pane -a 1 -A 0 " + pane.name())
  10. I have decided to make available, uiScriptPy, a python wrapper around Houdini’s uiscript. It has been the result of needs I have had and was largely ripped from another defunct project. It should be considered alpha. I am aware of a couple efforts to do this, however I think uispy is fairly robust and useful. It fills a nice space where simple dialogs beyond hou.ui are needed, but full blown pySide/pyQt may be overkill Hopefully this will also provide an exploratory opportunity as I plan to document its clean-up on my blog eyevex.com bit by bit in the New year (assuming compatibility with h16 for now). At that time some more examples will be coming, until then feel free to download and poke around. It is acknowledged, that a few things are broken or missing, some the scripts are a bit hacky, there are places for improvement, and a bit that is completely wrong, but working. This is alpha, which mean it has only been used my myself and really only on a specific setup Happy Holidays and New Years [eyevex] (|;-D> www.eyevex.com
  11. More options is always best Otherwise we would not have both pyside and pyQt. If uiscript can still be launched inside the ui directly like this going forward, I am considering extending this the last little bit for also doing HDK work for at least my self this would be very useful -- but will see where it goes, what I use it for, if others find it useful and if its possible at all.
  12. This is comprehensive -- not-so-simple, wrapper with much needed functionality for at least my use, as mentioned it was pieced together out of need -- since around 2010, but was part of a larger project. As also mentioned " I am aware of a couple efforts to do this, however I think uispy is fairly robust and useful... " So please do not feel that your efforts were not amongst the acknowledged. Look at the html manual included and see the features -- you dont need to know anything about uiscript to use it, there are enumerations for styles, many otherwise undocumented tags that seem to now work, hopefully you find it useful too... did you give it a spin? This still currently works in 15.x and uiscript ASFAIK is still used in HDK too... and internally everywhere, but had it feels a nice space when not wanting to use pyQt, (please see original post) but of course do not know the exact future.
  13. NOTE there seems to be a quirk where wordpress is mutating certain symbols so to use example properly for now, please copy and paste to a text editor, and replace the single quote with.. Yes, what appears to be the same single quote on your keyboard… if you run into this issue.
  14. In short... HDA parameter UI... I have ordered list A. and Ordered list B The item of B are generated dynamically with knowledge of List A. This basically could mean pull model where List B generation queries the value of List A. But do this as a multiparm instance and it seems to get more complicated.... List A may have different values per instance... meaning different items on List B per instance. But how to know which List A instance to query? I'd prefer not to pull and set the parmTemplates as this could force a cook to run... could be ie a menu type of string as well... and trying to avoid something toooo hacky.. but looking for ideas... Is there any way to have kwargs-like information so the instance # is known to the menu generation similar to callbacks on parms? Is there a way to force the menu generation or set the items from outside the menu generation script, such that List A callback() could populate List B since kwargs will provide the instance of List A which will be the same instance # as List B? Thanks ahead for any ideas (|;-D>
  15. You are correct, Not sure how I missed that, thanks for the 2nd look Anim.
  16. Interesting I thought kwargs was not available in menu generation... It seems I could be wrong on this, let me check it out thanks.
  17. I seem to have no problem getting to the actual script .... sec = node.type().definition().sections()['event'] contents = sec.contents() but want to change the language type for that section... ala type properties "edit as" pulldown I expected it to be on the section object but don't see it... Anyone know?
  18. changing hda event language type with python

    This seems really handy. Is there a list of possible name:val usable by hou.HDADefinition().setExtraFileOption() been looking through the documentation...
  19. changing hda event language type with python

    Ahhh.. Thanks Graham. I was poking about for a quite bit and didn't come across it. Seems to work. (|;-D>
  20. changing hda event language type with python

    Starting to think this may not be possible. Any suggestions?
  21. I thought I had stumbled across this at some time via hscript or hython... Basically checking an unlocked HDA defined node to see of any different since saved last. I would think matchesDefinition() would serve this purpose but seems identical to isLocked() Proof seems to be getting a py ref to a hda defined node, test... True, then unlock -- no other changes... test... False. I could make some ugly use of modification stamp ... but this has its own issues ... I unlocked, RMB save is always enabled even before any modification is made. If saved anyway stamp is updated... Thoughts? [eyevex] (|;-D>
  22. detect hda def changes reliably

    Hmmm starting to think this may not exist -- something similar to hipFile.hasUnsavedChanges() but for unlocked node instances would seem to be what I was after... might have to look at implementing something.
  23. detect hda def changes reliably

    I'm not sure that'll work in this case. Although I was unaware and that is super useful to know … Although it does have some possibilities but they could get ugly.. and involve a lot of definition swapping. I wrote the subject line quickly... # More accurately …. lets say …. my_node = hou.node('/some/meaningful/oppath') my_nodes_def = my_node.type().definition() # Now we edit the contents …. my_node.allowEditingOfContents() #…. Now in the net pane you can save. This would change the def and stamp ala ... my_nodes_def.modificationTime() # as well as potentially some other user oriented data # these will always return the same values my_node.isLocked() my_node.matchesCurrentDefinition() # ….. So in terms of both representation and functionality and preferably without custom parsing the contents of the different sections of … my_nodes_def.sections() # … and attempting to compare it to the current node graph and parameter interface, script section etc .. know if the unlocked my_node has actually changed (beyond time stamp and user etc .. that goes with saving when no changes have happened) from how it is described by my_nodes_def ...I spouse more options for saving and update from node mechanism would solve this too where there was a force option or wouldn't save when there were no changes… but am trying to do something that I can work with now. Hopefully the problems a little clearer. (|:-D>
  24. detect hda def changes reliably

    The only idea I currently have that would seem reliable.... extract definition contents, parse contents section and compare the node graph against it. This would be a bit more time than I have to gain this functionality right now and would have to assume something exosts that could get me closer as a starting point.... ir not? (|;-D>
  25. Houdini Engine For Katana

    interesting. now if katana could display vdb.....