Review Submission

Review Submission

Provides functionality to submit media to Shotgun for review.
Latest Version: v1.1.1 (prod)
For our version numbers, we follow the Semantic Versioning standard.
System Name: tk-multi-reviewsubmission

Please Note: This document describes functionality only available if you have taken control over a Toolkit configuration. Please refer to the Shotgun Integrations User Guide for more details.
Overview Summary
Documentation
            How do I use this App?
                  As an API
                  As a menu item
Installation, Updates and Development
Configuration Options
Release Notes History

An app that provides functionality to help submitting image sequences as Versions in Shotgun for review. This app does not have a UI but instead provides API methods for quicktime and review generation. You can call the app from your scripts, or from within hooks. For example, your publish configuration can call this as part of a post process hook if you want to create a quicktime and send it for review. This app will generate a quicktime with burn-ins and slates. You can configure if you want it to upload the quicktime to Shotgun or keep it on disk, or both. Lastly it will create a new version inside of Shotgun, ready to reviewed in Screening Room!

Documentation

How do I use this App?

As an API

This app have a mode that is meant to be called from inside other apps like the multi-publish app.

This mode creates quicktimes from image sequences and submits them as Versions to Shotgun in order to facilitate review. The generated quicktimes will have slates and burnins. Things such as font, logo position, movie compression options and burnin / slate information are currently hardcoded in the default hooks and as such you are encouraged to re-implement the hook function to adjust the behaviour.

Here are a the current default formats for slate and burnin:

Main Menu

Main Menu

Should you want to leverage this app from within your own apps or hooks here is a quick rundown of the simple way to go about it.

  • Get the tk-multi-reviewsubmission app from the current engine. This can be done from inside a hook using the call self.parent.engine.apps.get('tk-multi-reviewsubmission').
  • If the app is available, call the render_and_submit_version() method.

Here's an example of what this can look like inside your hook code:

review_submission_app = self.parent.engine.apps.get("tk-multi-reviewsubmission")
if review_submission_app:
    review_submission_app.render_and_submit_version(
        template,
        fields,
        first_frame,
        last_frame,
        sg_publishes,
        sg_task,
        comment,
        thumbnail_path,
        progress_cb,
        color_space
    )

The arguments that you need to pass to render_and_submit_version are as follows:

  • template: A template that defines where the files to publish are located
  • fields: Fields that will be used to fill out the template
  • first_frame: The first frame of the image sequence to process
  • last_frame: The last frame of the image sequence to process
  • sg_publishes: A list of Shotgun Published File objects to link the version to.
  • sg_task: A Shotgun Task link dictionary to link the version to.
  • comment: Text to add to the Version's description.
  • thumbnail_path: The path to a thumbnail to use for the version when the movie isn't being uploaded to Shotgun (this is set in the config)
  • progress_cb: A callback to report progress with. This should be of the form: callback(percent, message)
  • color_space: The color space that the input frames are in. In Nuke, this would be one of the enumeration values on the colorspace knob for the Write node.

As a menu item

This mode adds a menu item to the Shotgun menu inside the DCC. 

This mode creates a quick snapshot of the current viewport and sends it to Shotgun Create as a Version draft. Then, the user can extend the review submission inside of Shotgun Create by adding annotations, text or comparison notes.

In order to add this functionality to your context, you need to:

  • Set the display_name field to have it in the menu item.
  • Set the render_media_hook field to a hook that tells how to render media in your DCC (tk-photoshopcc and tk-maya have a default implementation)
  • Set the submitter_hook field to {self}/submitter_create.py

Like this:

tk-multi-reviewsubmission:
  display_name: Send for review
  render_media_hook: '{self}/render_media.py:{self}/{engine_name}/render_media.py'
  submitter_hook: '{self}/submitter_create.py'
  location: 
    type: app_store
    name: tk-multi-reviewsubmission
    version: v1.0.1

