From 288eae3a5d3fa78f56c720f9d96441e477f44f3f Mon Sep 17 00:00:00 2001 From: Josh Tomlinson Date: Thu, 22 Sep 2016 14:16:30 -0400 Subject: [PATCH] Reverting previous commit --- LICENSE | 146 ++ README | 28 + after_project_create.py | 62 +- core/hooks/README | 22 +- core/hooks/pick_environment.py | 103 +- core/roots.yml | 20 +- core/schema/ignore_files | 48 +- core/schema/project.yml | 30 +- core/schema/project/assets/asset_type.yml | 48 +- .../project/assets/asset_type/asset.yml | 54 +- .../project/assets/asset_type/asset/step.yml | 34 +- .../asset_type/asset/step/publish/3dsmax.yml | 16 + .../asset/step/publish/3dsmax/placeholder | 4 + .../asset/step/publish/caches/placeholder | 4 + .../asset/step/publish/elements/placeholder | 4 + .../asset_type/asset/step/publish/houdini.yml | 31 +- .../asset/step/publish/houdini/placeholder | 6 +- .../asset/step/publish/mari/placeholder | 4 + .../asset_type/asset/step/publish/maya.yml | 31 +- .../asset/step/publish/maya/placeholder | 6 +- .../asset_type/asset/step/publish/mobu.yml | 16 + .../asset/step/publish/mobu/placeholder | 4 + .../asset_type/asset/step/publish/nuke.yml | 31 +- .../asset/step/publish/nuke/placeholder | 6 +- .../asset/step/publish/photoshop.yml | 31 +- .../asset/step/publish/photoshop/placeholder | 6 +- .../asset/step/publish/softimage.yml | 16 + .../asset/step/publish/softimage/placeholder | 4 + .../asset/step/reference/artwork/placeholder | 6 +- .../asset/step/reference/footage/placeholder | 6 +- .../asset_type/asset/step/review/placeholder | 6 +- .../asset_type/asset/step/work/3dsmax.yml | 16 + .../step/work/3dsmax/snapshots/placeholder | 4 + .../asset_type/asset/step/work/houdini.yml | 31 +- .../step/work/houdini/snapshots/placeholder | 6 +- .../asset/step/work/images/placeholder | 4 + .../asset_type/asset/step/work/maya.yml | 31 +- .../step/work/maya/snapshots/placeholder | 6 +- .../asset/step/work/maya/workspace.mel | 64 +- .../asset_type/asset/step/work/mobu.yml | 16 + .../step/work/mobu/snapshots/placeholder | 4 + .../asset_type/asset/step/work/nuke.yml | 31 +- .../step/work/nuke/snapshots/placeholder | 6 +- .../asset_type/asset/step/work/photoshop.yml | 31 +- .../step/work/photoshop/snapshots/placeholder | 6 +- .../asset_type/asset/step/work/softimage.yml | 16 + .../step/work/softimage/snapshots/placeholder | 4 + .../project/editorial/publish/placeholder | 4 + .../schema/project/editorial/work/placeholder | 4 + .../project/reference/artwork/placeholder | 6 +- .../project/reference/footage/placeholder | 6 +- core/schema/project/sequences/sequence.yml | 52 +- .../project/sequences/sequence/shot.yml | 48 +- .../sequence/shot/editorial/placeholder | 4 + .../project/sequences/sequence/shot/step.yml | 16 + .../sequence/shot/step/publish/3dsmax.yml | 16 + .../shot/step/publish/3dsmax/placeholder | 4 + .../shot/step/publish/elements/placeholder | 4 + .../sequence/shot/step/publish/houdini.yml | 16 + .../shot/step/publish/houdini/placeholder | 4 + .../sequence/shot/step/publish/maya.yml | 16 + .../shot/step/publish/maya/placeholder | 4 + .../sequence/shot/step/publish/mobu.yml | 16 + .../shot/step/publish/mobu/placeholder | 4 + .../sequence/shot/step/publish/nuke.yml | 16 + .../shot/step/publish/nuke/placeholder | 4 + .../sequence/shot/step/publish/photoshop.yml | 16 + .../shot/step/publish/photoshop/placeholder | 4 + .../sequence/shot/step/publish/softimage.yml | 16 + .../shot/step/publish/softimage/placeholder | 4 + .../shot/step/reference/artwork/placeholder | 4 + .../shot/step/reference/footage/placeholder | 4 + .../sequence/shot/step/review/placeholder | 4 + .../sequence/shot/step/work/3dsmax.yml | 16 + .../step/work/3dsmax/snapshots/placeholder | 4 + .../sequence/shot/step/work/houdini.yml | 16 + .../step/work/houdini/snapshots/placeholder | 4 + .../shot/step/work/images/placeholder | 4 + .../sequence/shot/step/work/maya.yml | 16 + .../shot/step/work/maya/snapshots/placeholder | 4 + .../shot/step/work/maya/workspace.mel | 32 + .../sequence/shot/step/work/mobu.yml | 16 + .../shot/step/work/mobu/snapshots/placeholder | 4 + .../sequence/shot/step/work/nuke.yml | 16 + .../shot/step/work/nuke/snapshots/placeholder | 4 + .../sequence/shot/step/work/photoshop.yml | 16 + .../step/work/photoshop/snapshots/placeholder | 4 + .../sequence/shot/step/work/softimage.yml | 16 + .../step/work/softimage/snapshots/placeholder | 4 + core/templates.yml | 1059 +++++--- env/asset.yml | 356 ++- env/asset_step.yml | 2156 +++++++++++++---- env/includes/app_launchers.yml | 367 ++- env/includes/common_apps.yml | 278 ++- env/includes/paths.yml | 192 +- env/project.yml | 797 ++++-- env/sequence.yml | 280 ++- env/shot.yml | 316 ++- env/shot_step.yml | 2095 +++++++++++----- env/shotgun_asset.yml | 92 +- env/shotgun_project.yml | 83 +- env/shotgun_publishedfile.yml | 91 +- env/shotgun_sequence.yml | 91 +- env/shotgun_shot.yml | 92 +- env/shotgun_tankpublishedfile.yml | 93 +- env/shotgun_task.yml | 81 +- env/shotgun_version.yml | 92 +- hooks/README | 32 +- hooks/snapshot_history_post_quickdaily.py | 59 +- icons/alembic_cache_publish.png | Bin 0 -> 5802 bytes icons/mari_channel_publish.png | Bin 0 -> 2923 bytes icons/mari_layer_publish.png | Bin 0 -> 10577 bytes icons/publish_houdini_renders.png | Bin 0 -> 3211 bytes icons/publish_mari_main.png | Bin 0 -> 8166 bytes icons/review_submit_logo.png | Bin 259755 -> 9256 bytes info.yml | 39 +- 116 files changed, 7386 insertions(+), 2936 deletions(-) create mode 100644 LICENSE create mode 100644 README create mode 100644 core/schema/project/assets/asset_type/asset/step/publish/3dsmax.yml create mode 100644 core/schema/project/assets/asset_type/asset/step/publish/3dsmax/placeholder create mode 100644 core/schema/project/assets/asset_type/asset/step/publish/caches/placeholder create mode 100644 core/schema/project/assets/asset_type/asset/step/publish/elements/placeholder create mode 100644 core/schema/project/assets/asset_type/asset/step/publish/mari/placeholder create mode 100644 core/schema/project/assets/asset_type/asset/step/publish/mobu.yml create mode 100644 core/schema/project/assets/asset_type/asset/step/publish/mobu/placeholder create mode 100644 core/schema/project/assets/asset_type/asset/step/publish/softimage.yml create mode 100644 core/schema/project/assets/asset_type/asset/step/publish/softimage/placeholder create mode 100644 core/schema/project/assets/asset_type/asset/step/work/3dsmax.yml create mode 100644 core/schema/project/assets/asset_type/asset/step/work/3dsmax/snapshots/placeholder create mode 100644 core/schema/project/assets/asset_type/asset/step/work/images/placeholder create mode 100644 core/schema/project/assets/asset_type/asset/step/work/mobu.yml create mode 100644 core/schema/project/assets/asset_type/asset/step/work/mobu/snapshots/placeholder create mode 100644 core/schema/project/assets/asset_type/asset/step/work/softimage.yml create mode 100644 core/schema/project/assets/asset_type/asset/step/work/softimage/snapshots/placeholder create mode 100644 core/schema/project/editorial/publish/placeholder create mode 100644 core/schema/project/editorial/work/placeholder create mode 100644 core/schema/project/sequences/sequence/shot/editorial/placeholder create mode 100644 core/schema/project/sequences/sequence/shot/step.yml create mode 100644 core/schema/project/sequences/sequence/shot/step/publish/3dsmax.yml create mode 100644 core/schema/project/sequences/sequence/shot/step/publish/3dsmax/placeholder create mode 100644 core/schema/project/sequences/sequence/shot/step/publish/elements/placeholder create mode 100644 core/schema/project/sequences/sequence/shot/step/publish/houdini.yml create mode 100644 core/schema/project/sequences/sequence/shot/step/publish/houdini/placeholder create mode 100644 core/schema/project/sequences/sequence/shot/step/publish/maya.yml create mode 100644 core/schema/project/sequences/sequence/shot/step/publish/maya/placeholder create mode 100644 core/schema/project/sequences/sequence/shot/step/publish/mobu.yml create mode 100644 core/schema/project/sequences/sequence/shot/step/publish/mobu/placeholder create mode 100644 core/schema/project/sequences/sequence/shot/step/publish/nuke.yml create mode 100644 core/schema/project/sequences/sequence/shot/step/publish/nuke/placeholder create mode 100644 core/schema/project/sequences/sequence/shot/step/publish/photoshop.yml create mode 100644 core/schema/project/sequences/sequence/shot/step/publish/photoshop/placeholder create mode 100644 core/schema/project/sequences/sequence/shot/step/publish/softimage.yml create mode 100644 core/schema/project/sequences/sequence/shot/step/publish/softimage/placeholder create mode 100644 core/schema/project/sequences/sequence/shot/step/reference/artwork/placeholder create mode 100644 core/schema/project/sequences/sequence/shot/step/reference/footage/placeholder create mode 100644 core/schema/project/sequences/sequence/shot/step/review/placeholder create mode 100644 core/schema/project/sequences/sequence/shot/step/work/3dsmax.yml create mode 100644 core/schema/project/sequences/sequence/shot/step/work/3dsmax/snapshots/placeholder create mode 100644 core/schema/project/sequences/sequence/shot/step/work/houdini.yml create mode 100644 core/schema/project/sequences/sequence/shot/step/work/houdini/snapshots/placeholder create mode 100644 core/schema/project/sequences/sequence/shot/step/work/images/placeholder create mode 100644 core/schema/project/sequences/sequence/shot/step/work/maya.yml create mode 100644 core/schema/project/sequences/sequence/shot/step/work/maya/snapshots/placeholder create mode 100644 core/schema/project/sequences/sequence/shot/step/work/maya/workspace.mel create mode 100644 core/schema/project/sequences/sequence/shot/step/work/mobu.yml create mode 100644 core/schema/project/sequences/sequence/shot/step/work/mobu/snapshots/placeholder create mode 100644 core/schema/project/sequences/sequence/shot/step/work/nuke.yml create mode 100644 core/schema/project/sequences/sequence/shot/step/work/nuke/snapshots/placeholder create mode 100644 core/schema/project/sequences/sequence/shot/step/work/photoshop.yml create mode 100644 core/schema/project/sequences/sequence/shot/step/work/photoshop/snapshots/placeholder create mode 100644 core/schema/project/sequences/sequence/shot/step/work/softimage.yml create mode 100644 core/schema/project/sequences/sequence/shot/step/work/softimage/snapshots/placeholder create mode 100644 icons/alembic_cache_publish.png create mode 100644 icons/mari_channel_publish.png create mode 100644 icons/mari_layer_publish.png create mode 100644 icons/publish_houdini_renders.png create mode 100644 icons/publish_mari_main.png diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..602ba31 --- /dev/null +++ b/LICENSE @@ -0,0 +1,146 @@ +SHOTGUN PIPELINE TOOLKIT SOURCE CODE LICENSE + +Version: 7/07/2013 + +Shotgun Software Inc. ("Company") provides the Shotgun Pipeline Toolkit, +software, including source code, in this package or repository folder (the +"Shotgun Toolkit Code") subject to your acceptance of and compliance with +the following terms and conditions (the "License Terms"). By accessing, +downloading, copying, using or modifying any of the Shotgun Toolkit Code, +you agree to these License Terms. + +Eligibility + +The following license to the Shotgun Toolkit Code is valid only if and while +you are a customer of Company in good standing with either: (a) a current, +paid-up (or free-for-evaluation) subscription or fixed-term license for +Company's Shotgun Platform; or (b) a perpetual license and current, paid-up +maintenance and support contract for the Shotgun Platform. + +Shotgun Toolkit Code License + +Subject to the eligibility criteria above and your compliance with these +License Terms, Company grants to you a non-exclusive, limited license to +reproduce, use, and make derivative works of (including by compiling object +code versions of) the Shotgun Toolkit Code solely for your non-commercial or +internal business purposes in connection with your authorized use of the +Shotgun Platform. + +Company reserves all rights in the Shotgun Toolkit Code not expressly granted +above. These License Terms do not grant or require Company to grant, by +implication, estoppel, or otherwise, any other licenses or rights with respect +to the Shotgun Toolkit Code or any of Company's other software or intellectual +property rights. You agree not to take any action with respect to the Shotgun +Toolkit Code that is not expressly authorized above. + +You must keep intact (and, in the case of copies, reproduce) all copyright +and other proprietary notices, including all references to and copies of these +License Terms, as originally included on, in, or with the Shotgun Toolkit +Code. You must ensure that all derivative works you make of the Shotgun +Toolkit Code contain or are accompanied by comparable and conspicuous notices +that the underlying Shotgun Toolkit Code is the confidential information of +Company and is subject to Company's copyrights and these License Terms. + +No Redistribution or Disclosure + +You acknowledge that the Shotgun Toolkit Code is and contains proprietary and +trade-secret information of Company. You may not distribute, disclose to any +third party, operate for the benefit of third parties (for example, on a +hosted basis), or otherwise commercially exploit the Shotgun Toolkit Code or +any portion or derivative work thereof without Company's separate and express +written consent. For purposes of this restriction, third parties do not +include your employees or agents acting on your behalf who are bound to abide +by these License Terms. + +No Warranties or Support + +The Shotgun Toolkit Code is provided "AS IS" and with all faults. Company +makes no warranties whatsoever, whether express, implied, or otherwise, +concerning the Shotgun Toolkit Code. Company has no obligation to provide +maintenance or technical support for the Shotgun Toolkit Code (unless +otherwise expressly agreed in a separate written agreement between you and +Company). + +Liability + +You agree to be solely responsible for your use and modifications of the +Shotgun Toolkit Code, and for any harm or liability arising out of such use +or modifications, including but not limited to any liability for infringement +of third-party intellectual property rights. + +To the fullest extent permitted under applicable law, you agree that: (a) +Company will not be liable under these License Terms or otherwise for any +direct, indirect, incidental, special, consequential, or exemplary damages, +including but not limited to damages for loss of profits, goodwill, use, data +or other intangible losses, in relation to the Shotgun Toolkit Code or your +use or inability to use the Shotgun Toolkit Code, even if Company has been +advised of the possibility of such damages; and (b) in any event, Company's +aggregate liability under these License Terms or in connection with the +Shotgun Toolkit Code, regardless of the form of action and under any theory +(whether in contract, tort, statutory, or otherwise), will not exceed the +greater of $50 or the amount (if any) that you actually paid for access to +the Shotgun Toolkit Code. + +Ownership + +Company retains sole and exclusive ownership of the Shotgun Toolkit Code and +all copyright and other intellectual property rights therein. You will own any +derivative works you make to the Shotgun Toolkit Code, subject to: (a) the +preceding sentence; and (b) the provisions below regarding ownership of any +code you elect to contribute to Company. + +Contributions + +The following terms apply to any derivative works of the Shotgun Toolkit Code +(or any other materials) that you choose to contribute to Company. + +For good and valuable consideration, receipt of which is acknowledged, you +hereby transfer and assign to Company your entire right, title, and interest +(including all rights under copyright) in: (a) any software code, +documentation, and/or other materials that you deliver to Company for +inclusion in, improvement of, use with, or documentation of Company's software +program(s), including but not limited to any code, documentation, and/or other +materials identified in a contribution form you submit to Company in an +applicable form designated by Company; and (b) any future revisions of such +code, documentation, and/or other materials that you make hereafter. The code, +documentation, other materials, and future revisions described above are +collectively referred to below as the "Contribution." + +As used below, the "Company Programs" means and includes the Company software +program(s) identified on any contribution form you submit to Company, and any +other software into which Company incorporates or with which Company uses or +distributes the Contribution or any version or portion thereof. + +Company grants you a non-exclusive right to continue to modify, make +derivative works of, reproduce, and use the Contribution for your +non-commercial or internal business purposes, and to further Company's +development of Company Programs. This grant does not: (a) limit Company's +rights, (b) grant you any rights with respect to the Company Programs; nor +(c) permit you to distribute, operate for the benefit of third parties (for +example, on a hosted basis), or otherwise commercially exploit the +Contribution. + +You acknowledge that if Company elects to distribute the Contribution or any +version or portion thereof, it may do so on any basis that it chooses +(including under any proprietary or open-source licensing terms), without +further compensation to you. + +You agree that if you have or acquire hereafter any patent or interface +copyright or other intellectual property interest dominating the Contribution +or any Company Programs (or use thereof), such dominating interest will not be +used to undermine the effect of the assignment set forth above. Accordingly, +Company and its direct and indirect licensees are licensed to make, use, sell, +distribute, and otherwise exploit, in the Company Programs and their future +versions and derivative works, without royalty or limitation, the subject +matter of the dominating interest. This license provision will be binding on +you and on any assignees of, or other successors to, the dominating interest. + +You hereby represent and warrant that you are the sole copyright holder for +the Contribution and that you have the right and power to enter into this +contract. You shall indemnify and hold harmless Company and its officers, +employees, and agents against any and all claims, actions or damages +(including attorney's reasonable fees) asserted by or paid to any party on +account of a breach or alleged breach of the foregoing warranty. You make no +other express or implied warranty (including without limitation any warranty +of merchantability or fitness for a particular purpose) regarding the +Contribution. diff --git a/README b/README new file mode 100644 index 0000000..a4e2186 --- /dev/null +++ b/README @@ -0,0 +1,28 @@ +------------------------------------------------------------------------- +The Shotgun Pipeline Toolkit Standard Project Configuration +------------------------------------------------------------------------- + +Welcome to the Shotgun Pipeline Toolkit Standard config! It provides a +starting point for experimentation and testing and will help you discover +how everything works! + +Once you have installed the standard config for a project, you need to +do a quick configuration pass to make sure the config will work +with your system. The main item to configure are the paths to the +various executables, such as Maya and Nuke. These configuration +options can be found in your newly created project: + +- First navigate to the new project's configuration root folder. +- Now navigate to the config/env/includes folder. +- Open the paths.yml file and edit the settings. + +Once things are set up, go to Shotgun: + +1. Select some shots, right click and select Create Folders +3. Right click on a task for one of the shots and try launching Maya/Nuke +4. Once Maya or Nuke is launched, you should see a Shotgun menu appear + +For more information, go to the following url: +https://support.shotgunsoftware.com/entries/95440087 + +------------------------------------------------------------------------- diff --git a/after_project_create.py b/after_project_create.py index eeb8186..64b2a9f 100644 --- a/after_project_create.py +++ b/after_project_create.py @@ -1,32 +1,30 @@ -# Copyright (c) 2013 Shotgun Software Inc. -# -# CONFIDENTIAL AND PROPRIETARY -# -# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit -# Source Code License included in this distribution package. See LICENSE. -# By accessing, using, copying or modifying this work you indicate your -# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights -# not expressly granted therein are reserved by Shotgun Software Inc. - -""" -The after_project_create file is executed as part of creating a new project. -If your starter config needs to create any data in shotgun or do any other -special configuration, you can add it to this file. - -The create() method will be executed as part of the setup and is passed -the following keyword arguments: - -* sg - A shotgun connection -* project_id - The shotgun project id that is being setup -* log - A logger instance to which progress can be reported via - standard logger methods (info, warning, error etc) - -""" - -def create(sg, project_id, log, **kwargs): - """ - Insert post-project code here - """ - # the default config does not require any post-session stuff. - pass - +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +""" +The after_project_create file is executed as part of creating a new project. +If your starter config needs to create any data in shotgun or do any other +special configuration, you can add it to this file. + +The create() method will be executed as part of the setup and is passed +the following keyword arguments: + +* sg - A shotgun connection +* project_id - The shotgun project id that is being setup +* log - A logger instance to which progress can be reported via + standard logger methods (info, warning, error etc) + +""" + +def create(sg, project_id, log, **kwargs): + """ + Insert post-project code here + """ + pass diff --git a/core/hooks/README b/core/hooks/README index 77859f3..3b264e1 100644 --- a/core/hooks/README +++ b/core/hooks/README @@ -1,12 +1,12 @@ -This location is for core hook override files. - -The Shotgun Pipeline Toolkit comes with a series of Core Hooks, essentially snippets of python -that contain key operations such as copying a file, creating directories etc. - -These hooks are part of the platform distribution and are therefore bundled with the code itself. - -If you want to provide your own hook implementations, for example control file system permissions -as files are being copied, you can override the core hooks by putting a file with the same -name as the core hook in this location. Sgtk will basically look in this folder first as it is -requesting a core hook - if it doesn't find the core hook here, it will look in its internal +This location is for core hook override files. + +The Shotgun Pipeline Toolkit comes with a series of Core Hooks, essentially snippets of python +that contain key operations such as copying a file, creating directories etc. + +These hooks are part of the platform distribution and are therefore bundled with the code itself. + +If you want to provide your own hook implementations, for example control file system permissions +as files are being copied, you can override the core hooks by putting a file with the same +name as the core hook in this location. Sgtk will basically look in this folder first as it is +requesting a core hook - if it doesn't find the core hook here, it will look in its internal platform location. \ No newline at end of file diff --git a/core/hooks/pick_environment.py b/core/hooks/pick_environment.py index 2cde97d..46142c1 100644 --- a/core/hooks/pick_environment.py +++ b/core/hooks/pick_environment.py @@ -1,52 +1,51 @@ -# Copyright (c) 2013 Shotgun Software Inc. -# -# CONFIDENTIAL AND PROPRIETARY -# -# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit -# Source Code License included in this distribution package. See LICENSE. -# By accessing, using, copying or modifying this work you indicate your -# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights -# not expressly granted therein are reserved by Shotgun Software Inc. - -""" -Hook which chooses an environment file to use based on the current context. - -""" - -from tank import Hook - -class PickEnvironment(Hook): - - def execute(self, context, **kwargs): - """ - The default implementation assumes there are three environments, called shot, asset - and project, and switches to these based on entity type. - """ - - if context.project is None: - # our context is completely empty! - # don't know how to handle this case. - return None - - if context.entity is None: - # we have a project but not an entity - return "project" - - if context.entity and context.step is None: - # we have an entity but no step! - if context.entity["type"] == "Shot": - return "shot" - if context.entity["type"] == "Asset": - return "asset" - if context.entity["type"] == "Sequence": - return "sequence" - - - 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": - return "asset_step" - - return None +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +""" +Hook which chooses an environment file to use based on the current context. + +""" + +from tank import Hook + +class PickEnvironment(Hook): + + def execute(self, context, **kwargs): + """ + The default implementation assumes there are three environments, called shot, asset + and project, and switches to these based on entity type. + """ + + if context.project is None: + # our context is completely empty! + # don't know how to handle this case. + return None + + if context.entity is None: + # we have a project but not an entity + return "project" + + if context.entity and context.step is None: + # we have an entity but no step! + if context.entity["type"] == "Shot": + return "shot" + if context.entity["type"] == "Asset": + return "asset" + if context.entity["type"] == "Sequence": + return "sequence" + + 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": + return "asset_step" + + return None diff --git a/core/roots.yml b/core/roots.yml index 55ee9a8..d37b591 100644 --- a/core/roots.yml +++ b/core/roots.yml @@ -1 +1,19 @@ -primary: {linux_path: /productions/projects, mac_path: /productions/projects, windows_path: 'P:\projects'} +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# this file defines all the different disk locations that this config uses. +# these paths can be altered at project creation time to ensure that they map +# to the correct location. + +primary: + description: "A top-level root folder where all production data lives. Project folders will be created beneath this location." + mac_path: + linux_path: + windows_path: diff --git a/core/schema/ignore_files b/core/schema/ignore_files index 3084541..71bcf7e 100644 --- a/core/schema/ignore_files +++ b/core/schema/ignore_files @@ -1,24 +1,24 @@ -########################################################################################## -# This file contains file patterns that should be ignored -# when folders are created on disk. Similar to a gitignore file. -# -# Sometimes, there may be files inside the configuration scaffold -# that should not be copied across. It may be because the configuration -# was created on a mac, or because the configuration is kept in source -# control. This file makes it easy for Sgtk to ignore such files. -# - -placeholder - -# ignore mac files -.DS_Store - -# ignore subversion folders -.svn - -# ignore git -.gitignore -.git - -# this is the last line of the file -########################################################################################## +########################################################################################## +# This file contains file patterns that should be ignored +# when folders are created on disk. Similar to a gitignore file. +# +# Sometimes, there may be files inside the configuration scaffold +# that should not be copied across. It may be because the configuration +# was created on a mac, or because the configuration is kept in source +# control. This file makes it easy for Sgtk to ignore such files. +# + +placeholder + +# ignore mac files +.DS_Store + +# ignore subversion folders +.svn + +# ignore git +.gitignore +.git + +# this is the last line of the file +########################################################################################## diff --git a/core/schema/project.yml b/core/schema/project.yml index 70bf723..a18bad7 100644 --- a/core/schema/project.yml +++ b/core/schema/project.yml @@ -1,15 +1,15 @@ -# Copyright (c) 2013 Shotgun Software Inc. -# -# CONFIDENTIAL AND PROPRIETARY -# -# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit -# Source Code License included in this distribution package. See LICENSE. -# By accessing, using, copying or modifying this work you indicate your -# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights -# not expressly granted therein are reserved by Shotgun Software Inc. - -# the type of dynamic content -type: "project" - -# name of project root as defined in roots.yml -root_name: "primary" +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "project" + +# name of project root as defined in roots.yml +root_name: "primary" diff --git a/core/schema/project/assets/asset_type.yml b/core/schema/project/assets/asset_type.yml index cffed43..a48c42b 100644 --- a/core/schema/project/assets/asset_type.yml +++ b/core/schema/project/assets/asset_type.yml @@ -1,24 +1,24 @@ -# Copyright (c) 2013 Shotgun Software Inc. -# -# CONFIDENTIAL AND PROPRIETARY -# -# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit -# Source Code License included in this distribution package. See LICENSE. -# By accessing, using, copying or modifying this work you indicate your -# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights -# not expressly granted therein are reserved by Shotgun Software Inc. - -# the type of dynamic content -type: "shotgun_list_field" - -# the shotgun entity type to connect to -entity_type: "Asset" - -# switch this to true if you only want to make folders for -# values that are being used. Note that evaluating this is -# expensive and may potentially slow down folder creation. -skip_unused: false - -# the shotgun field to use for the folder name -field_name: "sg_asset_type" - +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "shotgun_list_field" + +# the shotgun entity type to connect to +entity_type: "Asset" + +# switch this to true if you only want to make folders for +# values that are being used. Note that evaluating this is +# expensive and may potentially slow down folder creation. +skip_unused: false + +# the shotgun field to use for the folder name +field_name: "sg_asset_type" + diff --git a/core/schema/project/assets/asset_type/asset.yml b/core/schema/project/assets/asset_type/asset.yml index 0339d15..9db0616 100644 --- a/core/schema/project/assets/asset_type/asset.yml +++ b/core/schema/project/assets/asset_type/asset.yml @@ -1,27 +1,27 @@ -# Copyright (c) 2013 Shotgun Software Inc. -# -# CONFIDENTIAL AND PROPRIETARY -# -# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit -# Source Code License included in this distribution package. See LICENSE. -# By accessing, using, copying or modifying this work you indicate your -# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights -# not expressly granted therein are reserved by Shotgun Software Inc. - -# the type of dynamic content -type: "shotgun_entity" - -# the shotgun field to use for the folder name -name: "code" - -# the shotgun entity type to connect to -entity_type: "Asset" - -# shotgun filters to apply when getting the list of items -# this should be a list of dicts, each dict containing -# three fields: path, relation and values -# (this is std shotgun API syntax) -# any values starting with $ are resolved into path objects -filters: - - { "path": "project", "relation": "is", "values": [ "$project" ] } - - { "path": "sg_asset_type", "relation": "is", "values": [ "$asset_type"] } +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "shotgun_entity" + +# the shotgun field to use for the folder name +name: "code" + +# the shotgun entity type to connect to +entity_type: "Asset" + +# shotgun filters to apply when getting the list of items +# this should be a list of dicts, each dict containing +# three fields: path, relation and values +# (this is std shotgun API syntax) +# any values starting with $ are resolved into path objects +filters: + - { "path": "project", "relation": "is", "values": [ "$project" ] } + - { "path": "sg_asset_type", "relation": "is", "values": [ "$asset_type"] } diff --git a/core/schema/project/assets/asset_type/asset/step.yml b/core/schema/project/assets/asset_type/asset/step.yml index 5510799..494eb0a 100644 --- a/core/schema/project/assets/asset_type/asset/step.yml +++ b/core/schema/project/assets/asset_type/asset/step.yml @@ -1,18 +1,16 @@ -# Copyright (c) 2013 Shotgun Software Inc. -# -# CONFIDENTIAL AND PROPRIETARY -# -# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit -# Source Code License included in this distribution package. See LICENSE. -# By accessing, using, copying or modifying this work you indicate your -# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights -# not expressly granted therein are reserved by Shotgun Software Inc. - -# the type of dynamic content -type: "shotgun_step" - -# the shotgun field to use for the folder name -name: "short_name" - -filters: - - { "path": "short_name", "relation": "not_in", "values": [ "art" , "model" , "texture" , "lookdev" , "rig" , "fx" ] } \ No newline at end of file +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "shotgun_step" + +# the shotgun field to use for the folder name +name: "short_name" + diff --git a/core/schema/project/assets/asset_type/asset/step/publish/3dsmax.yml b/core/schema/project/assets/asset_type/asset/step/publish/3dsmax.yml new file mode 100644 index 0000000..e54b4b3 --- /dev/null +++ b/core/schema/project/assets/asset_type/asset/step/publish/3dsmax.yml @@ -0,0 +1,16 @@ +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when 3dsmax starts +defer_creation: ["tk-3dsmax", "tk-3dsmaxplus"] + diff --git a/core/schema/project/assets/asset_type/asset/step/publish/3dsmax/placeholder b/core/schema/project/assets/asset_type/asset/step/publish/3dsmax/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/assets/asset_type/asset/step/publish/3dsmax/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/assets/asset_type/asset/step/publish/caches/placeholder b/core/schema/project/assets/asset_type/asset/step/publish/caches/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/assets/asset_type/asset/step/publish/caches/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/assets/asset_type/asset/step/publish/elements/placeholder b/core/schema/project/assets/asset_type/asset/step/publish/elements/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/assets/asset_type/asset/step/publish/elements/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/assets/asset_type/asset/step/publish/houdini.yml b/core/schema/project/assets/asset_type/asset/step/publish/houdini.yml index 0223ccb..9972c72 100644 --- a/core/schema/project/assets/asset_type/asset/step/publish/houdini.yml +++ b/core/schema/project/assets/asset_type/asset/step/publish/houdini.yml @@ -1,15 +1,16 @@ -# Copyright (c) 2013 Shotgun Software Inc. -# -# CONFIDENTIAL AND PROPRIETARY -# -# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit -# Source Code License included in this distribution package. See LICENSE. -# By accessing, using, copying or modifying this work you indicate your -# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights -# not expressly granted therein are reserved by Shotgun Software Inc. - -# the type of dynamic content -type: "static" - -# only create this folder when Houdini launches -defer_creation: tk-houdini" \ No newline at end of file +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when 3dsmax starts +defer_creation: "tk-houdini" + diff --git a/core/schema/project/assets/asset_type/asset/step/publish/houdini/placeholder b/core/schema/project/assets/asset_type/asset/step/publish/houdini/placeholder index cf996be..88a425e 100644 --- a/core/schema/project/assets/asset_type/asset/step/publish/houdini/placeholder +++ b/core/schema/project/assets/asset_type/asset/step/publish/houdini/placeholder @@ -1,4 +1,4 @@ -# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. -# Any file named 'placeholder' will not be copied across when folders are created. -# Note: You can which files should be ignored when folders are created in the ignore_files file, +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, # located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/assets/asset_type/asset/step/publish/mari/placeholder b/core/schema/project/assets/asset_type/asset/step/publish/mari/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/assets/asset_type/asset/step/publish/mari/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/assets/asset_type/asset/step/publish/maya.yml b/core/schema/project/assets/asset_type/asset/step/publish/maya.yml index 67a7409..6e65796 100644 --- a/core/schema/project/assets/asset_type/asset/step/publish/maya.yml +++ b/core/schema/project/assets/asset_type/asset/step/publish/maya.yml @@ -1,15 +1,16 @@ -# Copyright (c) 2013 Shotgun Software Inc. -# -# CONFIDENTIAL AND PROPRIETARY -# -# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit -# Source Code License included in this distribution package. See LICENSE. -# By accessing, using, copying or modifying this work you indicate your -# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights -# not expressly granted therein are reserved by Shotgun Software Inc. - -# the type of dynamic content -type: "static" - -# only create this folder when Maya launches -defer_creation: "tk-maya" \ No newline at end of file +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when 3dsmax starts +defer_creation: "tk-maya" + diff --git a/core/schema/project/assets/asset_type/asset/step/publish/maya/placeholder b/core/schema/project/assets/asset_type/asset/step/publish/maya/placeholder index cf996be..88a425e 100644 --- a/core/schema/project/assets/asset_type/asset/step/publish/maya/placeholder +++ b/core/schema/project/assets/asset_type/asset/step/publish/maya/placeholder @@ -1,4 +1,4 @@ -# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. -# Any file named 'placeholder' will not be copied across when folders are created. -# Note: You can which files should be ignored when folders are created in the ignore_files file, +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, # located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/assets/asset_type/asset/step/publish/mobu.yml b/core/schema/project/assets/asset_type/asset/step/publish/mobu.yml new file mode 100644 index 0000000..1348de3 --- /dev/null +++ b/core/schema/project/assets/asset_type/asset/step/publish/mobu.yml @@ -0,0 +1,16 @@ +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when 3dsmax starts +defer_creation: "tk-motionbuilder" + diff --git a/core/schema/project/assets/asset_type/asset/step/publish/mobu/placeholder b/core/schema/project/assets/asset_type/asset/step/publish/mobu/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/assets/asset_type/asset/step/publish/mobu/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/assets/asset_type/asset/step/publish/nuke.yml b/core/schema/project/assets/asset_type/asset/step/publish/nuke.yml index e5e2e78..5df333b 100644 --- a/core/schema/project/assets/asset_type/asset/step/publish/nuke.yml +++ b/core/schema/project/assets/asset_type/asset/step/publish/nuke.yml @@ -1,15 +1,16 @@ -# Copyright (c) 2013 Shotgun Software Inc. -# -# CONFIDENTIAL AND PROPRIETARY -# -# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit -# Source Code License included in this distribution package. See LICENSE. -# By accessing, using, copying or modifying this work you indicate your -# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights -# not expressly granted therein are reserved by Shotgun Software Inc. - -# the type of dynamic content -type: "static" - -# only create this folder when Nuke launches -defer_creation: "tk-nuke" \ No newline at end of file +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when 3dsmax starts +defer_creation: "tk-nuke" + diff --git a/core/schema/project/assets/asset_type/asset/step/publish/nuke/placeholder b/core/schema/project/assets/asset_type/asset/step/publish/nuke/placeholder index cf996be..88a425e 100644 --- a/core/schema/project/assets/asset_type/asset/step/publish/nuke/placeholder +++ b/core/schema/project/assets/asset_type/asset/step/publish/nuke/placeholder @@ -1,4 +1,4 @@ -# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. -# Any file named 'placeholder' will not be copied across when folders are created. -# Note: You can which files should be ignored when folders are created in the ignore_files file, +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, # located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/assets/asset_type/asset/step/publish/photoshop.yml b/core/schema/project/assets/asset_type/asset/step/publish/photoshop.yml index 3d7ef91..e43a917 100644 --- a/core/schema/project/assets/asset_type/asset/step/publish/photoshop.yml +++ b/core/schema/project/assets/asset_type/asset/step/publish/photoshop.yml @@ -1,15 +1,16 @@ -# Copyright (c) 2013 Shotgun Software Inc. -# -# CONFIDENTIAL AND PROPRIETARY -# -# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit -# Source Code License included in this distribution package. See LICENSE. -# By accessing, using, copying or modifying this work you indicate your -# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights -# not expressly granted therein are reserved by Shotgun Software Inc. - -# the type of dynamic content -type: "static" - -# only create this folder when Photoshop launches -defer_creation: "tk-photoshop" \ No newline at end of file +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when 3dsmax starts +defer_creation: "tk-photoshop" + diff --git a/core/schema/project/assets/asset_type/asset/step/publish/photoshop/placeholder b/core/schema/project/assets/asset_type/asset/step/publish/photoshop/placeholder index cf996be..88a425e 100644 --- a/core/schema/project/assets/asset_type/asset/step/publish/photoshop/placeholder +++ b/core/schema/project/assets/asset_type/asset/step/publish/photoshop/placeholder @@ -1,4 +1,4 @@ -# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. -# Any file named 'placeholder' will not be copied across when folders are created. -# Note: You can which files should be ignored when folders are created in the ignore_files file, +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, # located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/assets/asset_type/asset/step/publish/softimage.yml b/core/schema/project/assets/asset_type/asset/step/publish/softimage.yml new file mode 100644 index 0000000..a9858cf --- /dev/null +++ b/core/schema/project/assets/asset_type/asset/step/publish/softimage.yml @@ -0,0 +1,16 @@ +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when 3dsmax starts +defer_creation: "tk-softimage" + diff --git a/core/schema/project/assets/asset_type/asset/step/publish/softimage/placeholder b/core/schema/project/assets/asset_type/asset/step/publish/softimage/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/assets/asset_type/asset/step/publish/softimage/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/assets/asset_type/asset/step/reference/artwork/placeholder b/core/schema/project/assets/asset_type/asset/step/reference/artwork/placeholder index cf996be..88a425e 100644 --- a/core/schema/project/assets/asset_type/asset/step/reference/artwork/placeholder +++ b/core/schema/project/assets/asset_type/asset/step/reference/artwork/placeholder @@ -1,4 +1,4 @@ -# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. -# Any file named 'placeholder' will not be copied across when folders are created. -# Note: You can which files should be ignored when folders are created in the ignore_files file, +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, # located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/assets/asset_type/asset/step/reference/footage/placeholder b/core/schema/project/assets/asset_type/asset/step/reference/footage/placeholder index cf996be..88a425e 100644 --- a/core/schema/project/assets/asset_type/asset/step/reference/footage/placeholder +++ b/core/schema/project/assets/asset_type/asset/step/reference/footage/placeholder @@ -1,4 +1,4 @@ -# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. -# Any file named 'placeholder' will not be copied across when folders are created. -# Note: You can which files should be ignored when folders are created in the ignore_files file, +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, # located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/assets/asset_type/asset/step/review/placeholder b/core/schema/project/assets/asset_type/asset/step/review/placeholder index cf996be..88a425e 100644 --- a/core/schema/project/assets/asset_type/asset/step/review/placeholder +++ b/core/schema/project/assets/asset_type/asset/step/review/placeholder @@ -1,4 +1,4 @@ -# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. -# Any file named 'placeholder' will not be copied across when folders are created. -# Note: You can which files should be ignored when folders are created in the ignore_files file, +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, # located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/assets/asset_type/asset/step/work/3dsmax.yml b/core/schema/project/assets/asset_type/asset/step/work/3dsmax.yml new file mode 100644 index 0000000..e54b4b3 --- /dev/null +++ b/core/schema/project/assets/asset_type/asset/step/work/3dsmax.yml @@ -0,0 +1,16 @@ +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when 3dsmax starts +defer_creation: ["tk-3dsmax", "tk-3dsmaxplus"] + diff --git a/core/schema/project/assets/asset_type/asset/step/work/3dsmax/snapshots/placeholder b/core/schema/project/assets/asset_type/asset/step/work/3dsmax/snapshots/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/assets/asset_type/asset/step/work/3dsmax/snapshots/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/assets/asset_type/asset/step/work/houdini.yml b/core/schema/project/assets/asset_type/asset/step/work/houdini.yml index 7ea31e7..9972c72 100644 --- a/core/schema/project/assets/asset_type/asset/step/work/houdini.yml +++ b/core/schema/project/assets/asset_type/asset/step/work/houdini.yml @@ -1,15 +1,16 @@ -# Copyright (c) 2013 Shotgun Software Inc. -# -# CONFIDENTIAL AND PROPRIETARY -# -# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit -# Source Code License included in this distribution package. See LICENSE. -# By accessing, using, copying or modifying this work you indicate your -# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights -# not expressly granted therein are reserved by Shotgun Software Inc. - -# the type of dynamic content -type: "static" - -# only create this folder when Houdini launches -defer_creation: "tk-houdini" \ No newline at end of file +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when 3dsmax starts +defer_creation: "tk-houdini" + diff --git a/core/schema/project/assets/asset_type/asset/step/work/houdini/snapshots/placeholder b/core/schema/project/assets/asset_type/asset/step/work/houdini/snapshots/placeholder index cf996be..88a425e 100644 --- a/core/schema/project/assets/asset_type/asset/step/work/houdini/snapshots/placeholder +++ b/core/schema/project/assets/asset_type/asset/step/work/houdini/snapshots/placeholder @@ -1,4 +1,4 @@ -# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. -# Any file named 'placeholder' will not be copied across when folders are created. -# Note: You can which files should be ignored when folders are created in the ignore_files file, +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, # located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/assets/asset_type/asset/step/work/images/placeholder b/core/schema/project/assets/asset_type/asset/step/work/images/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/assets/asset_type/asset/step/work/images/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/assets/asset_type/asset/step/work/maya.yml b/core/schema/project/assets/asset_type/asset/step/work/maya.yml index 67a7409..6e65796 100644 --- a/core/schema/project/assets/asset_type/asset/step/work/maya.yml +++ b/core/schema/project/assets/asset_type/asset/step/work/maya.yml @@ -1,15 +1,16 @@ -# Copyright (c) 2013 Shotgun Software Inc. -# -# CONFIDENTIAL AND PROPRIETARY -# -# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit -# Source Code License included in this distribution package. See LICENSE. -# By accessing, using, copying or modifying this work you indicate your -# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights -# not expressly granted therein are reserved by Shotgun Software Inc. - -# the type of dynamic content -type: "static" - -# only create this folder when Maya launches -defer_creation: "tk-maya" \ No newline at end of file +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when 3dsmax starts +defer_creation: "tk-maya" + diff --git a/core/schema/project/assets/asset_type/asset/step/work/maya/snapshots/placeholder b/core/schema/project/assets/asset_type/asset/step/work/maya/snapshots/placeholder index cf996be..88a425e 100644 --- a/core/schema/project/assets/asset_type/asset/step/work/maya/snapshots/placeholder +++ b/core/schema/project/assets/asset_type/asset/step/work/maya/snapshots/placeholder @@ -1,4 +1,4 @@ -# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. -# Any file named 'placeholder' will not be copied across when folders are created. -# Note: You can which files should be ignored when folders are created in the ignore_files file, +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, # located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/assets/asset_type/asset/step/work/maya/workspace.mel b/core/schema/project/assets/asset_type/asset/step/work/maya/workspace.mel index 746e1e8..a061c19 100644 --- a/core/schema/project/assets/asset_type/asset/step/work/maya/workspace.mel +++ b/core/schema/project/assets/asset_type/asset/step/work/maya/workspace.mel @@ -1,32 +1,32 @@ -//Maya 2011 x64 Project Definition - -workspace -fr "offlineEdit" "scenes/edits"; -workspace -fr "scene" "scenes"; -workspace -fr "IGES" "data"; -workspace -fr "DXFexport" "data"; -workspace -fr "OBJexport" "data"; -workspace -fr "lights" "renderData/shaders"; -workspace -fr "mel" "mel"; -workspace -fr "particles" "particles"; -workspace -fr "audio" "sound"; -workspace -fr "RIBexport" "data"; -workspace -fr "RIB" "data"; -workspace -fr "depth" "renderData/depth"; -workspace -fr "autoSave" "autosave"; -workspace -fr "diskCache" "data"; -workspace -fr "sourceImages" "sourceimages"; -workspace -fr "animImport" "data"; -workspace -fr "movie" "data"; -workspace -fr "iprImages" "renderData/iprImages"; -workspace -fr "mayaAscii" "scenes"; -workspace -fr "textures" "textures"; -workspace -fr "aliasWire" "data"; -workspace -fr "mayaBinary" "scenes"; -workspace -fr "move" "data"; -workspace -fr "renderScenes" "renderScenes"; -workspace -fr "images" "images"; -workspace -fr "DXF" "data"; -workspace -fr "clips" "clips"; -workspace -fr "animExport" "data"; -workspace -fr "OBJ" "data"; -workspace -fr "templates" "assets"; +//Maya 2011 x64 Project Definition + +workspace -fr "offlineEdit" "scenes/edits"; +workspace -fr "scene" "scenes"; +workspace -fr "IGES" "data"; +workspace -fr "DXFexport" "data"; +workspace -fr "OBJexport" "data"; +workspace -fr "lights" "renderData/shaders"; +workspace -fr "mel" "mel"; +workspace -fr "particles" "particles"; +workspace -fr "audio" "sound"; +workspace -fr "RIBexport" "data"; +workspace -fr "RIB" "data"; +workspace -fr "depth" "renderData/depth"; +workspace -fr "autoSave" "autosave"; +workspace -fr "diskCache" "data"; +workspace -fr "sourceImages" "sourceimages"; +workspace -fr "animImport" "data"; +workspace -fr "movie" "data"; +workspace -fr "iprImages" "renderData/iprImages"; +workspace -fr "mayaAscii" "scenes"; +workspace -fr "textures" "textures"; +workspace -fr "aliasWire" "data"; +workspace -fr "mayaBinary" "scenes"; +workspace -fr "move" "data"; +workspace -fr "renderScenes" "renderScenes"; +workspace -fr "images" "images"; +workspace -fr "DXF" "data"; +workspace -fr "clips" "clips"; +workspace -fr "animExport" "data"; +workspace -fr "OBJ" "data"; +workspace -fr "templates" "assets"; diff --git a/core/schema/project/assets/asset_type/asset/step/work/mobu.yml b/core/schema/project/assets/asset_type/asset/step/work/mobu.yml new file mode 100644 index 0000000..1348de3 --- /dev/null +++ b/core/schema/project/assets/asset_type/asset/step/work/mobu.yml @@ -0,0 +1,16 @@ +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when 3dsmax starts +defer_creation: "tk-motionbuilder" + diff --git a/core/schema/project/assets/asset_type/asset/step/work/mobu/snapshots/placeholder b/core/schema/project/assets/asset_type/asset/step/work/mobu/snapshots/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/assets/asset_type/asset/step/work/mobu/snapshots/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/assets/asset_type/asset/step/work/nuke.yml b/core/schema/project/assets/asset_type/asset/step/work/nuke.yml index e5e2e78..5df333b 100644 --- a/core/schema/project/assets/asset_type/asset/step/work/nuke.yml +++ b/core/schema/project/assets/asset_type/asset/step/work/nuke.yml @@ -1,15 +1,16 @@ -# Copyright (c) 2013 Shotgun Software Inc. -# -# CONFIDENTIAL AND PROPRIETARY -# -# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit -# Source Code License included in this distribution package. See LICENSE. -# By accessing, using, copying or modifying this work you indicate your -# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights -# not expressly granted therein are reserved by Shotgun Software Inc. - -# the type of dynamic content -type: "static" - -# only create this folder when Nuke launches -defer_creation: "tk-nuke" \ No newline at end of file +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when 3dsmax starts +defer_creation: "tk-nuke" + diff --git a/core/schema/project/assets/asset_type/asset/step/work/nuke/snapshots/placeholder b/core/schema/project/assets/asset_type/asset/step/work/nuke/snapshots/placeholder index cf996be..88a425e 100644 --- a/core/schema/project/assets/asset_type/asset/step/work/nuke/snapshots/placeholder +++ b/core/schema/project/assets/asset_type/asset/step/work/nuke/snapshots/placeholder @@ -1,4 +1,4 @@ -# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. -# Any file named 'placeholder' will not be copied across when folders are created. -# Note: You can which files should be ignored when folders are created in the ignore_files file, +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, # located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/assets/asset_type/asset/step/work/photoshop.yml b/core/schema/project/assets/asset_type/asset/step/work/photoshop.yml index 3d7ef91..e43a917 100644 --- a/core/schema/project/assets/asset_type/asset/step/work/photoshop.yml +++ b/core/schema/project/assets/asset_type/asset/step/work/photoshop.yml @@ -1,15 +1,16 @@ -# Copyright (c) 2013 Shotgun Software Inc. -# -# CONFIDENTIAL AND PROPRIETARY -# -# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit -# Source Code License included in this distribution package. See LICENSE. -# By accessing, using, copying or modifying this work you indicate your -# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights -# not expressly granted therein are reserved by Shotgun Software Inc. - -# the type of dynamic content -type: "static" - -# only create this folder when Photoshop launches -defer_creation: "tk-photoshop" \ No newline at end of file +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when 3dsmax starts +defer_creation: "tk-photoshop" + diff --git a/core/schema/project/assets/asset_type/asset/step/work/photoshop/snapshots/placeholder b/core/schema/project/assets/asset_type/asset/step/work/photoshop/snapshots/placeholder index cf996be..88a425e 100644 --- a/core/schema/project/assets/asset_type/asset/step/work/photoshop/snapshots/placeholder +++ b/core/schema/project/assets/asset_type/asset/step/work/photoshop/snapshots/placeholder @@ -1,4 +1,4 @@ -# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. -# Any file named 'placeholder' will not be copied across when folders are created. -# Note: You can which files should be ignored when folders are created in the ignore_files file, +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, # located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/assets/asset_type/asset/step/work/softimage.yml b/core/schema/project/assets/asset_type/asset/step/work/softimage.yml new file mode 100644 index 0000000..a9858cf --- /dev/null +++ b/core/schema/project/assets/asset_type/asset/step/work/softimage.yml @@ -0,0 +1,16 @@ +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when 3dsmax starts +defer_creation: "tk-softimage" + diff --git a/core/schema/project/assets/asset_type/asset/step/work/softimage/snapshots/placeholder b/core/schema/project/assets/asset_type/asset/step/work/softimage/snapshots/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/assets/asset_type/asset/step/work/softimage/snapshots/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/editorial/publish/placeholder b/core/schema/project/editorial/publish/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/editorial/publish/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/editorial/work/placeholder b/core/schema/project/editorial/work/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/editorial/work/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/reference/artwork/placeholder b/core/schema/project/reference/artwork/placeholder index cf996be..88a425e 100644 --- a/core/schema/project/reference/artwork/placeholder +++ b/core/schema/project/reference/artwork/placeholder @@ -1,4 +1,4 @@ -# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. -# Any file named 'placeholder' will not be copied across when folders are created. -# Note: You can which files should be ignored when folders are created in the ignore_files file, +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, # located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/reference/footage/placeholder b/core/schema/project/reference/footage/placeholder index cf996be..88a425e 100644 --- a/core/schema/project/reference/footage/placeholder +++ b/core/schema/project/reference/footage/placeholder @@ -1,4 +1,4 @@ -# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. -# Any file named 'placeholder' will not be copied across when folders are created. -# Note: You can which files should be ignored when folders are created in the ignore_files file, +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, # located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/sequences/sequence.yml b/core/schema/project/sequences/sequence.yml index b65070e..1386b61 100644 --- a/core/schema/project/sequences/sequence.yml +++ b/core/schema/project/sequences/sequence.yml @@ -1,26 +1,26 @@ -# Copyright (c) 2013 Shotgun Software Inc. -# -# CONFIDENTIAL AND PROPRIETARY -# -# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit -# Source Code License included in this distribution package. See LICENSE. -# By accessing, using, copying or modifying this work you indicate your -# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights -# not expressly granted therein are reserved by Shotgun Software Inc. - -# the type of dynamic content -type: "shotgun_entity" - -# the shotgun field to use for the folder name -name: "code" - -# the shotgun entity type to connect to -entity_type: "Sequence" - -# shotgun filters to apply when getting the list of items -# this should be a list of dicts, each dict containing -# three fields: path, relation and values -# (this is std shotgun API syntax) -# any values starting with $ are resolved into path objects -filters: [ { "path": "project", "relation": "is", "values": [ "$project" ] } ] - +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "shotgun_entity" + +# the shotgun field to use for the folder name +name: "code" + +# the shotgun entity type to connect to +entity_type: "Sequence" + +# shotgun filters to apply when getting the list of items +# this should be a list of dicts, each dict containing +# three fields: path, relation and values +# (this is std shotgun API syntax) +# any values starting with $ are resolved into path objects +filters: [ { "path": "project", "relation": "is", "values": [ "$project" ] } ] + diff --git a/core/schema/project/sequences/sequence/shot.yml b/core/schema/project/sequences/sequence/shot.yml index 500e597..9dfcf9f 100644 --- a/core/schema/project/sequences/sequence/shot.yml +++ b/core/schema/project/sequences/sequence/shot.yml @@ -1,25 +1,25 @@ -# Copyright (c) 2013 Shotgun Software Inc. -# -# CONFIDENTIAL AND PROPRIETARY -# -# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit -# Source Code License included in this distribution package. See LICENSE. -# By accessing, using, copying or modifying this work you indicate your -# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights -# not expressly granted therein are reserved by Shotgun Software Inc. - -# the type of dynamic content -type: "shotgun_entity" - -# the shotgun field to use for the folder name -name: "code" - -# the shotgun entity type to connect to -entity_type: "Shot" - -# shotgun filters to apply when getting the list of items -# this should be a list of dicts, each dict containing -# three fields: path, relation and values -# (this is std shotgun API syntax) -# any values starting with $ are resolved into path objects +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "shotgun_entity" + +# the shotgun field to use for the folder name +name: "code" + +# the shotgun entity type to connect to +entity_type: "Shot" + +# shotgun filters to apply when getting the list of items +# this should be a list of dicts, each dict containing +# three fields: path, relation and values +# (this is std shotgun API syntax) +# any values starting with $ are resolved into path objects filters: [ { "path": "sg_sequence", "relation": "is", "values": [ "$sequence" ] } ] \ No newline at end of file diff --git a/core/schema/project/sequences/sequence/shot/editorial/placeholder b/core/schema/project/sequences/sequence/shot/editorial/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/editorial/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/sequences/sequence/shot/step.yml b/core/schema/project/sequences/sequence/shot/step.yml new file mode 100644 index 0000000..494eb0a --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step.yml @@ -0,0 +1,16 @@ +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "shotgun_step" + +# the shotgun field to use for the folder name +name: "short_name" + diff --git a/core/schema/project/sequences/sequence/shot/step/publish/3dsmax.yml b/core/schema/project/sequences/sequence/shot/step/publish/3dsmax.yml new file mode 100644 index 0000000..e54b4b3 --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/publish/3dsmax.yml @@ -0,0 +1,16 @@ +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when 3dsmax starts +defer_creation: ["tk-3dsmax", "tk-3dsmaxplus"] + diff --git a/core/schema/project/sequences/sequence/shot/step/publish/3dsmax/placeholder b/core/schema/project/sequences/sequence/shot/step/publish/3dsmax/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/publish/3dsmax/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/sequences/sequence/shot/step/publish/elements/placeholder b/core/schema/project/sequences/sequence/shot/step/publish/elements/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/publish/elements/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/sequences/sequence/shot/step/publish/houdini.yml b/core/schema/project/sequences/sequence/shot/step/publish/houdini.yml new file mode 100644 index 0000000..9972c72 --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/publish/houdini.yml @@ -0,0 +1,16 @@ +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when 3dsmax starts +defer_creation: "tk-houdini" + diff --git a/core/schema/project/sequences/sequence/shot/step/publish/houdini/placeholder b/core/schema/project/sequences/sequence/shot/step/publish/houdini/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/publish/houdini/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/sequences/sequence/shot/step/publish/maya.yml b/core/schema/project/sequences/sequence/shot/step/publish/maya.yml new file mode 100644 index 0000000..6e65796 --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/publish/maya.yml @@ -0,0 +1,16 @@ +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when 3dsmax starts +defer_creation: "tk-maya" + diff --git a/core/schema/project/sequences/sequence/shot/step/publish/maya/placeholder b/core/schema/project/sequences/sequence/shot/step/publish/maya/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/publish/maya/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/sequences/sequence/shot/step/publish/mobu.yml b/core/schema/project/sequences/sequence/shot/step/publish/mobu.yml new file mode 100644 index 0000000..1348de3 --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/publish/mobu.yml @@ -0,0 +1,16 @@ +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when 3dsmax starts +defer_creation: "tk-motionbuilder" + diff --git a/core/schema/project/sequences/sequence/shot/step/publish/mobu/placeholder b/core/schema/project/sequences/sequence/shot/step/publish/mobu/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/publish/mobu/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/sequences/sequence/shot/step/publish/nuke.yml b/core/schema/project/sequences/sequence/shot/step/publish/nuke.yml new file mode 100644 index 0000000..5df333b --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/publish/nuke.yml @@ -0,0 +1,16 @@ +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when 3dsmax starts +defer_creation: "tk-nuke" + diff --git a/core/schema/project/sequences/sequence/shot/step/publish/nuke/placeholder b/core/schema/project/sequences/sequence/shot/step/publish/nuke/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/publish/nuke/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/sequences/sequence/shot/step/publish/photoshop.yml b/core/schema/project/sequences/sequence/shot/step/publish/photoshop.yml new file mode 100644 index 0000000..e43a917 --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/publish/photoshop.yml @@ -0,0 +1,16 @@ +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when 3dsmax starts +defer_creation: "tk-photoshop" + diff --git a/core/schema/project/sequences/sequence/shot/step/publish/photoshop/placeholder b/core/schema/project/sequences/sequence/shot/step/publish/photoshop/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/publish/photoshop/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/sequences/sequence/shot/step/publish/softimage.yml b/core/schema/project/sequences/sequence/shot/step/publish/softimage.yml new file mode 100644 index 0000000..a9858cf --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/publish/softimage.yml @@ -0,0 +1,16 @@ +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when 3dsmax starts +defer_creation: "tk-softimage" + diff --git a/core/schema/project/sequences/sequence/shot/step/publish/softimage/placeholder b/core/schema/project/sequences/sequence/shot/step/publish/softimage/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/publish/softimage/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/sequences/sequence/shot/step/reference/artwork/placeholder b/core/schema/project/sequences/sequence/shot/step/reference/artwork/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/reference/artwork/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/sequences/sequence/shot/step/reference/footage/placeholder b/core/schema/project/sequences/sequence/shot/step/reference/footage/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/reference/footage/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/sequences/sequence/shot/step/review/placeholder b/core/schema/project/sequences/sequence/shot/step/review/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/review/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/sequences/sequence/shot/step/work/3dsmax.yml b/core/schema/project/sequences/sequence/shot/step/work/3dsmax.yml new file mode 100644 index 0000000..e54b4b3 --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/work/3dsmax.yml @@ -0,0 +1,16 @@ +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when 3dsmax starts +defer_creation: ["tk-3dsmax", "tk-3dsmaxplus"] + diff --git a/core/schema/project/sequences/sequence/shot/step/work/3dsmax/snapshots/placeholder b/core/schema/project/sequences/sequence/shot/step/work/3dsmax/snapshots/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/work/3dsmax/snapshots/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/sequences/sequence/shot/step/work/houdini.yml b/core/schema/project/sequences/sequence/shot/step/work/houdini.yml new file mode 100644 index 0000000..82af73e --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/work/houdini.yml @@ -0,0 +1,16 @@ +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when Houdini starts +defer_creation: "tk-houdini" + diff --git a/core/schema/project/sequences/sequence/shot/step/work/houdini/snapshots/placeholder b/core/schema/project/sequences/sequence/shot/step/work/houdini/snapshots/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/work/houdini/snapshots/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/sequences/sequence/shot/step/work/images/placeholder b/core/schema/project/sequences/sequence/shot/step/work/images/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/work/images/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/sequences/sequence/shot/step/work/maya.yml b/core/schema/project/sequences/sequence/shot/step/work/maya.yml new file mode 100644 index 0000000..0cb3ad0 --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/work/maya.yml @@ -0,0 +1,16 @@ +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when Maya starts +defer_creation: "tk-maya" + diff --git a/core/schema/project/sequences/sequence/shot/step/work/maya/snapshots/placeholder b/core/schema/project/sequences/sequence/shot/step/work/maya/snapshots/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/work/maya/snapshots/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/sequences/sequence/shot/step/work/maya/workspace.mel b/core/schema/project/sequences/sequence/shot/step/work/maya/workspace.mel new file mode 100644 index 0000000..a061c19 --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/work/maya/workspace.mel @@ -0,0 +1,32 @@ +//Maya 2011 x64 Project Definition + +workspace -fr "offlineEdit" "scenes/edits"; +workspace -fr "scene" "scenes"; +workspace -fr "IGES" "data"; +workspace -fr "DXFexport" "data"; +workspace -fr "OBJexport" "data"; +workspace -fr "lights" "renderData/shaders"; +workspace -fr "mel" "mel"; +workspace -fr "particles" "particles"; +workspace -fr "audio" "sound"; +workspace -fr "RIBexport" "data"; +workspace -fr "RIB" "data"; +workspace -fr "depth" "renderData/depth"; +workspace -fr "autoSave" "autosave"; +workspace -fr "diskCache" "data"; +workspace -fr "sourceImages" "sourceimages"; +workspace -fr "animImport" "data"; +workspace -fr "movie" "data"; +workspace -fr "iprImages" "renderData/iprImages"; +workspace -fr "mayaAscii" "scenes"; +workspace -fr "textures" "textures"; +workspace -fr "aliasWire" "data"; +workspace -fr "mayaBinary" "scenes"; +workspace -fr "move" "data"; +workspace -fr "renderScenes" "renderScenes"; +workspace -fr "images" "images"; +workspace -fr "DXF" "data"; +workspace -fr "clips" "clips"; +workspace -fr "animExport" "data"; +workspace -fr "OBJ" "data"; +workspace -fr "templates" "assets"; diff --git a/core/schema/project/sequences/sequence/shot/step/work/mobu.yml b/core/schema/project/sequences/sequence/shot/step/work/mobu.yml new file mode 100644 index 0000000..650b767 --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/work/mobu.yml @@ -0,0 +1,16 @@ +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when Motion Builder starts +defer_creation: "tk-motionbuilder" + diff --git a/core/schema/project/sequences/sequence/shot/step/work/mobu/snapshots/placeholder b/core/schema/project/sequences/sequence/shot/step/work/mobu/snapshots/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/work/mobu/snapshots/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/sequences/sequence/shot/step/work/nuke.yml b/core/schema/project/sequences/sequence/shot/step/work/nuke.yml new file mode 100644 index 0000000..8d319d6 --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/work/nuke.yml @@ -0,0 +1,16 @@ +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when Nuke starts +defer_creation: "tk-nuke" + diff --git a/core/schema/project/sequences/sequence/shot/step/work/nuke/snapshots/placeholder b/core/schema/project/sequences/sequence/shot/step/work/nuke/snapshots/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/work/nuke/snapshots/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/sequences/sequence/shot/step/work/photoshop.yml b/core/schema/project/sequences/sequence/shot/step/work/photoshop.yml new file mode 100644 index 0000000..b798691 --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/work/photoshop.yml @@ -0,0 +1,16 @@ +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when Photoshop starts +defer_creation: "tk-photoshop" + diff --git a/core/schema/project/sequences/sequence/shot/step/work/photoshop/snapshots/placeholder b/core/schema/project/sequences/sequence/shot/step/work/photoshop/snapshots/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/work/photoshop/snapshots/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/schema/project/sequences/sequence/shot/step/work/softimage.yml b/core/schema/project/sequences/sequence/shot/step/work/softimage.yml new file mode 100644 index 0000000..1aa1aa2 --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/work/softimage.yml @@ -0,0 +1,16 @@ +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# the type of dynamic content +type: "static" + +# defer creation and only create this folder when Softimage starts +defer_creation: "tk-softimage" + diff --git a/core/schema/project/sequences/sequence/shot/step/work/softimage/snapshots/placeholder b/core/schema/project/sequences/sequence/shot/step/work/softimage/snapshots/placeholder new file mode 100644 index 0000000..88a425e --- /dev/null +++ b/core/schema/project/sequences/sequence/shot/step/work/softimage/snapshots/placeholder @@ -0,0 +1,4 @@ +# This file is a placeholder to ensure that the parent folder is preserved and not deleted by git. +# Any file named 'placeholder' will not be copied across when folders are created. +# Note: You can which files should be ignored when folders are created in the ignore_files file, +# located in the schema folder. \ No newline at end of file diff --git a/core/templates.yml b/core/templates.yml index e1c9270..e9e36ac 100644 --- a/core/templates.yml +++ b/core/templates.yml @@ -1,379 +1,680 @@ -# Copyright (c) 2013 Shotgun Software Inc. -# -# CONFIDENTIAL AND PROPRIETARY -# -# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit -# Source Code License included in this distribution package. See LICENSE. -# By accessing, using, copying or modifying this work you indicate your -# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights -# not expressly granted therein are reserved by Shotgun Software Inc. - -# -# This file is one of the central points in the Shotgun Pipeline Toolkit configuration and -# a counterpart to the folder configuration structure. -# -# The folder structure underneath the project folder is used to create folders on disk - -# templates.yml (this file) refers to those folders. Therefore, the two files need to be -# in sync. This file contains an overview of all locations that are used by Sgtk. -# -# Whenever an app or an engine refers to a location on disk, it is using an entry defined in -# this file. For more information, see the Shotgun Pipeline Toolkit Documentation. - - - -# -# The keys section contains the definitions for all the different keys that are being -# used by Sgtk. A key is a magic token that is replaced by a value at runtime, for example -# {Shot}. The section below tells Sgtk which data types and formats to expect for each key. -# -keys: - # Added for Alembic Cache Publish (Pat Andrew) - grp_name: - type: str - - # Added for export timecode from Hiero to Shotgun (Pat Andrew) - gbl_timecode: - type: str - - Sequence: - type: str - Shot: - type: str - Step: - type: str - sg_asset_type: - type: str - Asset: - type: str - name: - type: str - #filter_by: alphanumeric - iteration: - type: int - version: - type: int - format_spec: "03" - version_four: - type: int - format_spec: "04" - alias: version - timestamp: - type: str - width: - type: int - height: - type: int - channel: - type: str - filter_by: alphanumeric - SEQ: - type: sequence - format_spec: "04" - eye: - type: str - node: - type: str - - # these are used by the hiero exporter and pipeline - YYYY: - type: int - format_spec: "04" - MM: - type: int - format_spec: "02" - DD: - type: int - format_spec: "02" - alias: DD - project: - type: str - - - - - -# -# The paths section contains all the the key locations where files are to be stored -# by Sgtk Apps. Each path is made up of several keys (like {version} or {shot}) and -# these are defined in the keys section above. -# -# Apps use these paths as part of their configuration to define where on disk -# different files should go. -# - -paths: - - - shot_root: sequences/{Sequence}/{Shot} - shot_publish_root: '@shot_root/publish/{Step}' - shot_work_root: '@shot_root/work/{Step}' - - asset_root: assets/{sg_asset_type}/{Asset} - asset_publish_root: '@asset_root/{Step}/publish' - asset_work_root: '@asset_root/{Step}/work' - - sequence_root: sequences/{Sequence} - - # Added for Alembic Cache Publish (Pat Andrew) - alembic_shot_publish_root: sequences/{Sequence}/{Shot}/publish - - - ########################################################################################## - # Project level paths - # - - # - # Hiero - # - - # The location of WIP files - hiero_project_work: 'editorial/work/hiero/{name}_v{version}.hrox' - hiero_project_work_area: 'editorial/work/hiero' - - # The location of backups of WIP files - hiero_project_snapshot: 'editorial/work/hiero/snapshots/{name}_v{version}_{timestamp}.hrox' - - # The location of published Hiero files - hiero_project_publish: 'editorial/publish/hiero/{name}_v{version}.hrox' - hiero_project_publish_area: 'editorial/publish/hiero' - - - ########################################################################################## - # Sequence level paths - # - - - ########################################################################################## - # Shot level paths - # - - # - # Photoshop - # - - # The location of WIP files - photoshop_shot_work: '@shot_work_root/photoshop/{name}.v{version}.psd' - shot_work_area_photoshop: '@shot_work_root/photoshop' - - # The location of backups of WIP files - photoshop_shot_snapshot: '@shot_work_root/photoshop/snapshots/{name}.v{version}.{timestamp}.psd' - - # The location of published files - shot_publish_area_photoshop: '@shot_publish_root/photoshop' - photoshop_shot_publish: '@shot_publish_root/photoshop/{name}.v{version}.psd' - - # - # Maya - # - - # define the location of a work area - shot_work_area_maya: '@shot_work_root/maya' - - # define the location of a publish area - shot_publish_area_maya: '@shot_publish_root/maya' - - # The location of WIP files - maya_shot_work: '@shot_work_root/maya/{name}.v{version}.ma' - - # The location of backups of WIP files - maya_shot_snapshot: '@shot_work_root/maya/snapshots/{name}.v{version}.{timestamp}.ma' - - # The location of published maya files - maya_shot_publish: '@shot_publish_root/maya/{name}.v{version}.ma' - - # Added for Alembic Cache Publish (Pat Andrew) - # The location of published camera files - maya_shot_camera_publish: '@alembic_shot_publish_root/camera/{Shot}_{name}.v{version}.abc' - # The location of published geometry files - maya_shot_geo_publish: '@alembic_shot_publish_root/refGeo/{Shot}_{name}.v{version}.abc' - - # Added for render publish from Maya (Pat Andrew) - maya_shot_render: '@shot_work_area_maya/images/{name}.v{version}.{SEQ}.exr' - maya_shot_render_publish: renders/{Sequence}/{Shot}/v{version}/{width}x{height}/{name}.v{version}.{SEQ}.exr - - - # - # Houdini - # - - # define the location of a work area - shot_work_area_houdini: '@shot_work_root/houdini' - - # define the location of a publish area - shot_publish_area_houdini: '@shot_publish_root/houdini' - - # The location of WIP files - houdini_shot_work: '@shot_work_root/houdini/{name}.v{version}.hip' - - # The location of backups of WIP files - houdini_shot_snapshot: '@shot_work_root/houdini/snapshots/{name}.v{version}.{timestamp}.hip' - - # The location of published houdini files - houdini_shot_publish: '@shot_publish_root/houdini/{name}.v{version}.hip' - - # Alembic caches - houdini_shot_work_alembic_cache: '@shot_work_root/houdini/cache/alembic/{name}/v{version}/{Shot}_{name}_v{version}_{node}.abc' - - # Rendered images - houdini_shot_render: '@shot_work_root/images/{name}/v{version}/{width}x{height}/{Shot}_{name}_v{version}.{SEQ}.exr' - - - # - # Nuke - # - - # define the location of a work area - shot_work_area_nuke: '@shot_work_root/nuke' - - # define the location of a publish area - shot_publish_area_nuke: '@shot_publish_root/nuke' - - # The location of WIP script files - nuke_shot_work: '@shot_work_root/nuke/{name}.v{version}.nk' - - # The location of backups of WIP files - nuke_shot_snapshot: '@shot_work_root/nuke/snapshots/{name}.v{version}.{timestamp}.nk' - - # The location of published nuke script files - nuke_shot_publish: '@shot_publish_root/nuke/{name}.v{version}.nk' - - # write node outputs - nuke_shot_render_mono_dpx: '@shot_work_root/images/{name}/v{version}/{width}x{height}/{Shot}_{name}_{channel}_v{version}.{SEQ}.dpx' - nuke_shot_render_pub_mono_dpx: '@shot_publish_root/elements/{name}/v{version}/{width}x{height}/{Shot}_{name}_{channel}_v{version}.{SEQ}.dpx' - nuke_shot_render_stereo: '@shot_work_root/images/{name}/v{version}/{width}x{height}/{Shot}_{name}_{channel}_{eye}_v{version}.{SEQ}.exr' - nuke_shot_render_pub_stereo: '@shot_publish_root/elements/{name}/v{version}/{width}x{height}/{Shot}_{name}_{channel}_{eye}_v{version}.{SEQ}.exr' - - # review output - shot_quicktime_quick: '@shot_root/review/quickdaily/{Shot}_{name}_{iteration}.mov' - nuke_shot_render_movie: '@shot_root/review/{Shot}_{name}_{channel}_v{version}.mov' - - # - # Hiero - # - - # export of shot asset data from hiero - hiero_plate_path: 'source/{Sequence}/{Shot}/plates/{Shot}.{SEQ}.exr' - hiero_render_path: 'source/{Sequence}/{Shot}/ref/{Shot}.{SEQ}.jpg' - hiero_nuke_script: 'editorial/work/hiero/nuke/{Shot}.v{version}.nk' - - - ########################################################################################## - # Asset pipeline - - # The location of published texture files. Added for shader converter utility (Pat Andrew) - asset_texture_publish: '@asset_root/texture/publish/v{version}' - - # - # Photoshop - # - - # The location of WIP files - photoshop_asset_work: '@asset_work_root/photoshop/{name}.v{version}.psd' - asset_work_area_photoshop: '@asset_work_root/photoshop' - - # The location of backups of WIP files - photoshop_asset_snapshot: '@asset_work_root/photoshop/snapshots/{name}.v{version}.{timestamp}.psd' - - # The location of published files - asset_publish_area_photoshop: '@asset_publish_root/photoshop' - photoshop_asset_publish: '@asset_publish_root/photoshop/{name}.v{version}.psd' - - - # - # Maya - # - - # define the location of a work area - asset_work_area_maya: '@asset_work_root/maya' - - # define the location of a publish area - asset_publish_area_maya: '@asset_publish_root/maya' - - # The location of WIP files - maya_asset_work: '@asset_work_root/maya/{name}.v{version}.ma' - - # The location of backups of WIP files - maya_asset_snapshot: '@asset_work_root/maya/snapshots/{name}.v{version}.{timestamp}.ma' - - # The location of published maya files - maya_asset_publish: '@asset_publish_root/maya/{name}.v{version}.ma' - - # Added for Alembic Cache Publish (Pat Andrew) - # The location of published alembic files - maya_asset_alembic_publish: '@asset_publish_root/{Asset}_{name}.v{version}.abc' - - - # - # Houdini - # - - # define the location of a work area - asset_work_area_houdini: '@asset_work_root/houdini' - - # define the location of a publish area - asset_publish_area_houdini: '@asset_publish_root/houdini' - - # The location of WIP files - houdini_asset_work: '@asset_work_root/houdini/{name}.v{version}.hip' - - # The location of backups of WIP files - houdini_asset_snapshot: '@asset_work_root/houdini/snapshots/{name}.v{version}.{timestamp}.hip' - - # The location of published houdini files - houdini_asset_publish: '@asset_publish_root/houdini/{name}.v{version}.hip' - - # Alembic caches - houdini_asset_work_alembic_cache: '@asset_work_root/houdini/cache/alembic/{name}/v{version}/{Shot}_{name}_v{version}_{node}.abc' - - # Rendered images - houdini_asset_render: '@asset_work_root/images/{name}/v{version}/{width}x{height}/{Shot}_{name}_v{version}.{SEQ}.exr' - - - # - # Nuke - # - - # define the location of a work area - asset_work_area_nuke: '@asset_work_root/nuke' - - # define the location of a publish area - asset_publish_area_nuke: '@asset_publish_root/nuke' - - # outputs from the Shotgun Write Node for assets - nuke_asset_render: '@asset_work_root/images/{name}/v{version}/{width}x{height}/{Asset}_{name}_{channel}_v{version}.{SEQ}.exr' - nuke_asset_render_review_seq: '@asset_root/review/images/{name}/v{version}/{width}x{height}/{Asset}_{name}_{channel}_v{version}.{iteration}.{SEQ}.exr' - nuke_asset_render_pub: '@asset_publish_root/elements/{name}/v{version}/{width}x{height}/{Asset}_{name}_{channel}_v{version}.{SEQ}.exr' - - # review output - nuke_asset_render_movie: '@asset_root/review/{Asset}_{name}_{channel}_v{version}.mov' - asset_quicktime_quick: '@asset_root/review/quickdaily/{Asset}_{name}_{iteration}.mov' - - # The location of WIP script files - nuke_asset_work: '@asset_work_root/nuke/{name}.v{version}.nk' - - # The location of backups of WIP files - nuke_asset_snapshot: '@asset_work_root/nuke/snapshots/{name}.v{version}.{timestamp}.nk' - - # The location of published nuke script files - nuke_asset_publish: '@asset_publish_root/nuke/{name}.v{version}.nk' - - -# -# The strings section is similar to the paths section - but rather than defining paths -# on disk, it contains a list of strings. Strings are typically used when you want to be -# able to configure the way data is written to shotgun - it may be the name field for a -# review version or the formatting of a publish. -# - -strings: - - # when a review version in shotgun is created inside of nuke, this is the - # name that is being given to it (the code field) - nuke_shot_version_name: "{Shot}_{name}_{channel}_v{version}.{iteration}" - nuke_quick_shot_version_name: "{Shot}_{name}_quick_{iteration}" - - nuke_asset_version_name: "{Asset}_{name}_{channel}_v{version}.{iteration}" - nuke_quick_asset_version_name: "{Asset}_{name}_quick_{iteration}" - - # Defines how the {tk_version} token in Hiero gets formatted back to tk. - hiero_version: "{version}" +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# +# This file is one of the central points in the Shotgun Pipeline Toolkit configuration and +# a counterpart to the folder configuration structure. +# +# The folder structure underneath the project folder is used to create folders on disk - +# templates.yml (this file) refers to those folders. Therefore, the two files need to be +# in sync. This file contains an overview of all locations that are used by Sgtk. +# +# Whenever an app or an engine refers to a location on disk, it is using an entry defined in +# this file. For more information, see the Shotgun Pipeline Toolkit Documentation. + + + +# +# The keys section contains the definitions for all the different keys that are being +# used by Sgtk. A key is a magic token that is replaced by a value at runtime, for example +# {Shot}. The section below tells Sgtk which data types and formats to expect for each key. +# +keys: + Sequence: + type: str + Shot: + type: str + Step: + type: str + sg_asset_type: + type: str + Asset: + type: str + name: + type: str + filter_by: alphanumeric + iteration: + type: int + version: + type: int + format_spec: "03" + version_four: + type: int + format_spec: "04" + alias: version + timestamp: + type: str + width: + type: int + height: + type: int + + # Represents the optional output name for frames written by the Shotgun Write Node + nuke.output: + alias: output + type: str + filter_by: alphanumeric + + SEQ: + type: sequence + format_spec: "04" + eye: + type: str + + houdini.node: + alias: node + type: str + aov_name: + type: str + + # these are used by the Hiero exporter and pipeline + YYYY: + type: int + format_spec: "04" + MM: + type: int + format_spec: "02" + DD: + type: int + format_spec: "02" + alias: DD + project: + type: str + + # These are used for the Mari UDIM pipeline: + UDIM: + type: sequence + default: "" + mari.channel: + type: str + alias: channel + mari.layer: + type: str + alias: layer + mari.project_name: + type: str + alias: name + asset_name: + type: str + shotgun_entity_type: Asset + shotgun_field_name: code + task_name: + type: str + shotgun_entity_type: Task + shotgun_field_name: content + + # Maya supports two extension types. + maya_extension: + type: str + choices: + ma: Maya Ascii (.ma) + mb: Maya Binary (.mb) + default: ma + alias: extension + +# +# The paths section contains all the the key locations where files are to be stored +# by Sgtk Apps. Each path is made up of several keys (like {version} or {shot}) and +# these are defined in the keys section above. +# +# Apps use these paths as part of their configuration to define where on disk +# different files should go. +# +# In this default configuration, all of the root_name keys will be set to 'primary'. +# This is because the default configuration stores all its production data in a single +# tree and hence uses a single root folder on disk. If you wanted to extend the +# configuration to span multiple root points, for example because you want to store +# renders on a different server, you could define an additional root in Shotgun, and +# then switch any relevant templates to point to that one instead. +# + +paths: + + # Common path definitions to use as shorthand in order to avoid repetitive and verbose + # templates. This also makes it easy to change any of the common root paths and have the + # changes apply to all templates that use them. + # + # These don't require the standard formatting (with definition and root_name) because they + # will be set within each template that uses the alias. + shot_root: sequences/{Sequence}/{Shot}/{Step} + asset_root: assets/{sg_asset_type}/{Asset}/{Step} + sequence_root: sequences/{Sequence} + + + ########################################################################################## + # Project level paths + # + + # + # Hiero + # + + # The location of WIP files + hiero_project_work: + definition: 'editorial/work/{name}_v{version}.hrox' + root_name: 'primary' + hiero_project_work_area: + definition: 'editorial/work' + root_name: 'primary' + # The location of backups of WIP files + hiero_project_snapshot: + definition: 'editorial/work/snapshots/{name}_v{version}_{timestamp}.hrox' + root_name: 'primary' + # The location of published maya files + hiero_project_publish: + definition: 'editorial/publish/{name}_v{version}.hrox' + root_name: 'primary' + hiero_project_publish_area: + definition: 'editorial/publish' + root_name: 'primary' + + + ########################################################################################## + # Sequence level paths + # + + + ########################################################################################## + # Shot level paths + # + + + # + # Photoshop + # + + # The location of WIP files + photoshop_shot_work: + definition: '@shot_root/work/photoshop/{name}.v{version}.psd' + root_name: 'primary' + shot_work_area_photoshop: + definition: '@shot_root/work/photoshop' + root_name: 'primary' + # The location of backups of WIP files + photoshop_shot_snapshot: + definition: '@shot_root/work/photoshop/snapshots/{name}.v{version}.{timestamp}.psd' + root_name: 'primary' + # The location of published files + shot_publish_area_photoshop: + definition: '@shot_root/publish/photoshop' + root_name: 'primary' + photoshop_shot_publish: + definition: '@shot_root/publish/photoshop/{name}.v{version}.psd' + root_name: 'primary' + + + # + # Maya + # + + # define the location of a work area + shot_work_area_maya: + definition: '@shot_root/work/maya' + root_name: 'primary' + # define the location of a publish area + shot_publish_area_maya: + definition: '@shot_root/publish/maya' + root_name: 'primary' + # The location of WIP files + maya_shot_work: + definition: '@shot_root/work/maya/{name}.v{version}.{maya_extension}' + root_name: 'primary' + # The location of backups of WIP files + maya_shot_snapshot: + definition: '@shot_root/work/maya/snapshots/{name}.v{version}.{timestamp}.{maya_extension}' + root_name: 'primary' + # The location of published maya files + maya_shot_publish: + definition: '@shot_root/publish/maya/{name}.v{version}.{maya_extension}' + root_name: 'primary' + + + # + # Houdini + # + + # define the location of a work area + shot_work_area_houdini: + definition: '@shot_root/work/houdini' + root_name: 'primary' + # define the location of a publish area + shot_publish_area_houdini: + definition: '@shot_root/publish/houdini' + root_name: 'primary' + # The location of WIP files + houdini_shot_work: + definition: '@shot_root/work/houdini/{name}.v{version}.hip' + root_name: 'primary' + # The location of backups of WIP files + houdini_shot_snapshot: + definition: '@shot_root/work/houdini/snapshots/{name}.v{version}.{timestamp}.hip' + root_name: 'primary' + # The location of published houdini files + houdini_shot_publish: + definition: '@shot_root/publish/houdini/{name}.v{version}.hip' + root_name: 'primary' + # Alembic caches + houdini_shot_work_alembic_cache: + definition: '@shot_root/work/houdini/cache/alembic/{name}/{houdini.node}/v{version}/{Shot}_{name}_v{version}.abc' + root_name: 'primary' + + # Rendered images + houdini_shot_render: + definition: '@shot_root/work/images/{name}/{houdini.node}/v{version}/{width}x{height}/{Shot}_{name}_v{version}.{SEQ}.exr' + root_name: 'primary' + + # Additional mantra outputs + houdini_shot_ifd: + definition: '@shot_root/work/ifds/{name}/{houdini.node}/v{version}/{width}x{height}/{Shot}_{name}_v{version}.{SEQ}.ifd' + root_name: 'primary' + + houdini_shot_dcm: + definition: '@shot_root/work/dcms/{name}/{houdini.node}/v{version}/{width}x{height}/{Shot}_{name}_v{version}.{SEQ}.dcm' + root_name: 'primary' + + houdini_shot_extra_plane: + definition: '@shot_root/work/images/{name}/{houdini.node}/{aov_name}/v{version}/{width}x{height}/{Shot}_{name}_v{version}.{SEQ}.exr' + root_name: 'primary' + + + # + # 3dsmax + # + + # define the location of a work area + shot_work_area_max: + definition: '@shot_root/work/3dsmax' + root_name: 'primary' + # define the location of a publish area + shot_publish_area_max: + definition: '@shot_root/publish/3dsmax' + root_name: 'primary' + # The location of WIP files + max_shot_work: + definition: '@shot_root/work/3dsmax/{name}.v{version}.max' + root_name: 'primary' + # The location of backups of WIP files + max_shot_snapshot: + definition: '@shot_root/work/3dsmax/snapshots/{name}.v{version}.{timestamp}.max' + root_name: 'primary' + # The location of published maya files + max_shot_publish: + definition: '@shot_root/publish/3dsmax/{name}.v{version}.max' + root_name: 'primary' + + + # + # Motionbuilder + # + + # define the location of a work area + shot_work_area_mobu: + definition: '@shot_root/work/mobu' + root_name: 'primary' + # define the location of a publish area + shot_publish_area_mobu: + definition: '@shot_root/publish/mobu' + root_name: 'primary' + # The location of WIP files + mobu_shot_work: + definition: '@shot_root/work/mobu/{name}.v{version}.fbx' + root_name: 'primary' + # The location of backups of WIP files + mobu_shot_snapshot: + definition: '@shot_root/work/mobu/snapshots/{name}.v{version}.{timestamp}.fbx' + root_name: 'primary' + # The location of published maya files + mobu_shot_publish: + definition: '@shot_root/publish/mobu/{name}.v{version}.fbx' + root_name: 'primary' + + + # + # Nuke + # + + # define the location of a work area + shot_work_area_nuke: + definition: '@shot_root/work/nuke' + root_name: 'primary' + # define the location of a publish area + shot_publish_area_nuke: + definition: '@shot_root/publish/nuke' + root_name: 'primary' + # The location of WIP script files + nuke_shot_work: + definition: '@shot_root/work/nuke/{name}.v{version}.nk' + root_name: 'primary' + # The location of backups of WIP files + nuke_shot_snapshot: + definition: '@shot_root/work/nuke/snapshots/{name}.v{version}.{timestamp}.nk' + root_name: 'primary' + # The location of published nuke script files + nuke_shot_publish: + definition: '@shot_root/publish/nuke/{name}.v{version}.nk' + root_name: 'primary' + # write node outputs + nuke_shot_render_mono_dpx: + definition: '@shot_root/work/images/{name}/v{version}/{width}x{height}/{Shot}_{name}_{nuke.output}_v{version}.{SEQ}.dpx' + root_name: 'primary' + nuke_shot_render_pub_mono_dpx: + definition: '@shot_root/publish/elements/{name}/v{version}/{width}x{height}/{Shot}_{name}_{nuke.output}_v{version}.{SEQ}.dpx' + root_name: 'primary' + nuke_shot_render_stereo: + definition: '@shot_root/work/images/{name}/v{version}/{width}x{height}/{Shot}_{name}_{nuke.output}_{eye}_v{version}.{SEQ}.exr' + root_name: 'primary' + nuke_shot_render_pub_stereo: + definition: '@shot_root/publish/elements/{name}/v{version}/{width}x{height}/{Shot}_{name}_{nuke.output}_{eye}_v{version}.{SEQ}.exr' + root_name: 'primary' + # review output + shot_quicktime_quick: + definition: '@shot_root/review/quickdaily/{Shot}_{name}_{iteration}.mov' + root_name: 'primary' + nuke_shot_render_movie: + definition: '@shot_root/review/{Shot}_{name}_{nuke.output}_v{version}.mov' + root_name: 'primary' + + # + # Hiero + # + + # export of shot asset data from hiero + hiero_plate_path: + definition: 'sequences/{Sequence}/{Shot}/editorial/{YYYY}_{MM}_{DD}/plates/{project}_{Shot}.mov' + root_name: 'primary' + hiero_render_path: + definition: 'sequences/{Sequence}/{Shot}/editorial/{YYYY}_{MM}_{DD}/renders/{project}_{Shot}.{SEQ}.dpx' + root_name: 'primary' + + + # + # Softimage + # + + # define the location of a work area + shot_work_area_softimage: + definition: '@shot_root/work/softimage' + root_name: 'primary' + # define the location of a publish area + shot_publish_area_softimage: + definition: '@shot_root/publish/softimage' + root_name: 'primary' + # The location of WIP files + softimage_shot_work: + definition: '@shot_root/work/softimage/{name}.v{version}.scn' + root_name: 'primary' + # The location of backups of WIP files + softimage_shot_snapshot: + definition: '@shot_root/work/softimage/snapshots/{name}.v{version}.{timestamp}.scn' + root_name: 'primary' + # The location of published softimage files + softimage_shot_publish: + definition: '@shot_root/publish/softimage/{name}.v{version}.scn' + root_name: 'primary' + + + ########################################################################################## + # Asset pipeline + + + # + # Alembic caches + # + + asset_alembic_cache: + definition: '@asset_root/publish/caches/{name}.v{version}.abc' + root_name: 'primary' + + + # + # Photoshop + # + + # The location of WIP files + photoshop_asset_work: + definition: '@asset_root/work/photoshop/{name}.v{version}.psd' + root_name: 'primary' + asset_work_area_photoshop: + definition: '@asset_root/work/photoshop' + root_name: 'primary' + # The location of backups of WIP files + photoshop_asset_snapshot: + definition: '@asset_root/work/photoshop/snapshots/{name}.v{version}.{timestamp}.psd' + root_name: 'primary' + # The location of published files + asset_publish_area_photoshop: + definition: '@asset_root/publish/photoshop' + root_name: 'primary' + photoshop_asset_publish: + definition: '@asset_root/publish/photoshop/{name}.v{version}.psd' + root_name: 'primary' + + + # + # Mari + # + asset_mari_texture_tif: + definition: '@asset_root/publish/mari/{name}_{mari.channel}[_{mari.layer}].v{version}.{UDIM}.tif' + root_name: 'primary' + + # + # Maya + # + + # define the location of a work area + asset_work_area_maya: + definition: '@asset_root/work/maya' + root_name: 'primary' + # define the location of a publish area + asset_publish_area_maya: + definition: '@asset_root/publish/maya' + root_name: 'primary' + # The location of WIP files + maya_asset_work: + definition: '@asset_root/work/maya/{name}.v{version}.{maya_extension}' + root_name: 'primary' + # The location of backups of WIP files + maya_asset_snapshot: + definition: '@asset_root/work/maya/snapshots/{name}.v{version}.{timestamp}.{maya_extension}' + root_name: 'primary' + # The location of published maya files + maya_asset_publish: + definition: '@asset_root/publish/maya/{name}.v{version}.{maya_extension}' + root_name: 'primary' + + + # + # Houdini + # + + # define the location of a work area + asset_work_area_houdini: + definition: '@asset_root/work/houdini' + root_name: 'primary' + # define the location of a publish area + asset_publish_area_houdini: + definition: '@asset_root/publish/houdini' + root_name: 'primary' + # The location of WIP files + houdini_asset_work: + definition: '@asset_root/work/houdini/{name}.v{version}.hip' + root_name: 'primary' + # The location of backups of WIP files + houdini_asset_snapshot: + definition: '@asset_root/work/houdini/snapshots/{name}.v{version}.{timestamp}.hip' + root_name: 'primary' + # The location of published houdini files + houdini_asset_publish: + definition: '@asset_root/publish/houdini/{name}.v{version}.hip' + root_name: 'primary' + # Alembic caches + houdini_asset_work_alembic_cache: + definition: '@asset_root/work/houdini/cache/alembic/{name}/{houdini.node}/v{version}/{Asset}_{name}_v{version}.abc' + root_name: 'primary' + + # Rendered images + houdini_asset_render: + definition: '@asset_root/work/images/{name}/{houdini.node}/v{version}/{width}x{height}/{Asset}_{name}_v{version}.{SEQ}.exr' + root_name: 'primary' + + # Additional mantra outputs + houdini_asset_ifd: + definition: '@asset_root/work/ifds/{name}/{houdini.node}/v{version}/{width}x{height}/{Asset}_{name}_v{version}.{SEQ}.ifd' + root_name: 'primary' + + houdini_asset_dcm: + definition: '@asset_root/work/dcms/{name}/{houdini.node}/v{version}/{width}x{height}/{Asset}_{name}_v{version}.{SEQ}.dcm' + root_name: 'primary' + + houdini_asset_extra_plane: + definition: '@asset_root/work/images/{name}/{houdini.node}/{aov_name}/v{version}/{width}x{height}/{Asset}_{name}_v{version}.{SEQ}.exr' + root_name: 'primary' + + + # + # 3dsmax + # + + # define the location of a work area + asset_work_area_max: + definition: '@asset_root/work/3dsmax' + root_name: 'primary' + # define the location of a publish area + asset_publish_area_max: + definition: '@asset_root/publish/3dsmax' + root_name: 'primary' + # The location of WIP files + max_asset_work: + definition: '@asset_root/work/3dsmax/{name}.v{version}.max' + root_name: 'primary' + # The location of backups of WIP files + max_asset_snapshot: + definition: '@asset_root/work/3dsmax/snapshots/{name}.v{version}.{timestamp}.max' + root_name: 'primary' + # The location of published maya files + max_asset_publish: + definition: '@asset_root/publish/3dsmax/{name}.v{version}.max' + root_name: 'primary' + + + # + # Motionbuilder + # + + # define the location of a work area + asset_work_area_mobu: + definition: '@asset_root/work/mobu' + root_name: 'primary' + # define the location of a publish area + asset_publish_area_mobu: + definition: '@asset_root/publish/mobu' + root_name: 'primary' + # The location of WIP files + mobu_asset_work: + definition: '@asset_root/work/mobu/{name}.v{version}.fbx' + root_name: 'primary' + # The location of backups of WIP files + mobu_asset_snapshot: + definition: '@asset_root/work/mobu/snapshots/{name}.v{version}.{timestamp}.fbx' + root_name: 'primary' + # The location of published Motionbuilder files + mobu_asset_publish: + definition: '@asset_root/publish/mobu/{name}.v{version}.fbx' + root_name: 'primary' + + + # + # Nuke + # + + # define the location of a work area + asset_work_area_nuke: + definition: '@asset_root/work/nuke' + root_name: 'primary' + # define the location of a publish area + asset_publish_area_nuke: + definition: '@asset_root/publish' + root_name: 'primary' + # outputs from the Shotgun Write Node for assets + nuke_asset_render: + definition: '@asset_root/work/images/{name}/v{version}/{width}x{height}/{Asset}_{name}_{nuke.output}_v{version}.{SEQ}.exr' + root_name: 'primary' + nuke_asset_render_pub: + definition: '@asset_root/publish/elements/{name}/v{version}/{width}x{height}/{Asset}_{name}_{nuke.output}_v{version}.{SEQ}.exr' + root_name: 'primary' + # review output + nuke_asset_render_movie: + definition: '@asset_root/review/{Asset}_{name}_{nuke.output}_v{version}.mov' + root_name: 'primary' + asset_quicktime_quick: + definition: '@asset_root/review/quickdaily/{Asset}_{name}_{iteration}.mov' + root_name: 'primary' + # The location of WIP script files + nuke_asset_work: + definition: '@asset_root/work/nuke/{name}.v{version}.nk' + root_name: 'primary' + # The location of backups of WIP files + nuke_asset_snapshot: + definition: '@asset_root/work/nuke/snapshots/{name}.v{version}.{timestamp}.nk' + root_name: 'primary' + # The location of published nuke script files + nuke_asset_publish: + definition: '@asset_root/publish/nuke/{name}.v{version}.nk' + root_name: 'primary' + + + # + # Softimage + # + + # define the location of a work area + asset_work_area_softimage: + definition: '@asset_root/work/softimage' + root_name: 'primary' + # define the location of a publish area + asset_publish_area_softimage: + definition: '@asset_root/publish/softimage' + root_name: 'primary' + # The location of WIP files + softimage_asset_work: + definition: '@asset_root/work/softimage/{name}.v{version}.scn' + root_name: 'primary' + # The location of backups of WIP files + softimage_asset_snapshot: + definition: '@asset_root/work/softimage/snapshots/{name}.v{version}.{timestamp}.scn' + root_name: 'primary' + # The location of published softimage files + softimage_asset_publish: + definition: '@asset_root/publish/softimage/{name}.v{version}.scn' + root_name: 'primary' + + +# +# The strings section is similar to the paths section - but rather than defining paths +# on disk, it contains a list of strings. Strings are typically used when you want to be +# able to configure the way data is written to shotgun - it may be the name field for a +# review version or the formatting of a publish. +# + +strings: + + # when a review Version in Shotgun is created inside of Nuke, this is the + # name that is being given to it (the code field) + nuke_shot_version_name: "{Shot}_{name}_{nuke.output}_v{version}.{iteration}" + nuke_quick_shot_version_name: "{Shot}_{name}_quick_{iteration}" + + nuke_asset_version_name: "{Asset}_{name}_{nuke.output}_v{version}.{iteration}" + nuke_quick_asset_version_name: "{Asset}_{name}_quick_{iteration}" + + # defines how the {tk_version} token in Hiero gets formatted back to tk. + hiero_version: "{version}" + + # define how new Mari projects should be named + mari_asset_project_name: "{mari.project_name} - Asset {asset_name}, {task_name}" diff --git a/env/asset.yml b/env/asset.yml index 4001eb8..b7219e1 100644 --- a/env/asset.yml +++ b/env/asset.yml @@ -1,104 +1,252 @@ -description: Apps and engines loaded when an Asset is loaded. Since std VFX config - template has a file system structure which is centered around pipeline steps, this - environment is largely empty. Most of the work takes place on a level in the file - system where both an asset and a pipeline step is available - e.g Asset Hero, modeling, - so all apps for loading, publishing etc. are located in the asset_step environment. - This environment mostly contains utility apps and the tank work files app, which - lets you choose a task to work on and load associated content into an application. -engines: - tk-maya: - apps: - tk-multi-about: '@about' - tk-multi-screeningroom: '@launch_screeningroom' - tk-multi-shotgunpanel: - action_mappings: - PublishedFile: - - actions: [publish_clipboard] - filters: {} - - actions: [reference, import] - filters: {published_file_type: Maya Scene} - - actions: [texture_node] - filters: {published_file_type: Rendered Image} - - actions: [texture_node] - filters: {published_file_type: Photoshop Image} - - actions: [udim_texture_node] - filters: {published_file_type: UDIM Image} - - actions: [reference] - filters: {published_file_type: Geometry} - - actions: [reference] - filters: {published_file_type: Camera} - Task: - - actions: [assign_task, task_to_ip] - filters: {} - Version: - - actions: [play_in_rv] - filters: {} - actions_hook: '{self}/tk-maya_actions.py:{config}/panel/maya_actions.py' - location: - version: v1.2.7 - type: app_store - name: tk-multi-shotgunpanel - shotgun_fields_hook: '{self}/shotgun_fields.py' - tk-multi-workfiles2: '@workfiles2' - compatibility_dialog_min_version: 2015 - debug_logging: false - location: - version: v0.6.0 - type: app_store - name: tk-maya - menu_favourites: - - {app_instance: tk-multi-workfiles2, name: File Open...} - template_project: - use_sgtk_as_menu_name: false - tk-nuke: - apps: {tk-multi-about: '@about', tk-multi-screeningroom: '@launch_screeningroom', - tk-multi-workfiles: '@workfiles'} - bin_context_menu: [] - compatibility_dialog_min_version: 8 - debug_logging: false - favourite_directories: [] - location: - version: v0.6.9 - type: app_store - name: tk-nuke - menu_favourites: - - {app_instance: tk-multi-workfiles, name: Shotgun File Manager...} - project_favourite_name: Shotgun Current Project - spreadsheet_context_menu: [] - timeline_context_menu: [] - use_sgtk_as_menu_name: false - tk-photoshop: - apps: {tk-multi-about: '@about', tk-multi-screeningroom: '@launch_screeningroom', - tk-multi-workfiles: '@workfiles'} - debug_logging: false - location: {name: tk-photoshop, type: app_store, version: v0.3.3} - tk-shell: - apps: {tk-multi-screeningroom: '@launch_screeningroom', tk-shotgun-launchmaya: '@launch_maya', - tk-shotgun-launchnuke: '@launch_nuke', tk-shotgun-launchphotoshop: '@launch_photoshop', - tk-shotgun-launchhoudini: '@launch_houdini'} - debug_logging: false - location: - version: v0.5.0 - type: app_store - name: tk-shell - tk-houdini: - apps: - tk-multi-about: '@about' - tk-multi-screeningroom: '@launch_screeningroom' - tk-multi-workfiles2: '@workfiles2' - location: - version: v1.0.10 - type: app_store - name: tk-houdini - enable_sg_shelf: true - enable_sg_menu: true - debug_logging: false - menu_favourites: - - {app_instance: tk-multi-workfiles2, name: File Open...} - - {app_instance: tk-multi-workfiles2, name: File Save...} - - {app_instance: tk-multi-snapshot, name: Snapshot...} - - {app_instance: tk-multi-publish, name: Publish...} -frameworks: - tk-framework-widget_v0.1.18: - location: {name: tk-framework-widget, type: app_store, version: v0.1.18} -includes: [./includes/app_launchers.yml, ./includes/common_apps.yml] +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. +# + +description: Apps and engines loaded when an Asset is loaded. Since std VFX config + template has a file system structure which is centered around pipeline steps, this + environment is largely empty. Most of the work takes place on a level in the file + system where both an asset and a pipeline step is available - e.g Asset Hero, modeling, + so all apps for loading, publishing etc. are located in the asset_step environment. + This environment mostly contains utility apps and the tank work files app, which + lets you choose a task to work on and load associated content into an application. + +################################################################################################# +# include common files +includes: +# launchers for launching DCCs such as Maya, Nuke etc. +- ./includes/app_launchers.yml +# common app configurations that are reused across environments +- ./includes/common_apps.yml + +################################################################################################# +# define all the items that should appear in this environment + + + +engines: + # + # ------------------------------------------------- + # 3dsmax + # ------------------------------------------------- + tk-3dsmax: + apps: + tk-multi-about: '@about' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + debug_logging: false + location: + version: v0.3.9 + type: app_store + name: tk-3dsmax + # + # ------------------------------------------------- + # 3dsmax plus + # ------------------------------------------------- + tk-3dsmaxplus: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + compatibility_dialog_min_version: 2017 + debug_logging: false + location: + version: v0.1.16 + type: app_store + name: tk-3dsmaxplus + menu_favourites: [] + # + # ------------------------------------------------- + # Houdini + # ------------------------------------------------- + tk-houdini: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + location: + version: v1.0.10 + type: app_store + name: tk-houdini + enable_sg_shelf: true + debug_logging: false + enable_sg_menu: true + menu_favourites: [] + # + # ------------------------------------------------- + # Mari + # ------------------------------------------------- + tk-mari: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-workfiles: + allow_task_creation: true + file_extensions: [] + hook_copy_file: default + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + launch_change_work_area_at_startup: false + location: + version: v0.7.4 + type: app_store + name: tk-multi-workfiles + saveas_default_name: scene + saveas_prefer_version_up: false + sg_entity_type_extra_display_fields: {} + sg_entity_type_filters: {} + sg_entity_types: [Asset] + sg_task_filters: [] + task_extra_display_fields: [] + template_publish: + template_publish_area: + template_work: + template_work_area: + version_compare_ignore_fields: [] + compatibility_dialog_min_version: 2 + debug_logging: false + location: + version: v1.1.4 + type: app_store + name: tk-mari + # + # ------------------------------------------------- + # Maya + # ------------------------------------------------- + tk-maya: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2-launch-at-startup' + compatibility_dialog_min_version: 2015 + debug_logging: false + location: + version: v0.6.0 + type: app_store + name: tk-maya + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + template_project: + use_sgtk_as_menu_name: false + + # + # ------------------------------------------------- + # Motionbuilder + # ------------------------------------------------- + tk-motionbuilder: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + debug_logging: false + location: + version: v0.3.1 + type: app_store + name: tk-motionbuilder + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + use_sgtk_as_menu_name: false + + # + # ------------------------------------------------- + # Nuke + # ------------------------------------------------- + tk-nuke: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + compatibility_dialog_min_version: 10 + debug_logging: false + favourite_directories: [] + location: + version: v0.6.9 + type: app_store + name: tk-nuke + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + project_favourite_name: Shotgun Current Project + use_sgtk_as_menu_name: false + bin_context_menu: [] + spreadsheet_context_menu: [] + timeline_context_menu: [] + # + # ------------------------------------------------- + # Photoshop + # ------------------------------------------------- + tk-photoshop: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + debug_logging: false + location: + version: v0.3.3 + type: app_store + name: tk-photoshop + # + # ------------------------------------------------- + # Shell + # ------------------------------------------------- + tk-shell: + apps: + tk-multi-launch3dsmax: '@launch_3dsmax' + tk-multi-launchhoudini: '@launch_houdini' + tk-multi-launchmaya: '@launch_maya' + tk-multi-launchmotionbuilder: '@launch_motionbuilder' + tk-multi-launchnuke: '@launch_nuke' + tk-multi-launchphotoshop: '@launch_photoshop' + tk-multi-launchsoftimage: '@launch_softimage' + tk-multi-screeningroom: '@launch_screeningroom' + tk-shotgun-launchmari: '@launch_mari' + location: + version: v0.5.0 + type: app_store + name: tk-shell + # + # ------------------------------------------------- + # Softimage + # ------------------------------------------------- + tk-softimage: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + debug_logging: false + location: + version: v0.3.2 + type: app_store + name: tk-softimage + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + template_project: +# +############################################################################### +# +# Framework includes. +# +# Frameworks are libraries that are shared between apps and that contain +# common functionality for building UIs and communicating with Shotgun. +# Frameworks are automatically installed when apps are installed and udpated. +# +frameworks: + tk-framework-softimageqt_v1.0.1: + location: + name: tk-framework-softimageqt + type: app_store + version: v1.0.1 diff --git a/env/asset_step.yml b/env/asset_step.yml index 8723d6b..9aa0826 100644 --- a/env/asset_step.yml +++ b/env/asset_step.yml @@ -1,518 +1,1638 @@ -description: Apps and Engines related to Asset based work. -engines: - tk-houdini: - apps: - tk-multi-about: '@about' - tk-multi-loader2: - action_mappings: - Houdini Scene: [merge] - actions_hook: '{self}/tk-houdini_actions.py' - download_thumbnails: true - entities: - - caption: Assets - entity_type: Asset - filters: - - [project, is, '{context.project}'] - hierarchy: [sg_asset_type, code] - publish_filters: [] - - caption: Shots - entity_type: Shot - filters: - - [project, is, '{context.project}'] - hierarchy: [sg_sequence, code] - publish_filters: [] - - caption: My Tasks - entity_type: Task - filters: - - [task_assignees, is, '{context.user}'] - - [project, is, '{context.project}'] - hierarchy: [entity, content] - publish_filters: [] - filter_publishes_hook: '{self}/filter_publishes.py' - location: {name: tk-multi-loader2, type: app_store, version: v1.11.2} - menu_name: Load - publish_filters: [] - title_name: Loader - tk-multi-publish: - allow_taskless_publishes: false - display_name: Publish - expand_single_items: false - hook_copy_file: default - hook_post_publish: default - hook_primary_pre_publish: default - hook_primary_publish: default - hook_scan_scene: default - hook_secondary_pre_publish: default - hook_secondary_publish: default - hook_thumbnail: default - location: - version: v0.9.4 - type: app_store - name: tk-multi-publish - primary_description: Publish and version up the current scene - primary_display_name: Scene File Publish - primary_icon: icons/publish_houdini_main.png - primary_publish_template: houdini_asset_publish - primary_scene_item_type: work_file - primary_tank_type: Houdini Scene - secondary_outputs: [] - template_work: houdini_asset_work - tk-multi-screeningroom: '@launch_screeningroom' - tk-multi-snapshot: - hook_copy_file: default - hook_scene_operation: default - hook_thumbnail: default - location: {name: tk-multi-snapshot, type: app_store, version: v0.6.1} - template_snapshot: houdini_asset_snapshot - template_work: houdini_asset_work - tk-multi-workfiles2: - location: - version: v0.7.39 - type: app_store - name: tk-multi-workfiles2 - allow_task_creation: true - template_publish: houdini_asset_publish - launch_at_startup: false - show_my_tasks: true - saveas_default_name: scene - template_publish_area: asset_publish_area_houdini - saveas_prefer_version_up: false - hook_filter_work_files: '{self}/filter_work_files.py' - create_new_task_hook: '{self}/create_new_task.py' - hook_copy_file: '{self}/copy_file.py' - file_extensions: [] - entities: - - hierarchy: - - entity.Asset.sg_asset_type - - entity - - step - - content - caption: Assets - filters: - - - entity - - type_is - - Asset - entity_type: Task - - hierarchy: - - entity.Shot.sg_sequence - - entity - - step - - content - caption: Shots - filters: - - - entity - - type_is - - Shot - entity_type: Task - template_work: houdini_asset_work - template_work_area: asset_work_area_houdini - custom_actions_hook: '{self}/custom_actions.py' - version_compare_ignore_fields: [] - hook_scene_operation: '{self}/scene_operation_tk-houdini.py' - hook_filter_publishes: '{self}/filter_publishes.py' - my_tasks_extra_display_fields: [] - debug_logging: false - enable_sg_menu: true - enable_sg_shelf: true - location: - version: v1.0.10 - type: app_store - name: tk-houdini - menu_favourites: - - {app_instance: tk-multi-workfiles2, name: File Open...} - - {app_instance: tk-multi-workfiles2, name: File Save...} - - {app_instance: tk-multi-snapshot, name: Snapshot...} - - {app_instance: tk-multi-publish, name: Publish...} - tk-maya: - apps: - tk-multi-about: '@about' - tk-multi-loader2: - action_mappings: - Camera: [reference] - Geometry: [reference] - Maya Scene: [reference, import] - Photoshop Image: [texture_node] - Rendered Image: [texture_node] - UDIM Image: [udim_texture_node] - actions_hook: '{self}/tk-maya_actions.py' - download_thumbnails: true - entities: - - caption: Assets - entity_type: Asset - filters: - - [project, is, '{context.project}'] - hierarchy: [sg_asset_type, code] - publish_filters: [] - - caption: Shots - entity_type: Shot - filters: - - [project, is, '{context.project}'] - hierarchy: [sg_sequence, code] - publish_filters: [] - - caption: My Tasks - entity_type: Task - filters: - - [task_assignees, is, '{context.user}'] - - [project, is, '{context.project}'] - hierarchy: [entity, content] - publish_filters: [] - filter_publishes_hook: '{self}/filter_publishes.py' - location: {name: tk-multi-loader2, type: app_store, version: v1.11.2} - menu_name: Load - publish_filters: [] - title_name: Loader - tk-multi-publish: - allow_taskless_publishes: false - display_name: Publish - expand_single_items: false - hook_copy_file: default - hook_post_publish: default - hook_primary_pre_publish: default - hook_primary_publish: default - hook_scan_scene: axis_maya_scan_scene - hook_secondary_pre_publish: axis_maya_secondary_pre_publish - hook_secondary_publish: axis_maya_secondary_publish - hook_thumbnail: default - location: - version: v0.9.4 - type: app_store - name: tk-multi-publish - primary_description: Publish and version up the current Maya scene - primary_display_name: Maya Publish - primary_icon: icons/publish_maya_main.png - primary_publish_template: maya_asset_publish - primary_scene_item_type: work_file - primary_tank_type: Maya Scene - secondary_outputs: - - {description: Export camera as .abc, display_group: Cameras, display_name: Publish - Camera, icon: icons/camera_icon_40px.png, name: camera_export, publish_template: maya_asset_alembic_publish, - required: false, scene_item_type: camera, selected: true, tank_type: Alembic - Cache} - - {description: Export geometry as .abc, display_group: Geometry, display_name: Publish - Geometry, icon: icons/polygon_icon_40px.png, name: geo_export, publish_template: maya_asset_alembic_publish, - required: false, scene_item_type: mesh_group, selected: true, tank_type: Alembic - Cache} - template_work: maya_asset_work - tk-multi-screeningroom: '@launch_screeningroom' - tk-multi-shotgunpanel: - action_mappings: - PublishedFile: - - actions: [publish_clipboard] - filters: {} - - actions: [reference, import] - filters: {published_file_type: Maya Scene} - - actions: [texture_node] - filters: {published_file_type: Rendered Image} - - actions: [texture_node] - filters: {published_file_type: Photoshop Image} - - actions: [udim_texture_node] - filters: {published_file_type: UDIM Image} - - actions: [reference] - filters: {published_file_type: Geometry} - - actions: [reference] - filters: {published_file_type: Camera} - Task: - - actions: [assign_task, task_to_ip] - filters: {} - Version: - - actions: [play_in_rv] - filters: {} - actions_hook: '{self}/tk-maya_actions.py:{config}/panel/maya_actions.py' - location: - version: v1.2.7 - type: app_store - name: tk-multi-shotgunpanel - shotgun_fields_hook: '{self}/shotgun_fields.py' - tk-multi-snapshot: - hook_copy_file: default - hook_scene_operation: default - hook_thumbnail: default - location: {name: tk-multi-snapshot, type: app_store, version: v0.6.1} - template_snapshot: maya_asset_snapshot - template_work: maya_asset_work - tk-multi-workfiles2: - allow_task_creation: true - create_new_task_hook: '{self}/create_new_task.py' - custom_actions_hook: '{self}/custom_actions.py' - entities: - - caption: Assets - entity_type: Task - filters: - - [entity, type_is, Asset] - hierarchy: [entity.Asset.sg_asset_type, entity, step, content] - - caption: Shots - entity_type: Task - filters: - - [entity, type_is, Shot] - hierarchy: [entity.Shot.sg_sequence, entity, step, content] - file_extensions: [] - hook_copy_file: '{self}/copy_file.py' - hook_filter_publishes: '{self}/filter_publishes.py' - hook_filter_work_files: '{self}/filter_work_files.py' - hook_scene_operation: '{self}/scene_operation_tk-maya.py' - launch_at_startup: true - location: - version: v0.7.39 - type: app_store - name: tk-multi-workfiles2 - my_tasks_extra_display_fields: [] - saveas_default_name: scene - saveas_prefer_version_up: false - show_my_tasks: true - template_publish: maya_asset_publish - template_publish_area: asset_publish_area_maya - template_work: maya_asset_work - template_work_area: asset_work_area_maya - version_compare_ignore_fields: [] - compatibility_dialog_min_version: 2015 - debug_logging: false - location: - version: v0.6.0 - type: app_store - name: tk-maya - menu_favourites: - - {app_instance: tk-multi-workfiles2, name: File Open...} - - {app_instance: tk-multi-workfiles2, name: File Save...} - - {app_instance: tk-multi-snapshot, name: Snapshot...} - - {app_instance: tk-multi-publish, name: Publish...} - template_project: asset_work_area_maya - use_sgtk_as_menu_name: false - tk-nuke: - apps: - tk-multi-about: '@about' - tk-multi-loader: - button_name: Load Selected Render - dependency_mode: false - hook_add_file_to_scene: default - location: {name: tk-multi-loader, type: app_store, version: v0.2.25} - menu_name: Load Render... - publish_filters: [] - sg_entity_types: - Asset: [] - single_select: true - tank_types: [Rendered Image] - title_name: Add Rendered Images & Sequences to your Scene - tk-multi-publish: - allow_taskless_publishes: false - display_name: Publish - expand_single_items: false - hook_copy_file: default - hook_post_publish: default - hook_primary_pre_publish: default - hook_primary_publish: default - hook_scan_scene: default - hook_secondary_pre_publish: default - hook_secondary_publish: default - hook_thumbnail: default - location: - version: v0.9.4 - type: app_store - name: tk-multi-publish - primary_description: Publishes and versions up the current Nuke script. - primary_display_name: Nuke Publish - primary_icon: icons/publish_nuke_main.png - primary_publish_template: nuke_asset_publish - primary_scene_item_type: work_file - primary_tank_type: Nuke Script - secondary_outputs: - - {description: Copies renders from work area to publish area., display_group: Shotgun - Write Nodes, display_name: Publish Renders and send to Screening Room, - icon: icons/publish_nuke_writenode.png, name: render, publish_template: !!null '', - required: false, scene_item_type: write_node, selected: true, tank_type: Rendered - Image} - - {description: Create quicktime and send to Screening Room, display_group: Shotgun - Write Nodes, display_name: Send to Screening Room, icon: icons/publish_nuke_review.png, - name: quicktime, publish_template: !!null '', required: false, scene_item_type: write_node, - selected: true, tank_type: Quicktime} - template_work: nuke_asset_work - tk-multi-reviewsubmission: - codec_settings_hook: '{self}/codec_settings.py' - location: - version: v0.3.2 - type: app_store - name: tk-multi-reviewsubmission - movie_height: 540 - movie_path_template: nuke_asset_render_movie - movie_width: 1024 - new_version_status: rev - slate_logo: icons/review_submit_logo.png - store_on_disk: true - upload_to_shotgun: true - version_number_padding: 3 - tk-multi-screeningroom: '@launch_screeningroom' - tk-multi-snapshot: - hook_copy_file: default - hook_scene_operation: default - hook_thumbnail: default - location: {name: tk-multi-snapshot, type: app_store, version: v0.6.1} - template_snapshot: nuke_asset_snapshot - template_work: nuke_asset_work - tk-multi-workfiles: - allow_task_creation: true - file_extensions: [] - hook_copy_file: default - hook_filter_publishes: default - hook_filter_work_files: default - hook_scene_operation: default - launch_at_startup: false - launch_change_work_area_at_startup: false - location: - version: v0.7.4 - type: app_store - name: tk-multi-workfiles - saveas_default_name: scene - saveas_prefer_version_up: false - sg_entity_type_extra_display_fields: {} - sg_entity_type_filters: {} - sg_entity_types: [Shot, Asset] - sg_task_filters: [] - task_extra_display_fields: [] - template_publish: nuke_asset_publish - template_publish_area: asset_publish_area_nuke - template_work: nuke_asset_work - template_work_area: asset_work_area_nuke - version_compare_ignore_fields: [] - tk-nuke-breakdown: - hook_multi_update: default - hook_scan_scene: default - location: {name: tk-nuke-breakdown, type: app_store, version: v0.3.0} - tk-nuke-quickdailies: - codec_settings_hook: '{self}/codec_settings.py' - current_scene_template: nuke_asset_work - height: 768 - location: - version: v0.3.3 - type: app_store - name: tk-nuke-quickdailies - movie_template: asset_quicktime_quick - post_hooks: [snapshot_history_post_quickdaily] - sg_version_name_template: nuke_quick_asset_version_name - upload_movie: false - width: 1024 - tk-nuke-writenode: - location: - version: v1.1.6 - type: app_store - name: tk-nuke-writenode - template_script_work: nuke_asset_work - write_nodes: - - file_type: exr - name: Exr - promote_write_knobs: [] - proxy_publish_template: - proxy_render_template: - publish_template: nuke_asset_render_pub - render_template: nuke_asset_render - settings: {} - tank_type: Rendered Image - tile_color: [] - bin_context_menu: [] - compatibility_dialog_min_version: 8 - debug_logging: false - favourite_directories: [] - location: - version: v0.6.9 - type: app_store - name: tk-nuke - menu_favourites: - - {app_instance: tk-multi-workfiles, name: Shotgun File Manager...} - - {app_instance: tk-multi-snapshot, name: Snapshot...} - - {app_instance: tk-multi-workfiles, name: Shotgun Save As...} - - {app_instance: tk-multi-publish, name: Publish...} - project_favourite_name: Shotgun Current Project - spreadsheet_context_menu: [] - timeline_context_menu: [] - use_sgtk_as_menu_name: false - tk-photoshop: - apps: - tk-multi-about: '@about' - tk-multi-publish: - allow_taskless_publishes: false - display_name: Publish - expand_single_items: false - hook_copy_file: default - hook_post_publish: default - hook_primary_pre_publish: default - hook_primary_publish: default - hook_scan_scene: default - hook_secondary_pre_publish: default - hook_secondary_publish: default - hook_thumbnail: default - location: - version: v0.9.4 - type: app_store - name: tk-multi-publish - primary_description: Publish and version up the current Photoshop scene - primary_display_name: Photoshop Publish - primary_icon: icons/publish_photoshop_main.png - primary_publish_template: photoshop_asset_publish - primary_scene_item_type: work_file - primary_tank_type: Photoshop Image - secondary_outputs: [] - template_work: photoshop_asset_work - tk-multi-screeningroom: '@launch_screeningroom' - tk-multi-snapshot: - hook_copy_file: default - hook_scene_operation: default - hook_thumbnail: default - location: {name: tk-multi-snapshot, type: app_store, version: v0.6.1} - template_snapshot: photoshop_asset_snapshot - template_work: photoshop_asset_work - tk-multi-workfiles: - allow_task_creation: true - file_extensions: [] - hook_copy_file: default - hook_filter_publishes: default - hook_filter_work_files: default - hook_scene_operation: default - launch_at_startup: false - launch_change_work_area_at_startup: false - location: - version: v0.7.4 - type: app_store - name: tk-multi-workfiles - saveas_default_name: scene - saveas_prefer_version_up: false - sg_entity_type_extra_display_fields: {} - sg_entity_type_filters: {} - sg_entity_types: [Shot, Asset] - sg_task_filters: [] - task_extra_display_fields: [] - template_publish: photoshop_asset_publish - template_publish_area: asset_publish_area_photoshop - template_work: photoshop_asset_work - template_work_area: asset_work_area_photoshop - version_compare_ignore_fields: [] - debug_logging: false - location: {name: tk-photoshop, type: app_store, version: v0.3.3} - tk-shell: - apps: {tk-multi-about: '@about', tk-multi-screeningroom: '@launch_screeningroom', - tk-shotgun-launchhoudini: '@launch_houdini', tk-shotgun-launchmaya: '@launch_maya', - tk-shotgun-launchnuke: '@launch_nuke', tk-shotgun-launchphotoshop: '@launch_photoshop'} - debug_logging: false - location: - version: v0.5.0 - type: app_store - name: tk-shell - menu_favourites: - - {app_instance: tk-multi-workfiles, name: Shotgun File Manager...} - - {app_instance: tk-multi-snapshot, name: Snapshot...} - - {app_instance: tk-multi-workfiles, name: Shotgun Save As...} - - {app_instance: tk-multi-publish, name: Publish...} - template_project: asset_work_area_softimage -frameworks: - tk-framework-qtwidgets_v2.x.x: - location: {name: tk-framework-qtwidgets, type: app_store, version: v2.0.6} - tk-framework-shotgunutils_v1.x.x: - location: {name: tk-framework-shotgunutils, type: app_store, version: v1.0.10} - tk-framework-shotgunutils_v3.x.x: - location: {name: tk-framework-shotgunutils, type: app_store, version: v3.0.4} - tk-framework-widget_v0.1.16: - location: {name: tk-framework-widget, type: app_store, version: v0.1.16} - tk-framework-widget_v0.1.18: - location: {name: tk-framework-widget, type: app_store, version: v0.1.18} - tk-framework-widget_v0.1.19: - location: {name: tk-framework-widget, type: app_store, version: v0.1.19} - tk-framework-widget_v0.1.22: - location: {name: tk-framework-widget, type: app_store, version: v0.1.22} -includes: [./includes/app_launchers.yml, ./includes/common_apps.yml] +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. +# +# +description: Apps and Engines related to Asset based work. + +################################################################################################# +# include common files + +includes: +# launchers for launching DCCs such as Maya, Nuke etc. +- ./includes/app_launchers.yml +# common app configurations that are reused across environments +- ./includes/common_apps.yml + + +################################################################################################# +# define all the items that should appear in this environment + +engines: + # + # ------------------------------------------------- + # 3dsmax + # ------------------------------------------------- + tk-3dsmax: + apps: + tk-multi-about: '@about' + tk-multi-loader2: + action_mappings: + 3dsmax Scene: [import] + actions_hook: '{self}/tk-3dsmax_actions.py' + download_thumbnails: true + entities: + - caption: Assets + entity_type: Asset + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_asset_type, code] + - caption: Shots + entity_type: Shot + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_sequence, code] + - caption: My Tasks + entity_type: Task + filters: + - [task_assignees, is, '{context.user}'] + - [project, is, '{context.project}'] + hierarchy: [entity, content] + filter_publishes_hook: '{self}/filter_publishes.py' + location: + version: v1.11.2 + type: app_store + name: tk-multi-loader2 + menu_name: Load + publish_filters: [] + title_name: Loader + tk-multi-publish: + allow_taskless_publishes: true + display_name: Publish + expand_single_items: false + hook_copy_file: default + hook_post_publish: default + hook_primary_pre_publish: default + hook_primary_publish: default + hook_scan_scene: default + hook_secondary_pre_publish: default + hook_secondary_publish: default + hook_thumbnail: default + location: + version: v0.9.4 + type: app_store + name: tk-multi-publish + primary_description: Publish and version up the current 3ds Max scene + primary_display_name: 3ds Max Publish + primary_icon: icons/publish_3dsmax_main.png + primary_publish_template: max_asset_publish + primary_scene_item_type: work_file + primary_tank_type: 3dsmax Scene + secondary_outputs: [] + template_work: max_asset_work + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-snapshot: + hook_copy_file: default + hook_scene_operation: default + hook_thumbnail: default + location: + version: v0.6.1 + type: app_store + name: tk-multi-snapshot + template_snapshot: max_asset_snapshot + template_work: max_asset_work + tk-multi-workfiles2: + allow_task_creation: true + create_new_task_hook: default + custom_actions_hook: default + entities: + - caption: Assets + entity_type: Task + filters: + - [entity, type_is, Asset] + hierarchy: [entity.Asset.sg_asset_type, entity, step, content] + - caption: Shots + entity_type: Task + filters: + - [entity, type_is, Shot] + hierarchy: [entity.Shot.sg_sequence, entity, step, content] + file_extensions: [] + hook_copy_file: default + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + location: + version: v0.7.39 + type: app_store + name: tk-multi-workfiles2 + my_tasks_extra_display_fields: [] + saveas_default_name: scene + saveas_prefer_version_up: false + show_my_tasks: true + template_publish: max_asset_publish + template_publish_area: asset_publish_area_max + template_work: max_asset_work + template_work_area: asset_work_area_max + version_compare_ignore_fields: [] + debug_logging: false + location: + version: v0.3.9 + type: app_store + name: tk-3dsmax + # + # ------------------------------------------------- + # 3dsmax Plus + # ------------------------------------------------- + tk-3dsmaxplus: + apps: + tk-multi-about: '@about' + tk-multi-loader2: + action_mappings: + 3dsmax Scene: [import, reference] + Alembic Cache: [import] + actions_hook: '{self}/tk-3dsmaxplus_actions.py' + download_thumbnails: true + entities: + - caption: Assets + entity_type: Asset + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_asset_type, code] + - caption: Shots + entity_type: Shot + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_sequence, code] + - caption: My Tasks + entity_type: Task + filters: + - [task_assignees, is, '{context.user}'] + - [project, is, '{context.project}'] + hierarchy: [entity, content] + filter_publishes_hook: '{self}/filter_publishes.py' + location: + version: v1.11.2 + type: app_store + name: tk-multi-loader2 + menu_name: Load + publish_filters: [] + title_name: Loader + tk-multi-publish: + allow_taskless_publishes: true + display_name: Publish + expand_single_items: false + hook_copy_file: default + hook_post_publish: default + hook_primary_pre_publish: default + hook_primary_publish: default + hook_scan_scene: default + hook_secondary_pre_publish: default + hook_secondary_publish: default + hook_thumbnail: default + location: + version: v0.9.4 + type: app_store + name: tk-multi-publish + primary_description: Publish and version up the current 3ds Max scene + primary_display_name: 3ds Max Publish + primary_icon: icons/publish_3dsmax_main.png + primary_publish_template: max_asset_publish + primary_scene_item_type: work_file + primary_tank_type: 3dsmax Scene + secondary_outputs: + - description: Publish Alembic data for all geometry in the scene + display_group: Geometry Caches + display_name: Alembic Caches + icon: icons/alembic_cache_publish.png + name: alembic_cache + publish_template: asset_alembic_cache + required: false + scene_item_type: geometry + selected: false + tank_type: Alembic Cache + template_work: max_asset_work + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-snapshot: + hook_copy_file: default + hook_scene_operation: default + hook_thumbnail: default + location: + version: v0.6.1 + type: app_store + name: tk-multi-snapshot + template_snapshot: max_asset_snapshot + template_work: max_asset_work + tk-multi-workfiles2: + allow_task_creation: true + create_new_task_hook: default + custom_actions_hook: default + entities: + - caption: Assets + entity_type: Task + filters: + - [entity, type_is, Asset] + hierarchy: [entity.Asset.sg_asset_type, entity, step, content] + - caption: Shots + entity_type: Task + filters: + - [entity, type_is, Shot] + hierarchy: [entity.Shot.sg_sequence, entity, step, content] + file_extensions: [] + hook_copy_file: default + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + location: + version: v0.7.39 + type: app_store + name: tk-multi-workfiles2 + my_tasks_extra_display_fields: [] + saveas_default_name: scene + saveas_prefer_version_up: false + show_my_tasks: true + template_publish: max_asset_publish + template_publish_area: asset_publish_area_max + template_work: max_asset_work + template_work_area: asset_work_area_max + version_compare_ignore_fields: [] + tk-multi-shotgunpanel: + location: + version: v1.2.7 + type: app_store + name: tk-multi-shotgunpanel + shotgun_fields_hook: '{self}/shotgun_fields.py' + actions_hook: '{self}/general_actions.py' + action_mappings: + PublishedFile: + - actions: + - publish_clipboard + filters: {} + Task: + - actions: + - assign_task + - task_to_ip + filters: {} + Version: + - actions: + - quicktime_clipboard + - sequence_clipboard + filters: {} + compatibility_dialog_min_version: 2017 + debug_logging: false + location: + version: v0.1.16 + type: app_store + name: tk-3dsmaxplus + menu_favourites: [] + # + # ------------------------------------------------- + # Houdini + # ------------------------------------------------- + tk-houdini: + apps: + tk-multi-about: '@about' + tk-multi-publish: + allow_taskless_publishes: true + display_name: Publish + expand_single_items: false + hook_copy_file: default + hook_post_publish: default + hook_primary_pre_publish: default + hook_primary_publish: default + hook_scan_scene: default + hook_secondary_pre_publish: default + hook_secondary_publish: default + hook_thumbnail: default + location: + version: v0.9.4 + type: app_store + name: tk-multi-publish + primary_description: Publish and version up the current scene + primary_display_name: Scene File Publish + primary_icon: icons/publish_houdini_main.png + primary_publish_template: houdini_asset_publish + primary_scene_item_type: work_file + primary_tank_type: Houdini Scene + secondary_outputs: + - description: Publish Alembic Cache data for the model + display_group: Caches + display_name: Alembic Cache + group_name: Alembic Caches + icon: icons/alembic_cache_publish.png + name: alembic_cache + publish_group: true + publish_template: houdini_asset_work_alembic_cache + required: false + scene_item_type: alembic_cache + selected: false + tank_type: Alembic Cache + - description: Publish a rendered image sequence + display_group: Renders + display_name: Rendered + group_name: default + icon: icons/publish_houdini_renders.png + name: rendered_image + publish_group: false + publish_template: houdini_asset_render + required: false + scene_item_type: rendered_image + selected: false + tank_type: Rendered Image + template_work: houdini_asset_work + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-snapshot: + hook_copy_file: default + hook_scene_operation: default + hook_thumbnail: default + location: + version: v0.6.1 + type: app_store + name: tk-multi-snapshot + template_snapshot: houdini_asset_snapshot + template_work: houdini_asset_work + tk-multi-workfiles2: + allow_task_creation: true + create_new_task_hook: default + custom_actions_hook: default + entities: + - caption: Assets + entity_type: Task + filters: + - [entity, type_is, Asset] + hierarchy: [entity.Asset.sg_asset_type, entity, step, content] + - caption: Shots + entity_type: Task + filters: + - [entity, type_is, Shot] + hierarchy: [entity.Shot.sg_sequence, entity, step, content] + file_extensions: [] + hook_copy_file: default + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + location: + version: v0.7.39 + type: app_store + name: tk-multi-workfiles2 + my_tasks_extra_display_fields: [] + saveas_default_name: scene + saveas_prefer_version_up: false + show_my_tasks: true + template_publish: houdini_asset_publish + template_publish_area: asset_publish_area_houdini + template_work: houdini_asset_work + template_work_area: asset_work_area_houdini + version_compare_ignore_fields: [] + tk-multi-shotgunpanel: + location: + version: v1.2.7 + type: app_store + name: tk-multi-shotgunpanel + action_mappings: + PublishedFile: + - actions: + - publish_clipboard + filters: {} + Task: + - actions: + - assign_task + - task_to_ip + filters: {} + Version: + - actions: + - quicktime_clipboard + - sequence_clipboard + filters: {} + actions_hook: '{self}/general_actions.py' + shotgun_fields_hook: '{self}/shotgun_fields.py' + tk-houdini-alembicnode: + location: + version: v0.2.5 + type: app_store + name: tk-houdini-alembicnode + work_file_template: houdini_asset_work + default_node_name: sg_alembic_out + output_profiles: + - name: Shot Work Cache + settings: {} + color: [] + output_cache_template: houdini_asset_work_alembic_cache + tk-houdini-mantranode: + location: + version: v0.2.7 + type: app_store + name: tk-houdini-mantranode + work_file_template: houdini_asset_work + default_node_name: sg_mantra_out + output_profiles: + - name: Default Render + settings: {} + color: [] + output_render_template: houdini_asset_render + output_ifd_template: houdini_asset_ifd + output_dcm_template: houdini_asset_dcm + output_extra_plane_template: houdini_asset_extra_plane + tk-multi-loader2: + action_mappings: + Alembic Cache: [import] + actions_hook: '{self}/tk-houdini_actions.py' + download_thumbnails: true + entities: + - caption: Assets + entity_type: Asset + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_asset_type, code] + - caption: Shots + entity_type: Shot + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_sequence, code] + - caption: My Tasks + entity_type: Task + filters: + - [task_assignees, is, '{context.user}'] + - [project, is, '{context.project}'] + hierarchy: [entity, content] + filter_publishes_hook: '{self}/filter_publishes.py' + location: + version: v1.11.2 + type: app_store + name: tk-multi-loader2 + menu_name: Load + publish_filters: [] + title_name: Loader + tk-multi-breakdown: + hook_scene_operations: '{self}/tk-houdini_scene_operations.py' + location: + version: v1.4.4 + type: app_store + name: tk-multi-breakdown + debug_logging: false + enable_sg_shelf: true + enable_sg_menu: true + location: + version: v1.0.10 + type: app_store + name: tk-houdini + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + - {app_instance: tk-multi-snapshot, name: Snapshot...} + - {app_instance: tk-multi-workfiles2, name: File Save...} + - {app_instance: tk-multi-publish, name: Publish...} + # + # ------------------------------------------------- + # Mari + # ------------------------------------------------- + tk-mari: + apps: + tk-mari-projectmanager: + default_project_name: Shotgun + get_project_creation_args_hook: '{self}/get_project_creation_args.py' + location: + version: v1.2.0 + type: app_store + name: tk-mari-projectmanager + publish_types: [Alembic Cache] + template_new_project_name: mari_asset_project_name + post_project_creation_hook: '{self}/post_project_creation.py' + tk-multi-about: '@about' + tk-multi-breakdown: + hook_scene_operations: '{self}/tk-mari_scene_operations.py' + location: + version: v1.4.4 + type: app_store + name: tk-multi-breakdown + tk-multi-loader2: + action_mappings: + Alembic Cache: [geometry_import] + actions_hook: '{self}/tk-mari_actions.py' + download_thumbnails: true + entities: + - caption: Assets + entity_type: Asset + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_asset_type, code] + publish_filters: [] + - caption: My Tasks + entity_type: Task + filters: + - [task_assignees, is, '{context.user}'] + - [project, is, '{context.project}'] + hierarchy: [entity, content] + publish_filters: [] + filter_publishes_hook: '{self}/filter_publishes.py' + location: + version: v1.11.2 + type: app_store + name: tk-multi-loader2 + menu_name: Load + publish_filters: [] + title_name: Import + tk-multi-publish: + allow_taskless_publishes: true + display_name: Publish + expand_single_items: true + hook_copy_file: default + hook_post_publish: default + hook_primary_pre_publish: default + hook_primary_publish: default + hook_scan_scene: default + hook_secondary_pre_publish: default + hook_secondary_publish: default + hook_thumbnail: default + location: + version: v0.9.4 + type: app_store + name: tk-multi-publish + primary_description: Publish items from the current Mari project + primary_display_name: Mari Publish + primary_icon: icons/publish_mari_main.png + primary_publish_template: + primary_scene_item_type: work_file + primary_tank_type: Mari Scene + secondary_outputs: + - description: Publish flattened channels + display_group: Texture Channels + display_name: Channels + icon: icons/mari_channel_publish.png + name: channel + publish_template: asset_mari_texture_tif + required: false + scene_item_type: channel + selected: false + tank_type: UDIM Image + - description: Publish individual layers for channels + display_group: Texture Channel Layers + display_name: Layers + icon: icons/mari_layer_publish.png + name: layer + publish_template: asset_mari_texture_tif + required: false + scene_item_type: layer + selected: false + tank_type: UDIM Image + template_work: + tk-multi-workfiles: + allow_task_creation: true + file_extensions: [] + hook_copy_file: default + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + launch_change_work_area_at_startup: false + location: + version: v0.7.4 + type: app_store + name: tk-multi-workfiles + saveas_default_name: scene + saveas_prefer_version_up: false + sg_entity_type_extra_display_fields: {} + sg_entity_type_filters: {} + sg_entity_types: [Asset] + sg_task_filters: [] + task_extra_display_fields: [] + template_publish: + template_publish_area: + template_work: + template_work_area: + version_compare_ignore_fields: [] + tk-multi-shotgunpanel: + location: + version: v1.2.7 + type: app_store + name: tk-multi-shotgunpanel + shotgun_fields_hook: '{self}/shotgun_fields.py' + actions_hook: '{self}/general_actions.py' + action_mappings: + PublishedFile: + - actions: + - publish_clipboard + filters: {} + Task: + - actions: + - assign_task + - task_to_ip + filters: {} + Version: + - actions: + - quicktime_clipboard + - sequence_clipboard + filters: {} + compatibility_dialog_min_version: 2 + debug_logging: false + location: + version: v1.1.4 + type: app_store + name: tk-mari + # + # ------------------------------------------------- + # Maya + # ------------------------------------------------- + tk-maya: + apps: + tk-multi-about: '@about' + tk-multi-breakdown: + hook_scene_operations: '{self}/tk-maya_scene_operations.py' + location: + version: v1.4.4 + type: app_store + name: tk-multi-breakdown + tk-multi-loader2: + action_mappings: + Maya Scene: [reference, import] + Photoshop Image: [texture_node] + Rendered Image: [texture_node] + UDIM Image: [udim_texture_node] + actions_hook: '{self}/tk-maya_actions.py' + download_thumbnails: true + entities: + - caption: Assets + entity_type: Asset + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_asset_type, code] + - caption: Shots + entity_type: Shot + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_sequence, code] + - caption: My Tasks + entity_type: Task + filters: + - [task_assignees, is, '{context.user}'] + - [project, is, '{context.project}'] + hierarchy: [entity, content] + filter_publishes_hook: '{self}/filter_publishes.py' + location: + version: v1.11.2 + type: app_store + name: tk-multi-loader2 + menu_name: Load + publish_filters: [] + title_name: Loader + tk-multi-publish: + allow_taskless_publishes: true + display_name: Publish + expand_single_items: false + hook_copy_file: default + hook_post_publish: default + hook_primary_pre_publish: default + hook_primary_publish: default + hook_scan_scene: default + hook_secondary_pre_publish: default + hook_secondary_publish: default + hook_thumbnail: default + location: + version: v0.9.4 + type: app_store + name: tk-multi-publish + primary_description: Publish and version up the current Maya scene + primary_display_name: Maya Publish + primary_icon: icons/publish_maya_main.png + primary_publish_template: maya_asset_publish + primary_scene_item_type: work_file + primary_tank_type: Maya Scene + secondary_outputs: + - description: Publish Alembic data for all geometry in the scene + display_group: Geometry Caches + display_name: Alembic Caches + icon: icons/alembic_cache_publish.png + name: alembic_cache + publish_template: asset_alembic_cache + required: false + scene_item_type: geometry + selected: false + tank_type: Alembic Cache + template_work: maya_asset_work + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-shotgunpanel: + action_mappings: + PublishedFile: + - actions: [reference, import] + filters: {published_file_type: Maya Scene} + - actions: [texture_node] + filters: {published_file_type: Rendered Image} + - actions: [texture_node] + filters: {published_file_type: Photoshop Image} + - actions: [udim_texture_node] + filters: {published_file_type: UDIM Image} + Task: + - actions: [assign_task, task_to_ip] + filters: {} + actions_hook: '{self}/general_actions.py:{self}/tk-maya_actions.py' + location: + version: v1.2.7 + type: app_store + name: tk-multi-shotgunpanel + shotgun_fields_hook: '{self}/shotgun_fields.py' + tk-multi-snapshot: + hook_copy_file: default + hook_scene_operation: default + hook_thumbnail: default + location: + version: v0.6.1 + type: app_store + name: tk-multi-snapshot + template_snapshot: maya_asset_snapshot + template_work: maya_asset_work + tk-multi-workfiles2: + allow_task_creation: true + create_new_task_hook: default + custom_actions_hook: default + entities: + - caption: Assets + entity_type: Task + filters: + - [entity, type_is, Asset] + hierarchy: [entity.Asset.sg_asset_type, entity, step, content] + - caption: Shots + entity_type: Task + filters: + - [entity, type_is, Shot] + hierarchy: [entity.Shot.sg_sequence, entity, step, content] + file_extensions: [] + hook_copy_file: default + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + location: + version: v0.7.39 + type: app_store + name: tk-multi-workfiles2 + my_tasks_extra_display_fields: [] + saveas_default_name: scene + saveas_prefer_version_up: false + show_my_tasks: true + template_publish: maya_asset_publish + template_publish_area: asset_publish_area_maya + template_work: maya_asset_work + template_work_area: asset_work_area_maya + version_compare_ignore_fields: [] + compatibility_dialog_min_version: 2015 + debug_logging: false + location: + version: v0.6.0 + type: app_store + name: tk-maya + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + - {app_instance: tk-multi-snapshot, name: Snapshot...} + - {app_instance: tk-multi-workfiles2, name: File Save...} + - {app_instance: tk-multi-publish, name: Publish...} + template_project: asset_work_area_maya + use_sgtk_as_menu_name: false + # + # ------------------------------------------------- + # Motionbuilder + # ------------------------------------------------- + tk-motionbuilder: + apps: + tk-multi-about: '@about' + tk-multi-loader2: + action_mappings: + Motion Builder FBX: [import] + actions_hook: '{self}/tk-motionbuilder_actions.py' + download_thumbnails: true + entities: + - caption: Assets + entity_type: Asset + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_asset_type, code] + - caption: Shots + entity_type: Shot + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_sequence, code] + - caption: My Tasks + entity_type: Task + filters: + - [task_assignees, is, '{context.user}'] + - [project, is, '{context.project}'] + hierarchy: [entity, content] + filter_publishes_hook: '{self}/filter_publishes.py' + location: + version: v1.11.2 + type: app_store + name: tk-multi-loader2 + menu_name: Load + publish_filters: [] + title_name: Loader + tk-multi-publish: + allow_taskless_publishes: true + display_name: Publish + expand_single_items: false + hook_copy_file: default + hook_post_publish: default + hook_primary_pre_publish: default + hook_primary_publish: default + hook_scan_scene: default + hook_secondary_pre_publish: default + hook_secondary_publish: default + hook_thumbnail: default + location: + version: v0.9.4 + type: app_store + name: tk-multi-publish + primary_description: Publish and version up the current work file + primary_display_name: Current Work File + primary_icon: icons/publish_motionbuilder_main.png + primary_publish_template: mobu_asset_publish + primary_scene_item_type: work_file + primary_tank_type: Motion Builder FBX + secondary_outputs: [] + template_work: mobu_asset_work + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-snapshot: + hook_copy_file: default + hook_scene_operation: default + hook_thumbnail: default + location: + version: v0.6.1 + type: app_store + name: tk-multi-snapshot + template_snapshot: mobu_asset_snapshot + template_work: mobu_asset_work + tk-multi-workfiles2: + allow_task_creation: true + create_new_task_hook: default + custom_actions_hook: default + entities: + - caption: Assets + entity_type: Task + filters: + - [entity, type_is, Asset] + hierarchy: [entity.Asset.sg_asset_type, entity, step, content] + - caption: Shots + entity_type: Task + filters: + - [entity, type_is, Shot] + hierarchy: [entity.Shot.sg_sequence, entity, step, content] + file_extensions: [] + hook_copy_file: default + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + location: + version: v0.7.39 + type: app_store + name: tk-multi-workfiles2 + my_tasks_extra_display_fields: [] + saveas_default_name: scene + saveas_prefer_version_up: false + show_my_tasks: true + template_publish: mobu_asset_publish + template_publish_area: asset_publish_area_mobu + template_work: mobu_asset_work + template_work_area: asset_work_area_mobu + version_compare_ignore_fields: [] + tk-multi-shotgunpanel: + location: + version: v1.2.7 + type: app_store + name: tk-multi-shotgunpanel + shotgun_fields_hook: '{self}/shotgun_fields.py' + actions_hook: '{self}/general_actions.py' + action_mappings: + PublishedFile: + - actions: + - publish_clipboard + filters: {} + Task: + - actions: + - assign_task + - task_to_ip + filters: {} + Version: + - actions: + - quicktime_clipboard + - sequence_clipboard + filters: {} + debug_logging: false + location: + version: v0.3.1 + type: app_store + name: tk-motionbuilder + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + - {app_instance: tk-multi-snapshot, name: Snapshot...} + - {app_instance: tk-multi-workfiles2, name: File Save...} + - {app_instance: tk-multi-publish, name: Publish...} + use_sgtk_as_menu_name: false + # + # ------------------------------------------------- + # Nuke + # ------------------------------------------------- + tk-nuke: + apps: + tk-multi-about: '@about' + tk-multi-breakdown: + hook_scene_operations: '{self}/tk-nuke_scene_operations.py' + location: + version: v1.4.4 + type: app_store + name: tk-multi-breakdown + tk-multi-loader2: + action_mappings: + Nuke Script: [script_import] + Rendered Image: [read_node] + Alembic Cache: [read_node] + actions_hook: '{self}/tk-nuke_actions.py' + download_thumbnails: true + entities: + - caption: Assets + entity_type: Asset + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_asset_type, code] + - caption: Shots + entity_type: Shot + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_sequence, code] + - caption: My Tasks + entity_type: Task + filters: + - [task_assignees, is, '{context.user}'] + - [project, is, '{context.project}'] + hierarchy: [entity, content] + filter_publishes_hook: '{self}/filter_publishes.py' + location: + version: v1.11.2 + type: app_store + name: tk-multi-loader2 + menu_name: Load + publish_filters: [] + title_name: Loader + tk-multi-publish: + allow_taskless_publishes: true + display_name: Publish + expand_single_items: false + hook_copy_file: default + hook_post_publish: default + hook_primary_pre_publish: default + hook_primary_publish: default + hook_scan_scene: default + hook_secondary_pre_publish: default + hook_secondary_publish: default + hook_thumbnail: default + location: + version: v0.9.4 + type: app_store + name: tk-multi-publish + primary_description: Publishes and versions up the current Nuke script. + primary_display_name: Nuke Publish + primary_icon: icons/publish_nuke_main.png + primary_publish_template: nuke_asset_publish + primary_scene_item_type: work_file + primary_tank_type: Nuke Script + secondary_outputs: + - description: Copy renders from work area to publish area. + display_group: Shotgun Write Nodes + display_name: Publish Renders and send to Screening Room + icon: icons/publish_nuke_writenode.png + name: render + publish_template: + required: false + scene_item_type: write_node + selected: true + tank_type: Rendered Image + - description: Create quicktime and send to Screening Room + display_group: Shotgun Write Nodes + display_name: Send to Screening Room + icon: icons/publish_nuke_review.png + name: quicktime + publish_template: + required: false + scene_item_type: write_node + selected: true + tank_type: Quicktime + template_work: nuke_asset_work + tk-multi-reviewsubmission: + location: + version: v0.3.2 + type: app_store + name: tk-multi-reviewsubmission + movie_height: 540 + movie_path_template: nuke_asset_render_movie + movie_width: 1024 + new_version_status: rev + slate_logo: icons/review_submit_logo.png + store_on_disk: true + upload_to_shotgun: true + version_number_padding: 3 + codec_settings_hook: '{self}/codec_settings.py' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-shotgunpanel: + action_mappings: + PublishedFile: + - actions: [read_node] + filters: {published_file_type: Rendered Image} + - actions: [script_import] + filters: {published_file_type: Nuke Script} + Task: + - actions: [assign_task, task_to_ip] + filters: {} + actions_hook: '{self}/general_actions.py:{self}/tk-nuke_actions.py' + location: + version: v1.2.7 + type: app_store + name: tk-multi-shotgunpanel + shotgun_fields_hook: '{self}/shotgun_fields.py' + tk-multi-snapshot: + hook_copy_file: default + hook_scene_operation: default + hook_thumbnail: default + location: + version: v0.6.1 + type: app_store + name: tk-multi-snapshot + template_snapshot: nuke_asset_snapshot + template_work: nuke_asset_work + tk-multi-workfiles2: + allow_task_creation: true + create_new_task_hook: default + custom_actions_hook: default + entities: + - caption: Assets + entity_type: Task + filters: + - [entity, type_is, Asset] + hierarchy: [entity.Asset.sg_asset_type, entity, step, content] + - caption: Shots + entity_type: Task + filters: + - [entity, type_is, Shot] + hierarchy: [entity.Shot.sg_sequence, entity, step, content] + file_extensions: [] + hook_copy_file: default + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + location: + version: v0.7.39 + type: app_store + name: tk-multi-workfiles2 + my_tasks_extra_display_fields: [] + saveas_default_name: scene + saveas_prefer_version_up: false + show_my_tasks: true + template_publish: nuke_asset_publish + template_publish_area: asset_publish_area_nuke + template_work: nuke_asset_work + template_work_area: asset_work_area_nuke + version_compare_ignore_fields: [] + tk-nuke-quickdailies: + current_scene_template: nuke_asset_work + height: 768 + location: + version: v0.3.3 + type: app_store + name: tk-nuke-quickdailies + movie_template: asset_quicktime_quick + post_hooks: [snapshot_history_post_quickdaily] + sg_version_name_template: nuke_quick_asset_version_name + width: 1024 + upload_movie: false + codec_settings_hook: '{self}/codec_settings.py' + tk-nuke-writenode: + location: + version: v1.1.6 + type: app_store + name: tk-nuke-writenode + template_script_work: nuke_asset_work + write_nodes: + - file_type: exr + name: Exr + proxy_publish_template: + proxy_render_template: + publish_template: nuke_asset_render_pub + render_template: nuke_asset_render + settings: {} + tank_type: Rendered Image + tile_color: [] + promote_write_knobs: [] + compatibility_dialog_min_version: 10 + debug_logging: false + favourite_directories: [] + location: + version: v0.6.9 + type: app_store + name: tk-nuke + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + - {app_instance: tk-multi-snapshot, name: Snapshot...} + - {app_instance: tk-multi-workfiles2, name: File Save...} + - {app_instance: tk-multi-publish, name: Publish...} + bin_context_menu: [] + spreadsheet_context_menu: [] + timeline_context_menu: [] + project_favourite_name: Shotgun Current Project + use_sgtk_as_menu_name: false + + # + # ------------------------------------------------- + # Nuke Studio + # ------------------------------------------------- + tk-nukestudio: + apps: + tk-multi-about: '@about' + tk-multi-publish: + allow_taskless_publishes: true + display_name: Publish Project + expand_single_items: false + hook_copy_file: default + hook_post_publish: default + hook_primary_pre_publish: default + hook_primary_publish: default + hook_scan_scene: default + hook_secondary_pre_publish: default + hook_secondary_publish: default + hook_thumbnail: default + location: + version: v0.9.4 + type: app_store + name: tk-multi-publish + primary_description: Publish and version up the selected Hiero project + primary_display_name: Hiero Publish + primary_icon: icons/publish_hiero_main.png + primary_publish_template: hiero_project_publish + primary_scene_item_type: work_file + primary_tank_type: Hiero Project + secondary_outputs: [] + template_work: hiero_project_work + tk-multi-snapshot: + hook_copy_file: default + hook_scene_operation: default + hook_thumbnail: default + location: + version: v0.6.1 + type: app_store + name: tk-multi-snapshot + template_snapshot: hiero_project_snapshot + template_work: hiero_project_work + tk-multi-workfiles2: + allow_task_creation: true + create_new_task_hook: default + custom_actions_hook: default + entities: + - caption: Projects + entity_type: Project + filters: [] + hierarchy: [name] + file_extensions: [] + hook_copy_file: default + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + location: + version: v0.7.39 + type: app_store + name: tk-multi-workfiles2 + my_tasks_extra_display_fields: [] + saveas_default_name: scene + saveas_prefer_version_up: false + show_my_tasks: false + template_publish: hiero_project_publish + template_publish_area: hiero_project_publish_area + template_work: hiero_project_work + template_work_area: hiero_project_work_area + version_compare_ignore_fields: [] + tk-nuke-quickdailies: + current_scene_template: nuke_shot_work + height: 768 + location: + version: v0.3.3 + type: app_store + name: tk-nuke-quickdailies + movie_template: shot_quicktime_quick + post_hooks: [snapshot_history_post_quickdaily] + sg_version_name_template: nuke_quick_shot_version_name + width: 1024 + upload_movie: false + codec_settings_hook: '{self}/codec_settings.py' + tk-nuke-writenode: + location: + version: v1.1.6 + type: app_store + name: tk-nuke-writenode + template_script_work: nuke_shot_work + write_nodes: + - file_type: exr + name: Stereo Exr, 32 bit + proxy_publish_template: + proxy_render_template: + publish_template: nuke_shot_render_pub_stereo + render_template: nuke_shot_render_stereo + settings: + datatype: 32 bit float + tank_type: Rendered Image + tile_color: [] + promote_write_knobs: [] + - file_type: exr + name: Stereo Exr, 16 bit + promote_write_knobs: [] + proxy_publish_template: + proxy_render_template: + publish_template: nuke_shot_render_pub_stereo + render_template: nuke_shot_render_stereo + settings: + datatype: 16 bit half + tank_type: Rendered Image + tile_color: [] + - file_type: dpx + name: Mono Dpx + promote_write_knobs: [] + proxy_publish_template: + proxy_render_template: + publish_template: nuke_shot_render_pub_mono_dpx + render_template: nuke_shot_render_mono_dpx + settings: {} + tank_type: Rendered Image + tile_color: [] + tk-multi-reviewsubmission: + location: + version: v0.3.2 + type: app_store + name: tk-multi-reviewsubmission + movie_height: 540 + movie_path_template: nuke_shot_render_movie + movie_width: 1024 + new_version_status: rev + slate_logo: icons/review_submit_logo.png + store_on_disk: true + upload_to_shotgun: true + version_number_padding: 3 + codec_settings_hook: '{self}/codec_settings.py' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-setframerange: + location: + name: tk-multi-setframerange + type: app_store + version: v0.3.0 + sg_in_frame_field: sg_cut_in + sg_out_frame_field: sg_cut_out + tk-multi-breakdown: + hook_scene_operations: '{self}/tk-nuke_scene_operations.py' + location: + version: v1.4.4 + type: app_store + name: tk-multi-breakdown + tk-multi-loader2: + action_mappings: + Nuke Script: [script_import] + Rendered Image: [read_node] + Alembic Cache: [read_node] + actions_hook: '{self}/tk-nuke_actions.py' + download_thumbnails: true + entities: + - caption: Assets + entity_type: Asset + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_asset_type, code] + - caption: Shots + entity_type: Shot + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_sequence, code] + - caption: My Tasks + entity_type: Task + filters: + - [task_assignees, is, '{context.user}'] + - [project, is, '{context.project}'] + hierarchy: [entity, content] + filter_publishes_hook: '{self}/filter_publishes.py' + location: + version: v1.11.2 + type: app_store + name: tk-multi-loader2 + menu_name: Load + publish_filters: [] + title_name: Loader + tk-multi-shotgunpanel: + action_mappings: + PublishedFile: + - actions: [read_node] + filters: {published_file_type: Rendered Image} + - actions: [script_import] + filters: {published_file_type: Nuke Script} + Task: + - actions: [assign_task, task_to_ip] + filters: {} + Version: + - actions: + - quicktime_clipboard + - sequence_clipboard + filters: {} + actions_hook: '{self}/general_actions.py:{self}/tk-nuke_actions.py' + location: + version: v1.2.7 + type: app_store + name: tk-multi-shotgunpanel + shotgun_fields_hook: '{self}/shotgun_fields.py' + bin_context_menu: + - {app_instance: tk-multi-workfiles2, keep_in_menu: false, name: File Save..., + requires_selection: true} + - {app_instance: tk-multi-snapshot, keep_in_menu: false, name: Snapshot..., requires_selection: true} + - {app_instance: tk-multi-snapshot, keep_in_menu: false, name: Snapshot History..., + requires_selection: true} + - {app_instance: tk-multi-publish, keep_in_menu: false, name: Publish Project..., + requires_selection: true} + project_favourite_name: Shotgun Current Project + use_sgtk_as_menu_name: false + favourite_directories: [] + compatibility_dialog_min_version: 10 + debug_logging: false + location: + version: v0.6.9 + type: app_store + name: tk-nuke + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + spreadsheet_context_menu: [] + timeline_context_menu: [] + # + # ------------------------------------------------- + # Photoshop + # ------------------------------------------------- + tk-photoshop: + apps: + tk-multi-about: '@about' + tk-multi-loader2: + action_mappings: + Photoshop Image: [add_as_a_layer, open_file] + Rendered Image: [add_as_a_layer, open_file] + actions_hook: '{self}/tk-photoshop_actions.py' + download_thumbnails: true + entities: + - caption: Assets + entity_type: Asset + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_asset_type, code] + - caption: Shots + entity_type: Shot + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_sequence, code] + - caption: My Tasks + entity_type: Task + filters: + - [task_assignees, is, '{context.user}'] + - [project, is, '{context.project}'] + hierarchy: [entity, content] + filter_publishes_hook: '{self}/filter_publishes.py' + location: + version: v1.11.2 + type: app_store + name: tk-multi-loader2 + menu_name: Load + publish_filters: [] + title_name: Loader + tk-multi-publish: + allow_taskless_publishes: true + display_name: Publish + expand_single_items: false + hook_copy_file: default + hook_post_publish: default + hook_primary_pre_publish: default + hook_primary_publish: default + hook_scan_scene: default + hook_secondary_pre_publish: default + hook_secondary_publish: default + hook_thumbnail: default + location: + version: v0.9.4 + type: app_store + name: tk-multi-publish + primary_description: Publish and version up the current Photoshop scene + primary_display_name: Photoshop Publish + primary_icon: icons/publish_photoshop_main.png + primary_publish_template: photoshop_asset_publish + primary_scene_item_type: work_file + primary_tank_type: Photoshop Image + secondary_outputs: [] + template_work: photoshop_asset_work + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-snapshot: + hook_copy_file: default + hook_scene_operation: default + hook_thumbnail: default + location: + version: v0.6.1 + type: app_store + name: tk-multi-snapshot + template_snapshot: photoshop_asset_snapshot + template_work: photoshop_asset_work + tk-multi-workfiles2: + allow_task_creation: true + create_new_task_hook: default + custom_actions_hook: default + entities: + - caption: Assets + entity_type: Task + filters: + - [entity, type_is, Asset] + hierarchy: [entity.Asset.sg_asset_type, entity, step, content] + - caption: Shots + entity_type: Task + filters: + - [entity, type_is, Shot] + hierarchy: [entity.Shot.sg_sequence, entity, step, content] + file_extensions: [] + hook_copy_file: default + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + location: + version: v0.7.39 + type: app_store + name: tk-multi-workfiles2 + my_tasks_extra_display_fields: [] + saveas_default_name: scene + saveas_prefer_version_up: false + show_my_tasks: true + template_publish: photoshop_asset_publish + template_publish_area: asset_publish_area_photoshop + template_work: photoshop_asset_work + template_work_area: asset_work_area_photoshop + version_compare_ignore_fields: [] + tk-multi-shotgunpanel: + location: + version: v1.2.7 + type: app_store + name: tk-multi-shotgunpanel + shotgun_fields_hook: '{self}/shotgun_fields.py' + actions_hook: '{self}/general_actions.py' + action_mappings: + PublishedFile: + - actions: + - publish_clipboard + filters: {} + Task: + - actions: + - assign_task + - task_to_ip + filters: {} + Version: + - actions: + - quicktime_clipboard + - sequence_clipboard + filters: {} + debug_logging: false + location: + version: v0.3.3 + type: app_store + name: tk-photoshop + # + # ------------------------------------------------- + # Shell Engine (tank command) + # ------------------------------------------------- + tk-shell: + apps: + tk-multi-launch3dsmax: '@launch_3dsmax' + tk-multi-launchhoudini: '@launch_houdini' + tk-multi-launchmari: '@launch_mari' + tk-multi-launchmaya: '@launch_maya' + tk-multi-launchmotionbuilder: '@launch_motionbuilder' + tk-multi-launchnuke: '@launch_nuke' + tk-multi-launchphotoshop: '@launch_photoshop' + tk-multi-launchsoftimage: '@launch_softimage' + tk-multi-screeningroom: '@launch_screeningroom' + location: + version: v0.5.0 + type: app_store + name: tk-shell + # + # ------------------------------------------------- + # Softimage + # ------------------------------------------------- + tk-softimage: + apps: + tk-multi-about: '@about' + tk-multi-publish: + allow_taskless_publishes: true + display_name: Publish + expand_single_items: false + hook_copy_file: default + hook_post_publish: default + hook_primary_pre_publish: default + hook_primary_publish: default + hook_scan_scene: default + hook_secondary_pre_publish: default + hook_secondary_publish: default + hook_thumbnail: default + location: + version: v0.9.4 + type: app_store + name: tk-multi-publish + primary_description: Publish and version up the current Softimage scene + primary_display_name: Softimage Publish + primary_icon: icons/publish_softimage_main.png + primary_publish_template: softimage_asset_publish + primary_scene_item_type: work_file + primary_tank_type: Softimage Scene + secondary_outputs: [] + template_work: softimage_asset_work + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-snapshot: + hook_copy_file: default + hook_scene_operation: default + hook_thumbnail: default + location: + version: v0.6.1 + type: app_store + name: tk-multi-snapshot + template_snapshot: softimage_asset_snapshot + template_work: softimage_asset_work + tk-multi-workfiles2: + allow_task_creation: true + create_new_task_hook: default + custom_actions_hook: default + entities: + - caption: Assets + entity_type: Task + filters: + - [entity, type_is, Asset] + hierarchy: [entity.Asset.sg_asset_type, entity, step, content] + - caption: Shots + entity_type: Task + filters: + - [entity, type_is, Shot] + hierarchy: [entity.Shot.sg_sequence, entity, step, content] + file_extensions: [] + hook_copy_file: default + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + location: + version: v0.7.39 + type: app_store + name: tk-multi-workfiles2 + my_tasks_extra_display_fields: [] + saveas_default_name: scene + saveas_prefer_version_up: false + show_my_tasks: true + template_publish: softimage_asset_publish + template_publish_area: asset_publish_area_softimage + template_work: softimage_asset_work + template_work_area: asset_work_area_softimage + version_compare_ignore_fields: [] + tk-multi-shotgunpanel: + location: + version: v1.2.7 + type: app_store + name: tk-multi-shotgunpanel + shotgun_fields_hook: '{self}/shotgun_fields.py' + actions_hook: '{self}/general_actions.py' + action_mappings: + PublishedFile: + - actions: + - publish_clipboard + filters: {} + Task: + - actions: + - assign_task + - task_to_ip + filters: {} + Version: + - actions: + - quicktime_clipboard + - sequence_clipboard + filters: {} + debug_logging: false + location: + version: v0.3.2 + type: app_store + name: tk-softimage + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + - {app_instance: tk-multi-snapshot, name: Snapshot...} + - {app_instance: tk-multi-workfiles2, name: File Save...} + - {app_instance: tk-multi-publish, name: Publish...} + template_project: asset_work_area_softimage + +# +############################################################################### +# +# Framework includes. +# +# Frameworks are libraries that are shared between apps and that contain +# common functionality for building UIs and communicating with Shotgun. +# Frameworks are automatically installed when apps are installed and udpated. +# +frameworks: + tk-framework-softimageqt_v1.0.1: + location: + name: tk-framework-softimageqt + type: app_store + version: v1.0.1 diff --git a/env/includes/app_launchers.yml b/env/includes/app_launchers.yml index c777942..25d4e5a 100644 --- a/env/includes/app_launchers.yml +++ b/env/includes/app_launchers.yml @@ -1,97 +1,270 @@ -includes: [./paths.yml, 'sequences/{Sequence}/{Shot}/sgtk_overrides.yml', 'assets/{sg_asset_type}/{Asset}/sgtk_overrides.yml'] -launch_hiero: - defer_keyword: '' - engine: tk-hiero - extra: {} - hook_app_launch: default - hook_before_app_launch: '{config}/axis_hiero_before_app_launch.py' - icon: '{target_engine}/icon_256.png' - linux_args: --hiero - linux_path: '@hiero_linux' - location: {name: tk-multi-launchapp, type: app_store, version: v0.7.6} - mac_args: '' - mac_path: '@hiero_mac' - menu_name: Launch Hiero {version} - versions: [(9.0)(v8), (10.0)(v1), (10.0)(v3)] - windows_args: --hiero - windows_path: '@hiero_win' -launch_houdini: - defer_keyword: '' - engine: tk-houdini - extra: {} - hook_app_launch: default - hook_before_app_launch: '{config}/houdini_before_app_launch.py' - #hook_before_app_launch: default - icon: '{target_engine}/icon_256.png' - linux_args: '' - linux_path: '@houdini_linux' - location: {name: tk-multi-launchapp, type: app_store, version: v0.7.6} - mac_args: '' - mac_path: '' - menu_name: Launch Houdini {version} - versions: [(master), (escape)] - windows_args: '' - windows_path: '@houdini_windows' -launch_maya: - defer_keyword: '' - engine: tk-maya - extra: {} - hook_app_launch: default - hook_before_app_launch: '{config}/axis_maya_before_app_launch.py' - icon: '{target_engine}/icon_256.png' - linux_args: '' - linux_path: '@maya_linux' - location: {name: tk-multi-launchapp, type: app_store, version: v0.7.6} - mac_args: '' - mac_path: '@maya_mac' - menu_name: Launch Maya {version} - versions: ['2014', '2016'] - windows_args: '' - windows_path: '@maya_windows' -launch_nuke: - defer_keyword: '' - engine: tk-nuke - extra: {} - hook_app_launch: default - hook_before_app_launch: default - icon: '{target_engine}/icon_256.png' - linux_args: '' - linux_path: '@nuke_linux' - location: {name: tk-multi-launchapp, type: app_store, version: v0.7.6} - mac_args: '' - mac_path: '@nuke_mac' - menu_name: Launch Nuke - versions: [] - windows_args: '' - windows_path: '@nuke_windows' -launch_photoshop: - defer_keyword: '' - engine: tk-photoshop - extra: '@photoshop_extras' - hook_app_launch: default - hook_before_app_launch: default - icon: '{target_engine}/icon_256.png' - linux_args: '' - linux_path: '' - location: {name: tk-multi-launchapp, type: app_store, version: v0.7.6} - mac_args: '' - mac_path: '@photoshop_mac' - menu_name: Launch Photoshop - versions: [] - windows_args: '' - windows_path: '@photoshop_win' -launch_screeningroom: - enable_rv_mode: true - enable_web_mode: true - init_hook: '{self}/init.py' - location: {name: tk-multi-screeningroom, type: app_store, version: v0.3.0} - rv_path_linux: '@rv_linux' - rv_path_mac: '@rv_mac' - rv_path_windows: '@rv_win' -launch_shotgun_screeningroom: - deny_permissions: [] - deny_platforms: [] - location: {name: tk-shotgun-launchscreeningroom, type: app_store, version: v0.1.7} - rv_path_linux: '@rv_linux' - rv_path_mac: '@rv_mac' - rv_path_windows: '@rv_win' +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. +# + +################################################################################################# +# include paths to all our applications +includes: +# first include the configuration's global settings for application paths +- ./paths.yml + +# now include overrides - these will be loaded if they are found +- sequences/{Sequence}/{Shot}/sgtk_overrides.yml +- assets/{sg_asset_type}/{Asset}/sgtk_overrides.yml + + +################################################################################################ +# app definitions for all the Sgtk app launchers. + +# +# ------------------------------------------------- +# 3dsmax +# ------------------------------------------------- +launch_3dsmax: + defer_keyword: '' + engine: tk-3dsmaxplus + extra: {} + hook_app_launch: default + hook_before_app_launch: default + icon: '{target_engine}/icon_256.png' + linux_args: '' + linux_path: '' + location: + version: v0.7.6 + type: app_store + name: tk-multi-launchapp + mac_args: '' + mac_path: '' + menu_name: Launch 3dsmax # note: desktop app means we cannot have spaces in app name + versions: [] + windows_args: '' + windows_path: '@3dsmax_windows' +# +# ------------------------------------------------- +# Hiero +# ------------------------------------------------- +launch_hiero: + defer_keyword: '' + engine: tk-hiero + extra: {} + hook_app_launch: default + hook_before_app_launch: default + icon: '{target_engine}/icon_hiero_256.png' + linux_args: --hiero + linux_path: '@hiero_linux' + location: + version: v0.7.6 + type: app_store + name: tk-multi-launchapp + mac_args: '' + mac_path: '@hiero_mac' + menu_name: Launch Hiero + versions: [] + windows_args: --hiero + windows_path: '@hiero_win' +# +# ------------------------------------------------- +# Houdini +# ------------------------------------------------- +launch_houdini: + defer_keyword: '' + engine: tk-houdini + extra: {} + hook_app_launch: default + hook_before_app_launch: default + icon: '{target_engine}/icon_256.png' + linux_args: '' + linux_path: '@houdini_linux' + location: + version: v0.7.6 + type: app_store + name: tk-multi-launchapp + mac_args: '' + mac_path: '@houdini_mac' + menu_name: Launch Houdini + versions: [] + windows_args: '' + windows_path: '@houdini_windows' +# +# ------------------------------------------------- +# Mari +# ------------------------------------------------- +launch_mari: + defer_keyword: '' + engine: tk-mari + extra: {} + hook_app_launch: default + hook_before_app_launch: default + icon: '{target_engine}/icon_256.png' + linux_args: '' + linux_path: '@mari_linux' + location: + version: v0.7.6 + type: app_store + name: tk-multi-launchapp + mac_args: '' + mac_path: '@mari_mac' + menu_name: Launch Mari + versions: [] + windows_args: '' + windows_path: '@mari_windows' +# +# ------------------------------------------------- +# Maya +# ------------------------------------------------- +launch_maya: + defer_keyword: '' + engine: tk-maya + extra: {} + hook_app_launch: default + hook_before_app_launch: default + icon: '{target_engine}/icon_256.png' + linux_args: '' + linux_path: '@maya_linux' + location: + version: v0.7.6 + type: app_store + name: tk-multi-launchapp + mac_args: '' + mac_path: '@maya_mac' + menu_name: Launch Maya + versions: [] + windows_args: '' + windows_path: '@maya_windows' +# +# ------------------------------------------------- +# Motionbuilder +# ------------------------------------------------- +launch_motionbuilder: + defer_keyword: '' + engine: tk-motionbuilder + extra: {} + hook_app_launch: default + hook_before_app_launch: default + icon: '{target_engine}/icon_256.png' + linux_args: '' + linux_path: '' + location: + version: v0.7.6 + type: app_store + name: tk-multi-launchapp + mac_args: '' + mac_path: '' + menu_name: Launch MotionBuilder + versions: [] + windows_args: '' + windows_path: '@motionbuilder_windows' +# +# ------------------------------------------------- +# Nuke +# ------------------------------------------------- +launch_nuke: + defer_keyword: '' + engine: tk-nuke + extra: {} + hook_app_launch: default + hook_before_app_launch: default + icon: '{target_engine}/icon_256.png' + linux_args: '' + linux_path: '@nuke_linux' + location: + version: v0.7.6 + type: app_store + name: tk-multi-launchapp + mac_args: '' + mac_path: '@nuke_mac' + menu_name: Launch Nuke + versions: [] + windows_args: '' + windows_path: '@nuke_windows' +# +# ------------------------------------------------- +# Nuke Studio +# ------------------------------------------------- +launch_nukestudio: + defer_keyword: '' + engine: tk-nukestudio + extra: {} + hook_app_launch: default + hook_before_app_launch: default + icon: '{target_engine}/icon_nukestudio_256.png' + linux_args: --studio + linux_path: '@nukestudio_linux' + location: + version: v0.7.6 + type: app_store + name: tk-multi-launchapp + mac_args: '' + mac_path: '@nukestudio_mac' + menu_name: Launch NukeStudio + versions: [] + windows_args: --studio + windows_path: '@nukestudio_windows' +# +# ------------------------------------------------- +# Photoshop +# ------------------------------------------------- +launch_photoshop: + defer_keyword: '' + engine: tk-photoshop + extra: '@photoshop_extras' + hook_app_launch: default + hook_before_app_launch: default + icon: '{target_engine}/icon_256.png' + linux_args: '' + linux_path: '' + location: + version: v0.7.6 + type: app_store + name: tk-multi-launchapp + mac_args: '' + mac_path: '@photoshop_mac' + menu_name: Launch Photoshop + versions: [] + windows_args: '' + windows_path: '@photoshop_win' +# +# ------------------------------------------------- +# Screening Room +# ------------------------------------------------- +launch_screeningroom: + enable_rv_mode: true + enable_web_mode: true + location: + version: v0.3.0 + type: app_store + name: tk-multi-screeningroom + rv_path_linux: '@rv_linux' + rv_path_mac: '@rv_mac' + rv_path_windows: '@rv_win' + init_hook: '{self}/init.py' +# +# ------------------------------------------------- +# Softimage +# ------------------------------------------------- +launch_softimage: + defer_keyword: '' + engine: tk-softimage + extra: {} + hook_app_launch: default + hook_before_app_launch: default + icon: '{target_engine}/icon_256.png' + linux_args: '' + linux_path: '@softimage_linux' + location: + version: v0.7.6 + type: app_store + name: tk-multi-launchapp + mac_args: '' + mac_path: '' + menu_name: Launch Softimage + versions: [] + windows_args: '' + windows_path: '@softimage_windows' diff --git a/env/includes/common_apps.yml b/env/includes/common_apps.yml index 6fe5733..2b54b5e 100644 --- a/env/includes/common_apps.yml +++ b/env/includes/common_apps.yml @@ -1,111 +1,167 @@ -about: - location: {name: tk-multi-about, type: app_store, version: v0.2.0} -frameworks: - tk-framework-qtwidgets_v1.x.x: - location: {name: tk-framework-qtwidgets, type: app_store, version: v1.0.3} - tk-framework-qtwidgets_v2.x.x: - location: - version: v2.4.3 - type: app_store - name: tk-framework-qtwidgets - tk-framework-shotgunutils_v2.x.x: - location: {name: tk-framework-shotgunutils, type: app_store, version: v2.5.1} - tk-framework-shotgunutils_v4.x.x: - location: - version: v4.4.5 - type: app_store - name: tk-framework-shotgunutils - tk-framework-widget_v0.1.18: - location: {name: tk-framework-widget, type: app_store, version: v0.1.18} - tk-framework-widget_v0.1.20: - location: {name: tk-framework-widget, type: app_store, version: v0.1.20} - tk-framework-widget_v0.1.23: - location: {name: tk-framework-widget, type: app_store, version: v0.1.23} - tk-framework-widget_v0.1.24: - location: {name: tk-framework-widget, type: app_store, version: v0.1.24} - tk-framework-widget_v0.2.x: - location: - version: v0.2.4 - type: app_store - name: tk-framework-widget -workfiles: - allow_task_creation: true - file_extensions: [] - hook_copy_file: default - hook_filter_publishes: default - hook_filter_work_files: default - hook_scene_operation: default - launch_at_startup: false - launch_change_work_area_at_startup: false - location: - version: v0.7.4 - type: app_store - name: tk-multi-workfiles - saveas_default_name: scene - saveas_prefer_version_up: false - sg_entity_type_extra_display_fields: {} - sg_entity_type_filters: {} - sg_entity_types: [Shot, Asset] - sg_task_filters: [] - task_extra_display_fields: [] - template_publish: - template_publish_area: - template_work: - template_work_area: - version_compare_ignore_fields: [] -workfiles-launch-at-startup: - allow_task_creation: true - file_extensions: [] - hook_copy_file: default - hook_filter_publishes: default - hook_filter_work_files: default - hook_scene_operation: default - launch_at_startup: true - launch_change_work_area_at_startup: false - location: {name: tk-multi-workfiles, type: app_store, version: v0.6.17} - saveas_default_name: scene - saveas_prefer_version_up: false - sg_entity_type_extra_display_fields: {} - sg_entity_type_filters: {} - sg_entity_types: [Shot, Asset] - sg_task_filters: [] - task_extra_display_fields: [] - template_publish: - template_publish_area: - template_work: - template_work_area: - version_compare_ignore_fields: [] -workfiles2: - allow_task_creation: true - create_new_task_hook: '{self}/create_new_task.py' - custom_actions_hook: '{self}/custom_actions.py' - entities: - - caption: Assets - entity_type: Task - filters: - - [entity, type_is, Asset] - hierarchy: [entity.Asset.sg_asset_type, entity, step, content] - - caption: Shots - entity_type: Task - filters: - - [entity, type_is, Shot] - hierarchy: [entity.Shot.sg_sequence, entity, step, content] - file_extensions: [] - hook_copy_file: '{self}/copy_file.py' - hook_filter_publishes: '{self}/filter_publishes.py' - hook_filter_work_files: '{self}/filter_work_files.py' - hook_scene_operation: default - launch_at_startup: true - location: - version: v0.7.39 - type: app_store - name: tk-multi-workfiles2 - my_tasks_extra_display_fields: [] - saveas_default_name: scene - saveas_prefer_version_up: false - show_my_tasks: true - template_publish: - template_publish_area: - template_work: - template_work_area: - version_compare_ignore_fields: [] +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. +# +# +# This file contains commonly used apps and is included from +# other environment files. You'll see references to for example +# @about, @workfiles2 etc. Whenever a definition like that appears, +# one of the definitions below are pulled in to replace that +# include statement. +# + +# +# Toolkit Current Work Area information App +# +about: + location: + name: tk-multi-about + type: app_store + version: v0.2.0 + +# +# General Shotgun Panel configuration +# +shotgunpanel: + location: + version: v1.2.7 + type: app_store + name: tk-multi-shotgunpanel + shotgun_fields_hook: '{self}/shotgun_fields.py' + actions_hook: '{self}/general_actions.py' + action_mappings: + PublishedFile: + - actions: + - publish_clipboard + filters: {} + Task: + - actions: + - assign_task + - task_to_ip + filters: {} + Version: + - actions: + - quicktime_clipboard + - sequence_clipboard + filters: {} +# +# General File Manager configuration. +# ----------------------------------- +# This configuration is used whenever a general file manager +# is needed. This configuration doesn't look for files, +# but only lets you switch to a valid work area. When a user +# switches (by selecting a task), the engine is restarted, and +# another environment is loaded in. This environment will +# have another file manager app running, with different settings, +# allowing files to be loaded and saved. +# +# References to this @workfiles2 include typically appears at +# 'transit' levels in the configuration, where work normally +# doesn't happen, but you just want the user to jump to their +# work area. The work area is typically a task or pipeline step +# and these 'transit' areas can be project, shot, or sequence level. +# +workfiles2: + allow_task_creation: true + create_new_task_hook: '{self}/create_new_task.py' + custom_actions_hook: '{self}/custom_actions.py' + entities: + - caption: Assets + entity_type: Task + filters: + - [entity, type_is, Asset] + hierarchy: [entity.Asset.sg_asset_type, entity, step, content] + - caption: Shots + entity_type: Task + filters: + - [entity, type_is, Shot] + hierarchy: [entity.Shot.sg_sequence, entity, step, content] + file_extensions: [] + hook_copy_file: '{self}/copy_file.py' + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + location: + version: v0.7.39 + type: app_store + name: tk-multi-workfiles2 + my_tasks_extra_display_fields: [] + saveas_default_name: scene + saveas_prefer_version_up: false + show_my_tasks: true + template_publish: + template_publish_area: + template_work: + template_work_area: + version_compare_ignore_fields: [] +# +# +# File Manager that launches at startup. +# -------------------------------------- +# For details, see above. +# +workfiles2-launch-at-startup: + allow_task_creation: true + create_new_task_hook: '{self}/create_new_task.py' + custom_actions_hook: '{self}/custom_actions.py' + entities: + - caption: Assets + entity_type: Task + filters: + - [entity, type_is, Asset] + hierarchy: [entity.Asset.sg_asset_type, entity, step, content] + - caption: Shots + entity_type: Task + filters: + - [entity, type_is, Shot] + hierarchy: [entity.Shot.sg_sequence, entity, step, content] + file_extensions: [] + hook_copy_file: '{self}/copy_file.py' + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: true + location: + version: v0.7.39 + type: app_store + name: tk-multi-workfiles2 + my_tasks_extra_display_fields: [] + saveas_default_name: scene + saveas_prefer_version_up: false + show_my_tasks: true + template_publish: + template_publish_area: + template_work: + template_work_area: + version_compare_ignore_fields: [] +############################################################################### +# +# Framework includes. +# +# Frameworks are libraries that are shared between apps and that contain +# common functionality for building UIs and communicating with Shotgun. +# Frameworks are automatically installed when apps are installed and udpated. +# +frameworks: + tk-framework-qtwidgets_v2.x.x: + location: + version: v2.4.3 + type: app_store + name: tk-framework-qtwidgets + tk-framework-shotgunutils_v4.x.x: + location: + version: v4.4.5 + type: app_store + name: tk-framework-shotgunutils + tk-framework-widget_v0.2.x: + location: + version: v0.2.4 + type: app_store + name: tk-framework-widget diff --git a/env/includes/paths.yml b/env/includes/paths.yml index 784e901..968c862 100644 --- a/env/includes/paths.yml +++ b/env/includes/paths.yml @@ -1,89 +1,103 @@ -# Copyright (c) 2013 Shotgun Software Inc. -# -# CONFIDENTIAL AND PROPRIETARY -# -# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit -# Source Code License included in this distribution package. See LICENSE. -# By accessing, using, copying or modifying this work you indicate your -# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights -# not expressly granted therein are reserved by Shotgun Software Inc. -# - -# -# This file defines paths to key applications for the project -# - -# -# maya -# -maya_windows: 'C:\appnet\applications\maya\{version}-x64\Maya{version}\bin\maya.exe' -maya_mac: /Applications/Autodesk/maya{version}/Maya.app -maya_linux: maya{version} - - -# -# nuke -# -nuke_mac: /Applications/Nuke8.0v3/Nuke8.0v3.app -nuke_windows: 'E:\Program Files\Nuke8.0v5\Nuke8.0.exe' -nuke_linux: Nuke8.0 - - -# -# Houdini -# -#houdini_windows: 'C:\Program Files\Side Effects Software\Houdini 13.0.375\bin\houdini.exe' - -houdini_windows: 'C:\appnet\applications\houdini\15.0.416\bin\h{v0}.exe' -#houdiniFX_windows: 'C:\appnet\applications\houdini\15.0.416\bin\hmaster.exe' -#houdini_windows: 'C:\Python27\python.exe' - -#[Rob] This is going to be launched via the python wrapper instead -#houdini_linux: '/studio/application_support/houdiniSettings/studio/houdini13.0/scripts/HFX13.0.376' - -#houdini_linux: '/opt/Shotgun/Python/bin/python' -houdini_linux: '/opt/hfs15.0.416/bin/h{v0}' -#houdiniFX_linux: '/opt/Shotgun/Python/bin/python' -#houdini_master_linux: '/usr/bin/python' - - -#HJ: COMMENTED OUT FOR THE MOMENT - -# -# Houdini -# -#houdini_windows: 'C:\Python27\python.exe' - -#[Rob] This is going to be launched via the python wrapper instead -#houdini_linux: '/studio/application_support/houdiniSettings/studio/houdini13.0/scripts/HFX13.0.376' -#houdini_linux: '/usr/bin/python' - - -# -# photoshop CS6 -# -photoshop_mac: /Applications/Adobe Photoshop CS6/Adobe Photoshop CS6.app -photoshop_win: 'C:\Program Files\Adobe\Adobe Photoshop CC (64 Bit)\Photoshop.exe' -photoshop_extras: - mac_extension_manager_path: /Applications/Adobe Extension Manager CS6/Adobe Extension Manager CS6.app - mac_python_path: /usr/bin/python - windows_extension_manager_path: 'C:\Program Files (x86)\Adobe\Adobe Extension Manager CC\XManCommand.exe' - windows_python_path: 'C:\Python27\python.exe' - - -# -# Hiero -# -# Hiero argument passed in app_launchers.yml -hiero_mac: /Applications/Nuke{v0}{v1}/Hiero{v0}{v1}.app -hiero_win: 'E:\Program Files\Nuke{v0}{v1}\Nuke{v0}.exe' -hiero_linux: Nuke{v0} - - -# -# Tweak RV -# -rv_mac: /Applications/RV64.app -rv_win: C:\Program Files\RV\RV64.exe -rv_linux: rv - +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. +# + +# +# This file defines paths to key applications for the project +# + +# +# Mari +# +mari_linux: 'Mari3.0' +mari_mac: /Applications/Mari3.0v2 +mari_windows: 'C:\Program Files\Mari3.0v2\Bundle\bin\Mari3.0v2.exe' + + +# +# Maya +# +maya_windows: 'C:\Program Files\Autodesk\Maya2015\bin\maya.exe' +maya_mac: /Applications/Autodesk/maya2015/Maya.app +maya_linux: maya + + +# +# Nuke +# +nuke_mac: /Applications/Nuke9.0v8/Nuke9.0v8.app +nuke_windows: 'C:\Program Files\Nuke9.0v8\Nuke9.0.exe' +nuke_linux: Nuke9.0 + + +# +# Nuke Studio +# +nukestudio_mac: /Applications/Nuke9.0v8/NukeStudio9.0v8.app +nukestudio_windows: 'C:\Program Files\Nuke9.0v8\Nuke9.0.exe' +nukestudio_linux: Nuke9.0 + + +# +# motionbuilder +# +motionbuilder_windows: 'C:\Program Files\Autodesk\MotionBuilder 2014\bin\x64\motionbuilder.exe' + + +# +# 3dsmax 2015 +# +3dsmax_windows: 'C:\Program Files\Autodesk\3ds Max 2015\3dsmax.exe' + + +# +# Houdini +# +houdini_mac: /Applications/Houdini 15.0.244.16/Houdini.app +houdini_windows: 'C:\Program Files\Side Effects Software\Houdini 15.0.244.16\bin\houdini.exe' +houdini_linux: '/opt/hfs15.0.244.16/bin/houdini' + + +# +# photoshop CS6 +# +photoshop_mac: /Applications/Adobe Photoshop CS6/Adobe Photoshop CS6.app +photoshop_win: 'C:\Program Files\Adobe\Adobe Photoshop CS6 (64 Bit)\Photoshop.exe' +photoshop_extras: + mac_extension_manager_path: /Applications/Adobe Extension Manager CS6/Adobe Extension Manager CS6.app + # An empty Python path will cause the engine to default to using the "current" + # Python that the engine is running in. This is often the best approach, as it + # should guarantee all necessary Python libraries are available. + mac_python_path: '' + windows_extension_manager_path: 'C:\Program Files (x86)\Adobe\Adobe Extension Manager CS6\XManCommand.exe' + windows_python_path: '' + + +# +# Hiero +# +hiero_mac: /Applications/Nuke9.0v8/Hiero9.0v8.app +hiero_win: 'C:\Program Files\Nuke9.0v8\Nuke9.0.exe' +hiero_linux: Nuke9.0 + + +# +# Softimage +# +softimage_windows: C:\Program Files\Autodesk\Softimage 2013\Application\bin\XSI.bat +softimage_linux: XSI + + +# +# Tweak RV +# +rv_mac: /Applications/RV64.app +rv_win: C:\Program Files\RV\RV64.exe +rv_linux: rv diff --git a/env/project.yml b/env/project.yml index c6fe84e..397f8d0 100644 --- a/env/project.yml +++ b/env/project.yml @@ -1,221 +1,576 @@ -description: Apps and Engines showing when an engine is launched with a project only - context. -engines: - tk-desktop: - apps: {tk-multi-launchhiero: '@launch_hiero', tk-multi-launchmaya: '@launch_maya', - tk-multi-launchnuke: '@launch_nuke', tk-shotgun-launchphotoshop: '@launch_photoshop', - tk-multi-launchhoudini: '@launch_houdini'} - collapse_rules: - - {button_label: $app, match: Launch $app $version, menu_label: Launch $version} - debug_logging: true - default_group: Studio - groups: [] - hook_launch_python: default - location: - version: v2.0.21 - type: app_store - name: tk-desktop - show_recents: true - tk-hiero: - apps: - tk-hiero-export: - audio_published_file_type: Hiero Audio - custom_template_fields: [] - default_task_filter: '[[''step.Step.code'', ''is'', ''Comp'']]' - default_task_template: Basic shot template - hook_get_extra_publish_data: default - hook_get_quicktime_settings: default - hook_get_shot: '{config}/hiero_export/axis_hiero_get_shot.py' - hook_post_version_creation: default - hook_pre_export: default - hook_resolve_custom_strings: default - hook_translate_template: default - hook_update_version_data: default - hook_upload_thumbnail: default - location: - version: v0.3.19 - type: app_store - name: tk-hiero-export - nuke_script_published_file_type: Nuke Script - nuke_script_toolkit_write_nodes: - - {channel: stereoexr32, name: 'Stereo Exr, 32 bit'} - - {channel: stereoexr16, name: 'Stereo Exr, 16 bit'} - - {channel: monodpx, name: Mono Dpx} - plate_published_file_type: Hiero Plate - template_nuke_script_path: hiero_nuke_script - template_plate_path: hiero_plate_path - template_render_path: hiero_render_path - template_version: hiero_version - tk-hiero-openinshotgun: - location: - version: v0.3.3 - type: app_store - name: tk-hiero-openinshotgun - tk-multi-about: '@about' - tk-multi-snapshot: - hook_copy_file: default - hook_scene_operation: default - hook_thumbnail: default - location: {name: tk-multi-snapshot, type: app_store, version: v0.6.1} - template_snapshot: hiero_project_snapshot - template_work: hiero_project_work - tk-multi-workfiles2: - allow_task_creation: true - create_new_task_hook: '{self}/create_new_task.py' - custom_actions_hook: '{self}/custom_actions.py' - entities: - - caption: Assets - entity_type: Task - filters: - - [entity, type_is, Asset] - hierarchy: [entity.Asset.sg_asset_type, entity, step, content] - - caption: Shots - entity_type: Task - filters: - - [entity, type_is, Shot] - hierarchy: [entity.Shot.sg_sequence, entity, step, content] - file_extensions: [] - hook_copy_file: '{self}/copy_file.py' - hook_filter_publishes: '{self}/filter_publishes.py' - hook_filter_work_files: '{self}/filter_work_files.py' - hook_scene_operation: '{self}/scene_operation_tk-hiero.py' - launch_at_startup: true - location: - version: v0.7.39 - type: app_store - name: tk-multi-workfiles2 - my_tasks_extra_display_fields: [] - saveas_default_name: scene - saveas_prefer_version_up: false - show_my_tasks: true - template_publish: hiero_project_publish - template_publish_area: hiero_project_publish_area - template_work: hiero_project_work - template_work_area: hiero_project_work_area - version_compare_ignore_fields: [] - bin_context_menu: - - {app_instance: tk-multi-workfiles2, keep_in_menu: false, name: File Save..., - requires_selection: true} - - {app_instance: tk-multi-snapshot, keep_in_menu: false, name: Snapshot..., requires_selection: true} - - {app_instance: tk-multi-snapshot, keep_in_menu: false, name: Snapshot History..., - requires_selection: true} - debug_logging: true - location: {name: tk-hiero, type: app_store, version: v0.2.5} - menu_favourites: - - {app_instance: tk-multi-workfiles2, name: File Open...} - - {app_instance: tk-multi-workfiles2, name: File Save...} - - {app_instance: tk-multi-snapshot, name: Snapshot...} - spreadsheet_context_menu: - - {app_instance: tk-hiero-openinshotgun, keep_in_menu: false, name: Open in Shotgun, - requires_selection: true} - timeline_context_menu: - - {app_instance: tk-hiero-openinshotgun, keep_in_menu: false, name: Open in Shotgun, - requires_selection: true} - tk-maya: - apps: - tk-multi-about: '@about' - tk-multi-screeningroom: '@launch_screeningroom' - tk-multi-shotgunpanel: - action_mappings: - PublishedFile: - - actions: [publish_clipboard] - filters: {} - - actions: [reference, import] - filters: {published_file_type: Maya Scene} - - actions: [texture_node] - filters: {published_file_type: Rendered Image} - - actions: [texture_node] - filters: {published_file_type: Photoshop Image} - - actions: [udim_texture_node] - filters: {published_file_type: UDIM Image} - - actions: [reference] - filters: {published_file_type: Geometry} - - actions: [reference] - filters: {published_file_type: Camera} - Task: - - actions: [assign_task, task_to_ip] - filters: {} - Version: - - actions: [play_in_rv] - filters: {} - actions_hook: '{self}/tk-maya_actions.py:{config}/panel/maya_actions.py' - location: - version: v1.2.7 - type: app_store - name: tk-multi-shotgunpanel - shotgun_fields_hook: '{self}/shotgun_fields.py' - tk-multi-workfiles2: '@workfiles2' - compatibility_dialog_min_version: 2015 - debug_logging: false - location: - version: v0.6.0 - type: app_store - name: tk-maya - menu_favourites: - - {app_instance: tk-multi-workfiles2, name: File Open...} - template_project: - use_sgtk_as_menu_name: false - tk-nuke: - apps: {tk-multi-about: '@about', tk-multi-screeningroom: '@launch_screeningroom', - tk-multi-workfiles: '@workfiles'} - bin_context_menu: [] - compatibility_dialog_min_version: 8 - debug_logging: false - favourite_directories: [] - location: - version: v0.6.9 - type: app_store - name: tk-nuke - menu_favourites: - - {app_instance: tk-multi-workfiles, name: Shotgun File Manager...} - project_favourite_name: Shotgun Current Project - spreadsheet_context_menu: [] - timeline_context_menu: [] - use_sgtk_as_menu_name: false - tk-photoshop: - apps: {tk-multi-about: '@about', tk-multi-screeningroom: '@launch_screeningroom', - tk-multi-workfiles: '@workfiles'} - debug_logging: false - location: {name: tk-photoshop, type: app_store, version: v0.3.3} - tk-shell: - apps: {tk-multi-launchhiero: '@launch_hiero', tk-multi-launchmaya: '@launch_maya', - tk-multi-launchnuke: '@launch_nuke', tk-shotgun-launchphotoshop: '@launch_photoshop'} - debug_logging: false - location: - version: v0.5.0 - type: app_store - name: tk-shell - tk-houdini: - apps: - tk-multi-about: '@about' - tk-multi-screeningroom: '@launch_screeningroom' - tk-multi-workfiles2: '@workfiles2' - template_project: - use_sgtk_as_menu_name: false - location: - version: v1.0.10 - type: app_store - name: tk-houdini - enable_sg_shelf: true - enable_sg_menu: true - debug_logging: false - menu_favourites: - - {app_instance: tk-multi-workfiles2, name: File Open...} - - {app_instance: tk-multi-workfiles2, name: File Save...} - - {app_instance: tk-multi-snapshot, name: Snapshot...} - - {app_instance: tk-multi-publish, name: Publish...} -frameworks: - tk-framework-adminui_v0.x.x: - location: - version: v0.1.6 - type: app_store - name: tk-framework-adminui - tk-framework-login_v1.x.x: - location: {name: tk-framework-login, type: app_store, version: v1.2.2} - tk-framework-widget_v0.1.16: - location: {name: tk-framework-widget, type: app_store, version: v0.1.16} - tk-framework-widget_v0.1.18: - location: {name: tk-framework-widget, type: app_store, version: v0.1.18} - tk-framework-widget_v0.1.19: - location: {name: tk-framework-widget, type: app_store, version: v0.1.19} -includes: [./includes/app_launchers.yml, ./includes/common_apps.yml] +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. +# + +description: Apps and Engines when launching with a project only context. + +################################################################################################# +# include common files + +includes: +# launchers for launching DCCs such as Maya, Nuke etc. +- ./includes/app_launchers.yml +# common app configurations that are reused across environments +- ./includes/common_apps.yml + +################################################################################################# +# define all the items that should appear in this environment + + + +engines: + # + # ------------------------------------------------- + # 3dsmax + # ------------------------------------------------- + tk-3dsmax: + apps: + tk-multi-about: '@about' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + debug_logging: false + location: + version: v0.3.9 + type: app_store + name: tk-3dsmax + # + # ------------------------------------------------- + # 3dsmax plus + # ------------------------------------------------- + tk-3dsmaxplus: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + compatibility_dialog_min_version: 2017 + debug_logging: false + location: + version: v0.1.16 + type: app_store + name: tk-3dsmaxplus + menu_favourites: [] + # + # ------------------------------------------------- + # Shotgun Desktop + # ------------------------------------------------- + tk-desktop: + apps: + tk-multi-launch3dsmax: '@launch_3dsmax' + tk-multi-launchhiero: '@launch_hiero' + tk-multi-launchhoudini: '@launch_houdini' + tk-multi-launchmari: '@launch_mari' + tk-multi-launchmaya: '@launch_maya' + tk-multi-launchmotionbuilder: '@launch_motionbuilder' + tk-multi-launchnuke: '@launch_nuke' + tk-multi-launchnukestudio: '@launch_nukestudio' + tk-multi-launchphotoshop: '@launch_photoshop' + tk-multi-launchsoftimage: '@launch_softimage' + tk-multi-screeningroom: '@launch_screeningroom' + collapse_rules: + - {button_label: $app, match: Launch $app, menu_label: None} + debug_logging: false + default_group: Studio + groups: + - matches: ['*Houdini*', '*Mari*', '*Max*', '*Maya*', '*Motion*', '*Nuke*', '*Photoshop*', + '*Softimage*'] + name: Creative Tools + - matches: ['*Hiero*'] + name: Editorial Tools + - matches: ['*Fla*'] + name: Finishing Tools + hook_launch_python: default + location: + version: v2.0.19 + type: app_store + name: tk-desktop + show_recents: true + + # + # ------------------------------------------------- + # Hiero + # ------------------------------------------------- + tk-hiero: + apps: + tk-hiero-export: + audio_published_file_type: Hiero Audio + custom_template_fields: [] + default_task_filter: '[[''step.Step.code'', ''is'', ''Comp'']]' + default_task_template: Basic shot template + hook_get_extra_publish_data: default + hook_get_quicktime_settings: default + hook_get_shot: default + hook_pre_export: default + hook_resolve_custom_strings: default + hook_translate_template: default + hook_update_version_data: default + hook_upload_thumbnail: default + location: + version: v0.3.19 + type: app_store + name: tk-hiero-export + nuke_script_published_file_type: Nuke Script + nuke_script_toolkit_write_nodes: + - {channel: stereoexr32, name: 'Stereo Exr, 32 bit'} + - {channel: stereoexr16, name: 'Stereo Exr, 16 bit'} + - {channel: monodpx, name: Mono Dpx} + plate_published_file_type: Hiero Plate + template_nuke_script_path: nuke_shot_work + template_plate_path: hiero_plate_path + template_render_path: hiero_render_path + template_version: hiero_version + hook_post_version_creation: default + tk-hiero-openinshotgun: + location: + version: v0.3.3 + type: app_store + name: tk-hiero-openinshotgun + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-publish: + allow_taskless_publishes: true + display_name: Publish Project + expand_single_items: false + hook_copy_file: default + hook_post_publish: default + hook_primary_pre_publish: default + hook_primary_publish: default + hook_scan_scene: default + hook_secondary_pre_publish: default + hook_secondary_publish: default + hook_thumbnail: default + location: + version: v0.9.4 + type: app_store + name: tk-multi-publish + primary_description: Publish and version up the selected Hiero project + primary_display_name: Hiero Publish + primary_icon: icons/publish_hiero_main.png + primary_publish_template: hiero_project_publish + primary_scene_item_type: work_file + primary_tank_type: Hiero Project + secondary_outputs: [] + template_work: hiero_project_work + tk-multi-snapshot: + hook_copy_file: default + hook_scene_operation: default + hook_thumbnail: default + location: + version: v0.6.1 + type: app_store + name: tk-multi-snapshot + template_snapshot: hiero_project_snapshot + template_work: hiero_project_work + tk-multi-workfiles2: + allow_task_creation: true + create_new_task_hook: default + custom_actions_hook: default + entities: + - caption: Projects + entity_type: Project + filters: [] + hierarchy: [name] + file_extensions: [] + hook_copy_file: default + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + location: + version: v0.7.39 + type: app_store + name: tk-multi-workfiles2 + my_tasks_extra_display_fields: [] + saveas_default_name: scene + saveas_prefer_version_up: false + show_my_tasks: false + template_publish: hiero_project_publish + template_publish_area: hiero_project_publish_area + template_work: hiero_project_work + template_work_area: hiero_project_work_area + version_compare_ignore_fields: [] + bin_context_menu: + - {app_instance: tk-multi-workfiles2, keep_in_menu: false, name: File Save..., + requires_selection: true} + - {app_instance: tk-multi-snapshot, keep_in_menu: false, name: Snapshot..., requires_selection: true} + - {app_instance: tk-multi-snapshot, keep_in_menu: false, name: Snapshot History..., + requires_selection: true} + - {app_instance: tk-multi-publish, keep_in_menu: false, name: Publish Project..., + requires_selection: true} + project_favourite_name: Shotgun Current Project + use_sgtk_as_menu_name: false + favourite_directories: [] + compatibility_dialog_min_version: 10 + debug_logging: false + location: + version: v0.6.9 + type: app_store + name: tk-nuke + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + spreadsheet_context_menu: + - {app_instance: tk-hiero-openinshotgun, keep_in_menu: false, name: Open in Shotgun, + requires_selection: true} + timeline_context_menu: + - {app_instance: tk-hiero-openinshotgun, keep_in_menu: false, name: Open in Shotgun, + requires_selection: true} + # + # ------------------------------------------------- + # Houdini + # ------------------------------------------------- + tk-houdini: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + location: + version: v1.0.10 + type: app_store + name: tk-houdini + enable_sg_shelf: true + debug_logging: false + enable_sg_menu: true + menu_favourites: [] + # + # ------------------------------------------------- + # Mari + # ------------------------------------------------- + tk-mari: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-workfiles: + allow_task_creation: true + file_extensions: [] + hook_copy_file: default + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + launch_change_work_area_at_startup: false + location: + version: v0.7.4 + type: app_store + name: tk-multi-workfiles + saveas_default_name: scene + saveas_prefer_version_up: false + sg_entity_type_extra_display_fields: {} + sg_entity_type_filters: {} + sg_entity_types: [Asset] + sg_task_filters: [] + task_extra_display_fields: [] + template_publish: + template_publish_area: + template_work: + template_work_area: + version_compare_ignore_fields: [] + compatibility_dialog_min_version: 2 + debug_logging: false + location: + version: v1.1.4 + type: app_store + name: tk-mari + # + # ------------------------------------------------- + # Maya + # ------------------------------------------------- + tk-maya: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2-launch-at-startup' + compatibility_dialog_min_version: 2015 + debug_logging: false + location: + version: v0.6.0 + type: app_store + name: tk-maya + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + template_project: + use_sgtk_as_menu_name: false + + # + # ------------------------------------------------- + # Motionbuilder + # ------------------------------------------------- + tk-motionbuilder: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + debug_logging: false + location: + version: v0.3.1 + type: app_store + name: tk-motionbuilder + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + template_project: + use_sgtk_as_menu_name: false + + # + # ------------------------------------------------- + # Nuke + # ------------------------------------------------- + tk-nuke: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + compatibility_dialog_min_version: 10 + debug_logging: false + favourite_directories: [] + location: + version: v0.6.9 + type: app_store + name: tk-nuke + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + project_favourite_name: Shotgun Current Project + use_sgtk_as_menu_name: false + bin_context_menu: [] + spreadsheet_context_menu: [] + timeline_context_menu: [] + # + # ------------------------------------------------- + # Nuke Studio + # ------------------------------------------------- + tk-nukestudio: + apps: + tk-hiero-export: + audio_published_file_type: Hiero Audio + custom_template_fields: [] + default_task_filter: '[[''step.Step.code'', ''is'', ''Comp'']]' + default_task_template: Basic shot template + hook_get_extra_publish_data: default + hook_get_quicktime_settings: default + hook_get_shot: default + hook_pre_export: default + hook_resolve_custom_strings: default + hook_translate_template: default + hook_update_version_data: default + hook_upload_thumbnail: default + location: + version: v0.3.19 + type: app_store + name: tk-hiero-export + nuke_script_published_file_type: Nuke Script + nuke_script_toolkit_write_nodes: + - {channel: stereoexr32, name: 'Stereo Exr, 32 bit'} + - {channel: stereoexr16, name: 'Stereo Exr, 16 bit'} + - {channel: monodpx, name: Mono Dpx} + plate_published_file_type: Hiero Plate + template_nuke_script_path: nuke_shot_work + template_plate_path: hiero_plate_path + template_render_path: hiero_render_path + template_version: hiero_version + hook_post_version_creation: default + tk-hiero-openinshotgun: + location: + version: v0.3.3 + type: app_store + name: tk-hiero-openinshotgun + tk-multi-about: '@about' + tk-multi-publish: + allow_taskless_publishes: true + display_name: Publish Project + expand_single_items: false + hook_copy_file: default + hook_post_publish: default + hook_primary_pre_publish: default + hook_primary_publish: default + hook_scan_scene: default + hook_secondary_pre_publish: default + hook_secondary_publish: default + hook_thumbnail: default + location: + version: v0.9.4 + type: app_store + name: tk-multi-publish + primary_description: Publish and version up the selected Hiero project + primary_display_name: Hiero Publish + primary_icon: icons/publish_hiero_main.png + primary_publish_template: hiero_project_publish + primary_scene_item_type: work_file + primary_tank_type: Hiero Project + secondary_outputs: [] + template_work: hiero_project_work + tk-multi-snapshot: + hook_copy_file: default + hook_scene_operation: default + hook_thumbnail: default + location: + version: v0.6.1 + type: app_store + name: tk-multi-snapshot + template_snapshot: hiero_project_snapshot + template_work: hiero_project_work + tk-multi-workfiles2: + allow_task_creation: true + create_new_task_hook: default + custom_actions_hook: default + entities: + - caption: Projects + entity_type: Project + filters: [] + hierarchy: [name] + file_extensions: [] + hook_copy_file: default + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + location: + version: v0.7.39 + type: app_store + name: tk-multi-workfiles2 + my_tasks_extra_display_fields: [] + saveas_default_name: scene + saveas_prefer_version_up: false + show_my_tasks: false + template_publish: hiero_project_publish + template_publish_area: hiero_project_publish_area + template_work: hiero_project_work + template_work_area: hiero_project_work_area + version_compare_ignore_fields: [] + tk-multi-shotgunpanel: + location: + version: v1.2.7 + type: app_store + name: tk-multi-shotgunpanel + shotgun_fields_hook: '{self}/shotgun_fields.py' + actions_hook: '{self}/general_actions.py' + action_mappings: + PublishedFile: + - actions: + - publish_clipboard + filters: {} + - actions: + - read_node + filters: + published_file_type: Rendered Image + - actions: + - script_import + filters: + published_file_type: Nuke Script + Task: + - actions: + - assign_task + - task_to_ip + filters: {} + Version: + - actions: + - quicktime_clipboard + - sequence_clipboard + filters: {} + bin_context_menu: + - {app_instance: tk-multi-workfiles2, keep_in_menu: false, name: File Save..., + requires_selection: true} + - {app_instance: tk-multi-snapshot, keep_in_menu: false, name: Snapshot..., requires_selection: true} + - {app_instance: tk-multi-snapshot, keep_in_menu: false, name: Snapshot History..., + requires_selection: true} + - {app_instance: tk-multi-publish, keep_in_menu: false, name: Publish Project..., + requires_selection: true} + project_favourite_name: Shotgun Current Project + use_sgtk_as_menu_name: false + favourite_directories: [] + compatibility_dialog_min_version: 10 + debug_logging: false + location: + version: v0.6.9 + type: app_store + name: tk-nuke + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + spreadsheet_context_menu: + - {app_instance: tk-hiero-openinshotgun, keep_in_menu: false, name: Open in Shotgun, + requires_selection: true} + timeline_context_menu: + - {app_instance: tk-hiero-openinshotgun, keep_in_menu: false, name: Open in Shotgun, + requires_selection: true} + # + # ------------------------------------------------- + # Photoshop + # ------------------------------------------------- + tk-photoshop: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + debug_logging: false + location: + version: v0.3.3 + type: app_store + name: tk-photoshop + # + # ------------------------------------------------- + # Shell Engine (tank command) + # ------------------------------------------------- + tk-shell: + apps: + tk-multi-launch3dsmax: '@launch_3dsmax' + tk-multi-launchhiero: '@launch_hiero' + tk-multi-launchhoudini: '@launch_houdini' + tk-multi-launchmari: '@launch_mari' + tk-multi-launchmaya: '@launch_maya' + tk-multi-launchmotionbuilder: '@launch_motionbuilder' + tk-multi-launchnuke: '@launch_nuke' + tk-multi-launchnukestudio: '@launch_nukestudio' + tk-multi-launchphotoshop: '@launch_photoshop' + tk-multi-launchsoftimage: '@launch_softimage' + tk-multi-screeningroom: '@launch_screeningroom' + location: + version: v0.5.0 + type: app_store + name: tk-shell + # + # ------------------------------------------------- + # Softimage + # ------------------------------------------------- + tk-softimage: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + debug_logging: false + location: + version: v0.3.2 + type: app_store + name: tk-softimage + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + template_project: +# +############################################################################### +# +# Framework includes. +# +# Frameworks are libraries that are shared between apps and that contain +# common functionality for building UIs and communicating with Shotgun. +# Frameworks are automatically installed when apps are installed and udpated. +# +frameworks: + tk-framework-adminui_v0.x.x: + location: + version: v0.1.6 + type: app_store + name: tk-framework-adminui + tk-framework-softimageqt_v1.0.1: + location: + name: tk-framework-softimageqt + type: app_store + version: v1.0.1 diff --git a/env/sequence.yml b/env/sequence.yml index da6c852..8bd8d2b 100644 --- a/env/sequence.yml +++ b/env/sequence.yml @@ -1,81 +1,199 @@ -description: Apps and engines loaded when a Sequence is loaded. Since std VFX config - template has a file system structure which is centered around pipeline steps, this - environment is largely empty. Most of the work takes place on a level in the file - system where both a shot and a pipeline step is available - e.g Shot ABC, modeling, - so all apps for loading, publishing etc. are located in the shot_step environment. - This environment mostly contains utility apps and the tank work files app, which - lets you choose a task to work on and load associated content into an application. -engines: - tk-maya: - apps: - tk-multi-about: '@about' - tk-multi-screeningroom: '@launch_screeningroom' - tk-multi-shotgunpanel: - action_mappings: - PublishedFile: - - actions: [publish_clipboard] - filters: {} - - actions: [reference, import] - filters: {published_file_type: Maya Scene} - - actions: [texture_node] - filters: {published_file_type: Rendered Image} - - actions: [texture_node] - filters: {published_file_type: Photoshop Image} - - actions: [udim_texture_node] - filters: {published_file_type: UDIM Image} - - actions: [reference] - filters: {published_file_type: Geometry} - - actions: [reference] - filters: {published_file_type: Camera} - Task: - - actions: [assign_task, task_to_ip] - filters: {} - Version: - - actions: [play_in_rv] - filters: {} - actions_hook: '{self}/tk-maya_actions.py:{config}/panel/maya_actions.py' - location: - version: v1.2.7 - type: app_store - name: tk-multi-shotgunpanel - shotgun_fields_hook: '{self}/shotgun_fields.py' - tk-multi-workfiles2: '@workfiles2' - compatibility_dialog_min_version: 2015 - debug_logging: false - location: - version: v0.6.0 - type: app_store - name: tk-maya - menu_favourites: - - {app_instance: tk-multi-workfiles2, name: File Open...} - template_project: - use_sgtk_as_menu_name: false - tk-nuke: - apps: {tk-multi-about: '@about', tk-multi-screeningroom: '@launch_screeningroom', - tk-multi-workfiles: '@workfiles'} - bin_context_menu: [] - compatibility_dialog_min_version: 8 - debug_logging: false - favourite_directories: [] - location: - version: v0.6.9 - type: app_store - name: tk-nuke - menu_favourites: - - {app_instance: tk-multi-workfiles, name: Shotgun File Manager...} - project_favourite_name: Shotgun Current Project - spreadsheet_context_menu: [] - timeline_context_menu: [] - use_sgtk_as_menu_name: false - tk-shell: - apps: {tk-multi-screeningroom: '@launch_screeningroom', tk-shotgun-launchmaya: '@launch_maya', - tk-shotgun-launchnuke: '@launch_nuke', tk-shotgun-launchphotoshop: '@launch_photoshop'} - debug_logging: false - location: - version: v0.5.0 - type: app_store - name: tk-shell -frameworks: - tk-framework-widget_v0.1.18: - location: {name: tk-framework-widget, type: app_store, version: v0.1.18} -includes: [./includes/app_launchers.yml, ./includes/common_apps.yml] +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. +# + +description: Apps and engines loaded when a Sequence is loaded. Since std VFX config + template has a file system structure which is centered around pipeline steps, this + environment is largely empty. Most of the work takes place on a level in the file + system where both a shot and a pipeline step is available - e.g Shot ABC, modeling, + so all apps for loading, publishing etc. are located in the shot_step environment. + This environment mostly contains utility apps and the tank work files app, which + lets you choose a task to work on and load associated content into an application. + + +################################################################################################# +# include common files + +includes: +# launchers for launching DCCs such as Maya, Nuke etc. +- ./includes/app_launchers.yml +# common app configurations that are reused across environments +- ./includes/common_apps.yml + + +################################################################################################# +# define all the items that should appear in this environment + +engines: + # + # ------------------------------------------------- + # 3dsmax + # ------------------------------------------------- + tk-3dsmax: + apps: + tk-multi-about: '@about' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + debug_logging: false + location: + version: v0.3.9 + type: app_store + name: tk-3dsmax + # + # ------------------------------------------------- + # 3dsmax plus + # ------------------------------------------------- + tk-3dsmaxplus: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + compatibility_dialog_min_version: 2017 + debug_logging: false + location: + version: v0.1.16 + type: app_store + name: tk-3dsmaxplus + menu_favourites: [] + # + # ------------------------------------------------- + # Houdini + # ------------------------------------------------- + tk-houdini: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + location: + version: v1.0.10 + type: app_store + name: tk-houdini + enable_sg_shelf: true + debug_logging: false + enable_sg_menu: true + menu_favourites: [] + # + # ------------------------------------------------- + # Maya + # ------------------------------------------------- + tk-maya: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2-launch-at-startup' + compatibility_dialog_min_version: 2015 + debug_logging: false + location: + version: v0.6.0 + type: app_store + name: tk-maya + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + template_project: + use_sgtk_as_menu_name: false + + # + # ------------------------------------------------- + # Motionbuilder + # ------------------------------------------------- + tk-motionbuilder: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + debug_logging: false + location: + version: v0.3.1 + type: app_store + name: tk-motionbuilder + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + use_sgtk_as_menu_name: false + + # + # ------------------------------------------------- + # Nuke + # ------------------------------------------------- + tk-nuke: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + compatibility_dialog_min_version: 10 + debug_logging: false + favourite_directories: [] + location: + version: v0.6.9 + type: app_store + name: tk-nuke + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + bin_context_menu: [] + spreadsheet_context_menu: [] + timeline_context_menu: [] + project_favourite_name: Shotgun Current Project + use_sgtk_as_menu_name: false + + # + # ------------------------------------------------- + # Shell (tank command) + # ------------------------------------------------- + tk-shell: + apps: + tk-multi-launch3dsmax: '@launch_3dsmax' + tk-multi-launchhoudini: '@launch_houdini' + tk-multi-launchmaya: '@launch_maya' + tk-multi-launchmotionbuilder: '@launch_motionbuilder' + tk-multi-launchnuke: '@launch_nuke' + tk-multi-launchphotoshop: '@launch_photoshop' + tk-multi-launchsoftimage: '@launch_softimage' + tk-multi-screeningroom: '@launch_screeningroom' + location: + version: v0.5.0 + type: app_store + name: tk-shell + # + # ------------------------------------------------- + # Softimage + # ------------------------------------------------- + tk-softimage: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + debug_logging: false + location: + version: v0.3.2 + type: app_store + name: tk-softimage + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + template_project: +# +############################################################################### +# +# Framework includes. +# +# Frameworks are libraries that are shared between apps and that contain +# common functionality for building UIs and communicating with Shotgun. +# Frameworks are automatically installed when apps are installed and udpated. +# +frameworks: + tk-framework-softimageqt_v1.0.1: + location: + name: tk-framework-softimageqt + type: app_store + version: v1.0.1 diff --git a/env/shot.yml b/env/shot.yml index 0d7dcda..b8e2516 100644 --- a/env/shot.yml +++ b/env/shot.yml @@ -1,104 +1,212 @@ -description: Apps and engines loaded when a Shot is loaded. Since std VFX config template - has a file system structure which is centered around pipeline steps, this environment - is largely empty. Most of the work takes place on a level in the file system where - both a shot and a pipeline step is available - e.g Shot ABC, modeling, so all apps - for loading, publishing etc. are located in the shot_step environment. This environment - mostly contains utility apps and the tank work files app, which lets you choose - a task to work on and load associated content into an application. -engines: - tk-maya: - apps: - tk-multi-about: '@about' - tk-multi-screeningroom: '@launch_screeningroom' - tk-multi-shotgunpanel: - action_mappings: - PublishedFile: - - actions: [publish_clipboard] - filters: {} - - actions: [reference, import] - filters: {published_file_type: Maya Scene} - - actions: [texture_node] - filters: {published_file_type: Rendered Image} - - actions: [texture_node] - filters: {published_file_type: Photoshop Image} - - actions: [udim_texture_node] - filters: {published_file_type: UDIM Image} - - actions: [reference] - filters: {published_file_type: Geometry} - - actions: [reference] - filters: {published_file_type: Camera} - Task: - - actions: [assign_task, task_to_ip] - filters: {} - Version: - - actions: [play_in_rv] - filters: {} - actions_hook: '{self}/tk-maya_actions.py:{config}/panel/maya_actions.py' - location: - version: v1.2.7 - type: app_store - name: tk-multi-shotgunpanel - shotgun_fields_hook: '{self}/shotgun_fields.py' - tk-multi-workfiles2: '@workfiles2' - compatibility_dialog_min_version: 2015 - debug_logging: false - location: - version: v0.6.0 - type: app_store - name: tk-maya - menu_favourites: - - {app_instance: tk-multi-workfiles2, name: File Open...} - template_project: - use_sgtk_as_menu_name: false - tk-nuke: - apps: {tk-multi-about: '@about', tk-multi-screeningroom: '@launch_screeningroom', - tk-multi-workfiles: '@workfiles'} - bin_context_menu: [] - compatibility_dialog_min_version: 8 - debug_logging: false - favourite_directories: [] - location: - version: v0.6.9 - type: app_store - name: tk-nuke - menu_favourites: - - {app_instance: tk-multi-workfiles, name: Shotgun File Manager...} - project_favourite_name: Shotgun Current Project - spreadsheet_context_menu: [] - timeline_context_menu: [] - use_sgtk_as_menu_name: false - tk-photoshop: - apps: {tk-multi-about: '@about', tk-multi-screeningroom: '@launch_screeningroom', - tk-multi-workfiles: '@workfiles'} - debug_logging: false - location: {name: tk-photoshop, type: app_store, version: v0.3.3} - tk-shell: - apps: {tk-multi-screeningroom: '@launch_screeningroom', tk-shotgun-launchmaya: '@launch_maya', - tk-shotgun-launchnuke: '@launch_nuke', tk-shotgun-launchphotoshop: '@launch_photoshop', - tk-shotgun-launchhoudini: '@launch_houdini'} - debug_logging: false - location: - version: v0.5.0 - type: app_store - name: tk-shell - tk-houdini: - apps: - tk-multi-about: '@about' - tk-multi-screeningroom: '@launch_screeningroom' - tk-multi-workfiles2: '@workfiles2' - debug_logging: false - enable_sg_menu: true - enable_sg_shelf: true - location: - version: v1.0.10 - type: app_store - name: tk-houdini - menu_favourites: - - {app_instance: tk-multi-workfiles2, name: File Open...} - - {app_instance: tk-multi-workfiles2, name: File Save...} - - {app_instance: tk-multi-snapshot, name: Snapshot...} - - {app_instance: tk-multi-publish, name: Publish...} -frameworks: - tk-framework-widget_v0.1.18: - location: {name: tk-framework-widget, type: app_store, version: v0.1.18} -includes: [./includes/app_launchers.yml, ./includes/common_apps.yml] +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. +# + +description: Apps and engines loaded when a Shot is loaded. Since std VFX config template + has a file system structure which is centered around pipeline steps, this environment + is largely empty. Most of the work takes place on a level in the file system where + both a shot and a pipeline step is available - e.g Shot ABC, modeling, so all apps + for loading, publishing etc. are located in the shot_step environment. This environment + mostly contains utility apps and the tank work files app, which lets you choose + a task to work on and load associated content into an application. + +################################################################################################# +# include common files + +includes: +# launchers for launching DCCs such as Maya, Nuke etc. +- ./includes/app_launchers.yml +# common app configurations that are reused across environments +- ./includes/common_apps.yml + +################################################################################################# +# define all the items that should appear in this environment + + +engines: + # + # ------------------------------------------------- + # 3dsmax + # ------------------------------------------------- + tk-3dsmax: + apps: + tk-multi-about: '@about' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + debug_logging: false + location: + version: v0.3.9 + type: app_store + name: tk-3dsmax + # + # ------------------------------------------------- + # 3dsmax plus + # ------------------------------------------------- + tk-3dsmaxplus: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + compatibility_dialog_min_version: 2017 + debug_logging: false + location: + version: v0.1.16 + type: app_store + name: tk-3dsmaxplus + menu_favourites: [] + # + # ------------------------------------------------- + # Houdini + # ------------------------------------------------- + tk-houdini: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + location: + version: v1.0.10 + type: app_store + name: tk-houdini + enable_sg_shelf: true + debug_logging: false + enable_sg_menu: true + menu_favourites: [] + # + # ------------------------------------------------- + # maya + # ------------------------------------------------- + tk-maya: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2-launch-at-startup' + compatibility_dialog_min_version: 2015 + debug_logging: false + location: + version: v0.6.0 + type: app_store + name: tk-maya + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + template_project: + use_sgtk_as_menu_name: false + + # + # ------------------------------------------------- + # motionbuilder + # ------------------------------------------------- + tk-motionbuilder: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + debug_logging: false + location: + version: v0.3.1 + type: app_store + name: tk-motionbuilder + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + use_sgtk_as_menu_name: false + + # + # ------------------------------------------------- + # nuke + # ------------------------------------------------- + tk-nuke: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + compatibility_dialog_min_version: 10 + debug_logging: false + favourite_directories: [] + location: + version: v0.6.9 + type: app_store + name: tk-nuke + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + project_favourite_name: Shotgun Current Project + use_sgtk_as_menu_name: false + bin_context_menu: [] + spreadsheet_context_menu: [] + timeline_context_menu: [] + # + # ------------------------------------------------- + # Photoshop + # ------------------------------------------------- + tk-photoshop: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + debug_logging: false + location: + version: v0.3.3 + type: app_store + name: tk-photoshop + # + # ------------------------------------------------- + # Shell (tank command) + # ------------------------------------------------- + tk-shell: + apps: + tk-multi-launch3dsmax: '@launch_3dsmax' + tk-multi-launchhoudini: '@launch_houdini' + tk-multi-launchmaya: '@launch_maya' + tk-multi-launchmotionbuilder: '@launch_motionbuilder' + tk-multi-launchnuke: '@launch_nuke' + tk-multi-launchphotoshop: '@launch_photoshop' + tk-multi-launchsoftimage: '@launch_softimage' + tk-multi-screeningroom: '@launch_screeningroom' + location: + version: v0.5.0 + type: app_store + name: tk-shell + # + # ------------------------------------------------- + # Softimage + # ------------------------------------------------- + tk-softimage: + apps: + tk-multi-about: '@about' + tk-multi-shotgunpanel: '@shotgunpanel' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-workfiles2: '@workfiles2' + debug_logging: false + location: + version: v0.3.2 + type: app_store + name: tk-softimage + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + template_project: +# +############################################################################### +# +# Framework includes. +# +# Frameworks are libraries that are shared between apps and that contain +# common functionality for building UIs and communicating with Shotgun. +# Frameworks are automatically installed when apps are installed and udpated. +# +frameworks: + tk-framework-softimageqt_v1.0.1: + location: + name: tk-framework-softimageqt + type: app_store + version: v1.0.1 diff --git a/env/shot_step.yml b/env/shot_step.yml index e7a7ab7..5b403b9 100644 --- a/env/shot_step.yml +++ b/env/shot_step.yml @@ -1,551 +1,1544 @@ -description: Apps and Engines related to Shot based work. -engines: - tk-houdini: - apps: - tk-multi-about: '@about' - tk-multi-loader2: - action_mappings: - Houdini Scene: [merge] - actions_hook: '{self}/tk-houdini_actions.py' - download_thumbnails: true - entities: - - caption: Assets - entity_type: Asset - filters: - - [project, is, '{context.project}'] - hierarchy: [sg_asset_type, code] - publish_filters: [] - - caption: Shots - entity_type: Shot - filters: - - [project, is, '{context.project}'] - hierarchy: [sg_sequence, code] - publish_filters: [] - - caption: My Tasks - entity_type: Task - filters: - - [task_assignees, is, '{context.user}'] - - [project, is, '{context.project}'] - hierarchy: [entity, content] - publish_filters: [] - filter_publishes_hook: '{self}/filter_publishes.py' - location: {name: tk-multi-loader2, type: app_store, version: v1.11.2} - menu_name: Load - publish_filters: [] - title_name: Loader - tk-multi-publish: - allow_taskless_publishes: false - display_name: Publish - expand_single_items: false - hook_copy_file: default - hook_post_publish: default - hook_primary_pre_publish: default - hook_primary_publish: default - hook_scan_scene: default - hook_secondary_pre_publish: default - hook_secondary_publish: default - hook_thumbnail: default - location: - version: v0.9.4 - type: app_store - name: tk-multi-publish - primary_description: Publish and version up the current scene - primary_display_name: Scene File Publish - primary_icon: icons/publish_houdini_main.png - primary_publish_template: houdini_shot_publish - primary_scene_item_type: work_file - primary_tank_type: Houdini Scene - secondary_outputs: [] - template_work: houdini_shot_work - tk-multi-screeningroom: '@launch_screeningroom' - tk-multi-setframerange: - location: {name: tk-multi-setframerange, type: app_store, version: v0.3.0} - sg_in_frame_field: sg_cut_in - sg_out_frame_field: sg_cut_out - tk-multi-snapshot: - hook_copy_file: default - hook_scene_operation: default - hook_thumbnail: default - location: {name: tk-multi-snapshot, type: app_store, version: v0.6.1} - template_snapshot: houdini_shot_snapshot - template_work: houdini_shot_work - tk-multi-workfiles2: - location: - version: v0.7.39 - type: app_store - name: tk-multi-workfiles2 - allow_task_creation: true - template_publish: houdini_shot_publish - launch_at_startup: false - show_my_tasks: true - saveas_default_name: scene - template_publish_area: shot_publish_area_houdini - saveas_prefer_version_up: false - hook_filter_work_files: '{self}/filter_work_files.py' - create_new_task_hook: '{self}/create_new_task.py' - hook_copy_file: '{self}/copy_file.py' - file_extensions: [] - entities: - - hierarchy: - - entity.Asset.sg_asset_type - - entity - - step - - content - caption: Assets - filters: - - - entity - - type_is - - Asset - entity_type: Task - - hierarchy: - - entity.Shot.sg_sequence - - entity - - step - - content - caption: Shots - filters: - - - entity - - type_is - - Shot - entity_type: Task - template_work: houdini_shot_work - template_work_area: shot_work_area_houdini - custom_actions_hook: '{self}/custom_actions.py' - version_compare_ignore_fields: [] - hook_scene_operation: '{self}/scene_operation_tk-houdini.py' - hook_filter_publishes: '{self}/filter_publishes.py' - my_tasks_extra_display_fields: [] - debug_logging: false - enable_sg_menu: true - enable_sg_shelf: true - location: - version: v1.0.10 - type: app_store - name: tk-houdini - menu_favourites: - - {app_instance: tk-multi-workfiles2, name: File Open...} - - {app_instance: tk-multi-workfiles2, name: File Save...} - - {app_instance: tk-multi-snapshot, name: Snapshot...} - - {app_instance: tk-multi-publish, name: Publish...} - tk-maya: - apps: - tk-maya-breakdown: - hook_multi_update: default - hook_scan_scene: default - location: {name: tk-maya-breakdown, type: app_store, version: v0.3.1} - tk-multi-about: '@about' - tk-multi-loader2: - action_mappings: - Camera: [reference] - Geometry: [reference] - Maya Scene: [reference, import] - Photoshop Image: [texture_node] - Rendered Image: [texture_node] - UDIM Image: [udim_texture_node] - actions_hook: '{self}/tk-maya_actions.py' - download_thumbnails: true - entities: - - caption: Assets - entity_type: Asset - filters: - - [project, is, '{context.project}'] - hierarchy: [sg_asset_type, code] - publish_filters: [] - - caption: Shots - entity_type: Shot - filters: - - [project, is, '{context.project}'] - hierarchy: [sg_sequence, code] - publish_filters: [] - - caption: My Tasks - entity_type: Task - filters: - - [task_assignees, is, '{context.user}'] - - [project, is, '{context.project}'] - hierarchy: [entity, content] - publish_filters: [] - filter_publishes_hook: '{self}/filter_publishes.py' - location: {name: tk-multi-loader2, type: app_store, version: v1.11.2} - menu_name: Load - publish_filters: [] - title_name: Loader - tk-multi-publish: - allow_taskless_publishes: false - display_name: Publish - expand_single_items: false - hook_copy_file: default - hook_post_publish: default - hook_primary_pre_publish: default - hook_primary_publish: default - hook_scan_scene: axis_maya_scan_scene - hook_secondary_pre_publish: axis_maya_secondary_pre_publish - hook_secondary_publish: axis_maya_secondary_publish - hook_thumbnail: default - location: - version: v0.9.4 - type: app_store - name: tk-multi-publish - primary_description: Publish and version up the current Maya scene - primary_display_name: Maya Publish - primary_icon: icons/publish_maya_main.png - primary_publish_template: maya_shot_publish - primary_scene_item_type: work_file - primary_tank_type: Maya Scene - secondary_outputs: - - {description: Export camera as .abc, display_group: Cameras, display_name: Publish - Camera, icon: icons/camera_icon_40px.png, name: camera_export, publish_template: maya_shot_camera_publish, - required: false, scene_item_type: camera, selected: true, tank_type: Alembic - Cache} - - {description: Export geometry as .abc, display_group: Geometry, display_name: Publish - Geometry, icon: icons/polygon_icon_40px.png, name: geo_export, publish_template: maya_shot_geo_publish, - required: false, scene_item_type: mesh_group, selected: true, tank_type: Alembic - Cache} - - {description: Publish renders to Shotgun, display_group: Renders, display_name: Publish - Renders, icon: icons/frame_icon_40px.png, name: render_publish, publish_template: maya_shot_render_publish, - required: false, scene_item_type: rendered_image, selected: true, tank_type: Rendered - Image Cache} - template_work: maya_shot_work - tk-multi-screeningroom: '@launch_screeningroom' - tk-multi-setframerange: - location: {name: tk-multi-setframerange, type: app_store, version: v0.3.0} - sg_in_frame_field: sg_cut_in - sg_out_frame_field: sg_cut_out - tk-multi-shotgunpanel: - action_mappings: - PublishedFile: - - actions: [publish_clipboard] - filters: {} - - actions: [reference, import] - filters: {published_file_type: Maya Scene} - - actions: [texture_node] - filters: {published_file_type: Rendered Image} - - actions: [texture_node] - filters: {published_file_type: Photoshop Image} - - actions: [udim_texture_node] - filters: {published_file_type: UDIM Image} - - actions: [reference] - filters: {published_file_type: Geometry} - - actions: [reference] - filters: {published_file_type: Camera} - Task: - - actions: [assign_task, task_to_ip] - filters: {} - Version: - - actions: [play_in_rv] - filters: {} - actions_hook: '{self}/tk-maya_actions.py:{config}/panel/maya_actions.py' - location: - version: v1.2.7 - type: app_store - name: tk-multi-shotgunpanel - shotgun_fields_hook: '{self}/shotgun_fields.py' - tk-multi-snapshot: - hook_copy_file: default - hook_scene_operation: default - hook_thumbnail: default - location: {name: tk-multi-snapshot, type: app_store, version: v0.6.1} - template_snapshot: maya_shot_snapshot - template_work: maya_shot_work - tk-multi-workfiles2: - allow_task_creation: true - create_new_task_hook: '{self}/create_new_task.py' - custom_actions_hook: '{self}/custom_actions.py' - entities: - - caption: Assets - entity_type: Task - filters: - - [entity, type_is, Asset] - hierarchy: [entity.Asset.sg_asset_type, entity, step, content] - - caption: Shots - entity_type: Task - filters: - - [entity, type_is, Shot] - hierarchy: [entity.Shot.sg_sequence, entity, step, content] - file_extensions: [] - hook_copy_file: '{self}/copy_file.py' - hook_filter_publishes: '{self}/filter_publishes.py' - hook_filter_work_files: '{self}/filter_work_files.py' - hook_scene_operation: '{self}/scene_operation_tk-maya.py' - launch_at_startup: false - location: - version: v0.7.39 - type: app_store - name: tk-multi-workfiles2 - my_tasks_extra_display_fields: [] - saveas_default_name: scene - saveas_prefer_version_up: false - show_my_tasks: true - template_publish: maya_shot_publish - template_publish_area: shot_publish_area_maya - template_work: maya_shot_work - template_work_area: shot_work_area_maya - version_compare_ignore_fields: [] - compatibility_dialog_min_version: 2015 - debug_logging: false - location: - version: v0.6.0 - type: app_store - name: tk-maya - menu_favourites: - - {app_instance: tk-multi-workfiles2, name: File Open...} - - {app_instance: tk-multi-workfiles2, name: File Save...} - - {app_instance: tk-multi-snapshot, name: Snapshot...} - - {app_instance: tk-multi-publish, name: Publish...} - template_project: shot_work_area_maya - use_sgtk_as_menu_name: false - tk-nuke: - apps: - tk-multi-about: '@about' - tk-multi-loader: - button_name: Load Selected Render - dependency_mode: false - hook_add_file_to_scene: default - location: {name: tk-multi-loader, type: app_store, version: v0.2.25} - menu_name: Load Render... - publish_filters: [] - sg_entity_types: - Shot: [] - single_select: true - tank_types: [Rendered Image] - title_name: Add Rendered Images & Sequences to your Scene - tk-multi-publish: - allow_taskless_publishes: false - display_name: Publish - expand_single_items: false - hook_copy_file: default - hook_post_publish: default - hook_primary_pre_publish: default - hook_primary_publish: default - hook_scan_scene: default - hook_secondary_pre_publish: default - hook_secondary_publish: default - hook_thumbnail: default - location: - version: v0.9.4 - type: app_store - name: tk-multi-publish - primary_description: Publishes and versions up the current Nuke script. - primary_display_name: Nuke Publish - primary_icon: icons/publish_nuke_main.png - primary_publish_template: nuke_shot_publish - primary_scene_item_type: work_file - primary_tank_type: Nuke Script - secondary_outputs: - - {description: Copies renders from work area to publish area., display_group: Shotgun - Write Nodes, display_name: Publish Renders, icon: icons/publish_nuke_writenode.png, - name: render, publish_template: !!null '', required: false, scene_item_type: write_node, - selected: true, tank_type: Rendered Image} - - {description: Create quicktime and send to Screening Room, display_group: Shotgun - Write Nodes, display_name: Send to Screening Room, icon: icons/publish_nuke_review.png, - name: quicktime, publish_template: !!null '', required: false, scene_item_type: write_node, - selected: true, tank_type: Quicktime} - template_work: nuke_shot_work - tk-multi-reviewsubmission: - codec_settings_hook: '{self}/codec_settings.py' - location: - version: v0.3.2 - type: app_store - name: tk-multi-reviewsubmission - movie_height: 540 - movie_path_template: nuke_shot_render_movie - movie_width: 1024 - new_version_status: rev - slate_logo: icons/review_submit_logo.png - store_on_disk: true - upload_to_shotgun: true - version_number_padding: 3 - tk-multi-screeningroom: '@launch_screeningroom' - tk-multi-setframerange: - location: {name: tk-multi-setframerange, type: app_store, version: v0.3.0} - sg_in_frame_field: sg_cut_in - sg_out_frame_field: sg_cut_out - tk-multi-snapshot: - hook_copy_file: default - hook_scene_operation: default - hook_thumbnail: default - location: {name: tk-multi-snapshot, type: app_store, version: v0.6.1} - template_snapshot: nuke_shot_snapshot - template_work: nuke_shot_work - tk-multi-workfiles: - allow_task_creation: true - file_extensions: [] - hook_copy_file: default - hook_filter_publishes: default - hook_filter_work_files: default - hook_scene_operation: default - launch_at_startup: false - launch_change_work_area_at_startup: false - location: - version: v0.7.4 - type: app_store - name: tk-multi-workfiles - saveas_default_name: scene - saveas_prefer_version_up: false - sg_entity_type_extra_display_fields: {} - sg_entity_type_filters: {} - sg_entity_types: [Shot, Asset] - sg_task_filters: [] - task_extra_display_fields: [] - template_publish: nuke_shot_publish - template_publish_area: shot_publish_area_nuke - template_work: nuke_shot_work - template_work_area: shot_work_area_nuke - version_compare_ignore_fields: [] - tk-nuke-breakdown: - hook_multi_update: default - hook_scan_scene: default - location: {name: tk-nuke-breakdown, type: app_store, version: v0.3.0} - tk-nuke-quickdailies: - codec_settings_hook: '{self}/codec_settings.py' - current_scene_template: nuke_shot_work - height: 768 - location: - version: v0.3.3 - type: app_store - name: tk-nuke-quickdailies - movie_template: shot_quicktime_quick - post_hooks: [snapshot_history_post_quickdaily] - sg_version_name_template: nuke_quick_shot_version_name - upload_movie: false - width: 1024 - tk-nuke-writenode: - location: - version: v1.1.6 - type: app_store - name: tk-nuke-writenode - template_script_work: nuke_shot_work - write_nodes: - - file_type: exr - name: Stereo Exr, 32 bit - promote_write_knobs: [] - proxy_publish_template: - proxy_render_template: - publish_template: nuke_shot_render_pub_stereo - render_template: nuke_shot_render_stereo - settings: {datatype: 32 bit float} - tank_type: Rendered Image - tile_color: [] - - file_type: exr - name: Stereo Exr, 16 bit - promote_write_knobs: [] - proxy_publish_template: - proxy_render_template: - publish_template: nuke_shot_render_pub_stereo - render_template: nuke_shot_render_stereo - settings: {datatype: 16 bit half} - tank_type: Rendered Image - tile_color: [] - - file_type: dpx - name: Mono Dpx - promote_write_knobs: [] - proxy_publish_template: - proxy_render_template: - publish_template: nuke_shot_render_pub_mono_dpx - render_template: nuke_shot_render_mono_dpx - settings: {} - tank_type: Rendered Image - tile_color: [] - bin_context_menu: [] - compatibility_dialog_min_version: 8 - debug_logging: false - favourite_directories: [] - location: - version: v0.6.9 - type: app_store - name: tk-nuke - menu_favourites: - - {app_instance: tk-multi-workfiles, name: Shotgun File Manager...} - - {app_instance: tk-multi-snapshot, name: Snapshot...} - - {app_instance: tk-multi-workfiles, name: Shotgun Save As...} - - {app_instance: tk-multi-publish, name: Publish...} - project_favourite_name: Shotgun Current Project - spreadsheet_context_menu: [] - timeline_context_menu: [] - use_sgtk_as_menu_name: false - tk-photoshop: - apps: - tk-multi-about: '@about' - tk-multi-publish: - allow_taskless_publishes: false - display_name: Publish - expand_single_items: false - hook_copy_file: default - hook_post_publish: default - hook_primary_pre_publish: default - hook_primary_publish: default - hook_scan_scene: default - hook_secondary_pre_publish: default - hook_secondary_publish: default - hook_thumbnail: default - location: - version: v0.9.4 - type: app_store - name: tk-multi-publish - primary_description: Publish and version up the current Photoshop scene - primary_display_name: Photoshop Publish - primary_icon: icons/publish_photoshop_main.png - primary_publish_template: photoshop_shot_publish - primary_scene_item_type: work_file - primary_tank_type: Photoshop Image - secondary_outputs: [] - template_work: photoshop_shot_work - tk-multi-screeningroom: '@launch_screeningroom' - tk-multi-snapshot: - hook_copy_file: default - hook_scene_operation: default - hook_thumbnail: default - location: {name: tk-multi-snapshot, type: app_store, version: v0.6.1} - template_snapshot: photoshop_shot_snapshot - template_work: photoshop_shot_work - tk-multi-workfiles: - allow_task_creation: true - file_extensions: [] - hook_copy_file: default - hook_filter_publishes: default - hook_filter_work_files: default - hook_scene_operation: default - launch_at_startup: false - launch_change_work_area_at_startup: false - location: - version: v0.7.4 - type: app_store - name: tk-multi-workfiles - saveas_default_name: scene - saveas_prefer_version_up: false - sg_entity_type_extra_display_fields: {} - sg_entity_type_filters: {} - sg_entity_types: [Shot, Asset] - sg_task_filters: [] - task_extra_display_fields: [] - template_publish: photoshop_shot_publish - template_publish_area: shot_publish_area_photoshop - template_work: photoshop_shot_work - template_work_area: shot_work_area_photoshop - version_compare_ignore_fields: [] - debug_logging: false - location: {name: tk-photoshop, type: app_store, version: v0.3.3} - tk-shell: - apps: {tk-multi-about: '@about', tk-multi-screeningroom: '@launch_screeningroom', - tk-shotgun-launchhoudini: '@launch_houdini', tk-shotgun-launchmaya: '@launch_maya', - tk-shotgun-launchnuke: '@launch_nuke', tk-shotgun-launchphotoshop: '@launch_photoshop'} - debug_logging: false - location: - version: v0.5.0 - type: app_store - name: tk-shell -frameworks: - tk-framework-qtwidgets_v2.x.x: - location: {name: tk-framework-qtwidgets, type: app_store, version: v2.0.6} - tk-framework-shotgunutils_v1.x.x: - location: {name: tk-framework-shotgunutils, type: app_store, version: v1.0.10} - tk-framework-shotgunutils_v3.x.x: - location: {name: tk-framework-shotgunutils, type: app_store, version: v3.0.4} - tk-framework-widget_v0.1.16: - location: {name: tk-framework-widget, type: app_store, version: v0.1.16} - tk-framework-widget_v0.1.18: - location: {name: tk-framework-widget, type: app_store, version: v0.1.18} - tk-framework-widget_v0.1.19: - location: {name: tk-framework-widget, type: app_store, version: v0.1.19} - tk-framework-widget_v0.1.22: - location: {name: tk-framework-widget, type: app_store, version: v0.1.22} -includes: [./includes/app_launchers.yml, ./includes/common_apps.yml] +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. +# + +description: Apps and Engines related to Shot based work. + +################################################################################################# +# include common files + +includes: +# launchers for launching DCCs such as Maya, Nuke etc. +- ./includes/app_launchers.yml +# common app configurations that are reused across environments +- ./includes/common_apps.yml + +################################################################################################# +# define all the items that should appear in this environment + +engines: + # + # ------------------------------------------------- + # 3dsmax + # ------------------------------------------------- + tk-3dsmax: + apps: + tk-multi-about: '@about' + tk-multi-loader2: + action_mappings: + 3dsmax Scene: [import] + actions_hook: '{self}/tk-3dsmax_actions.py' + download_thumbnails: true + entities: + - caption: Assets + entity_type: Asset + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_asset_type, code] + - caption: Shots + entity_type: Shot + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_sequence, code] + - caption: My Tasks + entity_type: Task + filters: + - [task_assignees, is, '{context.user}'] + - [project, is, '{context.project}'] + hierarchy: [entity, content] + filter_publishes_hook: '{self}/filter_publishes.py' + location: + version: v1.11.2 + type: app_store + name: tk-multi-loader2 + menu_name: Load + publish_filters: [] + title_name: Loader + tk-multi-publish: + allow_taskless_publishes: true + display_name: Publish + expand_single_items: false + hook_copy_file: default + hook_post_publish: default + hook_primary_pre_publish: default + hook_primary_publish: default + hook_scan_scene: default + hook_secondary_pre_publish: default + hook_secondary_publish: default + hook_thumbnail: default + location: + version: v0.9.4 + type: app_store + name: tk-multi-publish + primary_description: Publish and version up the current 3ds Max scene + primary_display_name: 3ds Max Publish + primary_icon: icons/publish_3dsmax_main.png + primary_publish_template: max_shot_publish + primary_scene_item_type: work_file + primary_tank_type: 3dsmax Scene + secondary_outputs: [] + template_work: max_shot_work + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-setframerange: + location: + version: v0.3.0 + type: app_store + name: tk-multi-setframerange + sg_in_frame_field: sg_cut_in + sg_out_frame_field: sg_cut_out + tk-multi-snapshot: + hook_copy_file: default + hook_scene_operation: default + hook_thumbnail: default + location: + version: v0.6.1 + type: app_store + name: tk-multi-snapshot + template_snapshot: max_shot_snapshot + template_work: max_shot_work + tk-multi-workfiles2: + allow_task_creation: true + create_new_task_hook: default + custom_actions_hook: default + entities: + - caption: Assets + entity_type: Task + filters: + - [entity, type_is, Asset] + hierarchy: [entity.Asset.sg_asset_type, entity, step, content] + - caption: Shots + entity_type: Task + filters: + - [entity, type_is, Shot] + hierarchy: [entity.Shot.sg_sequence, entity, step, content] + file_extensions: [] + hook_copy_file: default + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + location: + version: v0.7.39 + type: app_store + name: tk-multi-workfiles2 + my_tasks_extra_display_fields: [] + saveas_default_name: scene + saveas_prefer_version_up: false + show_my_tasks: true + template_publish: max_shot_publish + template_publish_area: shot_publish_area_max + template_work: max_shot_work + template_work_area: shot_work_area_max + version_compare_ignore_fields: [] + debug_logging: false + location: + version: v0.3.9 + type: app_store + name: tk-3dsmax + # + # ------------------------------------------------- + # 3dsmax plus + # ------------------------------------------------- + tk-3dsmaxplus: + apps: + tk-multi-about: '@about' + tk-multi-loader2: + action_mappings: + 3dsmax Scene: [import, reference] + Alembic Cache: [import] + actions_hook: '{self}/tk-3dsmaxplus_actions.py' + download_thumbnails: true + entities: + - caption: Assets + entity_type: Asset + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_asset_type, code] + publish_filters: [] + - caption: Shots + entity_type: Shot + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_sequence, code] + publish_filters: [] + - caption: My Tasks + entity_type: Task + filters: + - [task_assignees, is, '{context.user}'] + - [project, is, '{context.project}'] + hierarchy: [entity, content] + publish_filters: [] + filter_publishes_hook: '{self}/filter_publishes.py' + location: + version: v1.11.2 + type: app_store + name: tk-multi-loader2 + menu_name: Load + publish_filters: [] + title_name: Loader + tk-multi-publish: + allow_taskless_publishes: true + display_name: Publish + expand_single_items: false + hook_copy_file: default + hook_post_publish: default + hook_primary_pre_publish: default + hook_primary_publish: default + hook_scan_scene: default + hook_secondary_pre_publish: default + hook_secondary_publish: default + hook_thumbnail: default + location: + version: v0.9.4 + type: app_store + name: tk-multi-publish + primary_description: Publish and version up the current 3ds Max scene + primary_display_name: 3ds Max Publish + primary_icon: icons/publish_3dsmax_main.png + primary_publish_template: max_shot_publish + primary_scene_item_type: work_file + primary_tank_type: 3dsmax Scene + secondary_outputs: [] + template_work: max_shot_work + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-setframerange: + location: + version: v0.3.0 + type: app_store + name: tk-multi-setframerange + sg_in_frame_field: sg_cut_in + sg_out_frame_field: sg_cut_out + tk-multi-snapshot: + hook_copy_file: default + hook_scene_operation: default + hook_thumbnail: default + location: + version: v0.6.1 + type: app_store + name: tk-multi-snapshot + template_snapshot: max_shot_snapshot + template_work: max_shot_work + tk-multi-workfiles2: + allow_task_creation: true + create_new_task_hook: default + custom_actions_hook: default + entities: + - caption: Assets + entity_type: Task + filters: + - [entity, type_is, Asset] + hierarchy: [entity.Asset.sg_asset_type, entity, step, content] + - caption: Shots + entity_type: Task + filters: + - [entity, type_is, Shot] + hierarchy: [entity.Shot.sg_sequence, entity, step, content] + file_extensions: [] + hook_copy_file: default + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + location: + version: v0.7.39 + type: app_store + name: tk-multi-workfiles2 + my_tasks_extra_display_fields: [] + saveas_default_name: scene + saveas_prefer_version_up: false + show_my_tasks: true + template_publish: max_shot_publish + template_publish_area: shot_publish_area_max + template_work: max_shot_work + template_work_area: shot_work_area_max + version_compare_ignore_fields: [] + tk-multi-shotgunpanel: + location: + version: v1.2.7 + type: app_store + name: tk-multi-shotgunpanel + shotgun_fields_hook: '{self}/shotgun_fields.py' + actions_hook: '{self}/general_actions.py' + action_mappings: + PublishedFile: + - actions: + - publish_clipboard + filters: {} + Task: + - actions: + - assign_task + - task_to_ip + filters: {} + Version: + - actions: + - quicktime_clipboard + - sequence_clipboard + filters: {} + compatibility_dialog_min_version: 2017 + debug_logging: false + location: + version: v0.1.16 + type: app_store + name: tk-3dsmaxplus + menu_favourites: [] + # + # ------------------------------------------------- + # houdini + # ------------------------------------------------- + tk-houdini: + apps: + tk-multi-about: '@about' + tk-multi-publish: + allow_taskless_publishes: true + display_name: Publish + expand_single_items: false + hook_copy_file: default + hook_post_publish: default + hook_primary_pre_publish: default + hook_primary_publish: default + hook_scan_scene: default + hook_secondary_pre_publish: default + hook_secondary_publish: default + hook_thumbnail: default + location: + version: v0.9.4 + type: app_store + name: tk-multi-publish + primary_description: Publish and version up the current scene + primary_display_name: Scene File Publish + primary_icon: icons/publish_houdini_main.png + primary_publish_template: houdini_shot_publish + primary_scene_item_type: work_file + primary_tank_type: Houdini Scene + secondary_outputs: + - description: Publish Alembic Cache data for the model + display_group: Caches + display_name: Alembic Cache + group_name: Alembic Caches + icon: icons/alembic_cache_publish.png + name: alembic_cache + publish_group: true + publish_template: houdini_shot_work_alembic_cache + required: false + scene_item_type: alembic_cache + selected: false + tank_type: Alembic Cache + - description: Publish a rendered image sequence + display_group: Renders + display_name: Rendered + group_name: default + icon: icons/publish_houdini_renders.png + name: rendered_image + publish_group: false + publish_template: houdini_shot_render + required: false + scene_item_type: rendered_image + selected: false + tank_type: Rendered Image + template_work: houdini_shot_work + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-setframerange: + location: + version: v0.3.0 + type: app_store + name: tk-multi-setframerange + sg_in_frame_field: sg_cut_in + sg_out_frame_field: sg_cut_out + tk-multi-snapshot: + hook_copy_file: default + hook_scene_operation: default + hook_thumbnail: default + location: + version: v0.6.1 + type: app_store + name: tk-multi-snapshot + template_snapshot: houdini_shot_snapshot + template_work: houdini_shot_work + tk-multi-workfiles2: + allow_task_creation: true + create_new_task_hook: default + custom_actions_hook: default + entities: + - caption: Assets + entity_type: Task + filters: + - [entity, type_is, Asset] + hierarchy: [entity.Asset.sg_asset_type, entity, step, content] + - caption: Shots + entity_type: Task + filters: + - [entity, type_is, Shot] + hierarchy: [entity.Shot.sg_sequence, entity, step, content] + file_extensions: [] + hook_copy_file: default + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + location: + version: v0.7.39 + type: app_store + name: tk-multi-workfiles2 + my_tasks_extra_display_fields: [] + saveas_default_name: scene + saveas_prefer_version_up: false + show_my_tasks: true + template_publish: houdini_shot_publish + template_publish_area: shot_publish_area_houdini + template_work: houdini_shot_work + template_work_area: shot_work_area_houdini + version_compare_ignore_fields: [] + tk-multi-shotgunpanel: + location: + version: v1.2.7 + type: app_store + name: tk-multi-shotgunpanel + action_mappings: + PublishedFile: + - actions: + - publish_clipboard + filters: {} + Task: + - actions: + - assign_task + - task_to_ip + filters: {} + Version: + - actions: + - quicktime_clipboard + - sequence_clipboard + filters: {} + actions_hook: '{self}/general_actions.py' + shotgun_fields_hook: '{self}/shotgun_fields.py' + tk-houdini-alembicnode: + location: + version: v0.2.5 + type: app_store + name: tk-houdini-alembicnode + work_file_template: houdini_shot_work + default_node_name: sg_alembic_out + output_profiles: + - name: Shot Work Cache + settings: {} + color: [] + output_cache_template: houdini_shot_work_alembic_cache + tk-houdini-mantranode: + location: + version: v0.2.7 + type: app_store + name: tk-houdini-mantranode + work_file_template: houdini_shot_work + default_node_name: sg_mantra_out + output_profiles: + - name: Default Render + settings: {} + color: [] + output_render_template: houdini_shot_render + output_ifd_template: houdini_shot_ifd + output_dcm_template: houdini_shot_dcm + output_extra_plane_template: houdini_shot_extra_plane + tk-multi-loader2: + action_mappings: + Alembic Cache: [import] + actions_hook: '{self}/tk-houdini_actions.py' + download_thumbnails: true + entities: + - caption: Assets + entity_type: Asset + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_asset_type, code] + - caption: Shots + entity_type: Shot + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_sequence, code] + - caption: My Tasks + entity_type: Task + filters: + - [task_assignees, is, '{context.user}'] + - [project, is, '{context.project}'] + hierarchy: [entity, content] + filter_publishes_hook: '{self}/filter_publishes.py' + location: + version: v1.11.2 + type: app_store + name: tk-multi-loader2 + menu_name: Load + publish_filters: [] + title_name: Loader + tk-multi-breakdown: + hook_scene_operations: '{self}/tk-houdini_scene_operations.py' + location: + version: v1.4.4 + type: app_store + name: tk-multi-breakdown + debug_logging: false + enable_sg_shelf: true + enable_sg_menu: true + location: + version: v1.0.10 + type: app_store + name: tk-houdini + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + - {app_instance: tk-multi-snapshot, name: Snapshot...} + - {app_instance: tk-multi-workfiles2, name: File Save...} + - {app_instance: tk-multi-publish, name: Publish...} + # + # ------------------------------------------------- + # maya + # ------------------------------------------------- + tk-maya: + apps: + tk-multi-about: '@about' + tk-multi-breakdown: + hook_scene_operations: '{self}/tk-maya_scene_operations.py' + location: + version: v1.4.4 + type: app_store + name: tk-multi-breakdown + tk-multi-loader2: + action_mappings: + Maya Scene: [reference, import] + Photoshop Image: [texture_node] + Rendered Image: [texture_node] + actions_hook: '{self}/tk-maya_actions.py' + download_thumbnails: true + entities: + - caption: Assets + entity_type: Asset + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_asset_type, code] + - caption: Shots + entity_type: Shot + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_sequence, code] + - caption: My Tasks + entity_type: Task + filters: + - [task_assignees, is, '{context.user}'] + - [project, is, '{context.project}'] + hierarchy: [entity, content] + filter_publishes_hook: '{self}/filter_publishes.py' + location: + version: v1.11.2 + type: app_store + name: tk-multi-loader2 + menu_name: Load + publish_filters: [] + title_name: Loader + tk-multi-publish: + allow_taskless_publishes: true + display_name: Publish + expand_single_items: false + hook_copy_file: default + hook_post_publish: default + hook_primary_pre_publish: default + hook_primary_publish: default + hook_scan_scene: default + hook_secondary_pre_publish: default + hook_secondary_publish: default + hook_thumbnail: default + location: + version: v0.9.4 + type: app_store + name: tk-multi-publish + primary_description: Publish and version up the current Maya scene + primary_display_name: Maya Publish + primary_icon: icons/publish_maya_main.png + primary_publish_template: maya_shot_publish + primary_scene_item_type: work_file + primary_tank_type: Maya Scene + secondary_outputs: [] + template_work: maya_shot_work + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-setframerange: + location: + version: v0.3.0 + type: app_store + name: tk-multi-setframerange + sg_in_frame_field: sg_cut_in + sg_out_frame_field: sg_cut_out + tk-multi-shotgunpanel: + action_mappings: + PublishedFile: + - actions: [reference, import] + filters: {published_file_type: Maya Scene} + - actions: [texture_node] + filters: {published_file_type: Rendered Image} + - actions: [texture_node] + filters: {published_file_type: Photoshop Image} + - actions: [udim_texture_node] + filters: {published_file_type: UDIM Image} + Task: + - actions: [assign_task, task_to_ip] + filters: {} + actions_hook: '{self}/general_actions.py:{self}/tk-maya_actions.py' + location: + version: v1.2.7 + type: app_store + name: tk-multi-shotgunpanel + shotgun_fields_hook: '{self}/shotgun_fields.py' + tk-multi-snapshot: + hook_copy_file: default + hook_scene_operation: default + hook_thumbnail: default + location: + version: v0.6.1 + type: app_store + name: tk-multi-snapshot + template_snapshot: maya_shot_snapshot + template_work: maya_shot_work + tk-multi-workfiles2: + allow_task_creation: true + create_new_task_hook: default + custom_actions_hook: default + entities: + - caption: Assets + entity_type: Task + filters: + - [entity, type_is, Asset] + hierarchy: [entity.Asset.sg_asset_type, entity, step, content] + - caption: Shots + entity_type: Task + filters: + - [entity, type_is, Shot] + hierarchy: [entity.Shot.sg_sequence, entity, step, content] + file_extensions: [] + hook_copy_file: default + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + location: + version: v0.7.39 + type: app_store + name: tk-multi-workfiles2 + my_tasks_extra_display_fields: [] + saveas_default_name: scene + saveas_prefer_version_up: false + show_my_tasks: true + template_publish: maya_shot_publish + template_publish_area: shot_publish_area_maya + template_work: maya_shot_work + template_work_area: shot_work_area_maya + version_compare_ignore_fields: [] + compatibility_dialog_min_version: 2015 + debug_logging: false + location: + version: v0.6.0 + type: app_store + name: tk-maya + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + - {app_instance: tk-multi-snapshot, name: Snapshot...} + - {app_instance: tk-multi-workfiles2, name: File Save...} + - {app_instance: tk-multi-publish, name: Publish...} + template_project: shot_work_area_maya + use_sgtk_as_menu_name: false + + # + # ------------------------------------------------- + # motionbuilder + # ------------------------------------------------- + tk-motionbuilder: + apps: + tk-multi-about: '@about' + tk-multi-loader2: + action_mappings: + Motion Builder FBX: [import] + actions_hook: '{self}/tk-motionbuilder_actions.py' + download_thumbnails: true + entities: + - caption: Assets + entity_type: Asset + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_asset_type, code] + - caption: Shots + entity_type: Shot + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_sequence, code] + - caption: My Tasks + entity_type: Task + filters: + - [task_assignees, is, '{context.user}'] + - [project, is, '{context.project}'] + hierarchy: [entity, content] + filter_publishes_hook: '{self}/filter_publishes.py' + location: + version: v1.11.2 + type: app_store + name: tk-multi-loader2 + menu_name: Load + publish_filters: [] + title_name: Loader + tk-multi-publish: + allow_taskless_publishes: true + display_name: Publish + expand_single_items: false + hook_copy_file: default + hook_post_publish: default + hook_primary_pre_publish: default + hook_primary_publish: default + hook_scan_scene: default + hook_secondary_pre_publish: default + hook_secondary_publish: default + hook_thumbnail: default + location: + version: v0.9.4 + type: app_store + name: tk-multi-publish + primary_description: Publish and version up the current work file + primary_display_name: Current Work File + primary_icon: icons/publish_motionbuilder_main.png + primary_publish_template: mobu_shot_publish + primary_scene_item_type: work_file + primary_tank_type: Motion Builder FBX + secondary_outputs: [] + template_work: mobu_shot_work + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-setframerange: + location: + version: v0.3.0 + type: app_store + name: tk-multi-setframerange + sg_in_frame_field: sg_cut_in + sg_out_frame_field: sg_cut_out + tk-multi-snapshot: + hook_copy_file: default + hook_scene_operation: default + hook_thumbnail: default + location: + version: v0.6.1 + type: app_store + name: tk-multi-snapshot + template_snapshot: mobu_shot_snapshot + template_work: mobu_shot_work + tk-multi-workfiles2: + allow_task_creation: true + create_new_task_hook: default + custom_actions_hook: default + entities: + - caption: Assets + entity_type: Task + filters: + - [entity, type_is, Asset] + hierarchy: [entity.Asset.sg_asset_type, entity, step, content] + - caption: Shots + entity_type: Task + filters: + - [entity, type_is, Shot] + hierarchy: [entity.Shot.sg_sequence, entity, step, content] + file_extensions: [] + hook_copy_file: default + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + location: + version: v0.7.39 + type: app_store + name: tk-multi-workfiles2 + my_tasks_extra_display_fields: [] + saveas_default_name: scene + saveas_prefer_version_up: false + show_my_tasks: true + template_publish: mobu_shot_publish + template_publish_area: shot_publish_area_mobu + template_work: mobu_shot_work + template_work_area: shot_work_area_mobu + version_compare_ignore_fields: [] + tk-multi-shotgunpanel: + location: + version: v1.2.7 + type: app_store + name: tk-multi-shotgunpanel + shotgun_fields_hook: '{self}/shotgun_fields.py' + actions_hook: '{self}/general_actions.py' + action_mappings: + PublishedFile: + - actions: + - publish_clipboard + filters: {} + Task: + - actions: + - assign_task + - task_to_ip + filters: {} + Version: + - actions: + - quicktime_clipboard + - sequence_clipboard + filters: {} + debug_logging: false + location: + version: v0.3.1 + type: app_store + name: tk-motionbuilder + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + - {app_instance: tk-multi-snapshot, name: Snapshot...} + - {app_instance: tk-multi-workfiles2, name: File Save...} + - {app_instance: tk-multi-publish, name: Publish...} + use_sgtk_as_menu_name: false + + # + # ------------------------------------------------- + # Nuke + # ------------------------------------------------- + tk-nuke: + apps: + tk-multi-about: '@about' + tk-multi-breakdown: + hook_scene_operations: '{self}/tk-nuke_scene_operations.py' + location: + version: v1.4.4 + type: app_store + name: tk-multi-breakdown + tk-multi-loader2: + action_mappings: + Nuke Script: [script_import] + Rendered Image: [read_node] + Alembic Cache: [read_node] + actions_hook: '{self}/tk-nuke_actions.py' + download_thumbnails: true + entities: + - caption: Assets + entity_type: Asset + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_asset_type, code] + - caption: Shots + entity_type: Shot + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_sequence, code] + - caption: My Tasks + entity_type: Task + filters: + - [task_assignees, is, '{context.user}'] + - [project, is, '{context.project}'] + hierarchy: [entity, content] + filter_publishes_hook: '{self}/filter_publishes.py' + location: + version: v1.11.2 + type: app_store + name: tk-multi-loader2 + menu_name: Load + publish_filters: [] + title_name: Loader + tk-multi-publish: + allow_taskless_publishes: true + display_name: Publish + expand_single_items: false + hook_copy_file: default + hook_post_publish: default + hook_primary_pre_publish: default + hook_primary_publish: default + hook_scan_scene: default + hook_secondary_pre_publish: default + hook_secondary_publish: default + hook_thumbnail: default + location: + version: v0.9.4 + type: app_store + name: tk-multi-publish + primary_description: Publishes and versions up the current Nuke script. + primary_display_name: Nuke Publish + primary_icon: icons/publish_nuke_main.png + primary_publish_template: nuke_shot_publish + primary_scene_item_type: work_file + primary_tank_type: Nuke Script + secondary_outputs: + - description: Copy renders from work area to publish area. + display_group: Shotgun Write Nodes + display_name: Publish Renders + icon: icons/publish_nuke_writenode.png + name: render + publish_template: + required: false + scene_item_type: write_node + selected: true + tank_type: Rendered Image + - description: Create quicktime and send to Screening Room + display_group: Shotgun Write Nodes + display_name: Send to Screening Room + icon: icons/publish_nuke_review.png + name: quicktime + publish_template: + required: false + scene_item_type: write_node + selected: true + tank_type: Quicktime + template_work: nuke_shot_work + tk-multi-reviewsubmission: + location: + version: v0.3.2 + type: app_store + name: tk-multi-reviewsubmission + movie_height: 540 + movie_path_template: nuke_shot_render_movie + movie_width: 1024 + new_version_status: rev + slate_logo: icons/review_submit_logo.png + store_on_disk: true + upload_to_shotgun: true + version_number_padding: 3 + codec_settings_hook: '{self}/codec_settings.py' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-setframerange: + location: + name: tk-multi-setframerange + type: app_store + version: v0.3.0 + sg_in_frame_field: sg_cut_in + sg_out_frame_field: sg_cut_out + tk-multi-shotgunpanel: + action_mappings: + PublishedFile: + - actions: [read_node] + filters: {published_file_type: Rendered Image} + - actions: [script_import] + filters: {published_file_type: Nuke Script} + Task: + - actions: [assign_task, task_to_ip] + filters: {} + actions_hook: '{self}/general_actions.py:{self}/tk-nuke_actions.py' + location: + version: v1.2.7 + type: app_store + name: tk-multi-shotgunpanel + shotgun_fields_hook: '{self}/shotgun_fields.py' + tk-multi-snapshot: + hook_copy_file: default + hook_scene_operation: default + hook_thumbnail: default + location: + version: v0.6.1 + type: app_store + name: tk-multi-snapshot + template_snapshot: nuke_shot_snapshot + template_work: nuke_shot_work + tk-multi-workfiles2: + allow_task_creation: true + create_new_task_hook: default + custom_actions_hook: default + entities: + - caption: Assets + entity_type: Task + filters: + - [entity, type_is, Asset] + hierarchy: [entity.Asset.sg_asset_type, entity, step, content] + - caption: Shots + entity_type: Task + filters: + - [entity, type_is, Shot] + hierarchy: [entity.Shot.sg_sequence, entity, step, content] + file_extensions: [] + hook_copy_file: default + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + location: + version: v0.7.39 + type: app_store + name: tk-multi-workfiles2 + my_tasks_extra_display_fields: [] + saveas_default_name: scene + saveas_prefer_version_up: false + show_my_tasks: true + template_publish: nuke_shot_publish + template_publish_area: shot_publish_area_nuke + template_work: nuke_shot_work + template_work_area: shot_work_area_nuke + version_compare_ignore_fields: [] + tk-nuke-quickdailies: + current_scene_template: nuke_shot_work + height: 768 + location: + version: v0.3.3 + type: app_store + name: tk-nuke-quickdailies + movie_template: shot_quicktime_quick + post_hooks: [snapshot_history_post_quickdaily] + sg_version_name_template: nuke_quick_shot_version_name + width: 1024 + upload_movie: false + codec_settings_hook: '{self}/codec_settings.py' + tk-nuke-writenode: + location: + version: v1.1.6 + type: app_store + name: tk-nuke-writenode + template_script_work: nuke_shot_work + write_nodes: + - file_type: exr + name: Stereo Exr, 32 bit + proxy_publish_template: + proxy_render_template: + publish_template: nuke_shot_render_pub_stereo + render_template: nuke_shot_render_stereo + settings: + datatype: 32 bit float + tank_type: Rendered Image + tile_color: [] + promote_write_knobs: [] + - file_type: exr + name: Stereo Exr, 16 bit + promote_write_knobs: [] + proxy_publish_template: + proxy_render_template: + publish_template: nuke_shot_render_pub_stereo + render_template: nuke_shot_render_stereo + settings: + datatype: 16 bit half + tank_type: Rendered Image + tile_color: [] + - file_type: dpx + name: Mono Dpx + promote_write_knobs: [] + proxy_publish_template: + proxy_render_template: + publish_template: nuke_shot_render_pub_mono_dpx + render_template: nuke_shot_render_mono_dpx + settings: {} + tank_type: Rendered Image + tile_color: [] + compatibility_dialog_min_version: 10 + debug_logging: false + favourite_directories: [] + location: + version: v0.6.9 + type: app_store + name: tk-nuke + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + - {app_instance: tk-multi-snapshot, name: Snapshot...} + - {app_instance: tk-multi-workfiles2, name: File Save...} + - {app_instance: tk-multi-publish, name: Publish...} + bin_context_menu: [] + spreadsheet_context_menu: [] + timeline_context_menu: [] + project_favourite_name: Shotgun Current Project + use_sgtk_as_menu_name: false + + # + # ------------------------------------------------- + # Nuke Studio + # ------------------------------------------------- + tk-nukestudio: + apps: + tk-multi-about: '@about' + tk-multi-publish: + allow_taskless_publishes: true + display_name: Publish Project + expand_single_items: false + hook_copy_file: default + hook_post_publish: default + hook_primary_pre_publish: default + hook_primary_publish: default + hook_scan_scene: default + hook_secondary_pre_publish: default + hook_secondary_publish: default + hook_thumbnail: default + location: + version: v0.9.4 + type: app_store + name: tk-multi-publish + primary_description: Publish and version up the selected Hiero project + primary_display_name: Hiero Publish + primary_icon: icons/publish_hiero_main.png + primary_publish_template: hiero_project_publish + primary_scene_item_type: work_file + primary_tank_type: Hiero Project + secondary_outputs: [] + template_work: hiero_project_work + tk-multi-snapshot: + hook_copy_file: default + hook_scene_operation: default + hook_thumbnail: default + location: + version: v0.6.1 + type: app_store + name: tk-multi-snapshot + template_snapshot: hiero_project_snapshot + template_work: hiero_project_work + tk-multi-workfiles2: + allow_task_creation: true + create_new_task_hook: default + custom_actions_hook: default + entities: + - caption: Projects + entity_type: Project + filters: [] + hierarchy: [name] + file_extensions: [] + hook_copy_file: default + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + location: + version: v0.7.39 + type: app_store + name: tk-multi-workfiles2 + my_tasks_extra_display_fields: [] + saveas_default_name: scene + saveas_prefer_version_up: false + show_my_tasks: false + template_publish: hiero_project_publish + template_publish_area: hiero_project_publish_area + template_work: hiero_project_work + template_work_area: hiero_project_work_area + version_compare_ignore_fields: [] + tk-nuke-quickdailies: + current_scene_template: nuke_shot_work + height: 768 + location: + version: v0.3.3 + type: app_store + name: tk-nuke-quickdailies + movie_template: shot_quicktime_quick + post_hooks: [snapshot_history_post_quickdaily] + sg_version_name_template: nuke_quick_shot_version_name + width: 1024 + upload_movie: false + codec_settings_hook: '{self}/codec_settings.py' + tk-nuke-writenode: + location: + version: v1.1.6 + type: app_store + name: tk-nuke-writenode + template_script_work: nuke_shot_work + write_nodes: + - file_type: exr + name: Stereo Exr, 32 bit + proxy_publish_template: + proxy_render_template: + publish_template: nuke_shot_render_pub_stereo + render_template: nuke_shot_render_stereo + settings: + datatype: 32 bit float + tank_type: Rendered Image + tile_color: [] + promote_write_knobs: [] + - file_type: exr + name: Stereo Exr, 16 bit + promote_write_knobs: [] + proxy_publish_template: + proxy_render_template: + publish_template: nuke_shot_render_pub_stereo + render_template: nuke_shot_render_stereo + settings: + datatype: 16 bit half + tank_type: Rendered Image + tile_color: [] + - file_type: dpx + name: Mono Dpx + promote_write_knobs: [] + proxy_publish_template: + proxy_render_template: + publish_template: nuke_shot_render_pub_mono_dpx + render_template: nuke_shot_render_mono_dpx + settings: {} + tank_type: Rendered Image + tile_color: [] + tk-multi-reviewsubmission: + location: + version: v0.3.2 + type: app_store + name: tk-multi-reviewsubmission + movie_height: 540 + movie_path_template: nuke_shot_render_movie + movie_width: 1024 + new_version_status: rev + slate_logo: icons/review_submit_logo.png + store_on_disk: true + upload_to_shotgun: true + version_number_padding: 3 + codec_settings_hook: '{self}/codec_settings.py' + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-setframerange: + location: + name: tk-multi-setframerange + type: app_store + version: v0.3.0 + sg_in_frame_field: sg_cut_in + sg_out_frame_field: sg_cut_out + tk-multi-breakdown: + hook_scene_operations: '{self}/tk-nuke_scene_operations.py' + location: + version: v1.4.4 + type: app_store + name: tk-multi-breakdown + tk-multi-loader2: + action_mappings: + Nuke Script: [script_import] + Rendered Image: [read_node] + Alembic Cache: [read_node] + actions_hook: '{self}/tk-nuke_actions.py' + download_thumbnails: true + entities: + - caption: Assets + entity_type: Asset + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_asset_type, code] + - caption: Shots + entity_type: Shot + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_sequence, code] + - caption: My Tasks + entity_type: Task + filters: + - [task_assignees, is, '{context.user}'] + - [project, is, '{context.project}'] + hierarchy: [entity, content] + filter_publishes_hook: '{self}/filter_publishes.py' + location: + version: v1.11.2 + type: app_store + name: tk-multi-loader2 + menu_name: Load + publish_filters: [] + title_name: Loader + tk-multi-shotgunpanel: + action_mappings: + PublishedFile: + - actions: [read_node] + filters: {published_file_type: Rendered Image} + - actions: [script_import] + filters: {published_file_type: Nuke Script} + Task: + - actions: [assign_task, task_to_ip] + filters: {} + Version: + - actions: + - quicktime_clipboard + - sequence_clipboard + filters: {} + actions_hook: '{self}/general_actions.py:{self}/tk-nuke_actions.py' + location: + version: v1.2.7 + type: app_store + name: tk-multi-shotgunpanel + shotgun_fields_hook: '{self}/shotgun_fields.py' + bin_context_menu: + - {app_instance: tk-multi-workfiles2, keep_in_menu: false, name: File Save..., + requires_selection: true} + - {app_instance: tk-multi-snapshot, keep_in_menu: false, name: Snapshot..., requires_selection: true} + - {app_instance: tk-multi-snapshot, keep_in_menu: false, name: Snapshot History..., + requires_selection: true} + - {app_instance: tk-multi-publish, keep_in_menu: false, name: Publish Project..., + requires_selection: true} + project_favourite_name: Shotgun Current Project + use_sgtk_as_menu_name: false + favourite_directories: [] + compatibility_dialog_min_version: 10 + debug_logging: false + location: + version: v0.6.9 + type: app_store + name: tk-nuke + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + spreadsheet_context_menu: [] + timeline_context_menu: [] + # + # ------------------------------------------------- + # photoshop + # ------------------------------------------------- + tk-photoshop: + apps: + tk-multi-about: '@about' + tk-multi-loader2: + action_mappings: + Photoshop Image: [add_as_a_layer, open_file] + Rendered Image: [add_as_a_layer, open_file] + actions_hook: '{self}/tk-photoshop_actions.py' + download_thumbnails: true + entities: + - caption: Assets + entity_type: Asset + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_asset_type, code] + - caption: Shots + entity_type: Shot + filters: + - [project, is, '{context.project}'] + hierarchy: [sg_sequence, code] + - caption: My Tasks + entity_type: Task + filters: + - [task_assignees, is, '{context.user}'] + - [project, is, '{context.project}'] + hierarchy: [entity, content] + filter_publishes_hook: '{self}/filter_publishes.py' + location: + version: v1.11.2 + type: app_store + name: tk-multi-loader2 + menu_name: Load + publish_filters: [] + title_name: Loader + tk-multi-publish: + allow_taskless_publishes: true + display_name: Publish + expand_single_items: false + hook_copy_file: default + hook_post_publish: default + hook_primary_pre_publish: default + hook_primary_publish: default + hook_scan_scene: default + hook_secondary_pre_publish: default + hook_secondary_publish: default + hook_thumbnail: default + location: + version: v0.9.4 + type: app_store + name: tk-multi-publish + primary_description: Publish and version up the current Photoshop scene + primary_display_name: Photoshop Publish + primary_icon: icons/publish_photoshop_main.png + primary_publish_template: photoshop_shot_publish + primary_scene_item_type: work_file + primary_tank_type: Photoshop Image + secondary_outputs: [] + template_work: photoshop_shot_work + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-snapshot: + hook_copy_file: default + hook_scene_operation: default + hook_thumbnail: default + location: + version: v0.6.1 + type: app_store + name: tk-multi-snapshot + template_snapshot: photoshop_shot_snapshot + template_work: photoshop_shot_work + tk-multi-workfiles2: + allow_task_creation: true + create_new_task_hook: default + custom_actions_hook: default + entities: + - caption: Assets + entity_type: Task + filters: + - [entity, type_is, Asset] + hierarchy: [entity.Asset.sg_asset_type, entity, step, content] + - caption: Shots + entity_type: Task + filters: + - [entity, type_is, Shot] + hierarchy: [entity.Shot.sg_sequence, entity, step, content] + file_extensions: [] + hook_copy_file: default + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + location: + version: v0.7.39 + type: app_store + name: tk-multi-workfiles2 + my_tasks_extra_display_fields: [] + saveas_default_name: scene + saveas_prefer_version_up: false + show_my_tasks: true + template_publish: photoshop_shot_publish + template_publish_area: shot_publish_area_photoshop + template_work: photoshop_shot_work + template_work_area: shot_work_area_photoshop + version_compare_ignore_fields: [] + tk-multi-shotgunpanel: + location: + version: v1.2.7 + type: app_store + name: tk-multi-shotgunpanel + shotgun_fields_hook: '{self}/shotgun_fields.py' + actions_hook: '{self}/general_actions.py' + action_mappings: + PublishedFile: + - actions: + - publish_clipboard + filters: {} + Task: + - actions: + - assign_task + - task_to_ip + filters: {} + Version: + - actions: + - quicktime_clipboard + - sequence_clipboard + filters: {} + debug_logging: false + location: + version: v0.3.3 + type: app_store + name: tk-photoshop + # + # ------------------------------------------------- + # Shell (tank command) + # ------------------------------------------------- + tk-shell: + apps: + tk-multi-about: '@about' + tk-multi-launch3dsmax: '@launch_3dsmax' + tk-multi-launchhoudini: '@launch_houdini' + tk-multi-launchmaya: '@launch_maya' + tk-multi-launchmotionbuilder: '@launch_motionbuilder' + tk-multi-launchnuke: '@launch_nuke' + tk-multi-launchphotoshop: '@launch_photoshop' + tk-multi-launchsoftimage: '@launch_softimage' + tk-multi-screeningroom: '@launch_screeningroom' + location: + version: v0.5.0 + type: app_store + name: tk-shell + # + # ------------------------------------------------- + # Softimage + # ------------------------------------------------- + tk-softimage: + apps: + tk-multi-about: '@about' + tk-multi-publish: + allow_taskless_publishes: true + display_name: Publish + expand_single_items: false + hook_copy_file: default + hook_post_publish: default + hook_primary_pre_publish: default + hook_primary_publish: default + hook_scan_scene: default + hook_secondary_pre_publish: default + hook_secondary_publish: default + hook_thumbnail: default + location: + version: v0.9.4 + type: app_store + name: tk-multi-publish + primary_description: Publish and version up the current Softimage scene + primary_display_name: Softimage Publish + primary_icon: icons/publish_softimage_main.png + primary_publish_template: softimage_shot_publish + primary_scene_item_type: work_file + primary_tank_type: Softimage Scene + secondary_outputs: [] + template_work: softimage_shot_work + tk-multi-screeningroom: '@launch_screeningroom' + tk-multi-setframerange: + location: + version: v0.3.0 + type: app_store + name: tk-multi-setframerange + sg_in_frame_field: sg_cut_in + sg_out_frame_field: sg_cut_out + tk-multi-snapshot: + hook_copy_file: default + hook_scene_operation: default + hook_thumbnail: default + location: + version: v0.6.1 + type: app_store + name: tk-multi-snapshot + template_snapshot: softimage_shot_snapshot + template_work: softimage_shot_work + tk-multi-workfiles2: + allow_task_creation: true + create_new_task_hook: default + custom_actions_hook: default + entities: + - caption: Assets + entity_type: Task + filters: + - [entity, type_is, Asset] + hierarchy: [entity.Asset.sg_asset_type, entity, step, content] + - caption: Shots + entity_type: Task + filters: + - [entity, type_is, Shot] + hierarchy: [entity.Shot.sg_sequence, entity, step, content] + file_extensions: [] + hook_copy_file: default + hook_filter_publishes: default + hook_filter_work_files: default + hook_scene_operation: default + launch_at_startup: false + location: + version: v0.7.39 + type: app_store + name: tk-multi-workfiles2 + my_tasks_extra_display_fields: [] + saveas_default_name: scene + saveas_prefer_version_up: false + show_my_tasks: true + template_publish: softimage_shot_publish + template_publish_area: shot_publish_area_softimage + template_work: softimage_shot_work + template_work_area: shot_work_area_softimage + version_compare_ignore_fields: [] + tk-multi-shotgunpanel: + location: + version: v1.2.7 + type: app_store + name: tk-multi-shotgunpanel + shotgun_fields_hook: '{self}/shotgun_fields.py' + actions_hook: '{self}/general_actions.py' + action_mappings: + PublishedFile: + - actions: + - publish_clipboard + filters: {} + Task: + - actions: + - assign_task + - task_to_ip + filters: {} + Version: + - actions: + - quicktime_clipboard + - sequence_clipboard + filters: {} + debug_logging: false + location: + version: v0.3.2 + type: app_store + name: tk-softimage + menu_favourites: + - {app_instance: tk-multi-workfiles2, name: File Open...} + - {app_instance: tk-multi-snapshot, name: Snapshot...} + - {app_instance: tk-multi-workfiles2, name: File Save...} + - {app_instance: tk-multi-publish, name: Publish...} + template_project: shot_work_area_softimage +# +############################################################################### +# +# Framework includes. +# +# Frameworks are libraries that are shared between apps and that contain +# common functionality for building UIs and communicating with Shotgun. +# Frameworks are automatically installed when apps are installed and udpated. +# +frameworks: + tk-framework-softimageqt_v1.0.1: + location: + name: tk-framework-softimageqt + type: app_store + version: v1.0.1 diff --git a/env/shotgun_asset.yml b/env/shotgun_asset.yml index d13d0d6..010998f 100644 --- a/env/shotgun_asset.yml +++ b/env/shotgun_asset.yml @@ -1,22 +1,70 @@ -description: This environment controls what items should be shown on the menu in Shotgun - for assets. -engines: - tk-shotgun: - apps: - tk-shotgun-folders: - deny_permissions: [] - deny_platforms: [] - location: {name: tk-shotgun-folders, type: app_store, version: v0.1.5} - tk-shotgun-launchfolder: - deny_permissions: [] - deny_platforms: [] - location: {name: tk-shotgun-launchfolder, type: app_store, version: v0.1.5} - tk-shotgun-launchmaya: '@launch_maya' - tk-shotgun-launchnuke: '@launch_nuke' - tk-shotgun-launchhoudini: '@launch_houdini' - tk-shotgun-launchphotoshop: '@launch_photoshop' - tk-shotgun-launchscreeningroom: '@launch_shotgun_screeningroom' - debug_logging: false - location: {name: tk-shotgun, type: app_store, version: v0.5.1} -frameworks: null -include: ./includes/app_launchers.yml +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. +# + +description: This environment controls what items should be shown on the menu in Shotgun + for assets. + +################################################################################################# +# include common definitions for all the launchers that are used to start maya, nuke etc. + +includes: +- ./includes/app_launchers.yml +- ./includes/paths.yml + +################################################################################################# +# Define all the items that should appear in this environment +# +# Note! This environment is special and is only used by the Shotgun action +# menu integration. It can only contain a Shotgun engine and the file name +# reflects the entity type for which a menu will be generated in Shotgun. +# +engines: + tk-shotgun: + apps: + tk-multi-launch3dsmax: '@launch_3dsmax' + tk-multi-launchhoudini: '@launch_houdini' + tk-multi-launchmari: '@launch_mari' + tk-multi-launchmaya: '@launch_maya' + tk-multi-launchmotionbuilder: '@launch_motionbuilder' + tk-multi-launchnuke: '@launch_nuke' + tk-multi-launchphotoshop: '@launch_photoshop' + tk-multi-launchsoftimage: '@launch_softimage' + tk-multi-screeningroom: '@launch_screeningroom' + tk-shotgun-folders: + deny_permissions: [] + deny_platforms: [] + location: + name: tk-shotgun-folders + type: app_store + version: v0.1.5 + tk-shotgun-launchfolder: + deny_permissions: [] + deny_platforms: [] + location: + name: tk-shotgun-launchfolder + type: app_store + version: v0.1.5 + debug_logging: false + location: + name: tk-shotgun + type: app_store + version: v0.5.1 + +# +############################################################################### +# +# Framework includes. +# +# Frameworks are libraries that are shared between apps and that contain +# common functionality for building UIs and communicating with Shotgun. +# Frameworks are automatically installed when apps are installed and udpated. +# +frameworks: null diff --git a/env/shotgun_project.yml b/env/shotgun_project.yml index 7ad5c92..0160b71 100644 --- a/env/shotgun_project.yml +++ b/env/shotgun_project.yml @@ -1,18 +1,65 @@ -description: This environment controls what items should be shown on the menu in Shotgun - for projects. -engines: - tk-shotgun: - apps: - tk-shotgun-launchfolder: - deny_permissions: [] - deny_platforms: [] - location: {name: tk-shotgun-launchfolder, type: app_store, version: v0.1.5} - tk-shotgun-launchhiero: '@launch_hiero' - tk-shotgun-launchmaya: '@launch_maya' - tk-shotgun-launchnuke: '@launch_nuke' - tk-shotgun-launchhoudini: '@launch_houdini' - tk-shotgun-launchphotoshop: '@launch_photoshop' - debug_logging: false - location: {name: tk-shotgun, type: app_store, version: v0.5.1} -frameworks: null -include: ./includes/app_launchers.yml +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. +# + +description: This environment controls what items should be shown on the menu in Shotgun + for projects. + +################################################################################################# +# include common definitions for all the launchers that are used to start maya, nuke etc. + +includes: +- ./includes/app_launchers.yml +- ./includes/paths.yml + +################################################################################################# +# Define all the items that should appear in this environment +# +# Note! This environment is special and is only used by the Shotgun action +# menu integration. It can only contain a Shotgun engine and the file name +# reflects the entity type for which a menu will be generated in Shotgun. +# + +engines: + tk-shotgun: + apps: + tk-multi-launch3dsmax: '@launch_3dsmax' + tk-multi-launchhiero: '@launch_hiero' + tk-multi-launchhoudini: '@launch_houdini' + tk-multi-launchmari: '@launch_mari' + tk-multi-launchmaya: '@launch_maya' + tk-multi-launchmotionbuilder: '@launch_motionbuilder' + tk-multi-launchnuke: '@launch_nuke' + tk-multi-launchnukestudio: '@launch_nukestudio' + tk-multi-launchphotoshop: '@launch_photoshop' + tk-multi-launchsoftimage: '@launch_softimage' + tk-multi-screeningroom: '@launch_screeningroom' + tk-shotgun-launchfolder: + deny_permissions: [] + deny_platforms: [] + location: + name: tk-shotgun-launchfolder + type: app_store + version: v0.1.5 + debug_logging: false + location: + name: tk-shotgun + type: app_store + version: v0.5.1 +# +############################################################################### +# +# Framework includes. +# +# Frameworks are libraries that are shared between apps and that contain +# common functionality for building UIs and communicating with Shotgun. +# Frameworks are automatically installed when apps are installed and udpated. +# +frameworks: null diff --git a/env/shotgun_publishedfile.yml b/env/shotgun_publishedfile.yml index 92567a9..71df428 100644 --- a/env/shotgun_publishedfile.yml +++ b/env/shotgun_publishedfile.yml @@ -1,23 +1,68 @@ -description: This environment controls what items should be shown on the menu in Shotgun - for publishes. -engines: - tk-shotgun: - apps: - tk-shotgun-launchhiero: '@launch_hiero' - tk-shotgun-launchhoudini: '@launch_houdini' - tk-shotgun-launchmaya: '@launch_maya' - tk-shotgun-launchnuke: '@launch_nuke' - tk-shotgun-launchphotoshop: '@launch_photoshop' - tk-shotgun-launchpublish: - deny_permissions: [] - deny_platforms: [] - hook_launch_publish: default - location: {name: tk-shotgun-launchpublish, type: app_store, version: v0.1.16} - viewer_extensions: [exr, dpx, cin] - viewer_path_linux: '@rv_linux' - viewer_path_mac: '@rv_mac' - viewer_path_windows: '@rv_win' - debug_logging: false - location: {name: tk-shotgun, type: app_store, version: v0.5.1} -frameworks: null -includes: [./includes/app_launchers.yml, ./includes/paths.yml] +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. +# + +description: This environment controls what items should be shown on the menu in Shotgun + for publishes. + +################################################################################################# +# include common definitions for all the launchers that are used to start maya, nuke etc. + +includes: +- ./includes/app_launchers.yml +- ./includes/paths.yml + +################################################################################################# +# Define all the items that should appear in this environment +# +# Note! This environment is special and is only used by the Shotgun action +# menu integration. It can only contain a Shotgun engine and the file name +# reflects the entity type for which a menu will be generated in Shotgun. +# + +engines: + tk-shotgun: + apps: + tk-multi-launch3dsmax: '@launch_3dsmax' + tk-multi-launchhiero: '@launch_hiero' + tk-multi-launchhoudini: '@launch_houdini' + tk-multi-launchmaya: '@launch_maya' + tk-multi-launchmotionbuilder: '@launch_motionbuilder' + tk-multi-launchnuke: '@launch_nuke' + tk-multi-launchphotoshop: '@launch_photoshop' + tk-multi-launchsoftimage: '@launch_softimage' + tk-multi-screeningroom: '@launch_screeningroom' + tk-shotgun-launchpublish: + deny_permissions: [] + deny_platforms: [] + hook_launch_publish: default + location: + name: tk-shotgun-launchpublish + type: app_store + version: v0.1.16 + viewer_extensions: [exr, dpx, cin] + viewer_path_linux: '@rv_linux' + viewer_path_mac: '@rv_mac' + viewer_path_windows: '@rv_win' + debug_logging: false + location: + name: tk-shotgun + type: app_store + version: v0.5.1 +# +############################################################################### +# +# Framework includes. +# +# Frameworks are libraries that are shared between apps and that contain +# common functionality for building UIs and communicating with Shotgun. +# Frameworks are automatically installed when apps are installed and udpated. +# +frameworks: null diff --git a/env/shotgun_sequence.yml b/env/shotgun_sequence.yml index db75635..7402820 100644 --- a/env/shotgun_sequence.yml +++ b/env/shotgun_sequence.yml @@ -1,22 +1,69 @@ -description: This environment controls what items should be shown on the menu in Shotgun - for shots. -engines: - tk-shotgun: - apps: - tk-shotgun-folders: - deny_permissions: [] - deny_platforms: [] - location: {name: tk-shotgun-folders, type: app_store, version: v0.1.5} - tk-shotgun-launchfolder: - deny_permissions: [] - deny_platforms: [] - location: {name: tk-shotgun-launchfolder, type: app_store, version: v0.1.5} - tk-shotgun-launchmaya: '@launch_maya' - tk-shotgun-launchnuke: '@launch_nuke' - tk-shotgun-launchhoudini: '@launch_houdini' - tk-shotgun-launchphotoshop: '@launch_photoshop' - tk-shotgun-launchscreeningroom: '@launch_shotgun_screeningroom' - debug_logging: false - location: {name: tk-shotgun, type: app_store, version: v0.5.1} -frameworks: null -include: ./includes/app_launchers.yml +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. +# + +description: This environment controls what items should be shown on the menu in Shotgun + for shots. + +################################################################################################# +# include common definitions for all the launchers that are used to start maya, nuke etc. + +includes: +- ./includes/app_launchers.yml +- ./includes/paths.yml + +################################################################################################# +# Define all the items that should appear in this environment +# +# Note! This environment is special and is only used by the Shotgun action +# menu integration. It can only contain a Shotgun engine and the file name +# reflects the entity type for which a menu will be generated in Shotgun. +# + +engines: + tk-shotgun: + apps: + tk-multi-launch3dsmax: '@launch_3dsmax' + tk-multi-launchhoudini: '@launch_houdini' + tk-multi-launchmaya: '@launch_maya' + tk-multi-launchmotionbuilder: '@launch_motionbuilder' + tk-multi-launchnuke: '@launch_nuke' + tk-multi-launchphotoshop: '@launch_photoshop' + tk-multi-launchsoftimage: '@launch_softimage' + tk-multi-screeningroom: '@launch_screeningroom' + tk-shotgun-folders: + deny_permissions: [] + deny_platforms: [] + location: + name: tk-shotgun-folders + type: app_store + version: v0.1.5 + tk-shotgun-launchfolder: + deny_permissions: [] + deny_platforms: [] + location: + name: tk-shotgun-launchfolder + type: app_store + version: v0.1.5 + debug_logging: false + location: + name: tk-shotgun + type: app_store + version: v0.5.1 +# +############################################################################### +# +# Framework includes. +# +# Frameworks are libraries that are shared between apps and that contain +# common functionality for building UIs and communicating with Shotgun. +# Frameworks are automatically installed when apps are installed and udpated. +# +frameworks: null diff --git a/env/shotgun_shot.yml b/env/shotgun_shot.yml index db75635..d718c9f 100644 --- a/env/shotgun_shot.yml +++ b/env/shotgun_shot.yml @@ -1,22 +1,70 @@ -description: This environment controls what items should be shown on the menu in Shotgun - for shots. -engines: - tk-shotgun: - apps: - tk-shotgun-folders: - deny_permissions: [] - deny_platforms: [] - location: {name: tk-shotgun-folders, type: app_store, version: v0.1.5} - tk-shotgun-launchfolder: - deny_permissions: [] - deny_platforms: [] - location: {name: tk-shotgun-launchfolder, type: app_store, version: v0.1.5} - tk-shotgun-launchmaya: '@launch_maya' - tk-shotgun-launchnuke: '@launch_nuke' - tk-shotgun-launchhoudini: '@launch_houdini' - tk-shotgun-launchphotoshop: '@launch_photoshop' - tk-shotgun-launchscreeningroom: '@launch_shotgun_screeningroom' - debug_logging: false - location: {name: tk-shotgun, type: app_store, version: v0.5.1} -frameworks: null -include: ./includes/app_launchers.yml +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. +# + +description: This environment controls what items should be shown on the menu in Shotgun + for shots. + +################################################################################################# +# include common definitions for all the launchers that are used to start maya, nuke etc. + +includes: +- ./includes/app_launchers.yml +- ./includes/paths.yml + +################################################################################################# +# Define all the items that should appear in this environment +# +# Note! This environment is special and is only used by the Shotgun action +# menu integration. It can only contain a Shotgun engine and the file name +# reflects the entity type for which a menu will be generated in Shotgun. +# + +engines: + tk-shotgun: + apps: + tk-multi-launch3dsmax: '@launch_3dsmax' + tk-multi-launchhoudini: '@launch_houdini' + tk-multi-launchmaya: '@launch_maya' + tk-multi-launchmotionbuilder: '@launch_motionbuilder' + tk-multi-launchnuke: '@launch_nuke' + tk-multi-launchphotoshop: '@launch_photoshop' + tk-multi-launchsoftimage: '@launch_softimage' + tk-multi-screeningroom: '@launch_screeningroom' + tk-shotgun-folders: + deny_permissions: [] + deny_platforms: [] + location: + name: tk-shotgun-folders + type: app_store + version: v0.1.5 + tk-shotgun-launchfolder: + deny_permissions: [] + deny_platforms: [] + location: + name: tk-shotgun-launchfolder + type: app_store + version: v0.1.5 + debug_logging: false + location: + name: tk-shotgun + type: app_store + version: v0.5.1 + +# +############################################################################### +# +# Framework includes. +# +# Frameworks are libraries that are shared between apps and that contain +# common functionality for building UIs and communicating with Shotgun. +# Frameworks are automatically installed when apps are installed and udpated. +# +frameworks: null diff --git a/env/shotgun_tankpublishedfile.yml b/env/shotgun_tankpublishedfile.yml index 92567a9..1d4dbee 100644 --- a/env/shotgun_tankpublishedfile.yml +++ b/env/shotgun_tankpublishedfile.yml @@ -1,23 +1,70 @@ -description: This environment controls what items should be shown on the menu in Shotgun - for publishes. -engines: - tk-shotgun: - apps: - tk-shotgun-launchhiero: '@launch_hiero' - tk-shotgun-launchhoudini: '@launch_houdini' - tk-shotgun-launchmaya: '@launch_maya' - tk-shotgun-launchnuke: '@launch_nuke' - tk-shotgun-launchphotoshop: '@launch_photoshop' - tk-shotgun-launchpublish: - deny_permissions: [] - deny_platforms: [] - hook_launch_publish: default - location: {name: tk-shotgun-launchpublish, type: app_store, version: v0.1.16} - viewer_extensions: [exr, dpx, cin] - viewer_path_linux: '@rv_linux' - viewer_path_mac: '@rv_mac' - viewer_path_windows: '@rv_win' - debug_logging: false - location: {name: tk-shotgun, type: app_store, version: v0.5.1} -frameworks: null -includes: [./includes/app_launchers.yml, ./includes/paths.yml] +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. +# + +description: This environment controls what items should be shown on the menu in Shotgun + for publishes. + +################################################################################################# +# include common definitions for all the launchers that are used to start maya, nuke etc. + +includes: +- ./includes/app_launchers.yml +- ./includes/paths.yml + + +################################################################################################# +# Define all the items that should appear in this environment +# +# Note! This environment is special and is only used by the Shotgun action +# menu integration. It can only contain a Shotgun engine and the file name +# reflects the entity type for which a menu will be generated in Shotgun. +# + +engines: + tk-shotgun: + apps: + tk-multi-launch3dsmax: '@launch_3dsmax' + tk-multi-launchhiero: '@launch_hiero' + tk-multi-launchhoudini: '@launch_houdini' + tk-multi-launchmaya: '@launch_maya' + tk-multi-launchmotionbuilder: '@launch_motionbuilder' + tk-multi-launchnuke: '@launch_nuke' + tk-multi-launchphotoshop: '@launch_photoshop' + tk-multi-launchsoftimage: '@launch_softimage' + tk-multi-screeningroom: '@launch_screeningroom' + tk-shotgun-launchpublish: + deny_permissions: [] + deny_platforms: [] + hook_launch_publish: default + location: + name: tk-shotgun-launchpublish + type: app_store + version: v0.1.16 + viewer_extensions: [exr, dpx, cin] + viewer_path_linux: '@rv_linux' + viewer_path_mac: '@rv_mac' + viewer_path_windows: '@rv_win' + debug_logging: false + location: + name: tk-shotgun + type: app_store + version: v0.5.1 + +# +############################################################################### +# +# Framework includes. +# +# Frameworks are libraries that are shared between apps and that contain +# common functionality for building UIs and communicating with Shotgun. +# Frameworks are automatically installed when apps are installed and udpated. +# +frameworks: null diff --git a/env/shotgun_task.yml b/env/shotgun_task.yml index 5b2f11e..19b42a7 100644 --- a/env/shotgun_task.yml +++ b/env/shotgun_task.yml @@ -1,17 +1,64 @@ -description: This environment controls what items should be shown on the menu in Shotgun - for tasks. -engines: - tk-shotgun: - apps: - tk-shotgun-launchfolder: - deny_permissions: [] - deny_platforms: [] - location: {name: tk-shotgun-launchfolder, type: app_store, version: v0.1.5} - tk-shotgun-launchhoudini: '@launch_houdini' - tk-shotgun-launchmaya: '@launch_maya' - tk-shotgun-launchnuke: '@launch_nuke' - tk-shotgun-launchphotoshop: '@launch_photoshop' - debug_logging: false - location: {name: tk-shotgun, type: app_store, version: v0.5.1} -frameworks: null -include: ./includes/app_launchers.yml +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. +# + +description: This environment controls what items should be shown on the menu in Shotgun + for tasks. + +################################################################################################# +# include common definitions for all the launchers that are used to start maya, nuke etc. + +includes: +- ./includes/app_launchers.yml +- ./includes/paths.yml + +################################################################################################# +# Define all the items that should appear in this environment +# +# Note! This environment is special and is only used by the Shotgun action +# menu integration. It can only contain a Shotgun engine and the file name +# reflects the entity type for which a menu will be generated in Shotgun. +# + +engines: + tk-shotgun: + apps: + tk-multi-launch3dsmax: '@launch_3dsmax' + tk-multi-launchhoudini: '@launch_houdini' + tk-multi-launchmari: '@launch_mari' + tk-multi-launchmaya: '@launch_maya' + tk-multi-launchmotionbuilder: '@launch_motionbuilder' + tk-multi-launchnuke: '@launch_nuke' + tk-multi-launchphotoshop: '@launch_photoshop' + tk-multi-launchsoftimage: '@launch_softimage' + tk-multi-screeningroom: '@launch_screeningroom' + tk-shotgun-launchfolder: + deny_permissions: [] + deny_platforms: [] + location: + name: tk-shotgun-launchfolder + type: app_store + version: v0.1.5 + debug_logging: false + location: + name: tk-shotgun + type: app_store + version: v0.5.1 + +# +############################################################################### +# +# Framework includes. +# +# Frameworks are libraries that are shared between apps and that contain +# common functionality for building UIs and communicating with Shotgun. +# Frameworks are automatically installed when apps are installed and udpated. +# +frameworks: null diff --git a/env/shotgun_version.yml b/env/shotgun_version.yml index 92567a9..6b035cc 100644 --- a/env/shotgun_version.yml +++ b/env/shotgun_version.yml @@ -1,23 +1,69 @@ -description: This environment controls what items should be shown on the menu in Shotgun - for publishes. -engines: - tk-shotgun: - apps: - tk-shotgun-launchhiero: '@launch_hiero' - tk-shotgun-launchhoudini: '@launch_houdini' - tk-shotgun-launchmaya: '@launch_maya' - tk-shotgun-launchnuke: '@launch_nuke' - tk-shotgun-launchphotoshop: '@launch_photoshop' - tk-shotgun-launchpublish: - deny_permissions: [] - deny_platforms: [] - hook_launch_publish: default - location: {name: tk-shotgun-launchpublish, type: app_store, version: v0.1.16} - viewer_extensions: [exr, dpx, cin] - viewer_path_linux: '@rv_linux' - viewer_path_mac: '@rv_mac' - viewer_path_windows: '@rv_win' - debug_logging: false - location: {name: tk-shotgun, type: app_store, version: v0.5.1} -frameworks: null -includes: [./includes/app_launchers.yml, ./includes/paths.yml] +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. +# + +description: This environment controls what items should be shown on the menu in Shotgun + for publishes. + +################################################################################################# +# include common definitions for all the launchers that are used to start maya, nuke etc. + +includes: +- ./includes/app_launchers.yml +- ./includes/paths.yml + +################################################################################################# +# Define all the items that should appear in this environment +# +# Note! This environment is special and is only used by the Shotgun action +# menu integration. It can only contain a Shotgun engine and the file name +# reflects the entity type for which a menu will be generated in Shotgun. +# + +engines: + tk-shotgun: + apps: + tk-multi-launch3dsmax: '@launch_3dsmax' + tk-multi-launchhiero: '@launch_hiero' + tk-multi-launchhoudini: '@launch_houdini' + tk-multi-launchmaya: '@launch_maya' + tk-multi-launchmotionbuilder: '@launch_motionbuilder' + tk-multi-launchnuke: '@launch_nuke' + tk-multi-launchphotoshop: '@launch_photoshop' + tk-multi-launchsoftimage: '@launch_softimage' + tk-multi-screeningroom: '@launch_screeningroom' + tk-shotgun-launchpublish: + deny_permissions: [] + deny_platforms: [] + hook_launch_publish: default + location: + name: tk-shotgun-launchpublish + type: app_store + version: v0.1.16 + viewer_extensions: [exr, dpx, cin] + viewer_path_linux: '@rv_linux' + viewer_path_mac: '@rv_mac' + viewer_path_windows: '@rv_win' + debug_logging: false + location: + name: tk-shotgun + type: app_store + version: v0.5.1 + +# +############################################################################### +# +# Framework includes. +# +# Frameworks are libraries that are shared between apps and that contain +# common functionality for building UIs and communicating with Shotgun. +# Frameworks are automatically installed when apps are installed and udpated. +# +frameworks: null diff --git a/hooks/README b/hooks/README index 675caca..066effd 100644 --- a/hooks/README +++ b/hooks/README @@ -1,16 +1,16 @@ - -This location is for project hook override files. - -Apps come bundled with hooks - a hook is a small python code snippet that is part of -the configuration. Hooks extend configuration values such as strings and its, and allow -the person configuring the app to go in and define a behaviour in the code. - -Apps come with default hooks that typically provide a plain vanilla implementation, -when an app is using a default hook, the value in the config is simply set to "default" -and the app will look for the hook in a hook folder inside of the app itself. - -If you want to customize a hook, just change the value from default to something else, for -example myhook.py. Sgtk will then look for a file named myhook.py in *this* folder and try -to execute it instead of the default hook. You can of course use the default hooks as -examples and starting points when you want to configure the Shotgun Pipeline Toolkit to -perform your desired behaviour. \ No newline at end of file + +This location is for project hook override files. + +Apps come bundled with hooks - a hook is a small python code snippet that is part of +the configuration. Hooks extend configuration values such as strings and its, and allow +the person configuring the app to go in and define a behaviour in the code. + +Apps come with default hooks that typically provide a plain vanilla implementation, +when an app is using a default hook, the value in the config is simply set to "default" +and the app will look for the hook in a hook folder inside of the app itself. + +If you want to customize a hook, just change the value from default to something else, for +example myhook.py. Sgtk will then look for a file named myhook.py in *this* folder and try +to execute it instead of the default hook. You can of course use the default hooks as +examples and starting points when you want to configure the Shotgun Pipeline Toolkit to +perform your desired behaviour. diff --git a/hooks/snapshot_history_post_quickdaily.py b/hooks/snapshot_history_post_quickdaily.py index b94ce91..a71df1c 100644 --- a/hooks/snapshot_history_post_quickdaily.py +++ b/hooks/snapshot_history_post_quickdaily.py @@ -1,30 +1,29 @@ -# Copyright (c) 2013 Shotgun Software Inc. -# -# CONFIDENTIAL AND PROPRIETARY -# -# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit -# Source Code License included in this distribution package. See LICENSE. -# By accessing, using, copying or modifying this work you indicate your -# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights -# not expressly granted therein are reserved by Shotgun Software Inc. - -from tank import Hook -from tank import TankError - -class SnapshotHistoryPostQuickdaily(Hook): - - def execute(self, mov_path, version_id, comments, **kwargs): - app = self.parent - # get app - snapshot_app = app.engine.apps["tk-multi-snapshot"] - # try to snapshot the file and add a comment - try: - comment = "Automatically snapshotted after Quickdaily. " - comment += "User Comments: %s " % comments - comment += "Version id: %d " % version_id - comment += "Quicktime: %s" % mov_path - snapshot_app.snapshot(comment) - except TankError: - # fine, means file wasn't a proper snapshot - pass - \ No newline at end of file +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +from tank import Hook +from tank import TankError + +class SnapshotHistoryPostQuickdaily(Hook): + + def execute(self, mov_path, version_id, comments, **kwargs): + app = self.parent + # get app + snapshot_app = app.engine.apps["tk-multi-snapshot"] + # try to snapshot the file and add a comment + try: + comment = "Automatically snapshotted after Quickdaily. " + comment += "User Comments: %s " % comments + comment += "Version id: %d " % version_id + comment += "Quicktime: %s" % mov_path + snapshot_app.snapshot(comment) + except TankError: + # fine, means file wasn't a proper snapshot + pass diff --git a/icons/alembic_cache_publish.png b/icons/alembic_cache_publish.png new file mode 100644 index 0000000000000000000000000000000000000000..824bb62c46873b9f08c14be9b1782e903f660c6f GIT binary patch literal 5802 zcmWlbbzBus7siK938e&nAczP^x3n}!gT$4R?(UY5Mv!jlF5v>wjdV$OcY7}l?|t_( zXJ_}1{mjhS^F7ZKuA(IK44WJq0PsvsR#FWyGyFd=(GmBk$3|PkgykTs;|u`Ki~k1_ zNXsAt0K3pqLPABw!rsN+*}~r8m7IjcD+ecgGfNv&06Z2dlH66|_euK3u6*}Hk_eC( zbKLW_zK&!4{Acx=F6SGWL||BPaoD?R5)H}fTpU{LN;Corqt1E;-XjVVRn^(vz-Nhf z7#|z2MqB-tQoYSqQdcuPcRa^DSN*BLf_|1Ht@t!>>gBXl2on`#d>^9dgN&&XfLggW zxVbBLpPNg&CQ6EYcFy_=fCd}S=i!)-4QiyAm)Ag+2;^g3T>l1tR6%|eTihUE#{((M z334VN1%Q;v{4F9-j(B*vsfz@L>l|0mfP$s20swAA0g{{N`7gm=C1ALF$z=jG(7;?I znvM}jBL~-KT%O1PLImcvc1B6Tcm(L6JhB$*|wZyi`3au zrEZ+h2A(hYxxL-<4J7~_sCDe3^(r|O#!_%}K2P-@Ml~O3bd--4;`R&Net+)wB7;j* zw}iB4Bue9U7cF1G;ftB>1}aYQ*AFk4GpY0b?r!&^D;}VjDLL@6F zMiM&gN5n)(9&AWrxb)tPB>)2-soG8%9@UP_ZjY34wl-97vnfmo02RYe zY=v=jUv_kyYBU)KG`2M{g5VEyJs&uS(L_wdS!KV_5Oq2+gg9yAr{|!%by3Y>V63y( zb;|MMkghW=1qhxI5V2!c8Ip-~F$BJn431$ZuRB$KBA4(M`McTgUE3Y7YT@ zQv2wu9_MqpYutNrAI3IpgYTl>+5_5ysC)eB2r!ug-*-k6$jj23ydZhOgt>^t609W7 z_9cK_obEX^d`8mVh%Qbhf$(Ga=WvWL^Dw^fpq?>0rh$MhS#0`(*q(gie5OgiNy|ya zN#{uhooE|*IGxN7v@NME*R9qqybIThSDp#EN*qNV>KhF63EK%)@?6`<+l1S~iSj(T zUMhJdI)9CKfv5 zVktP&C#Q}un^T#<*+Y4FxHEZPaN}@W^C(*~X_E~_^_qrjA8Lo{xa$}c?J1t8(`NiK zlfO(zR~NBVoZhg&f)3U}>P{?tr_HP}EO#yJ$L*&4%7dnACc|fRifbiy14j=_hD-F- zZ`6khsj_axNT;Eb(Gz;*%`#VMCt+D_`e9j;_GK&YTW4>XePjIUAL$>aZY9uhQK*BM zgA~!tarJ-k%=_68HmCV!3ELD~lUXtFE!oZ)^IMtN5!u&u75DDdaP-bC^DleEJ0_o3 zhkqTwji-&LkH;u9QFotGm|`hhF3cVt9(g{ZnGQ{DWuN8TO(RX?OBMa~^Yb-?xw^Qv z(N?b7rD3>c$@9Ryh8D+>~9En*1*OEzWgLTY@tJD{i@hXo4)x zR_RVkgIPf2SQV%fi_z^HF#>`Gv&0PIf_BDe@G5wxgwW@=( zgZi06*vCH`v7;(J79M-w#ziWrlE-Yf@IrrwuwV&NE8%>9R)ytH{)Lz(dN1YcC}w(% zV_#lsAy+TgA}!4iir*X;jtQQB1B+iw1n(8^E$o?d;BiQCEZ0QMdDh$+i}v00S44V~ z*%PvTKb2QeOvxNiIb-Btui;dU<7Tmxo18Yu+$!IK6B)^i%li)gDgUXHZvJf4Emcq8 z?u7F4J(@G?*mUZ6N&4|$UBAhdao zi`5#E*tNUAvY)um#@WKfYldrjYo=-1Hj4eHbigb9zqD4aJ9Q-!C5h1#2GzemJ`O65 z2(!)*?1qhv&1M_0w`&=(FeWmPc(Bg37;2NVR*Xqp>})}YQaHnp(w4;Anq|I~NGGkn&N}t{*ALU6 zUYg#!B=w|S<|o^bhloL9YEAmeBZi50jI1xUiGP)rXcTBb78(|;VWZg&qNWdjYx^um zW_UygQBAc5kB7TTjix%boQajD^3ndOR#YYomaFD%B#<#Iwn$ zsd0Vbtv+9fpT29`rn{{Rb;dD`^oh(B$Zhg18<>H8Zl5-pSt@~5+0GX>+m6&LFQP5l zpR65Otdum=`s~i?=`^1lh=E1O^Xn*~|~Vlt}*CmbfvOpX~x)DM-^m69{41l2vv z^3^AAZf*MJzgBwc;g7w^Z1xqoML=|hlgx^4AT)bC>$~&gsvtgDn2ox9!>{1D^l*B{ znsqkjVdrA8hH5rz=Fo0-(cWWeZ!dGj`?m0Oq_zRsUaw`O)fYB8EZFM4dAf3#zFgG! zw()ACZSQdr;|5=vnnbiql*zjs-gppx65q7S;%~3o$fN|rfE##|-~C$${%h0Jp8h@* z%%0Nzny{rc&rO_u(zl_3p>{19FsHM`t?9kPNzv)2C3xS)$V5B8zaE7WIhD^lUqN`~ zMl1a88~!MDlXR|hme245|82=pEqvG4V5!~3U-ACd$7P*wqv7B*X;siK_{oDiNsyO* zUCtAL0EBJK!aJ)(3dq9kXhafIeL2?bzw2VcS@Xn4HP!>b8uoYxlI$7?CPn#6f|BBb z%+3!~DFgWNekv&qUb=4=2)>W;R$T;VpNx%9Um%4gfz`XdKIz52zP4EuLwq108nbHy zfD@b8qXbCAF_+mPdGcO)z#sx}nS%~77{bQBGL}_S1iRKd^cF!+}F!7}#Q6Zj~5y(~*QzZEi;z5RA zl823hL`UKj&=|c9lmck3Mw#}p_8w8WvAJre5}~VWER&`bK>>0M2P*22I;J5N9nJcV z<4!1@bWgw4ah-d`sNO8MRi)%)s1%HLn~{^3DYMJ1r8N0L&|4VQw~#$)XvIMy3vyQmVO zSOI$fn^iyzRZ5Ogc2P9K4Tj$hi$KN+xzq&kgi3~&GK%PJ^v``w@S z>tTm%z<)dMGHF%n-mnBTJw87AMfL_34Nz^?NcRcXisu9*Cnsmu)?T_rORF=GL^iaa zb>VQ$+te5F;NYTnCt)4(13V=qC4CVQ5kfgRISQE9!+CCQZct54jk>p&m(2?=qX=qO zODN>*#-~0gNFrZ@X?gAN@NS_>M_GY>>YadqfNFu-$nfCctpEc9gZ1$ObXhu&P=Vh0 z`hzlNt+kk#*bk*5>z|fs_Y1u2>}MUmwzkLa;C|cbz1#5u4>NBB0dkz|zu20Jijn`s z%BAz<)*bjC+dn1NL!p_}e0EC*b8~a)Qc_agC{dA--W?A2*N!saBRM%a$<6ik@IysO zep%UJt}Gqoaq=S@kEW)kh;A=i+jVY*^X1M6QNT@jc)0Ns^&03{UKVbttYqb4XJ>aj z-{{3wRvyEM+}chy=oX6rfEKDP;*=z<-I`mtu}KY{*W=#KeTn$;D+a zDI@b;zurbCN`-+^8T0FZb5wkM4Wd<_8&0r+&1&0&A29|R8j=`gz!u^++Rf~{G?}aZ zo|&1R{)F;szHPb5wXAEU-;h0)+W($|8l)Fm5{RF?fEoT-f*~qA91Du%vzzHof9cUe7!nfF zs`))QIC#j{*SB?SFN9t^Y|w;rnJ0ausc20e6$9gL9w?>r9(y8o@liq|$hKOognN5y zYYSZWexW2ID;7koHf!Jh01u^&vnUGTtH|=~U%2B7X*m;0ZXuA!QxT;4to+ z>@Q*NTSHLCd0RY0ItMbmr;fIsC;EK$bb5Mzh9 z9L?2~mA9b>t&gfKYpbd{_7s{aWs5A65E6D?ou9v4UtiA=_WHM{iD+Ks#l_c31!}2` z5y&*C`}_M1Q&Us+C}J8K35c|X#!pyqf6~;1^YZY#ERWZ3bjVrEkqG5=$DGY1d|q$wyUi27P2PL_^yk^JcB$maCmzzUJvFib40n|P(7 zyBpOtaS4f=_wV0xm6n!nROz>pC&$IDo7<0#jAV+bCQyT7jZ$)N2jFmhw(gcz*sQ}$ zA|xc_5i~SxbecC|agxRFxRF*7vFiWio2bE5k-=j<;{+`1?2>Ruj`<53Bb(ZvrCkdW~H=w1)Q zq-jk|Oq2&?JXQ&jzW=tIJmV#4Evuy*W-Imn3=G_87EQfG3g}+v$FC?A_J&7&Zu7aZ zipbSPeD~(f8?>978v|?ZG*$zH)tl7R)Hcwu?Q{bSYqZA~7D}mggOZYxNCe)z*-qqJ z@i3-QoO<>#ne{=TLNgu7aHA*u3$HX^s*0ADdsgAT$l}mv2m}~PN=S5veCVAJwVcd% zg)bLTItswOAdT6men|;w-Ggjq@mRjfkEhwlvqPn`8 z=&r4$rKQ~(3c15R**N#u>@_;~72Z2Oeg+m03{W8h3=E8wHs8Chidrw&w3c3qLLoIk z)B)ey!^1ncWR>`y#G0^z*Nluae1^R0)J{p?Np_mRiS6AqQ7aK`rc4SP< zL#JcJP1dbCIG^%_-Qx4fB$AoW;4k8kCb%R?!On*)Tan7;q@NN z5>7`&{+b8PF5ItANlC$FO^!s+zhq#59)yG#%gf6SuCAF&i;M4yEYlbg2kF58C7yXm zVoHJ9zW9bmsADv|G@Cm$!En!Ue2maG8&aQ+@BBvVy|$ zWWKK`Pt}?7zcCt#s;XkU>iCLMg^Gq2z3KED5BaND&$d%$Xbgg?qVBG)Bsd&invs!V z^MHqkhc6RbX!&<`76ot#3JL}lTE14C%CD*#E7mNtEr}c2ZctZO=b|F+%sJkh$onl{ zpvJ-Nw7tFk7Buc|Z|5{OQz#R6!r^WS2?=Yrp79fHJg~R1v5|p>Lt?|i zz@WmBst_C+D#1V`LeTjI31J~}>gtHZa|p0QkP!-=rKzD&htPkAnaxq65i{rZc^lr^ zc^h=lnRkDCcUM(ZRAg>uX10TXQU@0uMT3c$mX?+Z`Hx3N>6>8fhQ`u?__u73cE5*< zot+&{@vuk2U4I|m^y6y=2d`Frr>#G6--E@!D43XRwIgJNSy`aRM5s6CwR8++_>Uhy z+J61|<&Riq%>T6YYJ*L`C1r7CMSp5_byb+b!}jyEVO;FjuSlPimA@Y?K&?Zv{cbH0 z&E;|_Ffh;-L9VU4iwo-a{#vvR(#-0G0z67Q3?eC-ckezDQ&Qgh8XIq3)tZmFJ$v>H zmd0nV-|;8zwJ@S?xgvXwETE8RwUVP&r|rS9-rnA5;MI12@zGgc9vdM$A>-rYZ>b&@ hIB#U0o}ITN0jv-`H4_1xaD;0Ia#Bi?mEwkh{{u?}E_wg} literal 0 HcmV?d00001 diff --git a/icons/mari_channel_publish.png b/icons/mari_channel_publish.png new file mode 100644 index 0000000000000000000000000000000000000000..c56fa5c0878281bf9094c2bc43043803155669c5 GIT binary patch literal 2923 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 V95b}u7RLYp002ovPDHLkV1h_aWD)=X literal 0 HcmV?d00001 diff --git a/icons/mari_layer_publish.png b/icons/mari_layer_publish.png new file mode 100644 index 0000000000000000000000000000000000000000..85534a329e5b6f0f39a0db28d8dc63698ee1ba47 GIT binary patch literal 10577 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 literal 0 HcmV?d00001 diff --git a/icons/publish_mari_main.png b/icons/publish_mari_main.png new file mode 100644 index 0000000000000000000000000000000000000000..8ae82a211aaba7cf8357357ee62c77c8328dcb43 GIT binary patch literal 8166 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 literal 259755 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 z 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 EKceVaO#lD@ diff --git a/info.yml b/info.yml index 82c6b5e..3f0eaad 100644 --- a/info.yml +++ b/info.yml @@ -1,20 +1,19 @@ -# Copyright (c) 2013 Shotgun Software Inc. -# -# CONFIDENTIAL AND PROPRIETARY -# -# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit -# Source Code License included in this distribution package. See LICENSE. -# By accessing, using, copying or modifying this work you indicate your -# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights -# not expressly granted therein are reserved by Shotgun Software Inc. - -# Metadata defining the behaviour and requirements for this configuration - -# More verbose description of this item -display_name: "Default Config" -description: "A VFX Example Config and our default configuration." - -# Required minimum versions for this item to run -requires_shotgun_version: "v4.3.9" -requires_core_version: "v0.13.17" - +# Copyright (c) 2015 Shotgun Software Inc. +# +# CONFIDENTIAL AND PROPRIETARY +# +# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit +# Source Code License included in this distribution package. See LICENSE. +# By accessing, using, copying or modifying this work you indicate your +# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights +# not expressly granted therein are reserved by Shotgun Software Inc. + +# Metadata defining the behaviour and requirements for this configuration + +# More verbose description of this item +display_name: "Default Config" +description: "A VFX Example Config and our default configuration." + +# Required minimum versions for this item to run +requires_shotgun_version: "v6.2.0" +requires_core_version: "v0.17.0"