Container Clips

Container Clips Concept

A Container Clip is a Media Item and the Timeline Clip made from it that has three items packed together as a single entity: Program, Unrendered Media and Rendered Media.

Components

  1. Unrendered Media This is what is displayed on timeline if container clip media is not rendered.
  2. Program This data is used to render a media clip on timeline, sometimes using unrendered media as input.
  3. Rendered Media This is what is displayed on timeline when Container Clip is rendered.

Rationale

Workflow

  1. Create Container Clip Media Item using Project -> Create Contaniner Clip menu.
  2. Edit properties of Container Clip with Right Mouse menu selection Edit Container Data if available.
  3. Add Container Clip on Timeline.
  4. Render and manage Container Clips on Timeline with Right Mouse submenu Container Clip Actions.

Container Clip Types

G'Mic Script Container Clips

Components

Use Cases
Creating G'Mic Script Container Clips
  1. Open G'Mic tool.
  2. Create G'Mic effect script. See section on G'Mic Tool in Chapter Tools.
  3. Press Save Script button in bottom left corner and save effect.
  4. Select menu item Project -> Create Contaniner Clip -> From G'Mix Script.
  5. Select the script you saved and the clip that it will be applied on to create Container Clip.

Blender Project Container Clips

Components

Use Cases
Creating Blender Project Container Clips
  1. Open G'Mic tool.
  2. Select menu item Project -> Create Contaniner Clip -> From Blender Project and select Bleder project file with .blend extension.
  3. You can edit values that Blender project is rendered with, see section Edíting Container Programs below.

Selection Container Clips

Components

Use Cases
Creating Selection Container Clip from Selection
  1. Select 2 or more adjacent clips from a single track.
  2. Select Project->Create Container Clip->From Selected Clips
Creating Selection Container Clip from Sequence
  1. Select Project->Create Container Clip->From Current Sequence
Creating audio synced Selection Container Clip from two Media Items
  1. Select 2 Media Items in Media panel.
    • The expected case is to select 1 Video and 1 Audio Clip.
    • If you select 2 Video Clips then which is used as video depends on selection order.
    • Audio from clip treated as video is muted.
  2. Select Project->Create Compound Clip->Audio Sync Merge Clip From 2 Media Items
  3. If audio sync is successful a dialog appers. Give a name for the new Media Item in the dialog.
  4. A new Media Item appears in the current Bin.
Audio syncing looks for best matemathical match between two audio waveforms, so audio syncing non-matching audio will produce random results.

Creating Editable Blender Container Programs

It is possible to create and add editors to Blender Container Clips that allow users to change the rendered output.

Feature uses Blender Python API and runs a script before output is rendered to change attribute values of Blender scene objects.

This is an advanced feature and requires a working knowledge on scripting using Blender's Python API.

Editable Objects

Three types of objects are currently availabe to be user edited using this functionality.

Editors

Five different types of editors are currently availabe for editing object attributes.

Example

In this example we create String and Color editors to change text and color rendered from Blender Project file.

Step 1: Find out object and attribute names using Blenders Script view

Scene and sript panel from Blender with our test project open.

Here we have established that:

Step 2: Edit Container Program Edit Data

With this information we can create the editors that allow editing text and color of clips rendered from this project.

Step 3: Set values for timeline clips

Launch script

The editors in this example create the code lines below that set attribute values in the lauch script before render start.

obj = bpy.data.materials["Title1.Material"]

obj.diffuse_color = 0.9882352941176471,0.6862745098039216,0.24313725490196078,1.0

obj = bpy.data.curves["Title1"]

obj.body = "Yesh, this was edited!"