Jump to content

Noob Maya to Houdini question.


hkspowers

Recommended Posts

Hello everyone I am currently a Maya user and I am in the process of learning Houdini. I have a simple question that I have not really seen addressed in most tutorials. In Maya we have "projects" which is a directory created for each set of Maya scenes you put into it. So There is a place you save scene files, a place you save textures, and place you save particle caches etc... And all of this is found in a self contained project directory. I was wondering if there is an equivalent in Houdini? I have been saving my scene files under C:\Program Files\Side Effects Software\Houdini Is this path ok or is there a proper directory I should save in?

Thanks in advance,

James

Edited by hkspowers
Link to comment
Share on other sites

houdini doesn't create a "Maya project" for you. You simply have to generate the directories yourself.

Generally you will set environment variables such as $JOB. This could be any directory really.

I personally tend to work relative to $HIP (which is the directory where you .hip file will be saved) when I am working on personal projects. Relative to $JOB at work.

You can then make your own subdirectories such as:

/geo

/ifd

/img

/sim

I would also not work under the C:\Program Files\Side Effects\....

First of all, it's on your C: drive where your program was installed. If for some reason you have to reformat your C:, you have just lost all your data (if you do not back up regularly - and you should), So why not instead save your data files on your D: drive so that when windows or any other operating system requires a clean install you still have all your data nicely on disk.

The other thing to avoid is whitespaces in your path (if ever you are on linux it becomes really tedious having to debug paths with whitespaces), same thing if you save out caches -> don't create directories with whitespaces, use underscores instead or the "mel notation" -> myBigProject/my_big_project. Just make something like: D:\HKSPOWERS\projects\my_project\scene_v01_r01.hip

Link to comment
Share on other sites

houdini doesn't create a "Maya project" for you. You simply have to generate the directories yourself.

Generally you will set environment variables such as $JOB. This could be any directory really.

I personally tend to work relative to $HIP (which is the directory where you .hip file will be saved) when I am working on personal projects. Relative to $JOB at work.

You can then make your own subdirectories such as:

/geo

/ifd

/img

/sim

I would also not work under the C:\Program Files\Side Effects\....

First of all, it's on your C: drive where your program was installed. If for some reason you have to reformat your C:, you have just lost all your data (if you do not back up regularly - and you should), So why not instead save your data files on your D: drive so that when windows or any other operating system requires a clean install you still have all your data nicely on disk.

The other thing to avoid is whitespaces in your path (if ever you are on linux it becomes really tedious having to debug paths with whitespaces), same thing if you save out caches -> don't create directories with whitespaces, use underscores instead or the "mel notation" -> myBigProject/my_big_project. Just make something like: D:\HKSPOWERS\projects\my_project\scene_v01_r01.hip

Thanks a million for the in depth answer. Really helps a lot, I took a look at your site pretty nice work man. I especially like the feather system and the flocking setup.

James

Link to comment
Share on other sites

no problem, often I help out other users with scene files as well. If you want to see some cool examples, have a look at some of the previous posts I have made (you can do it through my user profile). They tend to be examples of effects work. Have fun learning houdini!

Link to comment
Share on other sites

  • 2 weeks later...

Since I was asked and I think it is a better idea to share the information here, so others can understand this better as well:

* Were you suggesting to create folders (directories) in $HIP or $JOB variables (?)

* What are environment variables exactly (related to location on harddrive?). Can we create our own environment variable?

