pseudo :   password :  
English
Francais

pages vues


Pinnacle's Montage Themes Programming language


Many thanks to Guignol-Film for all his work that I try to complete through this page. Feel free to read his lessons (unfortunatly only available in French, but using a Web translator will help a lot !)
This work is based on the analysis of the different montage themes provided with Studio 12 as well as those of Pinnacle's Winter Pack. Other objects or parameters can exist in other expansion packs. Feel free to send me any complements that could help to update this document.

Published June 26, 2010


Summary

example of a montage theme edited using Guignol-film tool 1) Introduction
2) Reminder about XML
3) the different sections of a montage theme
4) structure of the programming language
5) Objects syntax

6) Anatomy of a montage theme
7) the various objects used
      7.1 the Scene object
      7.2 Image objects

          7.2.1 Common parameters for all Image objects
          7.2.2 ImageExplicit
          7.2.3 ImageGlyphCache
          7.2.4 ImageTextLayer
          7.2.5 ImageGradient
      7.3 The layout objects
          7.3.1 Settings common to all layout objects
          7.3.2 Plane
          7.3.3 Wipe
          7.3.4 PIP
          7.3.5 IMGPlane
          7.3.6 SphereSection
          7.3.7 Videowall
          7.3.8 Text
          7.3.9 FlagWave
          7.3.10 LensFlare
          7.3.11 Peel
          7.3.12 Tiles
      7.4 the Material object
      7.5 the NullObject object (container)
     7.6 Behavior control objects

         7.6.1 Common parameters to all behavior control objects
          7.6.2 Keyframer
          7.6.3 Transformer
          7.6.4 Fader
          7.6.5 ParmOscillate
          7.6.6 ParmRamp
      7.7 Shaders
          7.7.1 LinearBlur
          7.7.2 GradientWipe
      7.8 Montage theme interface setup
8)
connection section

Introduction


Montage theme programming language uses an XML structure to describe output scenes through various objects completly defining clip and, images with their motion behavior. Each montage theme can be modified with a simple text editor such as Microsoft Notepad available on any PC, or with an advanced XML editor such as NotePad++. Personally, I use NotePad which is quite sufficient for this purpose. This text file has .ixl extension.
A second file is usually associated with this first .ixl file and contains a thumbnail image that will be displayed by Pinnacle Studio in the montage theme editor. This thumbnail image should be built by a screenshot of Studio's Viewer at a representative timestamp of the montage theme, which will allow to identify it easily. This second file has a .png  extension, and usually has the same name than the .ixl file containing the source code.

Montage themes are grouped into sets. Each set can be selected by a drop-down list showing all available series. In practice, each series is a directory containing .ixl and .png files described above. Depending on the version of Windows that you use, and assuming that you have installed Pinnacle Studio on the C: drive, these directories must be placed in the following location:

Windows XP: C:\Documents and Settings\All Users\Documents\Pinnacle\Content\IMG-Templates
Vista and 7:  C:\Users\Public\Documents\Pinnacle\Content\IMG-Templates

Generally, you will find in each of these directories containing a set of themes an other directory usually named  -Assets containing different resources used by the montage themes of this set. Of course, It can be also be possible to use resources located anyelsewhere on your computer.

Before going further, to follow this tutorial, please load the training series of montage themes just below, which will allow you to experiment each programming object and each associated setting.

theme "Training" dowloaded times

2 possible installation methods :
  • self-installing .exe file ( easier!)
download serie used for the theme-learning tutorials
  • compressed .zip files
download serie used for the theme-learning tutorials

decompress ZIP in (for Vista and Seven) C:\Users\Public\Documents\Pinnacle\Content\ IMG-Templates (instructions here)

back

Reminder about XML


XML is made up of sections delimited by tags. Each section thus has a start tag and an end tag. The start tag is a form of type <tag ...=""> while the end tag will be </tag> .
A tag which does not contain any other tag will take the following form:
<tag parameter1="value1" parameter2="value2" /> (note the / before > which indicates the closing tag).
A tag that contains other tags will open in the same way by:
<tag parameter1="value1" parameter2="value2"> ( no / before > , because the tag is still open !) and will close later by a closing tag </tag>

A file using the XML structure will have the following structure :

<tag1 parameter1="value1" parameter2="value2" ...>
    <tag2 parameter3="valeur3">
        <tag3 parameter4="value4" />
    </tag2>
</tag1>

back

The different sections of a montage theme


A montage theme is composed of different sections which are each delimited by an XML tag.

Before going on, notice that this programming language is case sensitive. the keywords imgObject and imgobject will be different, so, be carefull !
Firstly, the first line will indicate the XML version used and the character sets. This line will always be as follows and in all cases be must the first line of the file.  

<?xml version="1.0" encoding="UTF-16"?>

The whole theme will then be described within the imgDocument tag. This tag has 3 parameters:
  • Name Specifies the full name of the file. You will notice that Pinnacle has set up an environment variable that contains the logical path of the "Content" directory, which allows to overcome path differences depending on the Windows version used (XP or Vista and 7). This variable is ?{PinnacleContent}
  • Type is used to indicate that it is a montage theme (the same format is also used for other purposes such as motion titles...). The value will always be Scene
  • Version which is always1.2

Inside this tag we will have 2 sections. The first one will contain the list of the objects which  are fully describing the scene. This section is enclosed by the tag imgObjectList
The second one will contain description of the relationships between different objects, and is enclosed by the tag imgConnectionList

back

structure of the programming language

The programming language consists in a list of  objects discribing the scene to display, using many parameters such as for example their size or their position.

In each montage themes, The first object is the root object. Its main purpose is to define some timing settings such as total theme duration or characteristics of time stretching. It also allows to set global parameters of screen geometry. This is the Scene object described later in this article with its parameters.

Then, there are 3 families of objects working closely together to display images and making the montage theme working !
  • Firstly, there is the source image objects family. It's for example drawings and photos (.jpg or .png files) or videos (e.g. .mpg files) that may be placed (for example) in an -Assets sub directory . These sources images can also be drop zone contents, or texts set in the montage theme interface. See here for more details about source image object family.
  • Secondly, we found Material objects. the image object seen above remains intangible. To make it concrete, it is necessary to associate it with this Material object. The Material object will also allow to define which part of the image you want to use. In addition, this object enable  some color effect settings.
  • Then, this image into a material object should be displayed to screen using a layout object whose role is to define the size, position, rotation, etc. . Several presentation objects exist to easily create different models. Therefore, each of theses items will have a set of intrinsic properties. See here for more details on layout objects, and their parameters.
  • In addition to these above objects families which are mandatory to create a theme, there are other families of objects that should be used to set up or animate your theme. See behavior objects family here, and see here the user interface montage theme editor control object .
  • Finally, the most interesting object is probably the empty NullObject object that allows you to group different objects. We will see here that this object provides multiple possibilities...

back

Object Syntax


We have seen syntaxis of XML based language. Now let's see the Object structure. An object will be delimited within a imgObject tag. This tag has 2 parameters that are Type that will indicate the object type, and ID which will be the number identifying the object. Please notice than this object number should be unique within the montage theme. If you declare two (or more) objects with the same ID, only the last one will be taken into consideration, and no error message will be returned, which can make you lose a lot of time trying to understand why your program doesn't do what you expect it to do
Inside this imgObject tag, you will always find an imgObjectTime tag with 3 parameters, the first is Ver which is relative to the object version. The value 2 is a always taken with Studio 12 and 14. Then we find the parameters Start and End that define the object life time domain (in seconds). Notice that the End parameter value should not exceed the total duration of the theme (set in the Scene root object), In such case this may crash Studio...
Then we will found the list of the object parameters enclosed in the imgParameterList tag. Each parameter being itself defined into a imgParm tag with 2 parameters. Firstly the parameter Name that indicates which parameter will be affected, and secondly  the Value parameter which gives the associated value.
Please notice that we can find two different syntaxes for a parameter description The 2 have are valid and have a similar result

    <imgParm Name="PositionZ" Value="99" />
    <imgParm Name="PositionZ">99</imgParm>

Here is the example of on object of Type Plane , with ID=201 , existing between time 3 and 10  seconds, which is named My Object.Plane , and which have the value 99 for parameter PositionZ ...

  <imgObject Type="Plane" ID="201">
      <imgObjectTime Ver="2" Start="3" End="10"/>
      <imgParameterList>
        <imgParm Name="Name">My Object.Plane</imgParm>
        <imgParm Name="PositionZ">99</imgParm>
      </imgParameterList>
  </imgObject>

Some other tags exist for other objects (particularly Image objects), we will go into more details when describing relevant objects...

back

Anatomy of a montage theme


Here you can see the simplest existing theme (it just display the Drop Zone1 content  ). The screencopy below shows the source code of this montage theme. You will see the 4 principal object families listed above.

  • Firstly the Scene object wtih the ID number 1. This object will always appear first in the theme. Its main purpose is to set the duration of the theme.
  • Then, the number 12 object will be the image object which defines the file to be be displayed as a parameter. Please notice again that Pinnacle defined a logical variable to access to the content directory, otherwise it would be impossible for a  themes to work on both XP and Vista...
  • Then the layout object (here an object of type Plane) without any specific parameter,
  • and finally the Material object which will point to the image through its MainImage parameter value which contains the ID value of the concerned image object.

