Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add new Flame addon documentation #256

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions website/docs/addon_flame_admin_get_started.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
id: addon_flame_admin_get_started
title: Autodesk Flame Admin Get Started
sidebar_label: Get Started
description: Autodesk Flame Admin Get Started.
toc_max_heading_level: 5
---

import ReactMarkdown from "react-markdown";
import versions from '@site/docs/assets/json/Ayon_addons_version.json'

<ReactMarkdown>
{versions.Flame_Badge}
</ReactMarkdown>

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';


Before opening any task in AYON wrapped Flame, the following needs to be configured:

### Application addon Flame variant settings

:::info Usage of wiretap

AYON integration uses the wiretap server to pre-create Flame project attributes that match the currently selected context attributes. This ensures all required attributes are present in the Flame project before opening it in Flame.

:::



* Ensure that the Flame executable is correctly filled in for the corresponding variant.
* Set the required environment variables for Wiretap connection:
* **FLAME\_WIRETAP\_HOSTNAME** can be left empty if the Wiretap server is running on the same machine as Flame.
* **FLAME\_WIRETAP\_VOLUME** is usually set to _stonefs_ by default, but your setup might be different. Check your local volume names using the command:
`/opt/Autodesk/io/<YOUR FLAME VERSION>/bin/vic -v stonefs`


* Optionally, you can add your custom Flame scripts to the **FLAME\_SCRIPT\_DIRS** environment variable.



:::warning variant related environment variables

Make sure your variant-related environment variables point to the correct paths. Otherwise, the integration might not work as expected.

:::

* Following are variant-related environment variables:
* **AYON\_FLAME\_PYTHON\_EXEC** - Flame Python executable
* **AYON\_FLAME\_PYTHONPATH** - Flame Python path
* **AYON\_WIRETAP\_TOOLS** - Path to Wiretap tools used for communication with the Wiretap server
42 changes: 42 additions & 0 deletions website/docs/addon_flame_admin_intro.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
id: addon_flame_admin_intro
title: Autodesk Flame Admin Introduction
sidebar_label: Introduction
description: Autodesk Flame Admin Introduction.
toc_max_heading_level: 5
---


import ReactMarkdown from "react-markdown";
import versions from '@site/docs/assets/json/Ayon_addons_version.json'

<ReactMarkdown>
{versions.Flame_Badge}
</ReactMarkdown>

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

:::info Addon name
This addon integration is still at the **beta** stage. If you have any questions or need help, please contact us.
:::

## Introduction

Autodesk Flame is a high-end visual effects and finishing software used in the post-production industry. The AYON Flame integration allows you to seamlessly connect your AYON Server with Flame and automate publishing and loading of your project data.

Current version of the integration also supports following features:

* **Editorial:**
* Publishing of clips.
* Vertical publishing of clips.
* Folder hierarchy publishing.
* Publishing resources with on-the-fly transcoding using presets connected to Flame's native XML presets.
* **Loading:**
* Loading clips into Flame's Media Panel as Reels clips with conversion to OpenClip.
* Loading clips into Flame's Media Panel as Batch clips with conversion to OpenClip.

