Galleries in production

   8845   13   5
User Avatar
Member
655 posts
Joined: Feb. 2006
Offline
I am doing some RnD to see if we can use Galleries as a vehicle to our presets and I am finding it very uncomfortable.

Creating a gallery does not seem to work so I had to copy an existing one, delete the entries and add mines.

Furthermore, I want to change the icon on the gallery items to something nicer than a simple ball but when I edit the item the icon is not loaded and seems there should be some management tools to insert these images inside the gal file.

Also the whole subnetwork is a pain, finally I discovered that by editing the item in a gallery and changing the Subnetwork name I automatically create one.

Anyway, tons of surprises and a lot of potential but unfortunately the implementation is not very nice.

Are there anything I have missed? even in the HOU module documentation is difficult to figure out what is going on.

thanks in advance
User Avatar
Member
655 posts
Joined: Feb. 2006
Offline
Solved the icon thing… I have to re-start Houdini.

bummer
User Avatar
Member
1904 posts
Joined: Nov. 2006
Online
We attempted to not only use galleries for a variety of presets but also to integrate them into our tool manager. Sadly both of these attempts were quite unsuccessful due to the rather poor HOM support, issues with namspacing, as well as just general clunkyness.

Unfortunately to me, galleries get lumped into the pile of marginally useful technology along with things like shelf tools and configurable menus.
Edited by - May 1, 2014 12:17:45
Graham Thompson, Technical Artist @ Rockstar Games
User Avatar
Member
8506 posts
Joined: July 2007
Online
personally I use galleries (or Tool Palette in network view) to store template setups and presets and I find it quite easy to use and useful

to create gallery just right-click any node/Save To Gallery…
and if you provide non-existing .gal file in Gallery Path, it will be created

it's more like management of copy/paste cache since once you drag anything from gallery it doesn't have any connection to gallery item

it can however be nice extension of otl system as you can store presets for your otls in the gallery and those will become available from gear menu on your asset as well

What do you mean by Subnetwork? you don't have to make a subnet to save something in the gallery, only if you want to have group of nodes as single gallery entry
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
1769 posts
Joined: Dec. 2006
Offline
hi!
We distribute qLib with gallery items, which are part networks and part presets, gallery items are showing up at the preset gear menu.

The gallery items are on the server, so they are used by everyone.

Attachments:
galleryItems01.jpg (201.8 KB)

daniel bukovec | senior fx td | weta digital
qLib -- http://qlab.github.io/qLib/ [qlab.github.io]
User Avatar
Member
614 posts
Joined: Aug. 2008
Offline
we do use them too. as to store presets or to share subnets along other artists.
User Avatar
Member
267 posts
Joined: July 2010
Offline
Wow - can't believe ive never used this feature before! - Im now going bat shit crazy creating galleries….
Director @ Valkyrie Beowulf
www.vwulf.com
https://linktr.ee/neilrognvaldrscholes [linktr.ee]
User Avatar
Member
19 posts
Joined: Feb. 2006
Offline
Continuing on with this topic. I think galleries are awesome, but I'd like to manage them better within our pipeline.

Ideally I want to be able to have files/folders containing individual gallery entries so that I can store them in git, version manage them, and then “compile” them into a single gallery file for Houdini to ingest. Something like an hexpand/hotl equivalent, but for Galleries.

Has anyone found a way of expanding the binary gallery files into something more useful? A single gallery entry can be unzipped and the contents unzipped again to show the contents. It's of limited use though as I think some data gets skipped. Not to mention, as soon as you add extra entries, it isn't a valid zip file anymore.

I've come very close with the Python HOM in creating gallery files. You can run the following python function from Hython (i.e external to Houdini) and it will create a gallery file based on data I've loaded from a json file that's created by writing out the exact same properties as show below.

def create_new_gallery_from_entry(path, data):
    entry_name = data["name"]
    galleryEntry = hou.galleries.createGalleryEntry(path, entry_name, None)
    galleryEntry.setAllowIconRegeneration(data["allow_icon_regeneration"])
    galleryEntry.setCategories(data["categories"])
    galleryEntry.setDescription(data["description"])
    galleryEntry.setHelpURL(data["helpurl"])
    galleryEntry.setIcon(data["icon"])
    galleryEntry.setKeywords(data["keywords"])
    galleryEntry.setLabel(data["label"])   
    galleryEntry.setName(entry_name)   
    galleryEntry.setNodeTypeCategory(hou.nodeTypeCategories()[data["node_type_category"]])
    galleryEntry.setNodeTypeNames(data["node_type_names"])   
    galleryEntry.setRequiredHDAFile(data["required_hda_file"])
    galleryEntry.setScript(data["script"])

This works great, except for if you create a preset from a Subnet that contains nodes. When you instantiate the gallery preset, the nodes inside the subnet don't get created. So close and yet so far. Very frustrating!


