Hello,
Thanks to @Halil , I was able to resolve our use case.
First, to correct myself: we needed to separate every FX step, not just assets. So, every FX step goes to a different location, regardless of the asset type (FX, LookDev, etc…)
It wasn’t so hard in the end.
I did need different YAML files, but only one additional file:
asset_step_fx.yml.
with usual asset_step.yml.
asset_step_fx.yml.
engines:
...
tk-houdini: "@settings.tk-houdini.asset_step_fx" #instead of @settings.tk-houdini.asset_step
...
In the templates, I separated the definitions:
asset_work_area_houdini:
definition: '@asset_root/work/houdini'
root_name: 'secondary'
asset_work_area_houdini_fx:
definition: '@asset_root/work/houdini'
root_name: 'quaternary'
Additionally, tk-houdini, tk-multi-workfiles2, and others now have separate definitions for FX templates. Here’s an example for tk-multi-workfiles2:
tk-multi-workfiles2
# asset_step
settings.tk-multi-workfiles2.houdini.asset_step:
...
template_work: houdini_asset_work
template_work_area: asset_work_area_houdini
...
# asset_step_fx
settings.tk-multi-workfiles2.houdini.asset_step_fx:
...
template_work: houdini_asset_work_fx
template_work_area: asset_work_area_houdini_fx
...
The rest was resolved with pick_environment.py
which directs the appropriate environment YAML:
if context.entity and context.step:
# We have a step and an entity.
if context.entity["type"] == "Shot":
return "shot_step"
if context.entity["type"] == "Asset":
if context.source_entity.get('step', {}).get('name') == "FX":
return "asset_step_fx"
return "asset_step"
I’m sharing this code here in case anyone else might find it useful in the future.
Thank you again!