As you can see, the objects are not all linked together. Only the image object is linked to the Material object. So, it will be needed to link them with the layout object.This will be achieved in the imgConnectionList tag which purpose is to define  links between all the objects. Here, we will review into details  these connections 

To start, I strongly recommand you to download the tool developed by Guignol-film  for montage theme analysis and available on his website, it will be an invaluable help for getting started, and even when you will be more experimented, it will help a lot for debugging  ! .

Back

The different objects used


First, we will look in detail each of the existing objects and the different possibilities they offer !

To start, here are the parameters that exist for all objects type :
  • Name exists for all objects and is mandatory. It is not essential to respect the uniqueness of the name of an object in your theme. It is however recommended and necessary if some parameters of the object are modifiable through the theme interface with the object Template describes a step further.
  • SourceRefID seems to be quite unusefull. I never use it in my themes. From my last research, if nevertheless you choose to use this parameter, be carefull to give a different value for all your object !
In this document, specific parameters only managable by Studio 14 are marked (S14). They do not prevent the operation with Studio 12, but are then inoperative.

back

The Scene object



type ="Scene"


This object is mandatory and will be placed in first position in the imgObjectList . It aims to define the temporal settings of the montage theme, and its geometry. Here is the list of possible parameters

geometry parameters are:
  • SceneWidth and SceneHeight which define the size in pixel of your theme.
  • ScenePixelAspect that allows you to specify the pixel X/Y ratio. (For example, if you design your theme for a rendering format PAL widescreen, you have a geometry 720x576 pixels for 16:9. Pixel format should be (16/9)/(720/576) = 1.42222

In reality, these parameters have little effect. There are only important to manage an independant text size regardless of the rendering format of the current project.

  • SceneInterlaced I do not understand the real effect of this parameter ....
  • AspectAdjust I recommend you give the value 1 to this parameter, with the effect to maintain the geometry of objects during their rotation. If instead you give the value 0 to this object, you will see some deformation effects of your windows during their rotation, depending on your screen format.

  • DepthTest This setting seems to control the positioning of 3D objects against each other. I recommend to give it the value 1

time parameters:
  • SceneFPS indicates the number of frames per second. It offers some interest if you program some transitions very precisely in time. Just keep in mind that your movie is composed of frame, and your keyframe should apply on these frames. Each frame of the montage theme will be computed at the instant corresponding to that parameter.
  • SceneDuration indicates the total duration of your montage theme. None of the theme object should have a lifetime (parameter End in tag imgObjectTime above) greater than this value,  unless you want to see Studio crashes when opening the topic
  • SceneTimeMode use this parameter with the value tmStretch will make the theme stretchable on the timeline, which is always handy. With Studio 14, it is preferable to use the following 4 parameters that allow a better control.
  • OrigLeadin (S14) is used to enter (in seconds) the position of the first actions of the montage theme. Please note that any action whose start before that parameter value will be ignored at runtime.
  • OrigLeadout (S14) is used to enter (in seconds) the ending position of the different actions of your montage theme. For example, you can use OrigLeadin and OrigLeadout in a transition theme to stretch separatly the initial part , the transition itself, and the final part. The parameter SceneTimeMode will be useless if these parameters are used .
  • CurrLeadin (S14) indicates the position of the opening handle in the montage theme thumbnail located on the timeline.
  • CurrLeadout (S14) indicates the position of the ending handle in the montage theme thumbnail located on the timeline.


parameters pointing to media files:
  • FileName must bear the full name of the current . IXL file
  • IconFileName must bear the full name of the thumbnail .png file. If this file does not exist, the thumbnail will be replaced by a question mark in the theme editor windows (S12).
  • IconTime indicates the instant where the thumbnail has been captured during the montage theme display. In Studio 12, it is quite useless. In Studio 14, it seems that Studio allows you to dynamically create the theme's thumbnail if the file .png does not exist ...

example:

<imgObject Type="Scene" ID="1">
    <imgObjectTime Ver="2" Start="0" End="14"/>
    <imgParameterList>
        <imgParm Name="Name">Scene</imgParm>
        <imgParm Name="SceneWidth">1280</imgParm>
        <imgParm Name="SceneHeight">720</imgParm>
        <imgParm Name="ScenePixelAspect">1</imgParm>
        <imgParm Name="AspectAdjust">1</imgParm>
        <imgParm Name="DepthTest">1</imgParm>
        <imgParm Name="SceneInterlaced">0</imgParm>
        <imgParm Name="SceneFPS">25</imgParm>
        <imgParm Name="SceneDuration">14</imgParm>
        <imgParm Name="IconTime">8.12</imgParm>
        <imgParm Name="FileName">?{PinnacleContent}IMG-Templates\50s Modern\1 - Opening.ixl</imgParm>
        <imgParm Name="IconFileName">?{PinnacleContent}IMG-Templates\50s Modern\1 - Opening.png</imgParm>
        <imgParm Name="OrigLeadin">0</imgParm>
        <imgParm Name="CurrLeadin">0</imgParm>
        <imgParm Name="OrigLeadout">20</imgParm>
        <imgParm Name="CurrLeadout">20</imgParm>
    </imgParameterList>
</imgObject>

back

image objects



These objects are used to define the source images and texts that will be used in the montage theme.
Beware never use in a montage theme more than 10 different image objects. This causes malfunction of Studio, up to crash

The common parameters to all the objects of this family are:
  • Width sets the width of the media (in pixels)
  • Height sets the height of the media (in pixels). These parameters seem useless. By default, Studio seems to use values from the rendering format of your project. Personally I never use them.


type ="ImageExplicit"


This object lets you select image or video files, or declare Drop Zone to be used in the montage theme.
It is important to note that the presence of an object ImageExplicit is mandatory to get a display of your theme. Otherwise, the theme will only produce a black image
  • SourceType is mandatory and is always srcExplicit
  • PreHold allows you to freeze the media until the time set in parameter (in seconds). A film will be frozen, the sound turned off, and start at the fixed time. The fixed time start since the beginning of the life of the object (parameter Start tag imgObjectTime ). So beware that the value given make the media start before its end and before the end of the theme, unless, as usual, you'll crash Studio !
  • PostHold allows you to freeze the media before the end of life of the object. The value set is the period during which the object will be frozen before its end of life (parameter End in imgObjectTime tag). So beware that the given value makes the media start after the beginning of the theme, unless, as usual, you'll crash Studio again!
  • PreHoldTimeType can take the value ttAbsolute to indicate that value in the parameter PreHold is account since the beginning of the theme (time = 0) and not since the beginning of life of the object image ...
  • IsPSD This parameter appears in Studio 14. I do not understand its meaning .

specific settings for drop zone
  • DropZone with value from 1 to 6 creates the drop zone in the corresponding theme editor. Note that if you create the drop zone 2, and the drop zone 1 does not exist in your project, you will see two drop zones in the theme editor, only the latter will be useable. Be careful to create your drop zones in incremental order.
  • Modifiable This setting affects the presentation of the drop zone. If the object is not a drop zone, then this parameter will be ignored. It may take some or all the following values. mtDrop (required), mtAudio will set a little loudspeaker to control sound of the media dropped into the drop zone. If mtAudio is omitted, the sound will be disabled. mtStart will make the theme stretchable on the left side when on the timeline and mtEnd which will make the theme stretchable on right when on the timeline. Note that a same drop zone cannot in practice have these 2 parameters MtStart and mtEnd at the same time, even if no error message will be displayed, only the property mtEnd will be considered.
  • keepWithNext takes the values 0 and 1 . I confess I do not understand what this parameter does
  • FitMode takes the value fitHeightKeepAspect . Again, I have not understood ...

Specific Parameters for media files
  • ImageName is used to enter the full name of file containing the media to process.
  • ReplaceName This setting is used when the file will be selected from a dropdown list in the montage theme interface. It names the default file that will be replaced by the user's choice.

Additional Section for file to be selected from the user interface.

If the media file must be selected from a dropdown list in the interface, we must add the object tag imgDynamicParmTypes to declare the dynamic parameters of the object.
Within this tag, there will be a dynamic parameter defined in a tag imgParmType
  • ReplaceName which will contain four attributes in addition to its name, Default that can be left to " " Range that defines the type of file will be selected as" filename, JPEG Files .jpg" (JPEG and .jpg can be replaced respectively by PNG and .png or MPG and .mpg, and certainly a lot of other file type that I have not tested ). You understand here that all the files in the list of choices should have the same type. Then Usage is always usageDynamic and Type takes the value vtString

example:

  <imgObject Type="ImageExplicit" ID="3">
  <imgObjectTime Ver="2" Start="0" End="11.4828"/>
  <imgParameterList>
    <imgParm Name="Name">Drop 1.Image</imgParm>
    <imgParm Name="SourceType">srcExplicit</imgParm>
    <imgParm Name="Width">720</imgParm>
    <imgParm Name="Height">480</imgParm>
    <imgParm Name="DropZone">1</imgParm>
    <imgParm Name="Modifiable">mtDrop|mtStart|mtAudio</imgParm>
    <imgParm Name="PostHold">8.5</imgParm>
  </imgParameterList>
  </imgObject>

In Pinnacle Studio, open the Theme Editor and select the mounting series 1 - ImageExplicit . You will see how an image is created and a drop zone. By slipping in a video, you can test the effect of parameter PreHold by the theme unfold in time using the viewer.

back


type ="ImageGlyphCache"

This object is used for the display of dynamic text. It is a sort of "blank sheet" on which a layout object Text will write. thus, this object has no specific setting.
 
example:

<imgObject Type="ImageGlyphCache" ID="10">
  <imgObjectTime Ver="2" Start="0" End="8"/>
  <imgParameterList>
      <imgParm Name="Name">ImageGlyphCache</imgParm>
  </imgParameterList>
</imgObject>


back


type ="ImageTextLayer"


This image object can define a text which is then used as an image. Note that the background area around the text will be transparent.
They are more Parameters than for the object ImageGlyphcache :
  • TextString (string) is the text to display. Most often, the text is passed as a parameter via an object Template . In this case, it is strongly recommended that the value of TextString is strictly identical to the default value in the object Template
  • OrigSceneWidth (in pixels) used to indicate the reference geometry of the text (referring to the parameter Width of the object and to SceneWidth Item in Scene object .
  • OrigSceneHeigth (in pixels) the same for the height.
  • OrigScenePixelAspect (aspect ratio) ditto for the geometry of the pixel. This parameter is useful to change the text size from the theme interface.
  • TextWidth (% of reference screen size) indicates the width of the text bounding box. value 0 turns off the setting and is equivalent to the value 1 (100%)
  • TextHeight (% of reference screen size) indicates the height of the text bounding box. These two parameters allow to control the area where the text will be written.
  • JustifyHorizontal controls the horizontal text position in the rectangle defined by the parameters TextWidth and TextHeight . values are tjhLeft tjhCenter , and tjhRight for positioning respectively from the left , centered, or on the right.
  • JustifyVertical lets you control the vertical text position in the rectangle defined by the parameters TextWidth and TextHeight . Possible values are tjvTop, tjvCenter, and tjvBottom for positioning respectively from topt, centered, or from the bottom line.
  • WordWrap can take the value 0 . When this parameter is 0 , the text can go on line anytime within a word. (this may be practical to create a text with letters below each other ). By default, the text will go on line only between 2 words.
  • PercentLeading controls vertical distance between each line of text. The value seems to be a percentage of reference screen size.

We will then found asection bounded by the tag imgTextLayer which will contain itself several sections we will now detail.
The First section is bounded by the tag Fonts, and always takes the following form:

    <Fonts>
        <F0 N="Clarendon BT" H="72" W="0" I="0" B="0" U="0" S="0"/>
    </Fonts>

  • N is the name of the font to be used. Please provide a valid name. Pinnacle Studio's title edito may help to discover all the fonts available on your computer. In Studio 14, it will be possible to change the font specified in this parameter from the theme interface in this case. However, it will set the default font.
  • H gives the size of the font (in pixels)
  • W indicates the width (in pixels) of the font. value 0 is recommended, it states to respect the font original aspect.
  • I with the value 1 gives  italic
  • B with the value 1 gives Bold
  • U with the value 1 underline
  • S with the value 1 scratch

We then find a section bounded by the tag Looks that will always take the following form:

    <Looks>
        <L0 D="A" W="0" H="0"/>
    </Looks>

It seems that parameter H acts on the height of the characters, but I did'nt achieve to understand the logic completely. I am still questioning the meaning of the parameters D and W . In any case, my advice is to reproduce this section at the same!
There, we find a section bounded by the tag Letters whose usefulness is questionable, the themes work fine without it ! (however it seems to be a little different for motion titles ...). I therefore propose to ignore this section.

example: open theme 1 - ImageTextLayer in the series 20cents Training . It features the following object, and allows you to test the effect of parameters TextWidth , TextHeight, OrigScenePixelAspect, and PercentLeading


<imgObject Type="ImageTextLayer" ID="10">
    <imgObjectTime Ver="2" Start="0" End="5"/>
    <imgParameterList>
        <imgParm Name="Name">TextLayer.Image</imgParm>
        <imgParm Name="Width">720</imgParm>
        <imgParm Name="Height">576</imgParm>
        <imgParm Name="TextString">Image Text Layer</imgParm>
        <imgParm Name="JustifyHorizontal">tjhLeft</imgParm>
        <imgParm Name="OrigSceneWidth">720</imgParm>
        <imgParm Name="OrigSceneHeight">576</imgParm>
        <imgParm Name="OrigScenePixelAspect">1.42</imgParm>
    </imgParameterList>
    <imgTextLayer>
      <Fonts>
        <F0 N="GrilledCheese BTN Cn" H="48" W="0" I="0" B="0" U="0" S="0"/>
      </Fonts>
      <Looks>
        <L0 D="A" W="0" H="0"/>
      </Looks>
  </imgTextLayer>
</imgObject>

training montage theme 1 - ImageTextLayer will give you the opportunity to test some parameters to change including the framing and the apparent size of the police. numerical values located within brackets [] represent the minimum and maximum variation programmed for each cursor. This allows you to understand the values to give to those parameters for the desired rendering .

back



type ="ImageGradient"


Here's a rare item, since I have found only once in Pinnacle's montage themes ! So, its precise function and its parameter list is given under all reserves ...
As its name suggests, this object generates a background with a color gradient. Parameters are:

  • SourceType value will srcLocal , which indicates that the object does not fetch external resource .. .
  • ColorComponents which allows a set of 8 values that represent the components Alpha (transparency), Red, Green and Blue color for each of the 2 colors of the gradient. The object building by itself the gradient. Each value will be in the range [0 .. 1], with a ';' for separator.
  • Angle (in degrees) indicates the propagation direction of the gradient. Be careful when you use round numbers, especially 0 which sometimes causes unexpected results. In this case, use instead 0.7

example : open theme 1 - ImageGradient in the series 20cents Training . It showcases the next object, and allows you to test the effect of parameter Angle

  <imgObject Type="ImageGradient" ID="10">
  <imgObjectTime Ver="2" Start="0" End="5"/>
  <imgParameterList>
    <imgParm Name="Name">Gradient.Image</imgParm>
    <imgParm Name="SourceType">srcLocal</imgParm>
    <imgParm Name="ColorComponents">0.2;1;0;0;1;0;1;0;</imgParm>
    <imgParm Name="Angle">0.07</imgParm>
  </imgParameterList>
  </imgObject>

By downloading training montage themes 1 - ImageGradient you can observe what this object can produce. Note that I did not find how to set the colors of departure and arrival from the interface of the theme editor.

back

Layout objects


Common settings to all layout objects


Layout objects allow positioning a clip in a 3-dimensional space and to make them rotate around 3 axes with a programmable center. It is also possible to choose the apparent size of the object ...
  • PivotX adjusts the horizontal center of rotation of the object. The value -1 is the left edge of the clip, 1 to the right edge. You can give this parameter a value beyond this range if needed !. Note that when you change a setting Pivot , you will see a displacement of the clip, because the coordinates defined by the Position parameters are position relative to the rotation center and not to the center the clip. . PivotX will be used to change the center of rotation around the vertical axis or around the axis Z (see RotationY and RotationZ )
  • PivotY adjusts the vertical position of center of rotation the object. PivotY will be used to change the center of rotation around the horizontal axis and the Z axis (see RotationX and RotationZ )
  • PivotZ adjusts the depth of the rotation center of the object. PivotZ will be used to change the center of rotation around the horizontal or vertical axis (see RotationY and  RotationY )

  • PositionX sets the horizontal position of the center of rotation of the clip. Amplitude 1 is the full width of the window containing the clip.
  • PositionY allows you to adjust the vertical position of center of rotation of the clip. Amplitude 1 is the height of the window containing the clip.
  • PositionZ can adjust the depth of the center of rotation of the clip. It remains difficult to find good values for this parameter. In general, you should go experimentally to find the right setting . Note that Studio can manage the displays for PositionZ between -99 and 99 . The clip portions located beyond these values will simply not be displayed . These limits are after application of the different effects of scale, rotation, etc ...

  • RotationX (in degrees) rotation around the horizontal axis
  • RotationY (in degrees) rotation around the vertical axis
  • RotationZ (in degrees) rotation  around the axis perpendicular to the screen

  • ScaleX adjusts the scale on the horizontal axis. The value 1 is the default. A smaller value will reduce the apparent size of the clip, a larger value will zoom.
  • ScaleY adjusts the scale on the vertical axis
  • scale adjusts the scale along the axis of depth

In Studio, open the Montage Theme menu and load series 20cents Training . place the topic 2 - common layout parameters on the timeline and test the effect of each of these settings!
There are still other parameters generally applicable to all layout objects. They are less useful, but for the completeness of this document, I mention them here.
  • Distance whose value must be positive, acts as a multiplier off the depth (Z) value. Calculating its value remains rather mysterious, and  experimtal trial  remains needed
  • Visible indicates if the object is visible (default 1 ) or invisible (value 0 ).
  • ObjectColorAlpha adjust the transparency level of the clip. 0 means that the object is totally transparent (invisible) and 1 it is completely opaque.
  • Width (between 0 and 1) gives the width of the clip (seems equivalent to ScaleX)
  • Height (between 0 and 1) gives the height of the clip (seems equivalent to ScaleY)
  • AutoAdjustAspect with the value 1 maintains the geometry of a 4:3 format in a 16:9 project. (by default, only the contents of drop zones are zoomed to fill the area of video if necessary. The images and video used in a montage theme are adapted to fit the screen as required by deforming their geometry unless AutoAdjustAspect is set to 1.)

In Pinnacle studio, open the theme menu and tload he series 20cents Training . place the theme 2 - common layout parameters bis on the timeline and test the effect of each of these settings!

back

type ="Plane"


object Plane is the simplest layout object. It simply displays the image source, possibly with color modifications. Settings are:
  • ObjectColorRed (between 0 and 1) is the proportion of red color to add to the image
  • ObjectColorGreen (between 0 and 1) is the proportion of green color to add to the image
  • ObjectColorBlue (between 0 and 1) is the proportion of blue color to add to the image

example:

<imgObject Type="Plane" ID="9">
  <imgObjectTime Ver="2" Start="0" End="14"/>
  <imgParameterList>
      <imgParm Name="Name">Background</imgParm>
      <imgParm Name="PositionZ">90</imgParm>
      <imgParm Name="ObjectColorRed">0.713725</imgParm>
      <imgParm Name="ObjectColorGreen">0.862745</imgParm>
      <imgParm Name="ObjectColorBlue">0.733333</imgParm>
  </imgParameterList>
</imgObject>

In Pinnacle Studio 12 and 14, open the theme interface and select the series 20cents Training. Put the theme 2 - Plane on the timeline and test the effect of each of these parameters!

back


type ="Wipe"


Object Wipe allows you to display the source image with various layout. You can get a border with adjustable size and color, and if you want, a soft edge (such as a button to click!). you can also put your medio within a circle . Parameters are:
  • Shape This parameter can take values shSquare to create a presentation in a rectangle with a colored border, shRound to create a presentation in a circle with a colored border, shEdge which will shade the edge of the source image, or shBands . In Studio 14 became a new value for this parameter shAngle which allow to take only an angular portion of your media.

  • BorderSize lets you specify the border size (in percentage of the size of the window)
  • BorderRed is the red component of the border  (between 0 and 1)
  • BorderGreen is the green component of the border (between 0 and 1)
  • BorderBlue is the blue component of the border (between 0 and 1)
  • Softness is the size of the soft border (as a percentage of the size of the window)
  • Progress (between 0 and 1) define the percentage of the source image will be visible in the window when Shape=shEdge.
  • Direction (in degrees) will define the direction of propagation of the effect . Please note that if you want to propagate your effect on the right (0 degrees), avoid a round value such 0, choose a decimal type 0.7

example:

<imgObject Type="Wipe" ID="9">
  <imgObjectTime Ver="2" Start="0" End="8"/>
  <imgParameterList>
      <imgParm Name="Name">Drop 2_ending</imgParm>
      <imgParm Name="Shape">shEdge</imgParm>
      <imgParm Name="Softness">0.2</imgParm>
      <imgParm Name="Progress">0.468</imgParm>
      <imgParm Name="Direction">180.1</imgParm>
  </imgParameterList>
</imgObject>

In Pinnacle Studio, open the theme editor and select the series 20cents Training. Put the theme 2 - Wipe on the timeline and test the effect of each of these parameters on the 5 shape values of Wipe object !

back


type ="PIP"


Here's an object for montage theme which contains all the possibilities offered by the PIP (Picture In Picture) video effect. It's something particularly rich in term of possibilities for borders and shading. The parameters are :
  • BorderBlue (between 0 and 1) gives the blue component of the window border
  • BorderGreen (between 0 and 1) gives the green component of the window border
  • BorderRed (between 0 and 1) gives the red component of the window border.
  • BorderSize  Note that the scale size of the border for the PIP object is different from that of the Wipe object. The value 1 here gives a border of a size of about 25% of the window.
  • BorderSoftness (between 0 and 1) can give an appearance of relief to the border
  • CornerRadius (between 0 and 1) allows to round the corners of the window and the border.
  • PipHeight sets the window height. This setting seems quite similar to the parameter ScaleY
  • PipWidth sets the width of the window. This setting seems quite similar to the parameter ScaleX
  • PipX adjusts the horizontal position of the window. The center is the value 0.5
  • PipY adjusts the vertical position of the window . The center is the value 0.5
  • ShadowDirection It is possible to providea shadow to the PIP object. This parameter is used to fix the apparent direction.
  • ShadowOffset to adjust the distance between the windows and its shadow.
  • ShadowOpacity adjusts the intensity of the shadow
  • ShadowSoftness adjusts the softness of the shadow.
  • Softness adds a blur around the window, or between the window and its border when existing.

<imgObject Type="PIP" ID="17">
  <imgObjectTime Ver="2" Start="0" End="8"/>
  <imgParameterList>
    <imgParm Name="Name">line4_2</imgParm>
    <imgParm Name="Width">0.17</imgParm>
    <imgParm Name="Height">0.15</imgParm>
    <imgParm Name="Softness">0.075</imgParm>
    <imgParm Name="CornerRadius">0.15</imgParm>
    <imgParm Name="BorderSize">0.15</imgParm>
    <imgParm Name="BorderSoftness">0.266</imgParm>
    <imgParm Name="BorderRed">1</imgParm>
    <imgParm Name="BorderGreen">1</imgParm>
    <imgParm Name="BorderBlue">1</imgParm>
  </imgParameterList>
</imgObject>

To understand the exact role of each of these parameters, place the  PIP montage theme on the timeline, and play with each setting one by one to see their effects.

back



type ="IMGPlane"


This object is close to the Plane object. It allows to cut the MainImage using a shape given in the ShapeImage of the corresponding Material object. The specificity of this object is its ability to manipulate the settings of the ShapeImage object ,  for example to take just a part, pan, zoom, etc ... Of course,
  when we use a ShapeImage , it's not possible to apply a color effect on the main image.

The parameters of the object are:
  • FillHeight adjusts the height of the main image.
  • FillWidth adjust the width of the main image.
  • FillPosX adjusts the horizontal position of the main image.
  • FillPosY adjusts the vertical position of the main image.

  • ShapeHeight adjusts the height of the shape image.
  • ShapeWidth width of the shape image.
  • ShapePosX horizontal shape image.
  • ShapePosY vertical position of the shape image.

<imgObject Type="IMGPlane" ID="13">
  <imgObjectTime Ver="2" Start="0" End="11.96"/>
  <imgParameterList>
      <imgParm Name="Name">Leaf 1</imgParm>
      <imgParm Name="FIllPosX">0.2</imgParm>
      <imgParm Name="FillPosY">0.15</imgParm>
  </imgParameterList>
</imgObject>

To understand the exact role of each of these settings, set the theme IMGPlane on the Pinnacle Studio timeline, and change the settings one by one to see their effects.


back



type ="SphereSection"


As its name suggests , this object will be used to map a source image on a curved surface (portion of a cylinder or sphere). The parameters of this object are :
  • ObjectColorBlue (between 0 and 1, default = 1) blue tint percentage applied to the image
  • ObjectColorGreen (between 0 and 1, default = 1) blue tint percentage applied to the image
  • ObjectColorRed (between 0 and 1, default = 1) blue tint percentage applied to the image
  • XCurvature (between -1 and 1) curvature around the horizontal axis. The value gives the percentage of the circumference to be occupied by the image source. A negative value will reverse the winding direction
  • YCurvature (between -1 and 1) curvature around the vertical axis. The value gives the percentage of the circumference to be occupied by the image source.

example:

<imgObject Type="SphereSection" ID="70">
  <imgObjectTime Ver="2" Start="0" End="30"/>
  <imgParameterList>
      <imgParm Name="Name">SphereSection</imgParm>
      <imgParm Name="RotationY">-315.4</imgParm>
      <imgParm Name="PivotZ">62</imgParm>
      <imgParm Name="XCurvature">0.24</imgParm>
  </imgParameterList>
</imgObject>

In Pinnacle Studio, open the theme editor and select the series 20cents Training. Put the topic 2 - SphereSection on the timeline and test each of these settings!

back



type ="Videowall"


This object can display a source image as a set of smaller rectangles containing either the source image itself (reduced of course!), or a fraction of the source image itself. It will then be possible to make animations on each of its parts using behavior objects ...
Specific parameters are:
  • CellParent to control whether the behavior objects will action the elements line by line (default) or by column (requires information CellParent with the value cpColumns)
  • Columns indicates the number of columns for the object (integer, works fine until 20 or 30. Exceeding these values may drive to slowdowns ...)
  • Rows indicates the number of rows for the object (integer, works fine until 20 or 30. Exceeding these values may drive to slowdowns ..)
  • Divisions indicates which subsets can be manipulated by the objects behavior. This is a list of value among Columns and Cells
  • Replicate indicates whether the elementary rectangles reproduce each image source (value 1 ) or whether each elementary rectangle is a fraction of the source image (value 0 )

<imgObject Type="VideoWall" ID="14">
  <imgObjectTime Ver="2" Start="0" End="12"/>
  <imgParameterList>
      <imgParm Name="Name">Background wall</imgParm>
      <imgParm Name="Divisions">Columns,Cells</imgParm>
      <imgParm Name="Rows">6</imgParm>
      <imgParm Name="Columns">6</imgParm>
      <imgParm Name="CellParent">cpColumns</imgParm>
      <imgParmName="Replicate">1</imgParm>
  </imgParameterList>
</imgObject>

In Studio, open the theme editor and select the series 20cents Training . Put the theme 2 - Videowall on the timeline and test the effect of each of these settings!

back



type ="Text"


This presentation object can compose a text in combination with the object source image  ImageGlyphCache. This is another method for displaying text, the first being to use a source image type ImageTextLayer and a layout object type, for example Plane (all the other layout object except Text can be used of course).
The advantage of this method is that each letter or each word can be manipulated using the behavior objects, which will create any kind of motion text. It is this type of object which is operated by the Motion Titles in Studio 14 ...

Specific parameters are:
  • Divisions indicates which subsets can be manipulated by the behavior objects. This is a list of value among Layer which means the entire text, Lines manipulate the lines one by one, Words to give effect word by word, Letters will affect the letters one by one, and finally Details which is useless for  montage themes,  ...
  • TextString (string) is the text to display. Most often, the text is passed as a parameter via an object Template . In this case, it is strongly recommended to set strictly identical value for TextString and for default value in the object Template.
  • OrigSceneWidth (in pixels) used to indicate the reference geometry of the text (referring to the parameter Width of the object or SceneWidth in Scene object).
  • OrigSceneHeigth (in pixels) the same for the height.
  • OrigScenePixelAspect (aspect ratio) ditto for the geometry of the pixel. This parameter is useful to change the text size from the theme editor.
  • TextWidth (% of screen size reference) indicates the width of the text bounding box. value 0 turns off the setting and is equivalent to the value 1
  • TextHeight (% of screen size reference) indicates the height of the text bounding box. These two parameters allow to control the area where the texte will be written.
  • JustifyHorizontal  controls the horizontal text position in the rectangle defined by the parameters TextWidth and TextHeight . values are tjhLeft tjhCenter , and tjhRight for positioning respectively from the left , centered, or on the right.
  • JustifyVertical lets you control the vertical text position in the rectangle defined by the parameters TextWidth and TextHeight . Possible values are tjvTop tjvCenter , and tjvBottom for positioning respectively from the top, centered, or from the bottom.
  • WordWrap can take the value 0 . When this parameter is set to 0 , the text can go on line anytime within a word. (this may be practical to create a text with letters below each other ). By default, the text will go on line only between 2 words.
  • PercentLeading (value) set the inter line height. The value seems to be a percentage of screen size reference.

We will found then a section bounded by the tag imgTextLayer which will contain itself several sections that we will now detail.
The first section is delimited by the tag Fonts. This section always takes the following form:

    <Fonts>
         <F0 N="Clarendon BT" H="72" W="0" I="0" B="0" U="0" S="0"/>
    </Fonts>

  • N is the name of the font to be used. Please provide a valid name. Pinnacle Studio's title edito may help to discover all the fonts available on your computer. In Studio 14, it will be possible to change the font specified in this parameter from the theme interface in this case. However, it will set the default font.
  • H gives the size of the font (in pixels)
  • W indicates the width (in pixels) of the font. value 0 is recommended, it states to respect the font original aspect.
  • I with the value 1 gives  italic
  • B with the value 1 gives Bold
  • U with the value 1 underline
  • S with the value 1 scratch

We then find a section bounded by the tag Looks that will always take the following form:

    <Looks>
        <L0 D="A" W="0" H="0"/>
    </Looks>

It seems that parameter H acts on the height of the characters, but I did'nt achieve to understand the logic completely. I am still questioning the meaning of the parameters D and W . In any case, my advice is to reproduce this section at the same!
There, we find a section bounded by the tag Letters whose usefulness is questionable, the themes work fine without it ! (however it seems to be a little different for motion titles ...). I therefore propose to ignore this section.

<imgObject Type="Text" ID="39">
  <imgObjectTime Ver="2" Start="0" End="25"/>
  <imgParameterList>
      <imgParm Name="Name">Text</imgParm>
      <imgParm Name="Divisions">Layer,Lines,Words,Letters,Details</imgParm>
      <imgParm Name="TextWidth">0.75</imgParm>
      <imgParm Name="TextHeight">0.5</imgParm>
      <imgParm Name="TextString">Text</imgParm>
      <imgParm Name="OrigSceneWidth">720</imgParm>
      <imgParm Name="OrigSceneHeight">480</imgParm>
      <imgParm Name="OrigScenePixelAspect">1.18518</imgParm>
  </imgParameterList>
  <imgTextLayer>
      <Fonts>
        <F0 N="Clarendon Lt BT" H="36" W="0" I="0" B="1" U="0" S="0"/>
      </Fonts>
      <Looks>
        <L0 D="A" W="0" H="0"/>
      </Looks>
    <Letters>
    <L0 C="84" F="0" L="0" K="0"/>
    <L1 C="101" F="0" L="0" K="0"/>
    <L2 C="120" F="0" L="0" K="0"/>
    <L3 C="116" F="0" L="0" K="0"/>
    </Letters>
  </imgTextLayer>
</imgObject>

back


type ="FlagWave"


This object can map an image on a flag. It will be then possible to animate this objects using a behavior object as we will see later ...
The specific parameters are:
  • Progress to control the progression of movement
  • Quality
  • WaveAngle (in degrees, 0 is the vertical) defined the angle of movement of the flag
  • WaveCount
  • WaveHeight (between 0 and 1) adjust the amplitude of movement of the flag in its depth.
  • WaveRandom (between 0 and 1) to differentiate movements of different FlagWaves objects configured identically, giving movements slightly different providing more realism to the scene.
  • WaveVary

Note that the FlagWave effect of a fixed size covering all the window. To change this, indeed, play with the parameters Width and Height to change the apparent size, and then with ScaleX and ScaleY to bring the flag to the wanted size.

example:

<imgObject Type="FlagWave" ID="25">
  <imgObjectTime Ver="2" Start="0" End="10"/>
  <imgParameterList>
      <imgParm Name="Name">fishy</imgParm>
      <imgParm Name="WaveHeight">0.171</imgParm>
      <imgParm Name="WaveCount">3.78</imgParm>
      <imgParm Name="WaveAngle">1.44</imgParm>
      <imgParm Name="WaveVary">16.04</imgParm>
      <imgParm Name="WaveRandom">0.748</imgParm>
      <imgParm Name="Quality">0</imgParm>
  </imgParameterList>
</imgObject>

In Pinnacle studio, open the theme editor and select the series 20cents Training . Put the theme 2 - FlagWave on the timeline and test the effect of each of these parameters!

back



type ="LensFlare"

The following is an ersatz of the corresponding video effect, but integrated into montage theme language. It creates dozens of different effects, but remains difficult to master ...
The LensFlare effect consists of 3 primary elements: a light source (Glow), light rays (Ray) and finally kind of reflection (Reflect). For each of these three elements, you will have to choosein a list which I have not fully explored. It seems that there are a lot ...
Note that, exceptionally, LensFlare object  is not connected to an image object (via its object Material )
Control settings are :
  • GlowType type of light source (between 1 and 30?)
  • Size size of the light source (between 0 and 1)
  • Intensity radiation intensity (between 0 and 2.5)
  • RayType type of ray
  • RayIntensity ray intensity
  • RayRotation ray rotation
  • ReflectType type reflections
  • ReflectIntensity intensity reflections
  • RotateHorizontal the effect of horizontal rotation relative to a point Central
  • RotateVertical Vertical rotation effect with respect to a central point

example:

<imgObject Type="LensFlare" ID="13">
  <imgObjectTime Ver="2" Start="0" End="5"/>
  <imgParameterList>
      <imgParm Name="Name">LensFlare</imgParm>
      <imgParm Name="PositionZ">10</imgParm>
      <imgParm Name="GlowType">1</imgParm>
      <imgParm Name="Intensity">3</imgParm>
      <imgParm Name="RayType">24</imgParm>
      <imgParm Name="RayIntensity">0.5</imgParm>
      <imgParm Name="RayRotation">0</imgParm>
      <imgParm Name="Size">1</imgParm>
  </imgParameterList>
</imgObject>


to better understand the different possibilities of this object, I invite you to test my training montage theme 2 - LensFlare

back



type ="Peel"


This article is intended to produce peeling effect by progressively rolling an image.
The parameters of this object are :
  • Progress (between 0 and 1 ) adjusts the position of peeling movement
  • CurlAmount adjust the amount of the media curled
  • Direction (between -180 and 180 degrees) indicates the direction of leaf curl.
  • Radius adjusts the winding radius (the unit remains to be indentified ...). value 0 will correspond to a fold, while a higher value (10) gives a more rounded effect ...

example:

<imgObject Type="Peel" ID="9">
  <imgObjectTime Ver="2" Start="0" End="6"/>
  <imgParameterList>
      <imgParm Name="Name">Tape</imgParm>
      <imgParm Name="ScaleX">0.230126</imgParm>
      <imgParm Name="ScaleY">0.230126</imgParm>
      <imgParm Name="ScaleZ">0.230126</imgParm>
      <imgParm Name="Width">2.66667</imgParm>
      <imgParm Name="Height">2.25</imgParm>
      <imgParm Name="Radius">4.44</imgParm>
      <imgParm Name="Direction">173.16</imgParm>
      <imgParm Name="CurlAmount">166.68</imgParm>
  </imgParameterList>
</imgObject>

to better understand the different possibilities of this object, you could take advantage of testing my training montage themes 2 - Peel

back



type ="Tiles"

This object cuts a source image in small rectangular pieces, which allows all kinds of animations. Its behavior is once again difficult to master ... The better will be to play with my training theme to see exactly how this object works ...

The parameters are:
  • Columns shows the number of columns in which the mediaw will be cut
  • Rows shows the number of lines in which the media will be cut
  • FloorLevel is the vertical position toward which converge the various pieces of the media.
  • Progress is used again to control the evolution of the movement.  Progress will mainly be managed using behavior object Keyframer for example.
  • RandomSeed will give a random component to the movement, for example when mixing 2  Tiles objects moving at the same time, they will not overlap.
  • ScatterX sets the horizontal dispersion element
  • ScatterZ sets the dispersion of different elements in depth.
  • Stagger
  • TileRotation

example:

<imgObject Type="Tiles" ID="55">
  <imgObjectTime Ver="2" Start="0" End="30"/>
  <imgParameterList>
      <imgParm Name="Name">Tiles</imgParm>
      <imgParm Name="Rows">38</imgParm>
      <imgParm Name="Columns">77</imgParm>
      <imgParm Name="Stagger">0.676</imgParm>
      <imgParm Name="ScatterX">0.824</imgParm>
      <imgParm Name="ScatterZ">0</imgParm>
      <imgParm Name="FloorLevel">-2</imgParm>
      <imgParm Name="TileRotation">2.38</imgParm>
      <imgParm Name="RandomSeed">1179</imgParm>
  </imgParameterList>
</imgObject>

To better understand the different possibilities of this object, you could take advantage in testing my training montage themes 2 - Tiles

back

Object Material


type ="Material"


 Material object allows to materialise an image object by defining the portion to consider, and possibly by adding a coloring effect. Each clip on the screen is represented by a single object Material
The following settings are available:
  • MainImage points to the ID of the source image. This parameter is always present, except for the presentation object LensFlare
  • Dependent is mandatory and is always the number of the Scene object  ID  or 1

Color effects. Attention They will not work if the presentation object is of type Wipe or PIP

  • AmbientColorBlue sets an AmbientColor on layout object. the Ambient Color is quite lighter than the ObjectColor ...
  • AmbientColorGreen
  • AmbientColorRed
  • DiffuseColorBlue is equivalent to the parameters ObjectColor which apply them on the layout object.
  • DiffuseColorGreen
  • DiffuseColorRed
  • EmissiveColorBlue Provides an emissive color from an object as if the light gone throught it. This emissive lighting will come from opposite side to the source light (which is invariably from left of the screen). This effect applies only when the object is placed in a 3-dimensional space. (Assumes that the parameter UseLighting or 1 )
  • EmissiveColorGreen
  • EmissiveColorRed
  • SpecularColorBlue Provides a color for reflection of source lighting (suppose the parameter UseLighting or 1 )
  • SpecularColorGreen
  • SpecularColorRed
  • SpecularPower Adjust the power source for illuminating the scene, and thus the intensity of colors specified with the parameters SpecularColor .
  • UseLighting is either 0 or 1. When the value 0 is used, the object is not illuminated, and there will be no effect of reflection on it.
  • DiffuseColorAlpha is equivalent to setting ObjectColorAlpha which applies to a layout object.

The Material object also allows to crop the source image. There are different possibilities which part of the source image you want to consider.
  • TexturePositionX defines the abscissa of the upper left corner of a rectangle that defines the part of the source image to be processed in the layout object. Its value varies from 0 to 1, with 0 being the leftmost position in the image 1, the position furthest to the right.
  • TexturePositionY defines the ordinate of upper left corner of a rectangle that defines the part of the source image to be processed in the layout object. Its value varies from 0 to 1, with 0 being the topmost position in the image 1, the bottom-most position.
  • TexturePercentX sets the percentage of the image on the X axis to be addressed in the layout object. Its value is between 0 and 1. The sum of TexturePositionX and TexturePercentX should normally be less than or equal to 1.
  • TexturePercentY sets the percentage of the image on the Y axis to be addressed in the layout object. Its value is between 0 and 1. The sum of TexturePositionY and TexturePercentY should normally be less than or equal to 1.
  • ShapeImage contains the ID of an Image object type .png. This image should have some transparent (Alpha) parts which will define the shape that will applie on the source image pointed by the parameter MainImage
  • SecondImage contains the ID of an object image or a video. The image object will be used by a shading object GradientWipe to erase all parties whose intensity level is lower than the current value of the Progress parameter (by varying Progress from 0 to 1, then we obtain an Alpha transition).

Other parameters :
  • CullMode By default, an object can be viewed upright and upside down (for example when we apply the rotation ...). For example, If you want to have two different images on two sides of a playing card , you should use this setting CullMode which will display an object when on Front face (value = cmBackFace)  or on its back face (value = cmFrontFace ).
  • AutoAspectZoom I do not understand what is the purpose of this setting ...
  • BlendMode to make a transparency effect to the object. This setting does not seem to be different than parameter DiffuseColorAlpha .

example:

  <imgObject Type="Material" ID="62">
  <imgObjectTime Ver="2" Start="0" End="30"/>
  <imgParameterList>
    <imgParm Name="Name">Material</imgParm>
    <imgParm Name="Dependent">1</imgParm>
    <imgParm Name="MainImage">7</imgParm>
    <imgParm Name="AmbientColorRed">1</imgParm>
    <imgParm Name="AmbientColorGreen">1</imgParm>
    <imgParm Name="AmbientColorBlue">1</imgParm>
    <imgParm Name="TexturePercentX">0.1</imgParm>
    <imgParm Name="TexturePercentY">0.1</imgParm>
  </imgParameterList>
  </imgObject>

To test firsthand the effect of these parameters, drag the theme 3 - Material in Series 20cents Training on the timeline of the studio, and adjust the parameter RotationZ to see the lighting effects. Different objects are displayed to better understand the effect of parameter CullMode and of parameter BlendMode .

back

Object Container (NullObject)



type ="NullObject"


This object is essential. This is a container for one or more layout object ( Plane, Wipe , etc. ...). Its purpose will be to move multiple objects in a single operation without altering their relative 3D geometry. Indeed, the center of rotation of the moving object will be the one of the container and not each center of rotation of each objects. This property may also be utilized to perform simultaneous rotation of one object around several centers of rotation, like rotating the Earth around the Sun, and also on itself  (and the moon around the Earth, good exercice !)...

parameters for an object type NullObject are just the parameters of size and position applicable to all layout objects, are:

  • PivotX, PivotY, PivotZ
  • PositionX, PositionY, PositionZ
  • RotationX, RotationY, RotationZ
  • ScaleX, ScaleY, scale

You should notice that some parameters don't have any effect on a NullObject , and especially that these parameters can't apply a NullObject and shoulb be applied on each of the objects contained within. For example, if I want to apply a transparency effect on NullObject , you should apply the parameter ObjectColorAlpha on all layout objects embedded in the NullObject , and not on the NullObject itself !
 

back

behavior objects


Behavior objects are used to dynamicaly modify object settings throughout the duration of the montage theme. It's the solution to move windows, modify their size, or any other movement you may imagine. In fact, almost all parameters of layout objects or Material object can be modified using behavior objects.

back


type ="KeyFramer"


object KeyFramer is the most common behavior objects. It allows you to specify successive values associated to different timestamp for a list of parameters in the montage theme, just like you can do when using key images to sets a video effect by key images.
A Keyframer object only changes the parameters of a single object. When it is applied to several objects of the same type, it may happen that the movements are executed one after the other. This is particularly the case when we change the elements of an object one by one (with a VideoWall or a Text).

The Keyframer takes the following parameters:

  • ModifyParameters is the list of parameter names which will be modified by the Keyframer. The list separator can be either a comma or a semicolon. Only the parameters listed here can be modified by this object Keyframer . This parameter is required.

The other parameters are optional and will only be used to animate separate elements of objects Text or Videowall . If the settings below are omitted, and the object KeyFramer is applied to an object Text or Videowall , then it will change the whole object at once, not element by element. These other parameters are:
  • AffectsDivision whose value is one of the values listed in the parameter Divisions of Text or Videowall object . Most often, it will take the value Cells
  • MultiTiming is a numerical value positive that will control the overlap of the movement of each element of the layout object. The value 1 indicate that an element begins its motion when the previous one will finish it. The value 0 will show that all elements will move at the same time, the value 2 mean that between the movement of 2 elements, there will be a time equal to the duration of the movement of one element. Obviously, all intermediate values are possible.
  • Order take one of three values: ordRandom will ask studio to process the different elements in a pseudo-random order. ordLastToFirst will process the element starting with the last, and ordFirstToLast will start with the first. Note that if the purpose is to animate a Videowall , the parameter CellParent will control whether the items are scanned by rows or columns.

After entering these parameters, the Keyframer needs to open a new tag called imgTimeCurveList which will list the chronology foreach parameter to be modified.
Each of these parameters will be described in a tag imgTimeCurve , which admit a first parameter Name whose value is the name of the parameter to edit (careful, you must necessarily have listed it in the parameter ModifyParameters of the Keyframer to effectively take it into account. There will be two Other parameters Pre whose value will 1 and Post whose values have the following meanings:
  • Post = 1 means that the movement will be executed only once in accordance with the description given by the different imgCurveKey to follow.
  • Post = 2 looks identical to 1 ...
  • Post = 3 indicates that the movement is repeated continuously throughout the lifetime of the object Keyframer , automatically chaining the last value at first. The movement will stop, however after the last cycle contained in the entire lifetime of the object.
  • Post = 4 indicates that the movement is repeated continuously throughout the lifetime of the object Keyframer , running alternately in the first tag imgCurveKey to the last, and vice versa.
  • Post = 5 indicates that the movement will be executed first normally, then in reverse (the last tag to the first), then the first tag to the last, but reversing the values (multiplied by -1), then the last tag to the first ever by multiplying by -1 values. Note the duration of the movement seems to be adjusted to the number of cycles during the entire lifetime of the object Keyframer .

Inside this tag imgCurveKey , we find each pair (time, value) in a tag imgCurveKey whose values are:
  • Type is an optional parameter that can take values following: cktLinear indicates that the parameter value changes linearly between 2 consecutive tag imgCurveKey time, or cktJump indicates that the parameter retains its previous value until it reaches the time specified in this tag, then the parameter will take the new value.
  • Time indicates (in seconds) the moment when the parameter will take the corresponding value.
  • TimeL is a parameter S14 (which is ignored by S12). It has the same valuer than Time but expressed in  1/100 000th of a second unit ! . So far, It can be ignored.
  • Value indicates the parameter value to associate with the moment Time
  • C0 then there are 6 parameters C0 C5 to specify the motion along a Bezier curve. In practice, they are impossible to define. Personally, I use the values C0 = C2 = 0.33 and 0.33 to make a smooth transition. When used, these parameters are an alternative to parameter Type

example:

<imgObject Type="Keyframer" ID="93">
  <imgObjectTime Ver="2" Start="5" End="9"/>
  <imgParameterList>
      <imgParm Name="Name">Keyframer.texte</imgParm>
      <imgParm Name="AffectsDivision">Cells</imgParm>
      <imgParm Name="MultiTiming">0.35</imgParm>
      <imgParm Name="Order">ordRandom</imgParm>
      <imgParm Name="ModifyParameters">PositionX,PositionY</imgParm>
  </imgParameterList>
  <imgTimeCurveList>
      <imgTimeCurve Name="PositionX" Pre="1" Post="1">
        <imgCurveKey Time="0" Value="0" C0="0.33" C2="0.33"/>
        <imgCurveKey Time="5" Value="1" C0="0.33" C2="0.33"/>
      </imgTimeCurve>
      <imgTimeCurve Name="PositionY" Pre="1" Post="1">
        <imgCurveKey Type="cktLinear" Time="0" Value="0"/>
        <imgCurveKey Type="cktLinear" Time="3" Value="0.5"/>
      </imgTimeCurve>
  </imgTimeCurveList>
</imgObject>

You can use my training montage theme 4 - Keyframer to test the effect of the parameter MultiTiming . To do so, put it on the timeline and start viewing the theme into the preview windows.
 

back


type ="Transformer"


The object Transformer allow to specify the final value of a parameter. It is really impractical and unhelpful. Personally, I use it only for set a movement from the theme interface, which is not possible with  KeyFramer object . Such manipulation requires already a large experience in montage theme programming...
... It is important to note that this object acts by changing the parameter value from its current value, and not to absolute value .
With this object, the timing control will only be realized with the parameters Start and End that will define the start and end of the action.

Parameters of the object Transform are:
  • ModifyParameters is the parameter name that you want to modify.
  • FinalPositionX indicate the change of the final value reached by the parameter PositionX . Note that almost all the parameters of the layout object and  Material object can be changed. Just given as parameter name Final followed by the name of the parameter to be modified ...
  • Reverse when it is the value 1 , should allow the object to operate in reverse (ie from the position final to the original position ...)

and if the layout object affected by this Transformer is  a Text or Videowall :
  • AffectsDivision whose value is one of the values listed in the parameter Divisions object Text or Videowall . Most often, it will have the value Cells
  • MultiTiming will be a positive numeric value that will control the overlap of the movement of each element of the presentation object. The value 1 indicate that an element begins its motion when the previous one will finish it. value 0 indicate that all elements will move at the same time, the value 2 mean that between the movement of two elements, there will be a time equal to the duration of the movement of one element. Obviously, all intermediate values are possible.
  • Order take one of three values: ordRandom will ask studio to process these different elements in a pseudo-random order. ordLastToFirst will move the element starting from the last one, ordFirstToLast will start with the first. Please note that if the purposet is to animate a Videowall , the parameter CellParent will select whether the items should be scanned by rows or columns.

example:

<imgObject Type="Transformer" ID="16">
  <imgObjectTime Ver="2" Start="6" End="9"/>
  <imgParameterList>
      <imgParm Name="Name">Transformer</imgParm>
      <imgParm Name="AffectsDivision">Cells</imgParm>
      <imgParm Name="ModifyParameters">ScaleY</imgParm>
      <imgParm Name="Order">ordRandom</imgParm>
      <imgParm Name="MultiTiming">1</imgParm>
      <imgParm Name="FinalScaleY">-1</imgParm>
  </imgParameterList>
</imgObject>

To test these parameters, you can use my training montage theme 4 - Transform to test the effect of parameter MultiTiming and a change of scale of various elements of an object Videowall . To do this, place it on the timeline and start viewing the theme.

back



type ="Fader"


object Fader is virtually identical to the object Transform , except it is designed to work on the transparency of the object .
Again, with this object, the temporal control will only be realized with the parameters Start and End that will define the start and end of the action.
parameters of the object Fader are:

  • ModifyParameters is the name of the object parameter to change. (A priori ObjectColorAlpha )
  • OpacityStart will show the initial value of the parameter.
  • OpacityEnd will show the final value of the parameter.
  • Reverse when it is the value 1 , should allow the object to operate in reverse (ie from the final position to go to the initial position ...)

and if the purpose of presentation assigned by the object Transform type Text or Videowall :
  • AffectsDivision whose value is one of the values listed in the parameter Divisions object Text or Videowall . Most often, it will have the value Cells
  • MultiTiming will be a positive numeric value that will control the overlap of the movement of each element of the presentation object. The value 1 indicate that an element begins its motion when the previous one will finish it. value 0 indicate that all elements will move at the same time, the value 2 mean that between the movement of two elements, there will be a time equal to the duration of the movement of one element. Obviously, all intermediate values are possible.
  • Order take one of three values: ordRandom will ask studio to process these different elements in a pseudo-random order. ordLastToFirst will move the element starting from the last one, ordFirstToLast will start with the first. Please note that if the purposet is to animate a Videowall , the parameter CellParent will select whether the items should be scanned by rows or columns.

example:

<imgObject Type="Fader" ID="13">
  <imgObjectTime Ver="2" Start="6.10345" End="9.10345"/>
  <imgParameterList>
      <imgParm Name="Name">Fader</imgParm>
      <imgParm Name="AffectsDivision">Cells</imgParm>
      <imgParm Name="ModifyParameters">ObjectColorAlpha</imgParm>
      <imgParm Name="Order">ordRandom</imgParm>
      <imgParm Name="MultiTiming">1</imgParm>
      <imgParm Name="OpacityStart">0.5</imgParm>
  </imgParameterList>
</imgObject>

Use training montage theme 4 - Fader to test the effect of parameter MultiTiming and variation in opacity of the different elements of an object Videowall . To do this, place it on the timeline and start viewing the theme.

back


type ="ParmOscillate"


object ParmOscillate will make oscillate a parameter between a minimum value and a maximum value, by specify the starting point and the speed of variation. This object can be useful to set an action from the interface of the theme editor. However, It seems to managed only parameters of rotation and scale (scale)
Parameters are:
  • ModifyParameters is the name of the object parameter to edit.
  • ValueMin will be the minimum value of the parameter in its cycle of oscillation.
  • ValueMax will be the maximum value of the parameter in its cycle of oscillation . Be careful to note that the numerical values to assign to these parameters are 1000 times smaller than the values of the parameters of reference. For example, a value of 90 degrees will be denoted 0.0009  . Moreover, it appears that these values are not symmetrical between ValueMax and ValueMin . Thus, the value corresponding to a RotationY of 0° will be about 0.0045
  • WaveShape will take the value wsRamp which will mean that the value will follow a "sawtooth" curve from min value to max value. By default, the oscillation will be like the pendulum of a clock.
  • Speed will indicate the number of oscillations during the lifetime of the object
  • Phase will control the starting position by fixing the percentage of a single cycle to complete before the start action.

example:

<imgObject Type="ParmOscillate" ID="21">
  <imgObjectTime Ver="2" Start="8.62069" End="13.0345"/>
  <imgParameterList>
      <imgParm Name="Name">ParmOscillate</imgParm>
      <imgParm Name="ModifyParameters">ObjectColorAlpha</imgParm>
      <imgParm Name="ValueMin">1</imgParm>
      <imgParm Name="ValueMax">0.75</imgParm>
      <imgParm Name="WaveShape">wsRamp</imgParm>
      <imgParm Name="Speed">10</imgParm>
  </imgParameterList>
</imgObject>

Use training montage theme 4 - ParmOscillate to test the effect of different parameters of this object. To do this, place it on the timeline and start viewing the theme.

back



type ="ParmRamp"


This object will be used to define a change in value of a parameter between time Start and  End , from an initial value to a final value ... It may be useful to set up an action from the interface of the theme editor. However, I seems to work only for parameters of rotation and scale.

Parameters are:
  • ModifyParameters is the name of the object parameter to edit.
  • ValueStart will be the initial value of the parameter listed in ModifyParameters. this value will be valid at time Start tag imgObjectTime object.
  • ValueEnd will be the final value of the parameter.

for a rotation, the neutral value (corresponding to 0 degrees) will be  value 0.0005 , while the value corresponding to 360 degrees is 0.05005 . A full turn will have an incremental value of 0.0454 . For a change of scale, the normal size (Scale = 1) will be obtained with the value 0.1
example:

<imgObject Type="ParmRamp" ID="26">
  <imgObjectTime Ver="2" Start="0" End="14"/>
  <imgParameterList>
      <imgParm Name="Name">ParmRamp</imgParm>
      <imgParm Name="ModifyParameters">RotationZ</imgParm>
      <imgParm Name="ValueStart">1</imgParm>
      <imgParm Name="ValueEnd">0.8</imgParm>
  </imgParameterList>
</imgObject>

use training montage theme 4 - ParmRamp to test the effect of the different parameters of this object. To do this, place it on the timeline and start viewing the theme in Studio.

back

Shading Objects


type ="LinearBlur"


This object serves to blur the source image pointed in the Material object on which it is applied. It works by creating multiple copies of the source image to be superimposed with an offset.
Parameters for this object are:
  • Samples sets the number of copies of the source image (integer greater than 1 !).
  • Angle (in degrees) specifies in what direction will be placed copies of the source image.
  • Strength indicates the separation distance between copies. A value of 1 is the size of the source image.

example:

<imgObject Type="LinearBlur" ID="58">
  <imgObjectTime Ver="2" Start="0" End="16"/>
  <imgParameterList>
      <imgParm Name="Name">LinearBlur</imgParm>
      <imgParm Name="Samples">3</imgParm>
      <imgParm Name="Angle">27</imgParm>
      <imgParm Name="Strength">0.0037</imgParm>
  </imgParameterList>
</imgObject>

for more details on the effects of each of these settings, you can directly visualize the results using my training montage theme 5 - LinearBlur

back


type ="GradientWipe"


This object manage the SecondImage parameter of Material object and will shape the main image according to the gray level of each pixel of this SecondImage picture.

The parameters are:
  • Progress that controls the gray level beyond which the main image will be masked.
  • Softness to obtain a progressive masking around the percentage of gray determined by the parameter Progress . For proper operation, it is recommended to give to Softness a value strictly greater than 0 .

example:

  <imgObject Type="GradientWipe" ID="10">
  <imgObjectTime Ver="2" Start="0" End="10"/>
  <imgParameterList>
    <imgParm Name="Name">GradientWipe.10</imgParm>
    <imgParm Name="Softness">0.051</imgParm>
    <imgParm Name="Progress">0.5</imgParm>
  </imgParameterList>
  </imgObject>

for more details on the effects each of these settings, you can view the results directly by downloading my training montage theme 5 - GradientWipe

back

Theme Interface settings management



type ="Template"


object Template function is to manage the user interface of the montage theme editor. It creates sliders, dropdown boxes, text areass, color picker, and with Studio 14  checkboxes.
This object will allows you to set all the layout, NullObject, or Material object parameters, but works also with behavior and shading objects.
The Template object is structured around 3 tags whose roles are:
imgDynamicParmTypes will build the various widgets that will be displayed in the theme editor of Pinnacle Studio. Each of these widgets will be defined in using a imgParmType tag  which will bear the following parameters:
  • Name will be the name you give to the parameter. This name will be used as a label displayed by Studio in the theme editor. Note that by choosing a label in English language, it often reflects the Studio to display the label in Windows installation language. Unfortunatly, this does not work every time, it will be necessary to test ...
Note also that in the particular case of a color selection widget, it will need 3 lines to define it (one for each component Red, Green, Blue). The same label name will be used for these 3 statements, simply followed with the terms Red, Green and Blue .
  • Default will define the default value to apply to the associated parameter.
  • Range will indicate the type of widget, and the possible range of variation.
for a color selection widget, Range takes the value color for  the first of the three red, green or blue to be declared and then group to each 2 others.
for a slider, Range is a list of 4 values. The first will be slider , followed by the minimum value that will take the cursor, followed by the maximum value, followed by the increment step.
for text area, Range will be a list of 3 values, the first is string , the second will be the maximum text length (in characters), and the last will be the minimum number of characters.
for a dropdown box, Range will be a sequence of values, the first will be enumstring , followings will have the form label = filename . Label are what is shown in the dropdown box, filename being the file names to be selected.
For a checkbox (Studio 14 only!) Range takes the value checkbox
  • Usage  is always usageDynamic
  • Type will be always vtString except for a widget checkbox where this parameter takes the value vtBool
Then there is a imgParameterList tag like in all other objects. It will host the parameter Name to give a name to the Template object , and if you created dropdown box, you will here declare a parameter which name must be the label associated to this dropdown bax in the tag imgDynamicParmTypes , with for value the file name set as parameter in ReplaceName tag in corresponding ImageExplicit modified by this dropdown box.

The third and final imgMappingList tag will be used to connect values modified using the various widgets to the parameters of the corresponding objects.
Note that it is possible to change from the Theme Editor almost all parameters of any layout, Material, NullObject, or behavior object.
Also note that a parameter set from the template object can not be changed dynamically by a behavior object.
Within this imgMappingList tag , each parameter change should be declared in a imgMapping tag whose parameters are:
  • parmName must be exactly the same value as that Parameter Name in  corresponding imgParmType tag that created the widget. 
  • mapObjectName will include the name (parameter Name ) of the object containing the parameter to edit.
  • mapParmName will give the name of the parameter of the object named in mapObjectName
  • mapExpression will be worth an empty string " " for all objects except for a dropdown box where the value will look like : mapExpression ="rp(ObjectName.ReplaceName,filename,Template.label)" where ObjectName is the name of the object named in the parameter mapObjectName, filename will be the file name designated in the parameter ReplaceName of the object designated by mapObjectName , and label is the name given to the corresponding widget. Template will be here the name of the Template object declared using the parameter Name .

example:
Objet template using the 5 widgets available in pinnacle studio

You can watch the training theme 6 - Template that illustrates the above example. If you use Studio 12, you will see a warning message in the theme editor, corresponding to the use of a checkbox that is not recognized by this version. That's why I never use this widget.

back

Section Connection objects

Now let's see the connection section for the different objects of the montage theme... This section is bounded by the tag imgConnectionList
There are different types of connections between objects.
  • SceneToImage connects a source image to the montage theme. If this connection is omitted, the image will not appear, and the layout object will be white.
Note that I have observed inexplicable behavior when there are more than 9  image object declared in a theme. Symptoms include abnormal slowness of the theme and could lead to a crash of Studio, or malfunction of 3D rendering.
  • SceneToRoot will link a layout object to the montage theme. Note that the layout object contained in the container NullObject should not be linked directly to the theme, but to this NullObject.
  • ParentToChild is used to attach a layout or a NullObject object into another NullObject object.
  • Layout object will be connected to their Material object  using the ObjectToMaterial connection .
  • Then connections of behavior objects to their layout object or Material objects will use a  ObjectToBehavior connection .
  • Finally, Shaders should be attached to their Material with a ctMaterialToShader connection
  • object template must be attached to the Scene object the connection ctSceneToTemplate . Otherwise, no widget will be displayed in the theme editor.

example:

<imgConnectionList>

  <imgConnection Type="ctSceneToImage"      FromID="1"  ToID="10"/>
  <imgConnection Type="ctSceneToRoot"        FromID="1"  ToID="11"/>
  <imgConnection Type="ctParentToChild"      FromID="11" ToID="21"/>
  <imgConnection Type="ctObjectToMaterial"  FromID="21" ToID="22"/>
  <imgConnection Type="ctMaterialToShader"  FromID="22" ToID="23"/>
  <imgConnection Type="ctObjectToBehavior"  FromID="21" ToID="24"/>

  <imgConnection Type="ctSceneToTemplate"  FromID="1"  ToID="9"/>

</imgConnectionList>

back



Any comment about this page ?

Written by
Lokeshlov
1 messages

LokeshWednesday 10 April 2013 12:51:40

hello.
i'm from India I want to crate wedding montage theme with Indian nativity but i'm not good at XML programming so can U help me with any simple form or
easy way to create such a things
ThanQ in Advance


Only registred users are allowed to post comments




mentions légales Copyright © 2010-2012. All rights reserved.