fxnut

fxnut

About Me

Connect

LOCATION
ウェブサイト

Houdini Skills

Availability

Not Specified

Recent Forum Posts

Galleries in production 2019年8月23日14:48

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!

Galleries in production 2019年8月23日14:19

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

Galleries in production 2016年7月22日9:26

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