Tracking Asset Instances on the shot

Hi There

I was wondering is there a exposed way of tracking asset instances in shot?

Use cases

  1. Production telling artist what assets are there in a shot. This way layout can procedurally builds the scene where it brings in the right assets?

  2. 1uery how many asset instances exists on the shot and then query the published file database for the file paths which build the lighting scene?

  3. Production telling artist which asset instance are deprecated. Which mean even if the published file exists for that asset instance, the scene builder ignores this

Seems like this a very old issue!searchin/shotgun-dev/multiple$20instances$20of$20assets$20in$20shots|sort:date/shotgun-dev/jexhi-vJCrs/IfqZeOnVGhUJ




Maybe I’m misreading this, can you not use the “asset” field on a shot?


Maybe I’m misreading this, can you not use the “asset” field on a shot?

Sure, but I don’t see any option in telling the layout how many iteration/instances of the asset should be used for the shot?

You can only link one asset entity only. Now if there was field we can edit to specify a quantity then we can get somewhere.

We still have an issue about how does production convey to artists that a asset instance is depecrated from the shot, eg layout generates a cache of 3 humans but the client decides that human 2 is longer in the shot. We need a way to tell lighting not to pick up that human 2.


If there’s more than one instance of asset “human” in two shots, and the instance “narrative identity” is uniquely identifiable from shot-to-shot (eg. “the human standing beside the red car”) then you have to make sure that when you remove them from the two shots, that it is the same “narrative” instance.

In which case you really want to have “named instances” – ie. an AssetInstance custom entity …which doesn’t exist :-/ …and the shot will need another field asset_instances, since the “asset” field is locked to “Asset” entities only.

Hoping I’m not overthinking this, but I’ve run across this a few times and it always ends up being an ad-hoc manual repair job for someone downstream: in “shot_a” they cache the human standing beside the red car as “human1” and in “shot_b” they cache it out as “bobby13x”. Which makes it a bummer for lighting.

Hope you have the bandwidth to do a nice elegant, over-engineered solution :smile:


Hi Pritish (and Doug!),

Seems like what you want is a connection entity.
Have you checked out this doc:



I guess it doesn’t handle the “more than one instance” scenario, though.

In my experience if you want a count of instances of an asset in a shot Matt’s approach of using the connection entity is enough.

If you need to store per asset instance data (their location in a scene for example) you could still get away with the connection entity approach by adding something like a text field to the connection entity and having your pipeline dump serialized data of all asset instances in that field. This, however, isn’t super user friendly and might not scale.

If you need more precise per asset instance data, you’ll need to go down the route that @dougm suggests which isn’t that hard.

  • Enable a custom project entity and call it AssetInstance
  • Create a multi-entity field from Shot to AssetInstance
  • Create a single entity field from AssetInstance to Asset
  • Add any meta data tracking fields required by your pipeline to AssetInstance
  • Profit…? :wink: