Skip to content

Latest commit

 

History

History
124 lines (106 loc) · 5.75 KB

README.md

File metadata and controls

124 lines (106 loc) · 5.75 KB

tk-agnostic-publish

Shotgun agnostic and standalone app to publish files, but mantaining the structure as the actual tk-multi-publish...

alt text

The main modification to the app relates to the primary output, that now its a list of abailable "editable" files for a certain context, this allows to match a file extention to a template and from this validate the secondary outputs.

The default configuration could work like this:

tk-agnostic-publish:
  allow_taskless_publishes: true
  display_name: Agnostic Publish
  expand_single_items: false
  hook_scan_scene: default
  hook_copy_file: default
  hook_post_publish: default
  hook_primary_pre_publish: default
  hook_primary_publish: default
  hook_secondary_pre_publish: default
  hook_secondary_publish: default
  hook_thumbnail: default
  location:
    path: https://github.com/hasielhassan/tk-agnostic-publish.git
    version: v0.0.1
    type: git
  primary_outputs: 
    - {name: primary,
       extension: c4d,
       icon: icons/publish_cinema_main.png,
       description: "",
       scene_item_type: work_file,
       display_name: Cinema4D Publish,
       tank_type: Cinema4D Scene,
       publish_template: cinema_shot_publish}
    - {name: primary,
       extension: aep,
       icon: icons/publish_after_main.png,
       description: "",
       scene_item_type: work_file,
       display_name: AfterEffects Publish,
       tank_type: AfterEffects Project,
       publish_template: after_shot_publish}
    - {name: primary,
       extension: flw,
       icon: icons/publish_realflow_main.png,
       description: "",
       scene_item_type: work_file,
       display_name: RealFlow Publish,
       tank_type: RealFlow Scene ,
       publish_template: realflow_shot_publish}
  secondary_outputs:
  - {description: After Effects XML Project file, display_group: XML Project,
    display_name: After XML Project, icon: icons/aftereffects_xmlproject.png,
    name: aftereffects_xmlproject, publish_template: after_shot_xml_project_pub,
    required: false, scene_item_type: aftereffects_xmlproject,
    selected: true, tank_type: AfterEffects XML Project}
  - {description: After Effects Project Elements, display_group: Project Elements,
    display_name: After Elements, icon: icons/assets_group_icon.png,
    name: aftereffects_element, publish_template: after_project_element_pub,
    required: false, scene_item_type: aftereffects_element,
    selected: true, tank_type: AfterEffects Project Element}
  - {description: Rendered Sequences, display_group: Renders,
    display_name: Rendered Sequences, icon: icons/publish_nuke_writenode.png,
    name: cinema_render_sequences, publish_template: max_shot_render_publish_exr,
    required: false, scene_item_type: cinema_render_sequences,
    selected: true, tank_type: Cinema4D Render Sequence}
  - {description: Video preview for Shotgun, display_group: Review,
    display_name: Preview Version, icon: icons/publish_global_review.png,
    name: cinema_render_preview_video, publish_template: max_shot_render_publish_mov,
    required: false, scene_item_type: cinema_render_preview_video,
    selected: false, tank_type: Cinema4D Render Preview}
  - {description: Rendered Sequences, display_group: Renders,
    display_name: Rendered Sequences, icon: icons/publish_nuke_writenode.png,
    name: after_render_sequences, publish_template: after_shot_render_pub_exr,
    required: false, scene_item_type: after_render_sequences,
    selected: true, tank_type: AfterEffects Render Sequence}
  - {description: Video preview for Shotgun, display_group: Review,
    display_name: Preview Version, icon: icons/publish_global_review.png,
    name: after_render_preview_video, publish_template: after_shot_render_pub_preview,
    required: false, scene_item_type: after_render_preview_video,
    selected: false, tank_type: AfterEffects Render Preview}
  template_work: max_shot_work

That will need the following templates:

max_shot_render_publish_exr
  definition: '@publish_shot_root/scn{shot_scene_name}/sht{Shot}/Renders/{name}/v{version}/{set_name}/scn{shot_scene_name}_sht{Shot}_{step_code}_{set_name}_v{version}.{buffer}.{SEQ}.exr'

max_shot_render_publish_mov
  definition: '@publish_shot_root/scn{shot_scene_name}/sht{Shot}/Renders/{name}/v{version}/{set_name}/scn{shot_scene_name}_sht{Shot}_{step_code}_{set_name}_v{version}_{buffer}.mov'


after_shot_publish
  definition: '@publish_shot_root/scn{shot_scene_name}/sht{Shot}/Editables/scn{shot_scene_name}_sht{Shot}_{step_code}_{name}_v{version}.aep'

cinema_shot_publish
  definition: '@publish_shot_root/scn{shot_scene_name}/sht{Shot}/Editables/scn{shot_scene_name}_sht{Shot}_{step_code}_{name}_v{version}.c4d'


after_project_element_pub
  definition: '@publish_shot_root/scn{shot_scene_name}/sht{Shot}/Elements/scn{shot_scene_name}_sht{Shot}_{step_code}_{name}_{element_file_name}_v{version}.{extension}'

after_shot_xml_project_pub
  definition: '@publish_shot_root/scn{shot_scene_name}/sht{Shot}/XMLProjects/scn{shot_scene_name}_sht{Shot}_{step_code}_{name}_v{version}.aepx'


after_shot_render_pub_exr
  definition: '@publish_shot_root/scn{shot_scene_name}/sht{Shot}/Renders/{name}/v{version}/{comp_name}/scn{shot_scene_name}_sht{Shot}_{step_code}_{name}_{comp_name}_v{version}.{SEQ}.exr'

after_shot_render_pub_preview
  definition: '@publish_shot_root/scn{shot_scene_name}/sht{Shot}/Previews/{name}/scn{shot_scene_name}_sht{Shot}_{step_code}_{name}_{comp_name}_v{version}.mov'

realflow_shot_publish
  definition: '@publish_shot_root/scn{shot_scene_name}/sht{Shot}/Editables/scn{shot_scene_name}_sht{Shot}_{step_code}_{name}_v{version}.flw'

It also require the followin dependencies:

  • pyseq - For file sequence detection
  • ffmpeg - For transcoding
  • imagemgick - To deal with linear vs sRGB images