OpenPype
OpenPype VFX Pipeline with ftrack
DESCRIPTION
Following extensive research and experimentation, we built our pipeline around OpenPype, leveraging its strong integration with ftrack.While both OpenPype and ftrack provide solid out-of-the-box functionality, extensive customization was necessary to align with the studio's needs. Early in development, we identified areas requiring modifications, ranging from configuration and code changes to the creation of entirely new components.
The main areas of focus for the OpenPype-based pipeline included:
- Pipeline setup and management.
- Customization to align with studio's workflows (settings, project configurations, plugins, feature enhancements, etc.).
- Tool integration maintenance, ensuring compatibility with evolving and new tools.
- Regular updates to the latest OpenPype versions, while maintaining compatibility with custom developments.
- Contribution to the open-source repository, including bug fixes and feature proposals.
- Training and support for artists, producers, and technical departments.
This resulted in ongoing integration and refinement of the pipeline to manage the studio workflows, focusing primarily on ftrack, Maya and Nuke.
ROLE
Setup and Configuration Management
Proper setup and configuration were essential for the system to function effectively, requiring phases of experimentation and testing.Time was needed to fully understand the system's capabilities and get the most out of it.
We initially started with OpenPype v2, later transitioning to v3, which offered enhanced customization, improved functionality, and better support.
Our setup included a local installation, with a dedicated local ftrack event server and database.
Once the system was operational, we began migrating existing projects (previously managed solely within ftrack) into the new OpenPype-based pipeline.
Managing project configurations involved a range of ongoing tasks, including:
- Setting up and configuring new projects
- Adapting configurations as new features or components were introduced
- Updating supported software versions
- Implementing temporary or project-specific adjustments
- etc.
Plugin Development and Management
Plugins are a core component of OpenPype, be it for creating or publishing data.The system includes a range of built-in plugins designed for specific tasks, often associated to particular DCCs.
While many of these default plugins are suitable for standard VFX workflows, several modifications were required by the studio:
- Adapt existing plugins for better compatibility with internal tools and workflows
- Develop custom plugins to support studio-specific processes
- Centralize plugin management via a shared network location, ensuring that updates are instantly accessible across the studio
- Enhance filtering capabilities, including support for project-specific plugin profiles to improve flexibility and control
ftrack Project Creator
To streamline and automate project setup, we developed a custom project creation tool, fully integrated into the ftrack environment.The tool, based on a project description in an Excel file, creates a new project in the pipeline, with associated data in ftrack, OpenPype and the file system.
The production team creates a new project by filling the Excel template with project specific information.
The tool will then parse the file and create the project with appropriate configuration and structure.
Before this tool, the studio used an Excel template for project creation, the Project Structure Generator.
The template was creating the appropriate file structure on the network based on rules and filled in data, via a VBA macro.
Over time, this solution was improved with various automation enhancements, but it lacked integration with ftrack and OpenPype.
The new tool replaces that workflow, offering a fully integrated solution that creates the entire project setup in a single operation.
The Excel template no longer relies on macros, as all logic and processing are now handled within the pipeline itself.
ftrack Delivery Tool
We developed a custom ftrack action that automates the creation of delivery packages directly from within the ftrack interface.This delivery system allows the execution of a configurable sequence of operations on selected files, based on their file type and associated DCC.
The operations can include:
- In-DCC tasks, using scripts written in Python or the native scripting language of the DCC (Maya's MEL or Nuke's TCL).
- Pre- and post-processing steps, executed as standalone Python scripts, to handle tasks outside the DCC environments.
Once all operations are completed successfully, the tool generates finalized delivery archives.
Definitions and organization of these operations are handled via JSON configuration files, managed at project level for the different clients.
Process Monitor Addon
The Process Monitor module was developed to automate time tracking for artists, eliminating the need for manual time logging.The tool keeps track of the running applications, and manages session timers base on when applications are opened or closed.
It integrates with the ftrack time log system combined with OpenPype's timer management module.
The tool also added the possibility to visualize currently running applications handled by the pipeline, showing the active one, and allowing to user to manually set the active one.
When opening or closing applications, the system either updates the active application (if unambiguous), or prompts the user to soecify it.
This addon streamlines time tracking across the studio, ensuring reliable data for production management while reducing manual overhead for artists.
Dual Versioning
We started working on a system to enhance version management by supporting dual versioning, which would allow for both internal daily WIP versions and standard published versions.The system enabled artists to publish their work daily, with a reduced or tailored set of QC checks, validating work-in-progress without requiring final polish.
This gave team leads better visibility into ongoing progress, while also allowing more flexible tasks handovers, especially during unexpected absences.
Daily publishes were managed using our custom DailyQC tool, built on a modified version of Pyblish (and QuickQC), and fully integrated into OpenPype.
The DailyQC tool operated alongside OpenPype's standard publishing system, using dedicated configurations and plugins tailored for internal daily submissions.