Join our discord community

Please or Register to create posts and topics.

bug report : Houdini JOB address

Hi

I've faced with strange bug in Houdini after setup prism. the JOB variable set to my user folder and I couldn't change it anymore.

I guess you are looking at the $JOB variable in the "Aliases and Variables" dialog in Houdini.

Prism sets the $JOB variable to the current Prism project when you launch Houdini or when you change the project in Prism. The Houdini "Variables" dialog doesn't display the correct value of the $JOB variable, when the value was changed through hscript. This is not only happening with Prism. It also happens when you use a Textport to change the variable.

But this seems to be a Houdini display bug only. To see the actual value of the $JOB variable you can create a ROP node, type $JOB in the output path and middle mouse click on the parameter label to evaluate the parameter and to see the actual value. And you can change the value in the "Variables" dialog, but you don't see the updated value there, instead you have to use nodes parameter to see the value.

I've contacted SideFx about that and hopefully they can fix this or provide a solution. In the meantime I can send you a changed Prism script, which doesn't change the $JOB variable to the Prism project if you like.

Thanks Richard.
Yeah, this bug is for Houdini.
Actually we set JOB variable manually and the script that you mention is helpful for us, it will be grateful if you provide the script.
Thanks.

Here is the script. It's the same script as in the current Prism version, just the line, which sets the $JOB variable in commented out. (line 130).

You can replace the existing file here: C:\Prism\Plugins\Apps\Houdini\Scripts\Prism_Houdini_Functions.py

Uploaded files:
  • You need to login to have access to uploads.

Thanks Richard

Hi Richard.

Have you noticed any occasions where the $JOB is not set properly?

I am aware that I should check that it resolves in an input field like in materials or ROP ouputs.

It's strange, I can't reproduce it everytime, but sometimes I find that even after changing projects with the project browser within Houdini, or opening settings and clicking save, it sometimes, but doesn't always set the $JOB. Instead, my $JOB resolves to C:/Windows/System32....

Then I've also just had it where the $JOB does resolve correctly to my project folder on my desktop, but then when rendering with Deadline, it hasn't worked correctly.  See below error message from log file from Deadline.

2019-06-27 13:02:41: 0: STDOUT: [Redshift] Shader node '/mat/redshift_vopnet1/TEX_DIFF' texture file 'C:/WINDOWS/system32/04_Assets/Textures/custom_uv_diag.png' was not found!

Another side note, I've noticed a difference between $job and $JOB. Point to different locations. $job is always C:/Windows/System32, where as $JOB is project path.

Hmm, maybe that's the problem? Maybe Prism sets $JOB, but some things like deadline don't care about Uppercase or lowercase and so it's picking up $job. Maybe I've just got to also tell Prism to set $job as well as $JOB.

Lastly, something I couldn't figure out, but might be related to this CASE issue, I've got an onProjectChanged Houdini script that sets a $tex variable, hou.hscript('set tex= $JOB"/04_Assets/textures"'), and that ALWAYS works, regardless of whether the $JOB is working correctly or not. That doesn't make sense to me, any ideas why?

Thanks

Update:

Ok so I had these two lines in my Prism_Houdini_Functions.py script

hou.hscript("set JOB=" + job)
hou.hscript('set tex= $JOB"/04_Assets/textures"')

and I've now added

hou.hscript("set job=" + job)

I can reliably reproduce the error on Deadline. Deadline always resolves$job and $tex correctly, but not $JOB. $JOB resolves to C:/Windows/System32 through Deadline, but locally it's correct.

Weird?

 

 

Yes, I have the same problems with $JOB and Deadline. Probably Houdini handles $JOB differently than other variables. I never heard that someone uses $job. It's interesting that it has a default value, but I wouldn't rely on it.

Because of all the problems with $JOB when Prism sets it through Python, I think it would be better when Prism doesn't set $JOB at all. Instead Prism could introduce $PRISMJOB. That seams to work fine with Deadline and it should avoid some confusion.

Would that work for you?

Hey, thanks for the reply

Yes it's fine setting a totally different project variable. I changed it on my side and will continue testing. So far, so good.

Thanks.