Efesto Ftrack Proxy Location’s Documentation

Uses intermediate proxy location that acts as a switch when publishing components so that depending on some filtering conditions it gets pushed to a particular hard drive or service.

Setup

First Step: Web

  • On ftrack’s web interface access the System Settings (top right corner)

  • Go to Locations and create the following:

    • Proxy location, we recommend <studio>.<site>.proxy - i.e. efesto.barcelona.proxy
    • Hard location, we recommend <studio>.<site>.<drive_name>. You can create as many as you like. i.e. efesto.barcelona.nas and efesto.barcelona.san
  • Go to Disks and create the corresponding accessors:

    • Proxy Disk, name has to be the same as the location’s. You can leave the path empty.
    • Hard Disk, name has to match the location’s. Set the path where you want the components to be published to. i.e. efesto.barcelona.nas with path /media/nas/ftrack_projects and efesto.barcelona.san with path set to /media/san/ftrack_projects

Second Step: Proxy Location Python File: proxy_location.py

  • Access the location file. In the register method is where you have to do the customization:

    locations = [
        {
            'name': flocation.get_location('efesto.barcelona.nas'),
            'mount_point': flocation.get_mount_point(flocation.get_location('efesto.barcelona.nas')),
            'accessor': None,
            'conditions': {
                'task': ['rigging', 'animation', 'shading', 'lookdev'],
                'component': ['alembic', 'mayabinary', 'mayabinaryscene']
            },
            'structure': Structure
        },
        {
            'name': flocation.get_location('efesto.barcelona.san'),
            'mount_point': flocation.get_mount_point(flocation.get_location('efesto.barcelona.san')),
            'accessor': None,
            'conditions': {
                'task': ['compositing', 'rotoscoping', 'tracking', 'render'],
                'component': [
                    'nukescript',
                    'sequence',
                    'playblast',
                    'pull',
                    'proxy',
                    'gizmo'
                ]
            },
            'structure': Structure
        }
    ]
    

The locations list should be something among those lines. In order to ensure that you are using the correct name and mount point you could use our custom flocation class. The accessor is picked automatically by ftrack. You can set which structure the locations use setting the right value for the structure item.

Note

The conditions is the most interesting bit. When you publish the name of the component will be queried and checked against this filters. When publishing a maya scene file for instance the component name will be set to mayabinary, or when you publish a sequence from the ftrack connect publisher the name of the component will be sequence.

In this case the component name is mayabinary as it is part of the component key in the conditions it will be pushed into the efesto.barcelona.nas disk.

Important

Bear in mind that component names has priority, so first it will do the checking against the component filters, and if it finds no matches it will start reading the task type the component is linked to and doing the filtering based on the task condition rules. If no matches at all are found, neither for the component name or the task type, it will be pushed to the default location (first of this list).

All the condition values have to be lowercase. When querying the names or the types it will always convert it to lower, so the filters have to be lower.

  • Another bit you have to edit is this one:

    proxy = get_proxy_location(
        locations,
        proxy_name=flocation.get_location('efesto.barcelona.proxy')
    )
    
    proxy.register(registry)
    

The proxy name attribute has to be your proxy location. The one you set in the web interface.

Third Step: Registering

  • Your Proxy location needs to be registered. Thus the FTRACK_LOCATION_PLUGIN_PATH has to be able to pick it up. In this repository it is under efesto-ftrack-proxy-location/resource/location

In case you encounter any bugs or have any problems contact us: lorenzo.angeli@efestolab.uk

Developing

If you need to tweak the code and test the following procedure should be followed:

  • Initialise an efesto-toolbelt shell
  • Append efesto-ftrack-proxy-location/source folder to the PYTHONPATH (or set it through the envs.py, but not recommended)
  • Now you can try to run the tests
$ python /home/ramon/dev/efesto-toolbelt/bin/launcher.py --shell
$ export PYTHONPATH=$PYTHONPATH:/home/ramon/dev/efesto-ftrack-proxy-location/source
$ python setup.py test