## Flame's unique workflow
* Missing **Inventory manager** is not integrated for version control like other DCCs. This is because Flame has a unique workflow that doesn't fit well with the Inventory manager's versioning system. Instead, we use Flame's native versioning system to manage clip versions via OpenClip files. These files are created dynamically for each loaded clip and stored in the task's directory within the **work** tree. Each related [OpenClip](https://help.autodesk.com/view/FLAME/2023/ENU/?guid=GUID-1A051CEB-429B-413C-B6CA-256F4BB5D254) is then updated with newer versions of the clip.

* Due to the Python API limitations we are not able to place loaded clips directly to timeline as timeline segment. Instead, we place them in the Media Panel as Reels or Batch clips. This allows you to manually place them in the timeline as needed.
194 changes: 194 additions & 0 deletions website/docs/addon_flame_admin_settings.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
---
id: addon_flame_admin_settings
title: Autodesk Flame Admin Settings
sidebar_label: Settings
description: Autodesk Flame Admin Settings.
toc_max_heading_level: 5
---

import ReactMarkdown from "react-markdown";
import versions from '@site/docs/assets/json/Ayon_addons_version.json'

<ReactMarkdown>
{versions.Flame_Badge}
</ReactMarkdown>

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

:::info Addon name
This addon integration is still at the **beta** stage. If you have any questions or need help, please contact us.
:::


<!-- TODO: Add documentation for Color Management section. also, explain why we need remapping. -->

## Hooks

### Install OpenTimelineIO to Flame

> Setting Location: `ayon+settings://flame/hooks/InstallOpenTimelineIOToFlame`

![](assets/flame/admin/opentimeio_to_flame_hook.png)

This hook installs the OpenTimelineIO library in the Flame environment, which is necessary for the integration to work correctly. The plugin is installed using the **pip** package manager, and the hook handles the installation process. You can also disable this hook if OpenTimelineIO is already installed manually in the Flame environment.

## Create plugins

### Create Shot Clip

> Setting Location: `ayon+settings://flame/create/CreateShotClip`

Set default values for all Creator attributes in the Creator UI from this settings category. This helps predefine the values for Creator attributes.
Let's break it into smaller sections:

#### Shot hierarchy and rename settings

![](assets/flame/admin/shot_hierarchy_and_rename_settings.png)

- **Shot parent hierarchy** - template for defining the parent hierarchy of the Shot folder.
- **Use shot name** - if enabled, Flames Timeline segment Shot name will be used for the Shot folder name.
- **Rename clips** - if enabled, the plugin will use renaming rules to rename the clips sequentially.
- **Clip name template** - template for defining the shot clip name.
- **Accept segment order** - if enabled, the plugin will use the segment's defined order for renaming the clips.
- **Count sequence from** - numeric value for defining the starting number for the shot name.
- **Stepping number** - numeric value for defining the incrementing number for the shot name.

#### Shot template keywords

![](assets/flame/admin/shot_template_keywords.png)

Following is a list of available keywords that can be used in *Shot parent hierarchy* or *Clip name template* of the *Shot hierarchy and rename settings* section above:
- **{folder}** - Literal value for the Folder token. Text and numbers can be used.
- **{episode}** - Literal value for the Episode token. Text and numbers can be used.
- **{sequence}** - Literal value for the Sequence token. Text and numbers can be used.
- **{track}** - Literal value for the Track token. Text and numbers can be used. Flames original track name could be accessed via the **{\_track\_}** token.
- **{shot}** - Literal value for the Shot token. Text and numbers can be used. Hashes are used to define the number of digits in the sequence number. Original flame segment name could be accessed via the **{\_shot\_}** token.

#### Vertical synchronization of attributes

![](assets/flame/admin/vertical_sync_attrs.png)

- **Enable vertical sync** - If enabled, clips on the timeline in multiple tracks will be synchronized vertically with the same attributes. Shot names will also be synchronized. The workflow assumes that the clips above the main hero track are vertically aligned without overlaps. Clips can be shorter than the main hero track clip, but not longer. The plugin will use the main hero track clip as a reference for vertical synchronization.

#### Shot attributes

![](assets/flame/admin/shot_attrs.png)

- **Workfile start frame** - Numeric value for defining the starting frame of the workfile. This value is set to Shot folder attributes as Frame start value.
- **Handle start (head)** - Numeric value for defining the maximum trimming value to be applied to the head of the clip. If the available media is shorter than the handle value, the clip will be trimmed to the available media length. The resulting value is then set to the Shot folder attributes as Handle start value.
- **Handle end (tail)** - Numeric value for defining the maximum trimming value to be applied to the tail of the clip. If the available media is shorter than the handle value, the clip will be trimmed to the available media length. The resulting value is then set to the Shot folder attributes as Handle end value.
- **Enable handles including** - If enabled, handles will be included in the workfile start frame value. Since AYON excludes handles by default, this option will recalculate the workfile start frame value to include them. Here is an example of the resulting calculation: `'workfile start frame' = 'workfile start frame' - 'handle start' + 1`
- **Enable retimed handles** - If enabled, shot attributes for handles will be recalculated based on the speed of the retimed clip. This option is useful when production wants to avoid including handles that result in a high number of frames due to high retime speeds. The handle values will be recalculated based on the retime value. For example: `'handle start' = 'handle start' * 'retime speed'` and `'handle end' = 'handle end' * 'retime speed'`
- **Enable retimed shot framerange** - If enabled, the shot attributes for the frame range will be recalculated based on retimed timeline segment. This option is useful disabled when production wants to keep unretimed working framerange. The frame range values will be recalculated based on the retime value. For example: `'workfile start frame' = 'workfile start frame' * 'retime speed'` and `'workfile end frame' = 'timeline segment duration' * 'retime speed'`


## Publish plugins

### Collect Timeline Instances

> Setting Location: `ayon+settings://flame/publish/CollectTimelineInstances`

The plugin collects timeline instances from the current timeline and publishes them to the AYON Server. It supports mapping attributes and presets for distributing sets of tasks to the final published Shot hierarchies.

:::caution Add Task

This feature is currently under this plugin, but we plan to separate it in the future. It is marked as experimental and not production-ready.

:::

#### XML Presets Attributes Parsable from Segment Comments

> Setting Location: `ayon+settings://flame/publish/CollectTimelineInstances/xml_preset_attrs_from_comments`

![](assets/flame/admin/xml_presets_attrs.png)

This option allows you to define which comment tokens should be temporarily assigned to a timeline item. This helps the integration get the correct values for the Shot folder attributes. It does not affect any existing comments in the timeline segments.

#### Add Tasks

> Setting Location: `ayon+settings://flame/publish/CollectTimelineInstances/add_tasks`

![](assets/flame/admin/add_tasks.png)

Any tasks added to this option will be distributed into the final hierarchy of published Shot folders. Task presets also support assigning Batchgroup creation (experimental feature).

### Extract Product Resources
> Setting Location: `ayon+settings://flame/publish/ExtractProductResources`

Plugin is responsible for extracting resources from
the selected timeline instances and publishing them to the AYON Server. Plugin supports adding custom presets for transcoding resources on-the-fly via linking native Flame XML presets.

#### Publish clip's original media
> Setting Location: `ayon+settings://flame/publish/ExtractProductResources/keep_original_representation`

![](assets/flame/admin/clip_original_media.png)

When enabled, publish keeps the original representation.

#### Export presets mapping
> Setting Location: `ayon+settings://flame/publish/ExtractProductResources/export_presets_mapping`

Preset's properties are divided into sections related to the output file, linking XML presets, transcoding representation settings, and after-publish loading settings.

:::info Preset properties
Thumbnail preset is hardcoded into plugin and is always added to the set of exports. It could be overridden by adding custom preset with the same name **thumbnail**.
:::

![](assets/flame/admin/export_presets_mapping.png)

* **Name** - Used to identify the preset. It can also be part of the output file name via the `outputName` anatomy template token. It serves as a unique representation name.
* **Is active** - If the preset is active, it will be used during the export process.
* **Activate by search pattern** - If the clip's media resource path matches the input regex pattern, the preset will be used.
* **Output extension** - The output file extension for the published representation.
* **Output color (imageio)** - Specifies the colorspace data to be stored in the representation. This is used downstream in the publishing process or by loading plugins.
* **Export clip type** - The type of XML preset to be used for export.
* **XML preset directory** - The absolute directory path where the XML preset is stored. If left empty, built-in directories are used, either shared or installed presets folder.
* **XML preset file (with ext)** - The name of the XML preset file with its extension.
* **Distribute parsed comment attributes to XML preset** - If enabled, previously collected clip comment attributes will be distributed to the XML preset. This can affect the resulting resolution of the exported media.
* **Add range to representation name** - Adds frame range-related attributes to the publishing representation data for downstream use in the publishing process.
* **Representation tags** - Adds tags to the representation data for downstream use in the publishing process. For example, marking the representation as reviewable.
* **Load to batch group reel** - If enabled, the representation will be loaded to the batch group reel after publishing (connected to IntegrateBatchGroup).
* **Use loader name** - Defines which loader plugin should be used for loading the representation after publishing (connected to IntegrateBatchGroup).


### Integrate Batch Group

> Setting Location: `ayon+settings://flame/publish/IntegrateBatchGroup`

:::caution Plugin state

The plugin is currently in the experimental state and not production-ready. Settings will be updated in the future.

:::

![](assets/flame/admin/integrate_batch_group.png)

When enabled, It integrate published shot to batch group.

## Loading plugins

### Load Clip

> Setting Location: `ayon+settings://flame/load/LoadClip`

![](assets/flame/admin/load_clip.png)

* **Product types** - filtering inputs for what product types this plugin should be used.
* **Reel group name** - name of the reel group where the clips should be loaded. If the reel group does not exist, it will be created.
* **Reel name** - name of the reel where the clips should be loaded. If the reel does not exist, it will be created.
* **Clip name template** - template for defining the loaded clip name.
* **Layer name template** - template for defining the loaded clip OpenClip layer.
* **Layer rename patterns** - list of patterns for renaming the OpenClip layers.

### Load as clip to current batch

> Setting Location: `ayon+settings://flame/load/LoadClipBatch`

![](assets/flame/admin/load_as_clip_to_batch.png)

* **Product types** - filtering inputs for what product types this plugin should be used.
* **Reel name** - name of the reel where the clips should be loaded. If the reel does not exist, it will be created.
* **Clip name template** - template for defining the loaded clip name.
* **Layer name template** - template for defining the loaded clip OpenClip layer.
* **Layer rename patterns** - list of patterns for renaming the OpenClip layers.
103 changes: 103 additions & 0 deletions website/docs/addon_flame_artist.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
---
id: addon_flame_artist
title: Autodesk Flame
sidebar_label: Flame
description: AYON Flame Addon's documentations for artists.
toc_max_heading_level: 5
---

import ReactMarkdown from "react-markdown";
import versions from '@site/docs/assets/json/Ayon_addons_version.json'

<ReactMarkdown>
{versions.Flame_Badge}
</ReactMarkdown>

:::info Addon name
This addon integration is still at the **beta** stage. If you have any questions or need help, please contact us.
:::

## Launch Flame

:::tip
It's expected to have only one instance of Flame running. Please close any open Flame instances before launching Flame from the launcher.
:::

Head to the AYON launcher, select your folder and task, and then launch Flame by clicking its icon in the launcher.

![](assets/flame/artist/flame_launcher.png)

## AYON Flame Menus

<!-- TODO: Add a tip about how to show the publisher window -->

AYON Integration adds AYON menus in multiple locations within the Flame UI.

| Main Menu | Timeline item Menu|
|--|--|
| ![](assets/flame/artist/main_menu_integration.png) | ![](assets/flame/artist/timeline_item_menu_integration.png) |

| Reels Menu | Media Panel Menu |
|--|--|
| ![](assets/flame/artist/reels_menu_integration.png) | ![](assets/flame/artist/media_panel_menu_integration.png) |

## Create and Publish Products

The current publishing process is
1. Create a publish instance using `Create` menu.
2. Click publish ▶️ button in the [Publisher](artist_tools_publisher.md) Tool!

:::info
Flame addon is currently using the old creator.

![](assets/flame/artist/old_creator.png)
:::


### Publishable Clip

Steps for making a publishable clip:
- Select your clips in the timeline.
- Go to **AYON -> Create**, and select **Create Publishable Clip**.
- **AYON publish attributes creator** window will appear where you can specify multiple options for your publish instance.
- After that, you can go to **AYON -> Publish** which runs some validations before exporting and publishing your clip.

Once you create a publish instance, you'll start noticing that your clip is marked.
these marks are objects that hold AYON publish metadata.
![](assets/flame/artist/ayon_marks.png)

:::info AYON Publish attributes creator

**AYON publish attributes creator** provides various options for you to tweak your publish instances.
e.g. You can rename the clips, specify frame padding and etc.
<!-- TODO: Break down the creator options -->
![](assets/flame/artist/ayon_attribute_publish_creator.png)
:::

#### Vertical workflow
* For a vertical workflow you need to first rename sequence tracks, so they can be used as product variant names. Just simply RMB click on the track and select _Rename Track_.
![ayon_sequence_tracks_rename](assets/flame/artist/ayon_sequence_tracks_rename.png)
![ayon_vertical_alignment](assets/flame/artist/ayon_vertical_alignment.png)

* In the **AYON Publish Attributes creator** window, enable _Enable Vertical Sync_ and select the _Hero track_ for Shot parenting. These hold the Shot metadata that needs to be distributed to other child clips, which are vertically aligned. Then in the _Product name_ set the option to `[track name]`
![ayon_vertical_alignment_creator](assets/flame/artist/ayon_vertical_alignment_creator.png)
* Confirm the changes by Create button and see that those clips were marked with the AYON marks.


<!-- TODO: Add a note about publish plugins so that artists are aware of the changes that happens on publishing? -->

## Loading Products

You can load products using [AYON Loader](artist_tools_loader.md) like any other addons.

Currently, we place the loaded media in the Media Panel as Reels or Batch clips with conversion to OpenClip. This allows you to manually place them in the timeline as needed.

![](assets/flame/artist/flame_loader_actions.png)


## Manage versions of loaded clips

Flame addon, *unlike other addons,* doesn't include **Inventory manager**.
Alternatively, you should be able to set versions of your loaded media via Reels and Media panel menus using `Source Versions` action.

![](assets/flame/artist/source_versions_action.png)
Loading