Creating an Asset or Elements Project/Database in shotgun and accessing through other projects

We are trying to get our element library more organized and more accessible through shotgun. (at the moment, they are a ton of folders on the server that users have to browse through manually). For some projects, we added elements as assets, and assigned them to shots to make them easier accessible - but this only works on a per-project basis, of course.

So my thinking goes:

  • create a Shotgun Project named “Elements”
  • add (for example) a 2D bullet hit element as an asset, with its own version, and all necessary information (path to frames etc.)
  • then, on Project “XYZ” - on shot “XYZ_0010” - assign this asset from “Elements” to this shot

Would that be possible?

Thanks, Alex

3 Likes

Hi @marvinmetzner, great question. We don’t really have proper “Asset Library” support in Shotgun. (Yet!) But there are a couple of ways people tend to go about this, and what you describe is probably the most common approach.

The caveat is that you cannot link Elements from one Project into another, so you would need to make a copy of the Element in question if you wanted to use it in a different Project. This might be a little more complicated if you have linked entities attached to it that you want to bring along (like Notes, Versions, etc). But you could make an Action Menu Item to automate this if it’s too many steps to do manually. There are some other considerations if you are using Toolkit, but not sure if that is relevant in this case.

The other approach you can take is to use global pages to aggregate Assets/Elements from across all your different Projects, and use that venue to search/copy/interact with them. This doesn’t allow for library-specific metadata about each Asset like what could live in a dedicated library project, but it is also less overhead to maintain, if you just need to see what you have built and occasionally reuse things.

All that said, I’d love to hear more from the community about how other people have implemented this sort of tracking! Also, we are always happy to hear more thoughts on what an actual Asset Library feature in Shotgun would look like, what features it should have, etc. Hope to see a lot of conversation in this thread, as this feature set has been at the top of my wish list for a long time. :slight_smile:

6 Likes

Hey @marvinmetzner, you may also want to have a look at this support article from our developer docs that my colleague @brandon.foster recently posted:

2 Likes

The way this works in our pipeline is:

  • we have a lib project, to which all reusable assets are added
  • in other projects, the loader app is configured to load assets from the lib project

In order to configure tk-multi-loader2, add the following under “entities:”

- caption: Library assets
   entity_type: Asset
   filters:
   - [project, is, {type: Project, id: 359}]
   hierarchy: [project, sg_asset_type, code]
- caption: Library shots
   entity_type: Shot
   filters:
   - [project, is, {type: Project, id: 359}]
   hierarchy: [project, sg_asset_type, code]

This will allow loading from project with id 359. It will show up in a separate tab in the loader app.
I believe I saw this in the docs, but was not able to find it now.

7 Likes

I built an element library using Shotgun back in 2013 for a collection of practical elements (a few thousand.) Been working fine for six years.

I made Version entities for the element proxy.

Artists enjoy searching use the nice animated thumbnails. They chose to put them in about a dozen categories (aka Sequence entity). They can make tags to help find them too.

Drag-n-drop works nicely into Nuke.

I made a submission dialog in RV to allow creating new elements, along with metadata (eg. standardized tags.)

Proxies are all built on the farm and uploaded.

We have never seen any need to make anything fancier, eg.:

  • to overcome the cross-Project barrier (never has been an issue, and frankly, it’s better to be isolated!)
  • asset heredity (the path to the EXRs are sufficient)
  • update notifications
  • revisions (just make a new element, just change status on the ugly one in case it was used)
  • Tasks (planned, but never implemented.)
9 Likes

Hi Dougm! how are you achieving the drag n drop behavior in Nuke? Thanks in advance!

1 Like

The trick is to use the Nuke API nukescripts.drop

The handler you add using this module will need parsing the URL (ie. the drop is plain text) to obtain the entity you drop and then based on what you drop and how you store the images in Shotgun it can make the ReadNode with that data it grabs from Shotgun.

Hope these sketchy hints are enough to get you started.

2 Likes

Hey!,

I am going to bump this… So I already have an Asset Library project working with the loader2, but now I also want to get it working with sceneBreakdown… has anyone achieved this? I can’t really see a way to do this with the current hook…since the hook totally scans the scene, and sees the reference from the “Library” project, but then code within the application is not listing it in the available items to update…Is this just not possible without taking over the sceneBreakdown app?
-Ross

2 Likes

Hey @Ross_Macaluso

I believe the issue here is that for the Breakdown app to list references, they have to match a template from config/core/templates.yml. And because templates are relative to the current project, there’s no way to match across projects.

Here’s where the scan_scene hook is run and its return value processed in the code:

I don’t think this is something we’ll likely support in the Breakdown app anytime soon – it’s a very old app and we don’t often add features, but Ross, I’d encourage you to add the feature request to our roadmap regardless – supporting an Asset library is a feature that we should definitely consider as we design future pipeline tools. Thanks!

6 Likes

I usually impose a rule on library asset usage:

As soon as you integrate a library asset into a project, it must be copied (not referenced) into the project since you need to carefully isolate a client’s assets from the facility ones.

1 Like

This question arose as a separate topic, so I’m moving it here…

… I’m trying to do the same but I can not figure how you did. I try to create a different Assets ;Fire, Water, Fog… And Add a tag to the media I upload.

But the assets is not showing the videos.

Or you are using the categories like a shots and publishs all the elements as a version of these shot?

Can you explain me with more detail if you find time, what is the best approach to create and element and have different footages inside?

Many Thanks

Frankie

Quick response to @Francesc_Macià

  • categories (“fire” etc) are Sequence entities
  • individual elements (“fire001”) are Shot entities
  • viewable media are Version entities.
1 Like