Related Apps and Documents

Publish

The Publish app allows artists to publish their work so that it can be used by artists downstream. It supports traditional publishing workflows within the artist’s content creation software as well as stand-alone publishing of any file on disk. When working in content creation software and using the basic Shotgun integration, the app will automatically discover and display items for the artist to publish. For more sophisticated production needs, studios can write custom publish plugins to drive artist workflows.

Quickreview Node

This app adds a Nuke node which you can add anywhere in your node graph. Once added to your scene, you can double click the node, go to the properties page and hit the "Send to Review" button. The app will then render a quicktime of your scene, add burnins and slates and upload it to Shotgun.

Write Node

This app contains a custom Write Node gizmo for Nuke, abstracting away the file system paths from the user, allowing them to focus on just naming the particular output. Shotgun takes care of the rest! This app is typically used in conjunction with the Publish app and if you install the publish app for nuke, you most likely want to install this one too!

Installation and Updates

Adding this App to the Shotgun Pipeline Toolkit

If you want to add this app to Project XYZ, in an environment named asset, execute the following command:

> tank Project XYZ install_app asset tk-maya tk-multi-reviewsubmission

Updating to the latest version

If you already have this item installed in a project and you want to get the latest version, you can run the update command. You can either navigate to the tank command that comes with that specific project, and run it there:

> cd /my_tank_configs/project_xyz
> ./tank updates

Alternatively, you can run your studio tank command and specify the project name to tell it which project to run the update check for:

> tank Project XYZ updates

Collaboration and Evolution

If you have access to the Shotgun Pipeline Toolkit, you also have access to the source code for all apps, engines and frameworks in Github where we store and manage them. Feel free to evolve these items; use them as a base for further independent development, make changes (and submit pull requests back to us!) or simply tinker with them to see how they have been built and how the toolkit works. You can access this code repository at https://github.com/shotgunsoftware/tk-multi-reviewsubmission.

Special Requirements

  • You need Shotgun Pipeline Toolkit Core API version v0.19.5 or higher to use this.

Configuration

Below is a summary of all the configuration settings used. These settings need to be defined in the environment file where you want to enable this App or Engine.

movie_width

Type: int

Default Value: 1920

Description: The width of the rendered movie file

display_name

Type: str

Description: Specify the name that should be used in menus and the main

render_media_hook

Type: hook

Default Value: {self}/render_media.py:{self}/{engine_name}/render_media.py

Description: Implements how media get generated while this app is running.

slate_logo

Type: config_path

Description: This is the path to an image to use on the slate such as a company logo. The supplied image will be reformated into a 400 pixel box and the lower left corner of the logo will be aligned 100 pixels to the right and 100 pixels above the lower left corner of the slate. You can use an image with an alpha channel if you want to add transparency. Currently any image format supported by Nuke is adequate. If this setting is an empty string, no logo will be applied.

new_version_status

Type: str

Default Value: rev

Description: The value to use for a new Version's status.

movie_path_template

Type: template

Optional Template Keys: ***

Description: Template defining the output location of the movie file on the the file system. For this template you can use all the fields defined in the template passed to the render_and_submit fields. In addition to these you can use the special fields width and height, which contain the resolution of the movie. If the store_on_disk setting is false, this setting will still be required but will be used as a temporary location for processing before the file is uploaded to Shotgun.

store_on_disk

Type: bool

Default Value: True

Description: Should the movie being created be kept on disk? Disabling this as well as the upload_to_shotgun option will effectively disable the whole tool.

upload_to_shotgun

Type: bool

Default Value: True

Description: Should the movie being created be uploaded to Shotgun as a version or just kept on disk? Disabling this as well as the store_on_disk option effectively disables the whole tool.

version_number_padding

Type: int

Default Value: 3

Description: This value will be used to pad the version number in the slate and various movie burnins. This will not affect version number padding in the movie filename. See movie_path_template. Use 1 for no padding.

