Toolkit can be configured to work with other entity types, it’s 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, let’s say we want to work on Animations, here are the steps you would need to take. (In this example Animations is actually CustomEntity03
).
- 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
orShots
, 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}/...
- Now open up your
.../{pipeline_config_root}/config/core/templates.yml
and create new keys for your entity types (Scene
andCustomEntity03
).
- Create a new animation root in your
templates.yml
- 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).
- 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
, andScene
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.
- 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 ananimation_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.
- 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 anAnimation
. 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 assettings.tk-multi-workfiles2.maya.shot_step
,settings.tk-multi-workfiles2.maya.asset_step
,settings.tk-multi-workfiles2.launch_at_startup
andsettings.tk-multi-workfiles2
- Now you’ve added your new
animation_step.yml
environment yml and all the includes are sorted, we need to modify the core hookpick_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 wasCustomEntity03
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.