* What is the difference between $HIP and $JOB (I didn't understand the explanation about them in the local variables list in the help file)?

* If I am having a scene file of a textured model and say I want to upload it on a forum, does a .hipnic file of the same scene contain texture image or I have upload image seperately?

could you please help me with this..

$HIP and $JOB are environment variables, you can read more about them here:

http://odforce.net/wiki/index.php/CustomizingHoudini

$HIP is generally defined as soon as you save your scene file in a directory. That directory then becomes the directory where your .hip file is located. The path to that directory is stored in a global variable inside of houdini called $HIP. This is really convenient as you can make everything relative to your $HIP, which makes it really easy to copy/move/share files as everything is relative to the scene file.

for example: a texture:

You could have saved your scene file in:

C:/peter_files/houdini/my_project/my_scenefile_001.hip

Or if you are in linux:

/user/peter/peter_files/houdini/my_project/my_scenefile_001.hip

Either way the $HIP will contain:

C:/peter_files/houdini/my_project/

or

/user/peter/peter_files/houdini/my_project/

So if I now define that a texture can be found under:

$HIP/textures/my_image.jpg

-> this implies I have made a "textures" directory myself (houdini will not create all the directories for you and to be honest this is fairly good because you tend to deal with a lot more customized data and directories, so letting the user create what he needs is generally better. You can however create scripts that set up all these directories for you if you really want them - and in bigger pipelines this is exactly what happens).

Now this texture is relative to $HIP.

Which means that if I zip up the "my_project" directory and give it to you and you are on windows and you put it somewhere, it will still work, because I made my paths within the file relative to $HIP, rather than stating that the texture is at: /user/peter/peter_files/houdini/my_project/textures/my_image.jpg it is at $HIP/textures/my_image.jpg

It also implies that the image(which we will call "asset" from now on) is not included in the scene file. It is seperately on disk. So if you share files on the forum, you can either do tests and use the "default.pic" image, which is either a picture of a butterfly or a monkey (don't remember). And this image is part of the houdini distribution, so everyone has it by default. If that is the case, then you can just upload the .hip without needing anything else. Bus as soon as you use your own images, models, or anything that comes from a different source, you will have to provide it with your hip file. That's why it sometimes is convenient to zip up your $HIP directory, which will include your textures, bgeo or obj models, or other scripts or assets you might be using.

You can create your own environment variables and this is where you start getting into customization. This is explained on the wiki.

$JOB is generally set to the shot you are working on. Because within a shot you might be working on a lot of different elements and each element lives in a different place.

For example: Let's call our shot "Avalanche_close_up_003" and it is for the movie: "The return of the Horrible Snowman", wich in production is shortened to "RHS"

$JOB could then be:

/data/3d/RHS/aval_003/peter/

$JOB will probably be defined for me by some startup script.

$HIP could then be:

/data/3d/RHS/aval_003/peter/scenes/snowclouds/

and my hip file could then be found under

$HIP/snowclouds_v01_r25.hip

or under

$JOB/scenes/snowclouds/snowclouds_v01_r25.hip

Within your houdini session you can also see these variables by going to:

Edit -> Aliases and Variables

This allows you both to create new "global" variables and to see the predefined ones in your local session. So as soon as you close houdini, any custom defined variables will stay inside that scene file, but not in your system. For defining environment variables you have to check the wiki, environment variables are system wide, which means that it does not matter whether you have houdini open or closed, they are defined outside of Houdini, Houdini can simply make use of them when it finds them.

Hope this helps.

Edited by pclaes
  • Like 3
Link to comment
Share on other sites

  • 1 year later...

Since I was asked and I think it is a better idea to share the information here, so others can understand this better as well:

$HIP and $JOB are environment variables, you can read more about them here:

http://odforce.net/wiki/index.php/CustomizingHoudini

$HIP is generally defined as soon as you save your scene file in a directory. That directory then becomes the directory where your .hip file is located. The path to that directory is stored in a global variable inside of houdini called $HIP. This is really convenient as you can make everything relative to your $HIP, which makes it really easy to copy/move/share files as everything is relative to the scene file.

for example: a texture:

You could have saved your scene file in:

C:/peter_files/houdini/my_project/my_scenefile_001.hip

Or if you are in linux:

/user/peter/peter_files/houdini/my_project/my_scenefile_001.hip

Either way the $HIP will contain:

C:/peter_files/houdini/my_project/

or

/user/peter/peter_files/houdini/my_project/

So if I now define that a texture can be found under:

$HIP/textures/my_image.jpg

-> this implies I have made a "textures" directory myself (houdini will not create all the directories for you and to be honest this is fairly good because you tend to deal with a lot more customized data and directories, so letting the user create what he needs is generally better. You can however create scripts that set up all these directories for you if you really want them - and in bigger pipelines this is exactly what happens).

Now this texture is relative to $HIP.

Which means that if I zip up the "my_project" directory and give it to you and you are on windows and you put it somewhere, it will still work, because I made my paths within the file relative to $HIP, rather than stating that the texture is at: /user/peter/peter_files/houdini/my_project/textures/my_image.jpg it is at $HIP/textures/my_image.jpg

It also implies that the image(which we will call "asset" from now on) is not included in the scene file. It is seperately on disk. So if you share files on the forum, you can either do tests and use the "default.pic" image, which is either a picture of a butterfly or a monkey (don't remember). And this image is part of the houdini distribution, so everyone has it by default. If that is the case, then you can just upload the .hip without needing anything else. Bus as soon as you use your own images, models, or anything that comes from a different source, you will have to provide it with your hip file. That's why it sometimes is convenient to zip up your $HIP directory, which will include your textures, bgeo or obj models, or other scripts or assets you might be using.

You can create your own environment variables and this is where you start getting into customization. This is explained on the wiki.

$JOB is generally set to the shot you are working on. Because within a shot you might be working on a lot of different elements and each element lives in a different place.

For example: Let's call our shot "Avalanche_close_up_003" and it is for the movie: "The return of the Horrible Snowman", wich in production is shortened to "RHS"

$JOB could then be:

/data/3d/RHS/aval_003/peter/

$JOB will probably be defined for me by some startup script.

$HIP could then be:

/data/3d/RHS/aval_003/peter/scenes/snowclouds/

and my hip file could then be found under

$HIP/snowclouds_v01_r25.hip

or under

$JOB/scenes/snowclouds/snowclouds_v01_r25.hip

Within your houdini session you can also see these variables by going to:

Edit -> Aliases and Variables

This allows you both to create new "global" variables and to see the predefined ones in your local session. So as soon as you close houdini, any custom defined variables will stay inside that scene file, but not in your system. For defining environment variables you have to check the wiki, environment variables are system wide, which means that it does not matter whether you have houdini open or closed, they are defined outside of Houdini, Houdini can simply make use of them when it finds them.

Hope this helps.

Thanks,pclaes. This is really helped.

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...