submitter_hook

Type: hook

Default Value: {self}/submitter_sgtk.py

Description: Implements how media get sent to Shotgun

movie_height

Type: int

Default Value: 1080

Description: The height of the rendered movie file

Release Notes

Welcome to the release notes for this App. Below you will find an overview of all the changes we did for each release. We try to be as detailed as possible and include all bugs we have fixed, features we have added and things that may have changed. If you have questions about a particular release, don't hesitate to contact our support team!

v1.1.1

2020-Apr-21

Required core version now v0.19.1.

v1.1.0

2020-Apr-21

Adds support for Python 3.

v1.0.3

2020-Mar-24

Re-introduce the new_version_status setting. It got lost during the app refactoring.

v1.0.2

2020-Feb-25

Fix movie nuke movie render.

The app should use the fields as-is to find the input path and only inject the resolution from the app setting to the template that builds the output movie.

v1.0.1

2020-Feb-14

Add support for Maya 2016, 2017 and 2018

v1.0.0

2020-Jan-27

Provides an action item to send media to Shotgun Create as a Review on tk-maya and tk-photoshopcc

v1.0.0-rc6

2020-Jan-22

Automatically detect the Maya playblast settings and other fixes.

v1.0.0-rc5

2020-Jan-13

v1.0.0-rc4

2020-Jan-08

Fix maya mov file naming.

v1.0.0-rc3

2020-Jan-07

Render AVI files while doing Maya playblasts from Windows

v1.0.0-rc2

2019-Dec-12

Improved media file naming based on the context and better error handling.

v1.0.0-rc1

2019-Nov-29

Set Shotgun Create as the submitter and add support for tk-maya and tk-photoshopcc

v0.3.2

2016-May-12

Fix an issue where bad quality QuickTimes gets generated in Nuke 9

v0.3.1

2016-Mar-03

Adds metrics logging

v0.3.0

Adds support for context changes.

v0.2.1

2016-Jan-12

fix for error when using file_type specific settings in the codec_settings hook

Details:

Previously we were creating the node by passing in all of the settings at once which was generating errors if Nuke tried to set the knob before the file_type had been set. This change creates the node with the file_type setting, and then applies the rest of the settings from the codec_settings hook after.

v0.2.0

2015-Sep-28

Moves the Quicktime generation settings into a hook

Details:

  • Allows studios to easily override the default output settings when generating movies to submit to Screening Room.
  • Updated default settings for Nuke 9+ on linux. Nuke 9 removed ffmpeg as a file_type and replaced it with mov64. This handles that case and sets the codec to jpeg in that case to match the behavior on Mac and Windows.

v0.1.12

fixed bug causing an error if Nuke was in proxy mode

Details:

While the Publish app does not support publishing from Nuke in proxy mode, this app does support submitting proxy renders in case users have custom apps or workflows that need this

v0.1.11

Add handling for Nuke 9 knob name change from codec to meta_codec

v0.1.10

Added new method to app that allows the colorspace of the input frames to be specified

Details:

  • Previously, the colorspace was not being passed through for the rendered frames so if it was set to a non-default value, the rendered movie would be wrong.

v0.1.9

Fixed issue with Quicktimes rendering black in Nuke 7 on Windows

v0.1.8

The artist field on the Version is now populated by the app

v0.1.7

Fixed FFMPEG call for Nuke 7 in Linux

Details: The FFMPEG call syntax worked in Nuke 6.3 but not 7 in Linux - thanks for the tip, Benoit Leveau!

v0.1.6

Fixed issue when using legacy Tank Published File entities

v0.1.5

Documentation Adjustments.

v0.1.4

Added threaded review submission.

v0.1.3

Polish and Bug fixes.

Details: - Now populates more fields on version. - Versions are created by the current user. - Better naming and handling of slate parameters.

v0.1.2

Initial Release to the App Store.

Follow