Jump to content

Custom Preference


Recommended Posts

Hi OdForcers....

I'm wondering if ther's a way (pref files, variables) to override certain Main Preferences, in my case the Save method to use... in case I want to force certain workstations to have the same saving method (Numbered files in my case).. so ther's no way a workstation can save file without that option turned on..

the reason for this question is that I'm "building" the pipeline for the Houdini FX team which i hope will become "reality" in few weeks and I'm preparing all the scripts and settings that will force the whole team (2/3 people actually :P) to have the same environment and certain options be the same for everyone... for "security" reasons...

for that purpose I'll really appreciate any help from you "pipeline guru" on this..

I menaged to make a link of the hcommon.pref on the $home of those workstation.. but this doenst allow any other preference which is really too much constrictive..

thanks in advance.

cheers

Link to comment
Share on other sites

You can customize the $HOUDINI_PATH variable to good effect.

Just create a houdini directory (you can call it whatever you like) somewhere central and put all the preference files you want to be global to all the users in there. Next in each users environment (either global or just when you/they set up the houdini environment), set the HOUDINI_PATH environment variable. Make sure that directory is put in the $HOUDINI_PATH before all other paths.

By default, HOUDINI_PATH is set when you run Houdini. All shops pretty much take control over HOUDINI_PATH and all of the related enviornment variables. To see these variables, in a shell with a houdini environment set up type "hconfig -a". To see what each variable does in detail, look to the on-line houdini help.

Once you start tinkering with HOUDINI_PATH, you will really want to know about "hconfig -ap". This option to hconfig returns the environment that Houdini would see when run at the shell prompt. Very handy to see how your environment variables are expanded and what paths are actually valid without running houdini.

Link to comment
Share on other sites

thanks.. but that's something I'm looking already and its cool... but what i need to overrider is just couple options from the "main preferences" .. and not a whole hcommon.pref file... which.. with no write permissions.. would make the user not able to customize many other "non pipeline effective" options.. which is fine the user can change.... what i need in this special case.. is the force the "numbering" save file... (CTRL+S or save to auto number save file... NOT the autosave)...

hope this have a way to be done :)

cheers and thanks... all such information are really helpfull now... looking for more and more and.. more :D

Link to comment
Share on other sites

hm..... I'm planning to organize the pipeline using some variables.... like $SEQ, $SHOT...... dunno if this is a good idea... but I'm having problems anyway setting 'em and having such variables in my "Aliases and variables" sheet when houdini is launched... how do i set such sort of variables?

thanks in advance.

cheers

EDIT: forget this... i just found that "exporting" such variables from the bash script I'm using to fire up Houdini .. I then have 'em available inside Houdini ... even if they're not listed on that "Aliases and Variables" preference page.... cheers

Link to comment
Share on other sites

