Stefan Posted July 29, 2017 Share Posted July 29, 2017 (edited) Hello Houdini-Experts, this is my first post :/ I'm currently trying to setup Houdini in our company and try to create some cool setups to automatically create file cache paths and file names as well as render output paths and names. This all works very well. I also wanted to create a little Digital Asset, a "HUB" that exist in every scene that is supposed to get the file name ($HIPNAME), split it into certain string components and generate some variables that those file caches and render outputs can use. Everything works one time, when you open the scene. But if I for example save the file under a new name, let's say I version it up, it still keeps the old data and does not re-evaluate unless I change the script itself in the Attribute Wrangle. So my question is, how can I force to re-run or re-cook an wrangle node? Can I trigger that if a hip gets saved? It is just utterly inconvenient to ask the users to save a scene as a version up and have to close and re-open the scene to check if the file name is good and to make sure all the caches and render outputs have the right naming and versioning. More detail to what I am doing inside this "HUB": - I am create a point, just to hold some data as detail attributes. - I am using a Attribute Wrangle VEXpression (Detail attributes) to split the $HIPNAME into its components, like show name, episode number, shot name, element, version and so on. In our facility "_" are used to divide those so that was easy. - I am then depending on the format create attributes for each and store the values (strings for the names, integers for the version numbers) - Depending on the user input in the parameter interface it would use those or a custom name for each - then I used a little Python node to change the "HUB" color so that the user would see right away, if something is wrong with the file name (red) or if everything is just fine (green) -those resulting detail attributes will be read by file caches and compose the name from it I hope my questions are clear enough to get some hints of how I can force a script to re-evaluate. I wouldn't even mind a to use that "Update Shot Data" button that I created in my "HUB" parameter interface to trigger a re-run. Obviously doing this automatically after saving the scene would be huge! Thanks in advance, Stefan Edited July 29, 2017 by Stefan Quote Link to comment Share on other sites More sharing options...
Yon Posted July 29, 2017 Share Posted July 29, 2017 Some one better will likely answer your question, and I'm not pipeline, but.. perhaps you should create a global variable for shot / element, etc. Then simply make a I/O node that reads them.. I think most studios leverage the Alias and Variables menu for there H pipeline.. Quote Link to comment Share on other sites More sharing options...
Stefan Posted July 29, 2017 Author Share Posted July 29, 2017 Hi Yon, thanks for you advice. We have a defined and outside variable(s) like $Shot and it would give use the location of all the shot related data. The problem is the versions. The shot name and folder structure stays the same so it is perfect for an external variable but the version changes over time. So analyzing the $HIPNAME is crucial. I know a lot about workflows and pipeline and Houdini gives me a great deal of power without being a real coder to do a lot of things. I just want pretty much don't cache the nodes so those get reevaluated anytime someone requests the info about shot name a so on. Stefan Quote Link to comment Share on other sites More sharing options...
MENOZ Posted July 29, 2017 Share Posted July 29, 2017 you can try the unload flag perhaps. Quote Link to comment Share on other sites More sharing options...
Stefan Posted July 31, 2017 Author Share Posted July 31, 2017 Good idea, but nope! No success. Still have to re-open the scene to get it re-evaluate the data. Thanks though! Quote Link to comment Share on other sites More sharing options...
ikoon Posted August 1, 2017 Share Posted August 1, 2017 Maybe here is something for you? http://www.sidefx.com/docs/houdini/hom/locations Before Houdini saves the scene file, it will run HOUDINIPATH/scripts/beforescenesave.py if it exists. After Houdini attempts to save the scene file, it will run HOUDINIPATH/scripts/afterscenesave.py if it exists. Quote Link to comment Share on other sites More sharing options...
Stefan Posted August 2, 2017 Author Share Posted August 2, 2017 On August 1, 2017 at 3:47 AM, ikoon said: Maybe here is something for you? http://www.sidefx.com/docs/houdini/hom/locations Before Houdini saves the scene file, it will run HOUDINIPATH/scripts/beforescenesave.py if it exists. After Houdini attempts to save the scene file, it will run HOUDINIPATH/scripts/afterscenesave.py if it exists. Great! That is actually a big help! Thanks. I think I will have to let my co-worker take over in Python since I am not a Python guy and he used PyQT and such for other parts of our pipeline with other software then Houdini. I figured out the logic and the ROP integration. Now he can just use those before and after scripts and the python panel to make it work and make it an artist friendly interface. Thanks to all of you guys for all the advices. It might have been to ambitious to try and get this done in a digital asset without major Python scripting and extensive coding knowledge. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.