Skip to main content
Skip table of contents

Create complex transition logic with inter-template dependencies using the Transition Logic tree

Broadcast Graphics packages typically require creating dependencies between templates, so templates can react or behave differently based on another template’s state.

By default, the Transition Logic tree provides basic In/Out/Change, but can easily be adapted for complex Transition Logic customized to your graphics package’s needs.

The following step-by-step guide will focus on an example with two graphic assets:

  • Lower Third - placed in the LowerThird layer

  • Side bar - placed in the SideBar layer

And the following dependencies:

  1. When the Lower Third is taken in/out alone, it is animated in an “extended view” with more information

  2. When the Lower Third is taken in/out alone while the Side Bar is on air, it is animated in using a “collapsed view” with less information

  3. When the Side Bar is taken in/out while the Lower Third is on air, it will cause the Lower Third to transition between “extended view” and “collapsed view”

Screenshot 2025-11-25 at 10.46.07.png

extended view

Screenshot 2025-11-25 at 10.52.53.png

collapsed view

Identify States

Based on the desired behaviour, you need to identify what states each asset can be in. These states are added to a States Tag Collection and used as Tag Attributes in the Transition Logic tree.

What are Tag Attributes?

Tag Attributes can represent a scene's state and enable inter-template dependencies. One scene can add or remove Tag Attributes based on conditions (e.g., being taken in or out), while other scenes can check for these attributes and respond accordingly.

Tag Attributes are defined in Motion Design Tag Collections, the same mechanism used for Layers.

We recommend creating a dedicated collection for States to keep them distinct from your Layer tags.

States

Based on the example above, we will need the following states:

Scene

State

Enters state when

Leaves state when

Side Bar

SideIn

Taken in

Taken out

Lower Third

Extended

Taken in while Side Bar is out
OR Side Bar is taken out

Taken out
OR Side Bar is taken in
→ transitions to Collapsed

Collapsed

Taken in while Side Bar is in
OR Side Bar is taken in

Taken out
OR Side Bar is taken out
→ transitions to Extended

Create Tag Collections

A Motion Design Tag Collection is an Unreal Engine asset that can be created

  • from the Content Browser

    Screenshot 2025-11-25 at 11.30.16.png

  • OR the Transition Logic menu

    Screenshot 2025-11-25 at 11.30.46.png

For our example, please create the following tag collection assets:

MDT_Layers

MDT_States

Screenshot 2025-11-25 at 11.27.34.png
Screenshot 2025-11-25 at 11.28.04.png

Used in the layer selection in the Transition Logic menu (also available in the Transition Logic window)

Screenshot 2025-11-25 at 11.33.04.png

Make sure that both scenes have selected this Tag Collection for the Layer, and the corresponding Layer has been assigned to each of the assets.

Learn more about how to Assign a layer

Used in the Transition Logic tree, when the Add/Remove tag attribute to this scene action is used.

Create Sequences for Each State and Transition

In our case, we will need the following animations for the Lower Third asset:

Screenshot 2025-11-25 at 12.29.56.png

Learn more about how to create Per-child change animations

Structuring the Transition Logic tree

When building custom Transition Logic, add actions as child nodes under IF statements rather than attaching them directly. This ensures actions can execute sequentially.

The default tree attaches some of the actions directly to IF statements as seen here on the Play tag ‘Out’ and Play tag ‘In’ actions on the bottom:

Screenshot 2025-11-25 at 14.06.48.png

This works for simple cases, but for complex logic with multiple actions, restructure it using child nodes:

  1. Right-click the IF statement and click Add State > Add Child State

    Screenshot 2025-11-25 at 14.28.11.png

  2. Click the new node to add a task (right panel), or add a condition to nest IF statements

    image-20251125-133255.png

    Screenshot 2025-11-25 at 14.33.28.png

    image-20251125-133605.png

    Screenshot 2025-11-25 at 14.34.41.png

Setting Transition Types

For child nodes to execute in sequence, set the Transition Type on each node:

Node

Transition Type

IF statements

None

Intermediate child nodes

Next (Next Selectable)

Final child node

Succeed

Screenshot 2025-11-25 at 14.54.18.png

Adjust logic for Side Bar

The Side Bar needs to signal its state to other templates. Add a child node under each IF statement to manage the SideIn Tag Attribute:

Condition

Action

Scene Attribute

Taken in

Add SideIn Tag Attribute

Add tag attribute to this scene

Taken out

Remove SideIn Tag Attribute

Remove tag attribute to this scene

Use the Add tag attribute to this scene task for both.

Screenshot 2025-11-25 at 14.57.14.png

Adjust logic for Lower Third

The Lower Third has three logic blocks based on Side Bar's state:

Block

Condition

Behaviour

1

Side Bar is out

In/Out/Change in Extended view

2

Side Bar is in

In/Out/Change in Collapsed view

3

Side Bar transitions while Lower Third is in

Animate between views

Screenshot 2025-11-25 at 15.44.38.png

Block 1

IF condition: No scene in any layer contains SideIn

Screenshot 2025-11-25 at 15.48.21.png
Screenshot 2025-11-25 at 16.12.15.png

For more granular control, you can specify which layers to check using MDT_Layers.

Screenshot 2025-11-25 at 15.54.55.png

Actions

Transition

Play sequence

Update tag attribute

Out

Extended-OUT

Remove Extended

In

Extended-IN

Add Extended

Change

Handled by BP Sub Layer Change Task

Learn more about how to handle Change transitions

-

Block 2

Same structure as Block 1, but:

  • IF condition: A scene in another layer contains SideIn

  • Sequences: Collapsed-IN/Collapsed-OUT

  • Tag Attribute: Collapsed instead of Extended

Block 3

IF condition: A scene is transitioning on the SideBar layer

Screenshot 2025-11-25 at 16.21.04.png

This condition doesn't indicate in or out, so add nested checks:

Block 3a: Side Bar is coming in

IF condition: This scene (Lower Third) contains Extended

Play sequence

Update tag attribute

Extended-to-Collapsed

  • Remove Extended

  • Add Collapsed

Block 3b: Side Bar is going out

IF condition: This scene contains Collapsed AND no scene in another layer has SideIn

Play sequence

Update tag attribute

Collapsed-to-Extended

  • Remove Collapsed

  • Add Extended

Why the extra check in 3b?

Checking for Collapsed alone isn't enough, it would also match when Side Bar is doing a Change (updating while on-air). Adding the SideIn check confirms Side Bar is actually leaving.

Next step

Continue to Import templates into Erizos Studio

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.