[one' date=Oct 26 2006, 02:18 AM' post='31542]

hm..... I'm planning to organize the pipeline using some variables.... like $SEQ, $SHOT...... dunno if this is a good idea... but I'm having problems anyway setting 'em and having such variables in my "Aliases and variables" sheet when houdini is launched... how do i set such sort of variables?

thanks in advance.

cheers

EDIT: forget this... i just found that "exporting" such variables from the bash script I'm using to fire up Houdini .. I then have 'em available inside Houdini ... even if they're not listed on that "Aliases and Variables" preference page.... cheers

not sure if you've looked at this, but you can also customize file drop down to point to custom directories using your environment variables.

if you create a jump.pref in one or more of you HOUDINI_PATH directories and place $SEQ $SHOT on separate lines in thefile, then when you launch houdini they'll show in the drop down for file lists.

Also if you have multiple diffrent jump.pref in the HOUDINI_PATH, they seem combine together.

Link to comment
Share on other sites

[one' date=Oct 31 2006, 01:58 AM' post='31655]

Hi Jeff,

yeah the jump.pref file is the first of the customizazions I'm using... what i didnt knew was about appending more jump.prefs files... how do I append them? include.. source?

thanks a lot.

cheers.

if your HOUDINI_PATH has more than one location (ie. one for $SEQ and one for $SHOT) and in each of their locations there is a jump.pref both will get sourced when loading houdini.

i'm not sure if you can use the #include, i know that works for other houdini configuration files.

Link to comment
Share on other sites

ooh.. now that makes sense... and sounds one step more on what i'm looking for.

thanks a lot.

now what I'm really wish to do ... is some scripting on stuffs like "when I create this subnet... merge up this scene inside it"... does this sounds stupid or ther's a way to do it? (maybe considering the subnet name.. i would like to load a certain HDA... or enable some stuffs.... dunno yet) eheh.

cheers.

Link to comment
Share on other sites

[one' date=Oct 31 2006, 10:24 AM' post='31664]

ooh.. now that makes sense... and sounds one step more on what i'm looking for.

thanks a lot.

now what I'm really wish to do ... is some scripting on stuffs like "when I create this subnet... merge up this scene inside it"... does this sounds stupid or ther's a way to do it? (maybe considering the subnet name.. i would like to load a certain HDA... or enable some stuffs.... dunno yet) eheh.

cheers.

hmmm.... not exactly sure what you're try to do...

could you perhaps give more detail as what you would like.

do you want an easy way to wrap a scene into an otl or create a copy of your scene using object merges pointing to whats currently in your scene.

whatever it isi'm sure its possible to do with hscript! ;)

Link to comment
Share on other sites

well.. the point is.. I'm starting from scratch the "FX supervisor" job ... and FX TD .. hence I'm now involved (alone) in building a proper pipeline that will fit a small team.

My objective is to create a sort of template scene where the operators can start from.

our pipeline is XSI based... and I'm in charge of doing most of the FX (others are done in XSI by another studio in Spain).

Today I spent the day building a directory (database) structure on our NAS for a $JOB centric management of the whole project. (JOB_ROOT and JOB_DATA manily... where DATA are rendering and such "data" that wont be backuped once the project is finished... )

What I'm in now... is firstly understand (and here yours advices comes like water in desert) the best way to create a pipeline which better fits the needs for a small team working on a big project (a CG movie actually).... also ... I'd add such people are junior Houdini artists since I did trained 'em (doh) during latest 2 weeks....

Its months I'm doing such Houdini pushing in my company and now we're close to buy the Licenses and we're in so short time that I have to be prepared once everything will start.

anyway to make the story short, what I did until now is creathing a houdini.sh script which sets all needed variables ($JOB_ROOT, $JOB_DATA) and a template scene with some others variables ($SEQ) and a scene preset which include the "collada ready" subnet that will host XSI imported cameras with animations and camera settings.

the "problem" i'm trying to figure the best way to handle.. is that since is a movie... for a certain sequence.. it might be lots of shots (around 20?) which should share same VOP networks for example... same bgeo (set or chars)... and I'd like such "sequence shared" data to be loaded in the "shots" scenes... for example.. and if anything changes (which happens a lot in a unorganized company) I'd like to have an easy way to update such 20 scenes.... instead of having "statically loaded" bgeo.... (that's why i also asked about the HDA manager i saw from London roadshow from C.o.r.e. guys during the Wild demos...)

it might still sound confused... cause I actually am... I need advices now.. maybe not really solutions with scripts or else... now i need advices... to handle such task.

scripting is something i like.. and i might not be expert yet doing this in houdini .. but first I'd like to have some guidelines from you guys who did managed to work on big projects.

the reason why I'm trying to make the "big job" now.. even for a really limited team... is because this movie.. is the real basis to build a proper FX team for future projects... and I wont start again from scratch at next project just because now I did the work with the "day by day" method.

hope this now makes some more sense :)

thanks a lot for your patience.

cheers.

Link to comment
Share on other sites

[one' date=Oct 31 2006, 02:20 PM' post='31670]

Today I spent the day building a directory (database) structure on our NAS for a $JOB centric management of the whole project. (JOB_ROOT and JOB_DATA manily... where DATA are rendering and such "data" that wont be backuped once the project is finished... )

Who is going to set the values for these variables? You, when you set up each shot? The user?

If it's you, then you could make it all script based, but your life won't be much fun.

If it's the users, then you might consider an HDA that the user puts down, and which simply has menus where she can choose appropriate values for these things. Then she clicks on a button, and that runs your script which sets everything up.

Is this the sort of thing you are talking about? Or am I on drugs? (well, am I? Why don't I know the answer to that questions? ;) )

Link to comment
Share on other sites

Who is going to set the values for these variables? You, when you set up each shot? The user?

If it's you, then you could make it all script based, but your life won't be much fun.

If it's the users, then you might consider an HDA that the user puts down, and which simply has menus where she can choose appropriate values for these things. Then she clicks on a button, and that runs your script which sets everything up.

Is this the sort of thing you are talking about? Or am I on drugs? (well, am I? Why don't I know the answer to that questions? ;) )

Hi Craig,

These variables are set from the bash script which I use to launch houdini, and which is linked to $HOME/bin for the users, the $SEQ variable instead is set with a variable for the scene hence is set by the users. Now I'm using the Variables and Aliases method for this variable which I hope wont be too hard even for a junior to set but yeah, I agree I'd have a more easy life if ther's a big red button with "Write down sequence/shot number here" label... but hey, are we talking about people who wants to become professionals or what? :D.. I'm trying to make the whole thing more user friendly as possible.. but there's still some things that have to be on artists hands...

btw JOB_ROOT and JOB_DATA points to something like

JOB_ROOT -> /mynaspath/projects/${project}/sequences (where all sequences/shots scenes goes)

JOB_DATA -> /mynaspath/projects/${project}/storage (where all baked geo and renders goes)

so that I'll can backup the JOB_ROOT entire data without having to make a huge useless backup.... and I'll can clean up JOB_DATA when production is finished (or back it up on a separated storage media in case)

the bash script expect an argument which sets $project.

luckly now I'm talking about couple of artists in my team, so maybe that's why i put more trust on them than I'd should, I dunno...

I'd investigate about such "buttons" or HDA script which load needed stuffs for the shot of the relative sequence now... I just have no starting ideas on this.

cheers

Link to comment
Share on other sites

the environment variable approach is a good start.

i would write a script to have the environment variables get set automatically for the artist, and even moving them to a their shot directory for them to do their work.

i don't know what shell your using (tcsh/bash), but remember that running a shell script will only create variables local to the script, where as sourcing the script can create environment variables available outside of the script. and when you launch houdini all the environment variables from the shell are accessible in houdini.

having an asset management system is good to keep track of different versions used in shots, but setting up something like that from scratch is a very time and resource intensive job. Also, if shot count is roughly 20 or so, then it maybe overkill even to purchase an asset management system, let alone build one from scratch.

I would leverage assets (otls) to worry about all of the version control. So everything that is built is turned into an asset, which when it is used in a shot will get automatically updated as the asset gets updated. The only concern with this is that you don't want anyone to be able to change an asset.

everytime you make a change to an asset backups are automatically generated so you have all the versions of the asset. There are some houdini specific environment variables that can help you customize ithis for your production.

hope that helps!

Link to comment
Share on other sites

Hi Jeffrey,

I'm using Bash.. and the bash script sets the PROJECT, JOB_ROOT and JOB _DATA variables... then it sources the houdini setup file... and it launches houdini. I then wrote a jump.pref file which also have $JOB_ROOT and $JOB_DATA entries inside... which works perfectly.... such variables are also available in houdini as well...

$SEQ and $SHOT variables are set within the scene from the user.. using variables.... I would set it in the bash script but then I need the user to set it every time as arguments from shell... I'll see how to manage this.

about assets, that's totally right... I'm thinking about making HDA for every effect... but sadly I have no much time to spend on that eighter, and cause of my "optimized and flexible" way of thinking... i wont make HDA which needs too much tweaking after its being created... that wouldnt make the HDA.. a real asset. But I'm pointing at making as much assets as I can... in fact the directory structure already include OTL directory... which is symbolic linked to $HOME/houdini8.1/otls for every user... like scripts folder.. and couple of others.... since i'm sure they wont need to change such directories anyway I "centralized" some of 'em.. and apparently this works pretty well since everything is up to date for every user.. and at the same time users doenst have write permissions there...

about specific environments variables... what I'd really like was to set, well... to force, some Houdini settings like "incremental file name" when saving... which was actually the topic for this thread... do you have any trick about this?... forcing hcommon.pref is definetly too much....

I thought about using an asset manager... but budget is so limited here (not counting time) that the only way I'd have is writing my own python/php asset manager to use with Houdini .. but i think I'll give up for this project... I'll give a try during spare time maybe... but again... I seriously need to improve my hscripting knowledge first... which I'd like to see some example about somewhere....

thanks a lot for your advices... I'll keep you posted with my updates for your crits and comments.

cheers.

Who is going to set the values for these variables? You, when you set up each shot? The user?

If it's you, then you could make it all script based, but your life won't be much fun.

If it's the users, then you might consider an HDA that the user puts down, and which simply has menus where she can choose appropriate values for these things. Then she clicks on a button, and that runs your script which sets everything up.

Is this the sort of thing you are talking about? Or am I on drugs? (well, am I? Why don't I know the answer to that questions? ;) )

hm.... now that i read your reply for the third time... and after re read the whole thread.. this makes a lot more sense to me... hm... I guess i'll love to make this stuffs :D ...

ok then ... I guess I have to spend much more time on hscript reference guide now...

:) I'll surely prompt here with few questions ;)

thanks!

cheers

Link to comment
Share on other sites

ok... first question about an HDA called "scene_setup" which I wish to act as a, wonder what, scene variables and stuffs setup.....

from the HDA interface I'd like a parameter called "sequence" to set the variable "seq" ....

I tried what first comed to my mind after using "disable when" feature...

parameter is called "sequence" and its interger and i wrote the following in the "callback script" field:

setenv seq={sequence}

but this gave me a variable called "seq" and with "{sequence} as value... how do I set variables from the HDA parameters?

also... "events" tab looks a bit limited to me.. or maybe I just need to understand how to run hscript command or scripts from paramenters?

cheers

EDIT: sorry.. I'm spamming here.. help page already gave me the answer ...

setenv seq=$script_value

is the answer to my question...

I promise I'll read the help before asking next time :).. i really didnt expected to find the answer so easly.. that's why...

Link to comment
Share on other sites

..ok I'm stuck on this.

my "scene_setup" HDA... does various things one of 'em is act as a global scene scaler for the connected output to it...

what I did until now is creating a NULL OBJ which was downscaled to 0.1 so that every other OBJ parented to it... would be scaled accordingly.

Now I'm trying to use my HDA to do this but what It seems I cant do is create an expression to the "scale" parameter in transform tab, it works when I create the expression.. but once I reload the asset (or reopen the scene) such expression disappears and the scaling doesng work anymore.

what I did until now is two HDA parameter, a toggle and a float slider.

The toggle (scale_enable) enable or disable the float slider (scene_scale) with a "disable when" check.... then i set

if(ch("scale_enable"), ch("scene_scale"), 1)

expression in the "uniform scale" parameter....

it works until i reload the HDA... the expression disappears.

so the question is... how do I create such setup?

thanks in advance.

cheers.

EDIT: SOLVED

from subnet tab of the HDA... choose the appropriate "Output Transform"... and set the expression on the same object.....

Link to comment
Share on other sites

HI,

If I use an HDA .. inside an HDA... is there a way to "promote" all the parameters of the inner HDA inside a Folder of the contaning HDA so that when I update the inner HDA the containing gets updated as well?

cheers.

EDIT: omg its friday night.. i should get a life... I'll lay on the sofa watching a movie and drinking a Guinness .... cheers.

Link to comment
Share on other sites

[one' date=Nov 3 2006, 03:01 PM' post='31761]

HI,

If I use an HDA .. inside an HDA... is there a way to "promote" all the parameters of the inner HDA inside a Folder of the contaning HDA so that when I update the inner HDA the containing gets updated as well?

cheers.

EDIT: omg its friday night.. i should get a life... I'll lay on the sofa watching a movie and drinking a Guinness .... cheers.

there isn't something easy that you can do, but since the UI is just the dialog script you can get it, change it, and put it back

via a script.

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...