I want to use Toolkit apps with a different entity or custom entity rather than Assets and Shots

Toolkit can be configured to work with other entity types, its essentially a case of adding environment ymls for the new entity types, modifying your schema and templates, and adjusting the Workfiles and Loader apps.

As an example, lets say we want to work on Animations, here are the steps you would need to take. (In this example Animations is actually CustomEntity03).

  1. Adjust your schema to work with your new entity type. You need to create a new structure under your project folder for your new entity type, you could, for example, follow a similar setup for Assets or Shots , but switch the entity types to your new one. This doc may help. In this example we are going to create this structure in the schema: .../{project}/scenes/{Scene}/{CustomEntity03}/{Step}/...

  1. Now open up your .../{pipeline_config_root}/config/core/templates.yml and create new keys for your entity types ( Scene and CustomEntity03 ).

  1. Create a new animation root in your templates.yml

  1. You could also start duplicating the templates used for Shots or Assets and make Animation versions (though you may also want to wait till later once you’ve decided what apps and engines you are going to actually use).

  1. Now add environment ymls for your new entity types. Note you only need to add new environment ymls for the entity type you want to work in. In our example, we are only ever going to want to work directly on CustomEntity03 , and Scene just forms part of the folder structure. To add a new environment yml, it might be best starting by taking a copy of one of the other environment yml files and then modifying it to match your custom entity.

  1. You would then need to go and create all the included settings as well. For example @settings.tk-maya.animation_step doesn’t exist currently so we would need to open up the .../env/includes/settings/tk-maya.yml and add it. We could copy the asset_step settings as a starting point. But again we need to modify and create any settings that were asset_step specific. So that would mean creating an animation_work_area_maya template if you haven’t already, and creating animation specific settings for publish, snapshot, and workfiles apps. You would repeat this process for all the engines and apps that you want to use in this environment.

  1. Workfiles2 customization is a bit more involved than the others. You need to add tabs to display your Animation entity, and as a User can switch between contexts whilst being in a given environment, you need to add your tab settings to all workfiles2 settings, so that even if your working on a Shot you can still jump over to working on an Animation . So we can copy the asset_step settings again for workfiles, change the templates, change the setting name, and add the new Animation tab. Remember we also need to add the same Animation tab settings to the other context settings such as settings.tk-multi-workfiles2.maya.shot_step , settings.tk-multi-workfiles2.maya.asset_step , settings.tk-multi-workfiles2.launch_at_startup and settings.tk-multi-workfiles2

  1. Now you’ve added your new animation_step.yml environment yml and all the includes are sorted, we need to modify the core hook pick_environment.py located: .../{pipeline_config_root}/config/core/hooks/pick_environment.py . The purpose of this python script is to return the name of the environment file to use on a given context. So you would add your own if statement checking if the entity was CustomEntity03 and if there was a task, if so you would return “animation_step” (the name of your yml file minus the extension.)

That should then complete all the changes you need to make.

3 Likes