Q: mantra output file name variables?

   5041   4   1
User Avatar
Member
147 posts
Joined: March 2014
Offline
Hi,

Looking at the documentation on the mantra ROP, is there no way to set variables for e.g. folder to render to, scenename, renderlayer/renderpass, camera etc. in the output name?
This is very common workflow with Softimage and Maya, and for now I cannot find something similar in the Mantra ROP expression docs.

What I mean is functionality like this:
Softimage: http://download.autodesk.com/global/docs/softimage2014/en_us/userguide/index.html?url=files/rendering_props_OutputPathTemplates.htm,topicNumber=d30e61345 [download.autodesk.com]
or
Maya: http://help.autodesk.com/view/MAYAUL/2016/ENU//?guid=GUID-546B9BE6-612D-4D21-948E-5DF542CAE64B [help.autodesk.com]

thanks,

rob
Edited by RobW - March 13, 2017 06:51:44
Apprentice Attribute / Houdini 17.0.381 / GTX 970 - driver 411.63
User Avatar
Member
7803 posts
Joined: Sept. 2011
Offline
I don't see why you wouldn't be able to do that with an expression in houdini. There isn't really a direct parallel to renderlayer from maya, but the closest is probably the rop itself, or maybe takes, you can put either in the file name easily. Putting the camera name in is fairly simple too. It's up to you to create variables that represent file locations of interest. In your environment, export variables as needed to build your path. Most production pipelines will have scripted environments containing variables representing every little bit of metadata, and some use python modules for path construction.

for example:
on a rop named smoke_bty:

camera = "/obj/sc0034_trackcam_mp1"
vm_picture = $SHOT_PATH/image/$TASK/${SHOT}_${TASK}_${SCENE_NAME}_${OS}_v`padzero(4,$VER)`/`opname(chsop('camera'))`-${RESNAME}_${COLORSPACE}_exr/${SHOT}_${TASK}_${SCENE_NAME}_${OS}_v`padzero(4,$VER)`-`opname(chsop('camera'))`-${RESNAME}_${COLORSPACE}.$F4.exr

using exports:
/ -> setenv VER=1
/ -> setenv TASK="fx-smoke"
/ -> setenv SCENE_NAME = "shipcrash"
/ -> setenv RESNAME = "3kred"
/ -> setenv COLORSPACE = "acescg"
/ -> setenv SHOT_PATH = "F:/data/projects/coolvfx/sc0034"
/ -> setenv SHOT = "sc0034"
you would probably want to build a set of scripts for automating the creation of such variables, and even updating them when the scene file is saved. Some variables such as version/scene name, could be extracted directly from the scene file name using regex.

If you want the render pass name in the file name, I think you can do that using the extra image planes list, and enabling ‘different file’. This allows for a unique path for each image plane.

Another option to try is “Extract Image Planes” option (add from render properties). I haven't experimented with this option, but I know this is used by the baking tools.
Edited by jsmack - March 12, 2017 14:09:03
User Avatar
Member
147 posts
Joined: March 2014
Offline
Maya: There's a script/plugin for that.
Houdini: There's an expression for that……

I appreciate the long answer and example, but it would be nice to have Houdini behave a little bit more user friendly in these cases. Would it hurt to have at least some basic variables available in a dropdown, so one can quickly and easily set up a couple of variables for a output name?
This stuff is very handy, and I have been using this functionality in Softimage and Maya for years.

Don't get me wrong, I do like Houdini, despite the strong learning curve in certain areas of the application, but stuff like this shouldn't have to resemble your example, that hurts my eyes as well as my brain

rob
Apprentice Attribute / Houdini 17.0.381 / GTX 970 - driver 411.63
User Avatar
Member
918 posts
Joined: March 2014
Offline
You could use Menu->Edit->Alias and Variables… or Alt+Shift+V and add variables there.
At the start of a project I tend to setup my related vars there (e.g.: REND = \\network_drive\share\projects\projects\renders) and use $REND in the ROP.

Hope this is less expressionistic
Andy

P.S.: Have a look at qlib [github.com], there's an environment node that also does this and more.

edit:
scene name = $HIPNAME
render node name = $OS

You can of course concatenate: $JOB/$REND/$OS/$OS.$F4.exr in the ROP
Edited by Andy_23 - March 13, 2017 08:15:54
User Avatar
Member
147 posts
Joined: March 2014
Offline
Hi Andy,

Thanks for that tip.
I just have to accept this is all a bit more work than in Softimage and/or Maya.

rob
Apprentice Attribute / Houdini 17.0.381 / GTX 970 - driver 411.63
  • Quick Links