Anyway, I thought I'd post this here in case anyone has any insight that might help me figure this out?

Cheers,
Andy

Edited by fxnut - July 27, 2016 10:09:49
User Avatar
Member
32 posts
Joined: Sept. 2017
Offline
Can someone tell me why you would use galleries over HDA's?

Thanks,
/Christian
User Avatar
Member
19 posts
Joined: Feb. 2006
Offline
Hi Christian,
Galleries are great because they can be dropped into a scene and the nodes are just created.

It's fire and forget because with galleries there's no reference back to the original file, unlike with OTLs where they store the path to the original OTL definition and will update itself if it changes. This means that you can update the presets in the gallery as much as you like and there are never any worries about messing up someone's scene or having to maintain compatibility.

Galleries also appear in the Tool Palette and under the Parameter Pane gear icon which can be really handy.

OTLs are great for certain things, but galleries are fantastic for just storing those little snippets which you might update every now and again as you improve your workflow. If you're freelancing, you can take your galleries with you into each company and just drop them into your $HOUDINI_USER_PREF_DIR to use them in a new place. OTLs are a different story as you'd have to work them into whatever OTL management system is available to you (and you'd soon be in trouble if you used them from your home directory!)

That's off the top of my head… I dare say there are more

Cheers,
Andy
User Avatar
Member
32 posts
Joined: Sept. 2017
Offline
Hi Andy,

Thank you for great info! That makes sense. If you think of something to add, please feel free to update your post. This thread is one of the highest search rankings on this topic and it would help others that might not have heard of galleries since hda's get all the press :-)

/Christian
User Avatar
Member
19 posts
Joined: Feb. 2006
Offline
You're welcome! Sure, if I think of other benefits, I'll jot them down here.

Here's another… People don't always realise that galleries are not just for presets on a node. You can store subnets with multiple nodes inside in a gallery, so you can actually store complete FX setups if you like. Sure, you can do this with OTLs too, but with OTLs I always feel compelled to take the time to add some sort of nice interface that encapsulates the contents properly. Galleries are much less formal in that regard. You can just chuck anything inside that might be useful, and there's no pressure to make it look nice.

Worth saying that there's nothing stopping you using OTLs in a gallery type of workflow. Just add an OnCreate event to the OTL that would copy its contents to a subnet and then delete itself. Make sure you add a way to disable it (e.g. via an environment variable) otherwise you'll never be able to edit it again!
User Avatar
Member
7 posts
Joined: Jan. 2018
Offline
Hi,
How could a gallery be shared with others? The goal would be that every artist would have a gallery category folder and that would be used to drop nodes into. So I created a category inside gallery. After when I drop a node into it it is saved to a local drive which means it is not shared with others. Can any ENV. VARIABLE exist to save default galleries into different loaction? I tried HOUDINI_GALLERY_PATH but i think it is only for read galleries from.
Any Ideas ? THX!
G
Edited by szabolcs.illes - Jan. 15, 2020 10:53:26
User Avatar
Member
17 posts
Joined: March 2014
Offline
szabolcs.illes
Hi,
How could a gallery be shared with others? The goal would be that every artist would have a gallery category folder and that would be used to drop nodes into. So I created a category inside gallery. After when I drop a node into it it is saved to a local drive which means it is not shared with others. Can any ENV. VARIABLE exist to save default galleries into different loaction? I tried HOUDINI_GALLERY_PATH but i think it is only for read galleries from.
Any Ideas ? THX!
G

Hi, these are some things I learned about using galleries in a collaborative environment:

In Gallery Manager, you can right click any item and choose Edit. In the window that pops up you can modify a bunch of stuff.

"Gallery path" entry specifies in what gallery file on disk is it saved in.

"Category" entry, translates into folders in the Gallery Manager interface.

Long story short, if you want, for example, a shared gallery for a project called "Car_chase", you save your item into a "/project_folder/Car_chase.gal" file, and set its items Category as "Car_chase". Anybody who loads that gallery file will see a new folder called "Car_chase" populated with the stuff anybody put in there. Done.

There is a couple of caveats thou. If you drop a new item into a Gallery Manager, it will inherit a Category based on the folder you've dropped in into. It doesn't know thou, in what gallery file you want it to be saved into. So it defaults to your local gallery file unless you edit it manually. Super annoying.

Another thing is that if you want to access a gallery file stored in some arbitrary location, Houdini will not load it automatically (of course). Unless you want to be adding it manually every time you start Houdini, you need to either modify the houdini.env file, or use some sort of a scripted solution.

Editing env file may seem to be easier but the major disadvantage here is that it is hard coded, and it doesn't offer anything in terms of automation. It's good enough thou if you just want a shared sandbox for artists somewhere on the network.

With Python scripting you can push it a bit further, and avoid most of the manual editing, but still HOM support here is rather basic.

cheers, D.
  • Quick Links