Loading...
This chapter is for advanced users and gives a closer look how to set up the underlying principle of value tracking, i.e. how default values are enforced or not enforced when no keys are set in a parameter track on the timeline.
The "Enforce Defaults" option can be found in the Sequence Inspector. To see it, open the "Sequences" folder in the Project tab first and select a sequence there. You can choose between three states: On, Off, Only Mesh/Media. |
To see where a change of this option is effective, we must first understand the default behavior of Pandoras Box' timeline.
In Pandora's Box timeline programming you normally determine the value of a parameter by setting a key. In some situations, however, a certain parameter may not have a key associated with it that explicitly determines its value at a certain point in time. There is for example the time span inside a clip when no key is set or when the first key is set later in time. |
Per default, the "Enforce Defaults" option in the Sequence Inspector is set to "On" which means that Pandoras Box refers back to the default values in those situations. The default value for "Position" is "0px" and for "Scale" it is "1.0", for example. In other words, whenever a parameter is not defined per key, it is defined by the default value. This behavior ensures that each frame in the timeline is associated with exactly one definite state for all parameters, even though not all of them may have explicitly set values. So if you click into the timeline at a certain timecode, a frame is rendered. If you then jump to other places in the timeline and return back to this certain frame, the output will always be exactly the same as before.
The following example visualizes this behavior. At the beginning of the first clip, the Scale keys set the parameters to "0.5". The second clip has no Scale keys. With "Enforce Default = On", the Scale parameter is reset to "1.0" whenever the Nowpointer is in that clip.
If the "Enforce Defaults" option is turned "Off" the system does not apply default values any more in those situations. If keys define a parameter, they of course still count. But all undefined parameters retain to the value that was set before the situation was encountered, hence they stay what they where and do not change to the default values.
Following with the example: if the Nowpointer is set into the first clip and then into the second one, the output now looks different as the Scale parameters are NOT reset to "1.0" but retain "0.5".
This shows, that a frame in a timeline is not "static" any more but can be rendered differently. It depends on the way how the Nowpointer got there, on the "path" it took to reach a particular timeline frame. Let's extend our example to visualize this "path dependency". A third clip is added and holds Scale keys with the value "2". If you now set the Nowpointer into the new clip and then back to the clip with undefined Scale parameters, the output looks different to before because the Scale parameters now retain "2.0".
The default setting "Enforce Defaults = On" which means path independence is usually a good idea, especially when working with a single timeline. It makes sure that a frame in the timeline is rendered exactly in the same way, no matter in which order the timeline was played.
For some cases however, path dependence is a solution that let's you solve your task in an efficient way. Especially when working with multiple Sequences, the setting "Enforce defaults = Off" makes a lot of sense as it allows to program parameters of one Layer on multiple timelines. You could use one Sequence for defining the Media keys and another for defining other parameters like Position or Scale. In this and similar scenarios, it is necessary for each timeline to only apply those values that are explicitly set in it via keys and nothing else.
A disadvantage of the setting "Enforce defaults = Off" is that unloading a media file from a Layer becomes more complicated. As we have seen, a parameter value does not reset when it is undefined, it rather stays what it was. In case you would like to clear the media file from the "Media" or "Mesh" parameter when the Nowpointer leaves the Container this behavior is not helpful. Turning the opacity off is not a good workaround, because the media files are still loaded on the Layer and hence, consume resources which becomes important when working with high resolution files and / or close to the performance limit. A better solution is to set a key which clears the media parameter as is loads explicitly "nothing". This is called a "None" key.
Let's create one, in our example from above. Click on the media key from the third Container and hit the "Reset" button in the Inspector, or select the Container and hit "Reset" in the section "Main Media Key". If you would like to create one from scratch, first reset all layer parameters (e.g. via the Reset button(s) in the Sequence button bar) and than make a right-click in the Media or Mesh parameter track. The example shows that the media file still rendered when the Nowpointer stands between two clips but cleared when the Media key "None" is evaluated.
Now this is when the setting "Enforce defaults = Only Mesh/Media" becomes interesting which combines aspects of the other two Enforce Defaults modes. In undefined situations, it enforces only the Media/Mesh default values (just like the "On" mode) but no other parameter (just like the "Off" mode).
Think of the example with multiple Sequences controlling parameters of the same Layer. It is a good idea to say "Enforce defaults = Only Mesh/Media" for that Sequence that define the Mesh / Media Parameters as each Container loads files and the empty space between Containers clears them. Other Sequences that control other parameters would be set to "Enforce defaults = Off.
If you play around with multiple Sequence and the different Enforce Defaults modes, it might become confusing when media files are cleared and when not. So as a summary, this table shows what command is send from a Sequence when its "Enforce Defaults" option is set to On, Off or Only Mesh/Media. For the Nowpointer, it depends whether it plays inside a Container (with a certain media key, with an explicit "None" key or without a key at all) or whether it plays outside a Container whereas it makes a difference whether there is a Container before or after on that track or whether it is an entirely empty track which is absolutely undefined.
|
Media key |
"None" key |
Empty Clip |
Outside of Clip |
Empty track |
On |
media |
clear |
clear |
clear |
nothing |
Off |
media |
clear |
nothing |
nothing |
nothing |
M/M |
media |
clear |
nothing |
clear |
nothing |