Jump to content
hopbin9

Configuring $HIP and a project directory.

Recommended Posts

I know that in Maya and 3ds Max you can define a folder to hold all the files associated with your project.

In Houdini there is the $HIP variable, which defaults to my C:/users/username folder every time I start Houdini.

Is there a way to define a new location to store files for a project I'm working on?

Sorry if this is a noob question, but I can't find it anywhere in the manual.

  • Like 1

Share this post


Link to post
Share on other sites

I know that in Maya and 3ds Max you can define a folder to hold all the files associated with your project.

In Houdini there is the $HIP variable, which defaults to my C:/users/username folder every time I start Houdini.

Is there a way to define a new location to store files for a project I'm working on?

Sorry if this is a noob question, but I can't find it anywhere in the manual.

lol, noob... no worries everyone start somewhere, and I'm still learning every day. I couldn't find the help documentation for that specifically either....

$HIP is where you save your .hip file. So if you save your Test.hip in c:/users/username/Test.hip that will be the spot where $HIP looks. So $HIP/Textures/Test_Image.rat, your file will be found in c:/users/username/Textures/Test.rat There is no such thing as set project directory like maya

It's often easiest to leave your hips not in a sub folder of your project directory like Max or Maya, and leave them on top and drop your iterations into a backup folder later, other wise you need to back out of your directory. So say you have a project folder with your .hips in scene and textures in another you'll need to type $HIP/../Textures/Test.rat Ok it's not really complicated, but I'm lazy

Look up, Expressions in file names, and, maya transition guide, those will help you on some similar stuff

Share this post


Link to post
Share on other sites

There are two ways.

1. You can go into Edit->Aliases and Variables... and set it there.

2. Edit your 123.py script. Search the houdini help for Session Independent Scripts.

Share this post


Link to post
Share on other sites

Also, search the help for Configure. If you prefer, you can also use 123.cmd, which is written in hscript instead of python.

Share this post


Link to post
Share on other sites

I'm glad someone asked about this...

I was just thinking about it also.

I'm thinking about writing some kind of front end that when Houdini starts, it could/would list a set of projects from which you would choose to open, and have a button to create a new project.

After working on some systems,I've really become accustomed to this and find it useful for organizing small projects or shots.

I'd be interested to hear anyones thoughts on such a thing. Pros/Cons, etc.

Share this post


Link to post
Share on other sites

I'm glad someone asked about this...

I was just thinking about it also.

I'm thinking about writing some kind of front end that when Houdini starts, it could/would list a set of projects from which you would choose to open, and have a button to create a new project.

After working on some systems,I've really become accustomed to this and find it useful for organizing small projects or shots.

I'd be interested to hear anyones thoughts on such a thing. Pros/Cons, etc.

I wouldn't use it, I allways try and disable those on maya, and adobe. I shut off houdini's help browser as it is. The open recent files tabs is enough for me. If it helps other people that would be cool, but please leave a turn off switch.

Share this post


Link to post
Share on other sites

In Houdini there is the $HIP variable, which defaults to my C:/users/username folder every time I start Houdini.

Is there a way to define a new location to store files for a project I'm working on?

$HIP already provides a project-based workflow. Houdini won't create a new directory for you though. So in your File > Save dialog, you need to first create a new directory and then save your .hip file there. $HIP will now change to that new directory. Now use "$HIP/path/to/file" for all your files related to the same project.

Share this post


Link to post
Share on other sites

I tend to use the $JOB variable, my workflow/setup looks like this.

I usually create a project dir, in this folder I keep subfolders for my hip files, textures, .bgeo and so on.

ProjectX - main dir

ProjectX/hip

ProjectX/tex

ProjectX/sim

The only thing you need to do to make this work properly is set the $JOB variable in your current hipfile. I usually save my hipfile in the hip dir and than I go to edit/Aliases and Variables, there you can copy the path to your current hip file and copy it in the field next to $JOB. Next simply remove the part of the path so it points to the project root folder and you're all good to go. When you point to any texture or write to a file make sure you have the $JOB var in your path. Every file dialog has the $JOB var in the left menu bar.

The advantage of this method is that you can have a nice organized folder structure, thus when you move your project dir you only have to update your $JOB variable and you're entire setup is ready to rock :-)

Share this post


Link to post
Share on other sites

Within the same theory of thoughts, to add to this. Preflights is a good tool to use for organization. If you do need to move your project folder and it is scattered everywhere, or even if it is not and you used a bunch of custom .otl you can use preflight to help copy and reorganize your directory. I use it for archiving finished projects(loading stuff up to the cloud is another use). You can just save your default .hip or set your default job directory to some place completely new and then you can either drag and drop or change the non-relative paths to make sure everything is in the appropriate place. This was real nice when you multiple final-ed shot that all use the same assets, too.

Share this post


Link to post
Share on other sites

Thanks guys,

This will make it a lot easier to organize my projects. I also didn't know $HIP changes after a save as.

Share this post


Link to post
Share on other sites

This will make it a lot easier to organize my projects. I also didn't know $HIP changes after a save as.

I didn't know this either! :blink:

Does the $HIP var just get stored with that particular .hip file?

Share this post


Link to post
Share on other sites

$HIP just refers to the directory of MyCurrentProject.hip. I'm not sure what the technical is to it, it just refers to the directory of where you saved. You move your MyCurrentProject.hip and the $HIP moves. It's magic...

Share this post


Link to post
Share on other sites

$HIP is the path to your .hip file.

$JOB is the path to a working area where your otls, config, scripts, etc live. For example, in a studio, every show will have a $JOB variable set so that each show can have their own customized configuration. This is pretty much a localized copy of all the stuff in $HFS/houdini.

Share this post


Link to post
Share on other sites

The corollary to $JOB is $HSITE.

$HSITE is another environment variable you can set where you manage/place all your shared resources. It is a good idea to duplicate the directory structure in $HFS/houdini ($HH for short).

Watch out as $HSITE needs to contain a houdini<x.y> directory to match your current release major and minor version. For example you need a houdini11.0 in $HSITE when using a Houdini10.0 release). If no such directory exists, Houdini will not search in $HSITE. This is a good thing. You may have release specific stuff especially in the dso and python directories.

I tend to set up $HSITE with the following base directories:

$HSITE/
    houdini11.0/
        desktop
        geo
        help
        otls
        pic
        presets
        python2.5libs
        python2.6libs
        scripts
        shop
        soho
        toolbar
        vex
        vop

On linux you can use sim links for shared directories that are not release specific like pic and geo (well that is if the geo format hasn't changed between releases...). I haven't tried windows folder aliases for that.

Btw I also use this path set up in $JOB for the same reasons. With $JOB, you can either have the individual directories right in $JOB or you can put them in a local "houdini" directory without the release major and minor values. I forgo the local "houdini" directory in $JOB but that's just me. Your choice as it doesn't matter in the end. I happen to only use Houdini so that works fine for me. :) If you have a project directory and you are using other applications then it may be best to put houdini specific files in a local houdini directory.

If you use $JOB and $HSITE together, then you "can" create and use a local hip directory to save hip files for a neater root project folder experience. The only exception is if you rely on $HIP to reference directory files as it makes things easier without the local "hip" project folder.

If you really want to use $HIP and save hip files in a local hip folder in your project directory, you can type paths like this:

$HIP/../pic/my_image.rat

where ../ means go up one directory in shell path parlance. This "will" work but is not supported natively in the file chooser when you browse for files. $HIP most likely will be expanded for you.

----

One thing not mentioned in this discussion is if you keep things to the directory standard in $HH ($HFS/houdini) and you set up your enviornment variables correctly for the current job ($JOB and $HSITE), then you can reference images, geometry and more in these folders without paths.

For example, if you have a "pic" directory either in $HIP/pic/, $JOB/pic/, $JOB/houdini/pic/, $HSITE/houdini<x.y>/pic/ or $HFS/houdini/pic/ (there by default), you should be able to reference any image in these directories without a path and the file will reference properly. You can test this out real quickly by typing in Mandril.rat in a Trace SOP Image Input parameter with no path to that file. Actually the Trace SOP itself references circle.pic without a path by default and is picking up this image automatically from $HH/pic/.

Yes I know the file chooser will put in the full path or partial using environment variables but you can strip all that off and just leave the file name if you wish and that assumes that the correct path names and environment variables set up.

Up to you. There's no real benefit either way. Just a simplification if you wish to use it. I know that many facilities have based everything on the maya directory structure so this may not work (too bad IMHO but no biggie).

----

For those lovers of double click to launch files using Windows and Mac invariably using $HIP because it works nicely in that kind of a scenario, I always put a start_here.hip file that I double click on in the root of the project directory (along with all the other .hip houdini files) that you can double click on to start a fresh Houdini session and have full access to all the local directory files and setup scripts mentioned above. Just makes it easy as the save as defaults to $HIP which is the hip file launch directory before your first save.

Just so I don't get scorned by the power users, I do this when building up demo files to be shared with the least amount of pain as well as for live demos since I don't scare away anyone by using a shell (and avoid the "what's a shell?" question or the "ah I see you have to use a shell with Houdini, that figures" comment). lol

Share this post


Link to post
Share on other sites

I didn't know this either! :blink:

Does the $HIP var just get stored with that particular .hip file?

No I don't think it does. I think the $HIP is just a variable that holds the path to where the currently loaded .HIP was loaded from. It changes every time you save as, or load a hip file. As long as the hip file's location is different from the previous.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×