System and method for automating the configuration and sequencing of temporal elements within a digital video composition

Systems and methods for digital compositing platforms that utilize time-sculpting rules with respect to one or more layers of a composition are disclosed. Such time-sculpting rules may enable layers of a composition to be temporally linked or modified in a content agnostic manner. In this way, content can easily be manipulated, substituted, altered, etc. and the composition automatically modified based on the set of time-sculpting rules to ensure that the resulting composition is coherent and cogent, despite the alterations to the layers or the source of content thereof.

COPYRIGHT NOTICE

TECHNICAL FIELD

This disclosure relates to the field of digital video compositing, including editing or post-production. Specifically, this disclosure relates to methods and systems for establishing and applying rules in the context of authoring, editing or processing video compositions. Even more particularly, this disclosure relates to methods and systems for establishing and applying temporal sculpting rules in the context of compositing, authoring, editing or processing video compositions where the rules may be useful in the context of, for example, content development for digital signage, broadcast graphics, ecommerce video, personalized video messaging or localization of video content, among others.

BACKGROUND

Digital compositing is the process of digitally assembling multiple pieces of content to make a final piece of content (referred to as a composition), typically for motion pictures (i.e., video). It is the digital analogue of optical film compositing. In particular, layer-based compositing represents each piece of digital content (e.g., media object) in a composite (or composition) as a separate layer within a timeline, each with its own time bounds, effects, keyframes, etc. All the layers are stacked, one above the next, in any desired order; and the bottom layer is usually rendered as a base in the resultant final content, with each higher layer being progressively rendered on top of the previously composited of layers, moving upward until all layers have been rendered into the final composite content.

Layer-based compositing sometimes becomes complex in the cases where a large number of layers are utilized. A partial solution to this problem is the ability of some digital compositing programs to view the composite-order of elements (such as images, effects, or other attributes) with a visual diagram to nest compositions, or “comps,” directly into other compositions, thereby adding complexity to the render-order by first compositing layers in the beginning composition, then combining that resultant image with the layered images from the proceeding composition, and so on. Thus, each digital video composition can have a series of layers—one stacked on atop another—resting in a timeline.

In the main, these types of digital compositing platforms (also known as post-production or editing applications or platforms) present a user with an interface by which a user may select and define layers, and the corresponding source of content for each layer. The interface may also present a graphical depiction of the time line of the composition and allow a user of the digital compositing program to order the layers. Additionally, when a digital compositor (e.g., user) works with a post-production application, the application typically offers a suite of effects that can be applied to the various individual layers that are in the composition's timeline. These effects may be applied or defined using, for example, a “plug-in” to the digital compositing platform. Such plug-ins may be a component that provides a particular feature (e.g., one or more effects) in association with a computing program (e.g., a digital compositing platform). These plug-ins may utilize an extensible architecture offered by the “host” computing program (e.g., a plug-in architecture such as a set of Application Programming Interfaces (API) or the like).

There are a number of complexities when it comes to layer-based digital compositing, however. These complexities result at least in part from the fact that each layer of a composition may include content with no inherent duration (e.g., an image or text) or, conversely, may include content that does have inherent duration (e.g., a video file). Thus, for layers including content with inherent duration there may be a start and end to the content comprising that layer, but there may also be an in-point and out-point defined with respect to the content for that layer, where the in-pint and out-point may not be the same as the start point or end point of the content. Accordingly, the entire duration of the content of the layer may not be shown in the resulting (rendered) composition.

Additionally, problems may arise because digital compositing platforms may allow different pieces of content to be easily swapped. Thus, once a composition is defined (e.g., the set of layers, the content for each of the set of layers, the in-point and out-points for each layer, the temporal arrangement of each layer and the like defined), another source of content may be “swapped” for the current source for the layer, or the original content may be modified. As may be imagined, in the case of content with a particular duration, the original content for a layer may not be of the same duration as the swapped or modified content that replaces it. This situation can cause a number of adverse effects, including dead space in a composition, improper or unwanted display of certain layers together in the composite, the curtailing of the display of the composition, or other undesirable effects. These adverse effects may be exacerbated when layers of a composition are nested, such that one or more layers of a composition is itself a composition comprised of layers having content with an inherent duration.

What is desired therefore, are digital compositing platforms enabled to allow automatic temporal adjustment of a composition or layers thereof.

SUMMARY

To those ends, among many others, systems and methods for implementing rules in a digital compositing platform are disclosed herein. Specifically, certain embodiments provide for the implementation of time-sculpting rules that enable the layers of a video composition to be temporally linked or modified in a content agnostic manner. In this way, content can easily be manipulated, substituted, altered, etc. and the composition automatically modified by the digital compositing platform based on the set of time-sculpting rules to ensure that the resulting composition is coherent and cogent, despite the alterations to the layers or the source of content thereof. These types of rules may thus be advantageously utilized in the authoring, editing or processing video compositions, including in the context of content development for digital signage, broadcast graphics, ecommerce video, personalized video messaging, localization of video content, among others.

In particular, embodiments disclosed herein provide systems, methods, and computer program products for a digital video compositing platform for automatic temporal adjustment of a digital composition may include a data store with a project defining a composition arranged according to a first temporal arrangement including a timeline and having a set of layers. The set of layers of the composition are arranged according to the first temporal arrangement and each layer is associated with corresponding digital content. The digital compositing platform may also include a temporal sculpting module for allowing a user to define a set of temporal sculpting rules including a first temporal sculpting rule associated with a first layer of the composition. The first temporal rule may be one of a target rule establishing a temporal link between the first layer and a target layer or a cropping rule establishing a temporal link between the composition and the first layer.

The set of temporal rules can be stored in the data store in association with the composition, including storing the first temporal sculpting rule in association with the first layer. The temporal sculpting module includes a rules engine for determining that the digital content corresponding to the first layer or the digital content corresponding to the target layer has changed and automatically adjusting the composition from the first temporal arrangement to a second temporal arrangement to conform with the first temporal sculpting rule without user involvement. Adjusting the temporal arrangement can comprise modifying the project to temporally arrange the first layer or target layer within the composition based on the temporal link between the first layer and target layer or cropping the timeline of the composition based on the temporal link between the composition and the first layer.

In one embodiment, the first temporal sculpting rule is a shifting rule and temporally arranging the first layer or target layer within the composition comprises shifting the first layer relative to the timeline based on a target point in the target layer specified in the first temporal sculpting rule.

In another embodiment, the first temporal sculpting rule is a trimming rule and temporally arranging the first layer or target layer within the composition comprises modifying an in-point or out-point of the first layer relative to the timeline based on a target point in the target layer specified in the first temporal sculpting rule.

In other embodiments, the first temporal sculpting rule is a stretching rule and temporally arranging the first layer or target layer within the composition comprises modifying a playback speed of the first layer based on a target point in the target layer or the composition specified in the first temporal sculpting rule.

In certain embodiments, the first temporal sculpting rule is a time cropping rule and temporally cropping the timeline of the composition based on the temporal link between the composition and the first layer comprises modifying a start time or end time of the composition based on a target point in the first layer specified in the temporal sculpting rule.

In a particular embodiment, automatically adjusting the first temporal arrangement to a second temporal arrangement of the composition may be accomplished by determining an ordered set of dynamic layers of the composition, including the first layer and the target layer, resetting the playback speed of each of the set of dynamic layers and arranging the set of dynamic layers according to the set of temporal sculpting rules. The arrangement of the set of dynamic layers may include determining a maximum nested depth of the composition, evaluating each of the ordered set of dynamic layers sequentially in a forward order according to the set of temporal sculpting rules, evaluating each of the ordered set of dynamic layers in reverse order according to the set of temporal sculpting rules, and repeating both these evaluation steps a number of times equal to the maximum nested depth of the composition.

Thus, in one embodiment, the set of rules that may be utilized by a user are target (or anchor) point based rules that link one layer to another layer through the use of target points in the linked layer. In particular, these target based rules may allow one layer to be time shifted, stretched or trimmed based on one or more target points defined with respect to another layer. The set of rules may also include time cropping rules that allow a user to define time cropping points with respect to a layer, such that when a layer changes, the in-point and out-point of the entire composition are altered based on the in-point or out-point of the layer.

Accordingly, in certain embodiments, if a video composition contains a layer that is itself a separate composition which contains a layer marked for variable footage duration, then the timeline of the video composition can be reconfigured according to the duration of the footage layers. Users may consequently have the capability to nest dynamic layers of variable time duration within each other. The cumulative effect of processing content utilizing rules applicable to nested layers of variable time duration is that the overall length of the output changes based on the variable length of sub-layers.

Accordingly, embodiments may provide advantages by allowing users of digital compositing platforms to be able to define time-sculpting rules with respect to one or more layers of a composition, where those time-sculpting rules enable the layers to be temporally linked or modified in a content agnostic manner. In this way, content can easily be manipulated, substituted, altered, etc. and the composition automatically modified based on the set of time-sculpting rules to ensure that the resulting composition is coherent and cogent, despite the alterations to the layers or the source of content thereof.

Moreover, embodiments may provide advantages related to the speed and processing efficiency of computer systems, including digital processing platforms that implement such time-sculpting rules. Such efficiencies may be especially realized in the context of applying such time-sculpting rules to video compositions that are nested (e.g., where a layer of the composition is itself a composition) and particularly in the context of video compositions that include multiple levels of nesting. These efficiencies may result at least from an initial determination of the level or depth of nesting of such video composition (e.g., before time-sculpting rules are applied) and the use of this depth of nesting as a parameter in determining the processing of the layers of the video composition. Specifically, in certain embodiments, these efficiencies may result from limiting the number of times the layers of a composition are processes based on the depth of the nesting of a video composition.

DETAILED DESCRIPTION

The disclosure and various features and advantageous details thereof are explained more fully with reference to the exemplary, and therefore non-limiting, embodiments illustrated in the accompanying drawings and detailed in the following description. It should be understood, however, that the detailed description and the specific examples, while indicating the preferred embodiments, are given by way of illustration only and not by way of limitation. Descriptions of known programming techniques, computer software, hardware, operating platforms and protocols may be omitted so as not to unnecessarily obscure the disclosure in detail. Various substitutions, modifications, additions and/or rearrangements within the spirit and/or scope of the underlying inventive concept will become apparent to those skilled in the art from this disclosure.

A brief discussion of a context in which embodiments as disclosed herein may be effectively utilized may be useful before delving into embodiments in more detail. As will be recalled from the above discussion, digital compositing is the process of digitally assembling multiple pieces of content to make a composition, typically for motion pictures (i.e., video). In particular, layer-based compositing represents each piece of content (e.g., media object) in a composite (or composition) as a separate layer within a timeline, each with its own time bounds, effects, keyframes, etc. All the layers are stacked, one above the next, in any desired order; and the bottom layer is usually rendered as a base in the resultant final content, with each higher layer being progressively rendered on top of the previously composited of layers, moving upward until all layers have been rendered into the final composite content. In addition, compositions may be nested, where the layer of a composition is itself a composition including layers, where these layers may, in turn, include a composition, etc.

There are a number of complexities when it comes to layer-based digital compositing, however. These complexities result at least in part from the fact that each layer may include content with no inherent duration (e.g., an image or text) or that does have inherent duration (e.g., a video file). Thus, for content layers with inherent duration there may be a start and end to the content comprising a layer, but there may also be a “in-point” and “out-point” defined with respect to the content for that layer, where the in-pint and out-point may not be the same as the start point or end of the content. Accordingly, the entire duration of the content may not be shown in the resulting composition.

Additionally, problems may arise because digital compositing platforms may allow different pieces of content to be easily swapped. Thus, once a composition is defined (e.g., the set of layers, the content for each of the set of layers, the in-point and out-points for each layer, the temporal arrangement of each layer and the like defined), another piece of content may be “swapped” for the current source for the layer or the original content may be modified. As may be imagined, in the case of content with a particular duration, the original content for a layer may not be of the same duration as the swapped or modified content that replaces it. This situation can cause a number of adverse effects, including dead space in a composition, improper or unwanted display of certain layers together in the compositing, the curtailing of the display of the composition, or other undesirable effects. These adverse effects may be exacerbated when layers of a composition are nested, such that one or more layers of a composition is itself a composition comprised of layers having content with an inherent duration.

What is desired therefore, is to allow users of digital compositing platforms to be able to define time-sculpting rules with respect to one or more layers of a composition, where those time-sculpting rules enable the layers to be temporally linked or modified in a content agnostic manner. In this way, content can easily be manipulated, substituted, altered, etc. and the composition automatically modified based on the set of time-sculpting rules to ensure that the resulting composition is coherent and cogent, despite the alterations to the layers or the source of content thereof.

Embodiments of the systems and method for implementing time-sculpting rules in a layer based digital compositing application as disclosed herein may do just that, among other advantages and capabilities. Embodiments of these time-sculpting rules may be modifiers a user may assign to one or more layers that exist within the timeline of a video composition. The time-sculpting rules provided by embodiments may allow users to define video composition templates with layers of variable time duration. These rules can be evaluated when a digital compositing platform creates a composition based on the layers and rules defined for the composition. In this manner, the time sculpting of digital compositions can be automated by applying those rules to the layers (including nested compositions) of a composition. This automated time sculpting may be especially useful in cases where the content comprising a layer (e.g., the source of content for the layer) has been altered.

For example, in one embodiment, the set of rules that may be utilized by a user are target (or anchor) point based rules that link one layer to another layer through the use of target points in the linked layer. In particular, these target based rules may allow one layer to be time shifted, stretched or trimmed based on one or more target points defined with respect to another layer.

In other embodiments, the set of rules are time cropping rules that allow a user to define time cropping points with respect to a layer of a composition, such that when a layer changes, the in-point and out-point of the entire composition are altered based on the in-point or out-point of the layer.

Accordingly, in certain embodiments, if a video composition contains a layer that is itself a separate composition which includes a layer to which a rule has been applied, the timeline of the video composition can be reconfigured according to the duration of the layers. Users may consequently have the capability to nest dynamic layers of variable time duration within each other. The cumulative effect of processing content utilizing rules applicable to nested layers of variable time duration is that the overall length of the composition may change based on the variable length of sub-layers.

In certain embodiments, these rules may be incorporated into a host digital compositing platform. For example, in certain embodiments, a temporal sculpting module may be, included in, or installed as an addition or plug-in to a digital compositing program such as Adobe's After Effects. In particular, when a digital compositor works with their post-production application, they typically have a suite of effect plug-ins they can apply to various, individual, layers that exist in a composition's timeline. A typical compositor's workstation will have a suite of plug-ins installed and each have a unique set of controls. Users may install a temporal sculpting module as a plug-in to an existing or pre-installed video compositing platform. Users can then apply the temporal sculpting plug-in effect to any layer in a video composition being composited in the host compositing platform. The effect's “controls” are where the user's configure rules. These controls may be thought of as styling declarations not unlike those found in a Cascading Style Sheet (CSS) for a website.

By installing a temporal sculpting module as plug-in to a digital compositing program such as After Effects, or providing a temporal sculpting module in such a digital compositing platform, embodiments of the systems and methods disclosed may allow a user of such a program to utilize an “effect” to mark variable footage layers in a manner that follows and fits into the normal workflow to which digital compositors are accustomed. That is, a user can select a layer, apply an effect to the layer, and then configure the effect's controls. Accordingly, the user experience of setting up the system of time sculpting rules according to embodiments may be intuitive, as it operates within a framework with which users are accustomed to interacting.

In one embodiment, when compositing, the user may define a template based on the time-sculpting rules using the plug-in for the digital compositing platform. The template may follow the format of the host digital compositing platform. Thus, for example, in one embodiment the template file format may follow the After Effects Project (.aep) file format specification. In other words, the definition of time-sculpting rules for one or layers of a composition of a project file may result in the definition of a template. A template may thus be an instance of, or included within, a project file. It will be understood that the term project as used herein is used in a general sense to refer to any file or storage format for a digital video composition or a template and in should not in any way be taken as a limitation on the embodiments as disclosed herein.

Once the templates are created, they are processed to alter the composition or layers thereof to ensure that the rules are met. This processing of the template may also be triggered by another event, such as the modification, alteration, substitution, removal, etc. of one or more layers of the composition. For example, in one embodiment, a user sets up versioning data and prepares a template for versioning data. The user can then link the versioning data to a particular project (e.g., .aep) file. User then selects a “target” composition to re-version and render. A rendering operation (e.g., a batch rendering operation) can then be initiated. During the rendering process, a processing loop can occur where the versioning data is ingested and the host digital compositing application's project and compositions are invalidated with new data (e.g., text, footages, and solid colors). The host digital compositing application (e.g., After Effects) can then render the target composition. This loop is repeated and may be recursive or nested such that compositions that comprise layers of a deeper, nested, level may be processed or rendered in accordance with the rules before higher-level layers. In some embodiments, the processing may be repeated according to a depth of nesting of compositions within the project.

It will now be helpful to discuss embodiments of such a digital compositing platform with a temporal sculpting module. Turning thenFIG. 1, one embodiment of an architecture including a digital compositing platform110including a temporal sculpting module120is depicted. Temporal sculpting module120may be implemented as a plug-in to the digital compositing platform110or may be built into the digital compositing platform110. As discussed, one example of a digital compositing platform110is Adobe After Effects, and in one embodiment, temporal sculpting module120may be implemented as a plug-in to Adobe After Effects or another digital composing platform that provides a plug-in architecture. It will be understood, however, that embodiments as disclosed herein may be equally effectively implemented or utilized in conjunction with almost any digital compositing platform desired including those listed above or others.

Digital compositing platform110may present a user with an interface112by which a user may select and define layers, and the corresponding source of content for each layer. The interface may also present a graphical depiction of the time line of the composition and allow a user of the digital compositing program110to temporally order the layers. Additionally, when a digital compositor (e.g., user) works with their post-production application, they typically have a suite of effect plug-ins they can apply to the various individual layers that are in the composition's timeline.

In particular, when a user is utilizing the digital compositing platform110he may be presented with an interface which allows him to see a timeline for a composition he is editing along with depictions of the various layers within that composition. The user can use the interface to associate content128(stored locally in data store130or remotely on sources accessible across computer network160) with each of the layers. This association may be defined by a supplying a source for the content128to associate with the layer. The visual interface may also allow the user to nest compositions, directly into other compositions. Thus, each video composition can have a series of layers—one stacked one atop another—according to a timeline, where those layers may themselves be compositions.

The digital compositing platform110may define and store one or more files126(generally referred to herein as projects) associated with the composition being defined by the user. A project file may store one or more compositions (e.g., collection of layers) and references to the content128(e.g., the source of content128) for each of the layers of the composition. Moreover, the project126may include data regarding the compositions or layers comprising the compositions, including, for example, a temporal arrangement of the layers such as the duration, playback speed, in-point, out-points or other data regarding the layers and compositions.

Users can apply temporal sculpting rules (or effects) (e.g., which may be named Templater Settings or the like) to any layer in a video composition being composited using digital compositing platform110utilizing temporal sculpting module120. Specifically, an interface124of the temporal sculpting module may be presented in association with the interface of the digital compositing platform110. The interface124of the temporal sculpting module120may include a set of “controls” where the user may configure such rules. Embodiments may, for example, be usefully utilized in association with the Templater product of Dataclay, LLC of Austin, Tex.

In particular, in one embodiment, the temporal sculpting module120may have an interface component124which allows a menu to be presented in association with the interface of the digital compositing platform110to present the user with controls for the temporal sculpting module120. Using this interface124the user may specify rules associated with the composition of the project126and thus define a template125for the composition of the project file126including one or more rules for the composition. The project126may thus include the defined template125, or set of rules. In one embodiment, the set of rules defined by the user may be stored in the project126being edited by the user through the digital compositing platform110. In this manner, the template125may be included in the project126, or stored in association with the project126, as the defined set of rules. These rules may establish temporal links between one or more layers or between a composition and a layer.

The rules engine122of the temporal sculpting module120can then evaluate the composition (e.g., the project file126for the composition) based on the template125associated with the project126to conform the project126to those rules such that when the digital compositing platform110renders the composition of the project126it is rendered in accordance with those rules to temporally sculpt the resulting rendered composition. Specifically, in one embodiment, the rules engine122may evaluate the rules defined in the template125and adjust the temporal arrangement of the composition by adjusting the data (e.g., the in-point, out-point, start time, end time, playback speed, etc.) associated with one or more dynamic layers in, or the composition of, the project126. Such an adjustment may, for example, be done automatically without further user involvement based on one or more occurrences such as replacement or alteration of the source of content of a layer, or another occurrence. In this manner, layers within a composition can be made to automatically interact with one another in a final composition with respect to start or end time, playback speed, in-point, out-points or other data regarding the layers and compositions.

In one embodiment, the rules engine122may evaluate the layers of a composition in a number of passes based on a depth of nesting of layers of the composition when applying the rules of the template125to the layers of the composition(s) of the project126. Specifically, in one embodiment, to adjust the temporal arrangement of the composition or layers to conform the layers of the project126to the template125, the rules engine122may process the project file to determine the layers of the composition(s) of the project that are dynamic. These dynamic layers (which may themselves be a composition) are those layers in the composition of the project126which have one or more associated time-sculpting rules as defined in template125using temporal sculpting module120. Each of these dynamic layers may be placed in an array or other data structure (generically referred to herein as an array). In one embodiments, placing the layer in the array may include placing a reference to the layer in the project126in the array. The array thus includes references to each dynamic layer and the associated data or properties of that layer such as the start time, end time, in-point, out-point, playback speed, etc.

Each of the dynamic layers referenced in the array may be initialized and reset by the rules engine122by defining the layer's playback to normal speed (e.g., 100%) and setting the in-points or out-points of the layer if needed. The maximum nested depth of the composition of the project126can then be determined by the rules engine122. For each level of depth, the layers of the project126can then be arranged according to the time-sculpting rules defined for those layers according to the template125. This arrangement may include trimming one or more of the layers (e.g., setting a layer's in-point or out-point in the project based on a target layer's in-point or out-point); shifting one or more of the layers (e.g., setting a layer's start time or end time in the project so the layer's in-point or out-point reaches a target layer's in-point or out-point); cropping one or more layers (which may be compositions) (e.g., by adjusting the duration of the composition in the project where the beginning of a composition starts at a layer's in-point or the end of a composition ends at a layer's out-point, or both); or stretching one or more layers (e.g., by changing the duration of a layer in the project by adjusting the layer's playback speed until the layer's out-point reached the in-point or out-point of a target layer, or the end of the layer's containing composition).

It is useful at this point to illustrate types of rules that may be implemented by embodiments of the temporal sculpting module and digital compositing platform described herein. Before discussing these rules in detail, attention is directed toFIGS. 2 and 3which are block diagrams depicting keys that will be useful in understanding the graphic depiction of the rules that follow.FIG. 2depicts a key for a layer. Thus, a layer may be represented by a rectangle or block210,220. Time is depicted as running from left to right when viewing the FIGURES. The content for the layer may have a start denoted by a triangle on the left of the rectangle representing the layer and an end denoted by the triangle on the right. The duration for the layer210(e.g., the amount of time the source content of the layer appears in the containing composition) is thus equal to the duration of the source content Thus, the example layer210is a layer whose in-point and out-point are equal to the start and end of the source content for the layer. In example layer220, however, note that the in-point (denoted by a right-facing bracket) and an out-point (denoted by a left-facing bracket) of a layer with respect to a composition may not be the same as the start and end of the layer. In this case, then, the entire content for the layer is not presented in the containing composition. Instead, the content of the layer is displayed in the composition beginning at the in-point (right-facing bracket) and ending at the out-point (left-facing bracket). The greyed out portion of the rectangle representing the layer indicates that this portion of the content of the layer (e.g., the greyed out portion) will not be displayed in the composition. The duration of this layer (vis-à-vis the containing composition) will thus be the portion of the content of the layer between the in-point (right-facing bracket) and the out-point (left-facing bracket).

FIG. 3depicts a block diagram of key for understanding the depiction of video compositions and their parts in the following FIGURES. A composition300is represented by a rectangle where the left border of the rectangle represents the start of the composition300and the right side of the triangle represents the end of the composition300. A timeline310of the composition is represented across the top of the composition300. Underneath the timeline310of the composition300the layer stack330include each of the layers340contained by the composition300. The layers are depicted as discussed inFIG. 2and arrayed with respect to the timeline310based on the data (e.g., start time, end time, in-point, out-point, etc.) associated with that layer340for the composition.

With those depictions and representations in mind, attention is now directed to the types of rules that may be implemented by embodiments of the temporal sculpting module and digital compositing platform described herein. As discussed, a layer which has a time-sculpting rule assigned to it, or associated with it, may be referred to as a “dynamic layer”. In other words, the layer (or an associated layer) may change based on some criteria. A target layer can also be dynamic or have other target layers. In one embodiment, the set of rules that may be utilized by a user are target (or anchor) point based rules that link one layer to another layer through the use of target points in the linked or targeted layer. The anchors or targets within a target layer could be start points or end points, in-points or out-points, key-frames within a layer, etc. Generally, a target point may be some reference point within a target layer that could be identified (e.g., in the case where one layer is replaced with another layer). These target based rules may allow one layer to be time shifted, stretched, trimmed or otherwise temporally arranged based on one or more target points defined with respect to another layer. Additionally, an “overlap” may be specified (usually with respect to a target point). This overlap may include a number of frames or time period (e.g., later or earlier) than a target point.

Specifically, in one embodiment, time shifting rules may allow a layer to be temporally arranged by being moved along a composition's timeline based on a temporal link established with a target point within a target layer such that when a layer is modified (e.g., altered, substituted, swapped, etc.) a layer may be time shifted based on the modified layer. Embodiments of these types of shifting rules may be better understood with reference toFIGS. 4A-11B.

First, referring toFIG. 4Aa block diagram depicting one embodiment of an interface for allowing a user to define an “in-point shifts to in-point” rule is shown. Such a rule may specify that when a layer (here layer b) changes duration (e.g., because the source changes or the content from the source changed), that layer's in-point will shift to the same position in time as a target layer's (here layer a) in-point. Thus, such an interface may be presented by a temporal sculpting module when a user is defining effects for layer b in a digital compositing platform. In particular, interface410may allow a user to specify control parameters for a layer (the “controlled layer”, here layer b). Interface410provides a time menu412for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu may include shift menu414where the shift target (e.g. here layer a) may be specified, along with the rule that the in-point for the controlled layer (layer b) should be shifted to the in-point of the target layer (layer a).

FIG. 4Bis a block diagram depicting the one embodiment of the effect of applying an in-point shifts to in-point rule as defined inFIG. 4Ato the controlled layer (layer b). Composition460adepicts an initial state of the composition460. Initially then, layer a470is composited atop layer b480and layer b480has a first source of content. Composition460bdepicts a state of composition460after the source of content of layer b480changes, before the application of the in-point shifts to in-point rule defined for layer b480. Composition460cdepicts the state of the composition460after the application of the in-point shifts to in-point rule defined inFIG. 4A. Thus, for example, a rules engine of a temporal sculpting module may evaluate the rules associated with composition460as defined in the project for the composition when the source of content for layer b480changes, and apply the in-point shifts to in-point rule specified for layer b480in the project for composition460(e.g., by changing the data associated with layer b480in the project). Notice here that the application of the in-point shifts to in-point rule shifts the in-point of layer b480and the out-point of layer b by the same amount of time to cause the in-point of layer b480to reach (e.g., be the same point in time in the composition as) layer a's in-point.

Similarly, inFIG. 5Aa block diagram depicting one embodiment of an interface for allowing a user to define an “In-point shifts to In-point with overlap” rule is shown. Such a rule may specify that when a layer (here layer b) changes duration, that layer's in-point will shift to the same position in time as a target layer's (here layer a) in-point plus some amount of frames. Such an interface may be presented by a temporal sculpting module when a user is defining effects for layer b in a digital compositing platform. Interface510may allow a user to specify control parameters for the controlled layer (here layer b) by providing a time menu512for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu512may include shift menu514where the shift target (e.g. here layer a) may be specified, along with the rule that the in-point for the controlled layer (layer b) should be shifted to the in-point of the target layer (layer a) with an overlap of a certain number of frames (here 15).

FIG. 5Bis a block diagram depicting one embodiment of the effect of applying an in-point shifts to in-point rule plus overlap as defined inFIG. 5Ato the controlled layer (layer b). Composition560adepicts an initial state of the composition560. Initially then, layer a570is composited atop layer b580and layer b580has a first source of content. Composition560bdepicts a state of composition560after the source of content of layer b580changes, before the application of the in-point shifts to in-point plus overlap rule defined for layer b480. Composition560cdepicts the state of the composition560after the application of the in-point shifts to in-point rule plus overlap defined inFIG. 5A. Thus, for example, a rules engine of a temporal sculpting module may evaluate the rules associated with composition560as defined in the project for the composition when the source of content for layer b580changes, and apply the in-point shifts to in-point plus overlap rule specified for layer b580in the project for composition560(e.g., by changing the data associated with layer b580in the project). Notice here that the application of the in-point shifts to in-point plus overlap rule shifts the in-point of layer b580and the out-point of layer b by the same amount of time to cause the in-point of layer b580to be a point in time in the composition defined by layer a's in-point plus the number of frames specified as the overlap (e.g., in this example 15 frames).

Moving toFIG. 6Aa block diagram depicting one embodiment of an interface for allowing a user to define an “in-point shifts to out-point” rule is shown. Such a rule may specify that when a target layer (here layer a) changes duration, the control layer's in-point will shift to the same position in time as the target layer's (here layer a) out-point. Thus, such an interface may be presented by a temporal sculpting module when a user is defining effects for layer b in a digital compositing platform. In particular, interface610may allow a user to specify control parameters for the controlled layer (here layer b). Interface610provides a time menu612for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu may include shift menu614where the shift target (e.g. here layer a) may be specified, along with the rule that the in-point for the controlled layer (layer b) should be shifted to the out-point of the target layer (layer a).

FIG. 6Bis a block diagram depicting one embodiment of the effect of applying an in-point shifts to out-point rule as defined inFIG. 6Ato the controlled layer (layer b). Composition660adepicts an initial state of the composition660. Initially then, layer a670is composited atop layer b680and layer a670has a first source of content. Composition660bdepicts a state of composition660after the source of content of layer a670changes, before the application of the in-point shifts to out-point rule defined for layer b680. Composition660cdepicts the state of the composition660after the application of the in-point shifts to out-point rule defined inFIG. 6A. For example, a rules engine of a temporal sculpting module may evaluate the rules associated with composition660as defined in the project for the composition when the source of content for layer a670changes, and apply the in-point shifts to out-point rule specified for layer b680in the project for composition660(e.g., by changing the data associated with layer b680in the project). Notice here that the application of the in-point shifts to out-point rule shifts the in-point of layer b680and the out-point of layer b by the same amount of time to cause the in-point of layer b680to reach (e.g., be the same point in time in the composition as) layer a's out-point.

Similarly, inFIG. 7Aa block diagram depicting one embodiment of an interface for allowing a user to define an “in-point shifts to out-point with overlap” rule is shown. Such a rule may specify that when a target layer (here layer a) changes duration, a controlled layer's in-point will shift to the same position in time as the target layer's (here layer a) out-point minus (e.g., earlier in time by) some amount of frames. Such an interface may be presented by a temporal sculpting module when a user is defining effects for layer b in a digital compositing platform. Interface710may allow a user to specify control parameters for the controlled layer (here layer b) by providing a time menu712for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu712may include shift menu714where the shift target (e.g. here layer a) may be specified, along with the rule that the in-point for the controlled layer (layer b) should be shifted to the out-point of the target layer (layer a) minus an overlap of a certain number of frames (here 15).

It will be noted that while the overlap of a certain number of frames has been defined as being plus or minus that number of frames with respect to certain rules this should not be taken as a limitation on other embodiments of similar rules and that whether an overlap is defined to be plus or minus the defined number of frames may depend on the rule or another condition such as a user selection. Additionally, it should be noted that while overlap has been specified according to certain embodiments based on a number of frames, other methods of specifying overlap (e.g., amount of time) may also be utilized and are fully contemplated herein.

FIG. 7Bis a block diagram depicting one embodiment of the effect of applying an in-point shifts to out-point rule with overlap as defined inFIG. 7Ato the controlled layer (layer b). Composition760adepicts an initial state of the composition760. Initially then, layer a770is composited atop layer b780and layer b780has a first source of content. Composition760bdepicts a state of composition760after the source of content of layer b780changes, before the application of the in-point shifts to out-point with overlap rule defined for layer b780. Composition760cdepicts the state of the composition760after the application of the in-point shifts to out-point rule with overlap defined inFIG. 7A. For example, a rules engine of a temporal sculpting module may evaluate the rules associated with composition760as defined in the project for the composition when the source of content for layer a770changes, and apply the in-point shifts to out-point with overlap rule specified for layer b780in the project for composition760(e.g., by changing the data associated with layer b780in the project). Notice here that the application of the in-point shifts to out-point with overlap rule shifts the in-point of layer b780and the out-point of layer b by the same amount of time to cause the in-point of layer b780to be a point in time in the composition defined by layer a's out-point minus the number of frames specified as the overlap (e.g., in this example 15 frames). In other words, the in-point of layer b780may be defined to be the number of overlap frames earlier than the out-point of layer a770.

Now looking atFIG. 8A, a block diagram depicting one embodiment of an interface for allowing a user to define an “out-point shifts to in-point” rule is shown. Such a rule may specify that when a layer (here layer b) changes duration, that layer's out-point will shift to the same position in time as a target layer's (here layer a) in-point. Thus, such an interface may be presented by a temporal sculpting module when a user is defining effects for layer b in a digital compositing platform. In particular, interface810may allow a user to specify control parameters for a layer (the “controlled layer”, here layer b). Interface810provides a time menu812for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu may include shift menu814where the shift target (e.g. here layer a) may be specified, along with the rule that the out-point for the controlled layer (layer b) should be shifted to the in-point of the target layer (layer a).

FIG. 8Bis a block diagram depicting one embodiment of the effect of applying an out-point shifts to in-point rule as defined inFIG. 8Ato the controlled layer (layer b). Composition860adepicts an initial state of the composition860. Initially then, layer a870is composited atop layer b880and layer b880has a first source of content. Composition860bdepicts a state of composition860after the source of content of layer b880changes, before the application of the out-point shifts to in-point rule defined for layer b880. Composition860cdepicts the state of the composition860after the application of the in-point shifts to in-point rule defined inFIG. 8A. Thus, for example, a rules engine of a temporal sculpting module may evaluate the rules associated with composition860as defined in the project for the composition when the source of content for layer b880changes, and apply the out-point shifts to in-point rule specified for layer b880in the project for composition860(e.g., by changing the data associated with layer b880in the project). Notice here that the application of the out-point shifts to in-point rule shifts the in-point of layer b880and the out-point of layer b by the same amount of time to cause the out-point of layer b880to reach (e.g., be the same point in time in the composition as) layer a's in-point.

FIG. 9Ais a block diagram depicting one embodiment of an interface for allowing a user to define an “out-point shifts to In-point with overlap” rule is shown. Such a rule may specify that when a layer (here layer b) changes duration, that layer's out-point will shift to the same position in time as a target layer's (here layer a) in-point plus some amount of frames. Such an interface may be presented by a temporal sculpting module when a user is defining effects for layer b in a digital compositing platform. Interface910may allow a user to specify control parameters for the controlled layer (here layer b) by providing a time menu912for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu912may include shift menu914where the shift target (e.g. here layer a) may be specified, along with the rule that the out-point for the controlled layer (layer b) should be shifted to the in-point of the target layer (layer a) with an overlap of a certain number of frames (here 15).

FIG. 9Bis a block diagram depicting one embodiment of the effect of applying an in-point shifts to in-point rule plus overlap as defined inFIG. 9Ato the controlled layer (layer b). Composition960adepicts an initial state of the composition960. Initially then, layer a970is composited atop layer b980and layer b980has a first source of content. Composition960bdepicts a state of composition960after the source of content of layer b980changes, before the application of the out-point shifts to in-point with overlap rule defined for layer b980. Composition960cdepicts the state of the composition960after the application of the out-point shifts to in-point rule with overlap defined inFIG. 9A. Thus, for example, a rules engine of a temporal sculpting module may evaluate the rules associated with composition960as defined in the project for the composition when the source of content for layer a970changes, and apply the out-point shifts to in-point with overlap rule specified for layer b980in the project for composition960(e.g., by changing the data associated with layer b980in the project). Notice here that the application of the out-point shifts to in-point with overlap rule shifts the in-point of layer b980and the out-point of layer b by the same amount of time to cause the out-point of layer b980to be a point in time in the composition defined by layer a's in-point plus the number of frames specified as the overlap (e.g., in this example 15 frames).

Referring toFIG. 10Anow, a block diagram depicting one embodiment of an interface for allowing a user to define an “out-point shifts to out-point” rule is shown. Such a rule may specify that when a target layer (here layer a) changes duration, the control layer's out-point will shift to the same position in time as the target layer's (here layer a) out-point. Thus, such an interface may be presented by a temporal sculpting module when a user is defining effects for layer b in a digital compositing platform. In particular, interface1010may allow a user to specify control parameters for the controlled layer (here layer b). Interface1010provides a time menu1012for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu may include shift menu1014where the shift target (e.g. here layer a) may be specified, along with the rule that the out-point for the controlled layer (layer b) should be shifted to the out-point of the target layer (layer a).

FIG. 10Bis a block diagram depicting one embodiment of the effect of applying an out-point shifts to out-point rule as defined inFIG. 10Ato the controlled layer (layer b). Composition1060adepicts an initial state of the composition1060. Initially then, layer a1070is composited atop layer b1080and layer a1070has a first source of content. Composition1060bdepicts a state of composition1060after the source of content of layer a1070changes, before the application of the out-point shifts to out-point rule defined for layer b1080. Composition1060cdepicts the state of the composition1060after the application of the out-point shifts to out-point rule defined inFIG. 10A. For example, a rules engine of a temporal sculpting module may evaluate the rules associated with composition1060as defined in the project for the composition when the source of content for layer a1070changes, and apply the out-point shifts to out-point rule specified for layer b1080in the project for composition1060(e.g., by changing the data associated with layer b1080in the project). Notice here that the application of the out-point sifts to out-point rule shifts the in-point of layer b1080and the out-point of layer b by the same amount of time to cause the out-point of layer b1080to reach (e.g., be the same point in time in the composition as) layer a's out-point.

Similarly, inFIG. 11Aa block diagram depicting one embodiment of an interface for allowing a user to define an “out-point shifts to out-point with overlap” rule is shown. Such a rule may specify that when a target layer (here layer a) changes duration, a controlled layer's out-point will shift to the same position in time as the target layer's (here layer a) out-point minus (e.g., earlier in time by) some amount of frames. Such an interface may be presented by a temporal sculpting module when a user is defining effects for layer b in a digital compositing platform. Interface1110may allow a user to specify control parameters for the controlled layer (here layer b) by providing a time menu1112for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu1112may include shift menu1114where the shift target (e.g. here layer a) may be specified, along with the rule that the out-point for the controlled layer (layer b) should be shifted to the out-point of the target layer (layer a) minus an overlap of a certain number of frames (here 15).

FIG. 11Bis a block diagram depicting one embodiment of the effect of applying an out-point shifts to out-point rule with overlap as defined inFIG. 11Ato the controlled layer (layer b). Composition1160adepicts an initial state of the composition1160. Initially then, layer a1170is composited atop layer b1180and layer b1180has a first source of content. Composition1160bdepicts a state of composition1160after the source of content of layer b1180changes, before the application of the out-point shifts to out-point with overlap rule defined for layer b1180. Composition1160cdepicts the state of the composition1160after the application of the out-point shifts to out-point rule with overlap defined inFIG. 11A. For example, a rules engine of a temporal sculpting module may evaluate the rules associated with composition1160as defined in the project for the composition when the source of content for layer a1170changes, and apply the out-point shifts to out-point with overlap rule specified for layer b1180in the project for composition1160(e.g., by changing the data associated with layer b1180in the project). Notice here that the application of the out-point shifts to out-point with overlap rule shifts the out-point of layer b1180and the out-point of layer b1180by the same amount of time to cause the out-point of layer b1180to be a point in time in the composition defined by layer a's out-point minus the number of frames specified as the overlap (e.g., in this example 15 frames). In other words, the out-point of layer b1180may be defined to be the number of overlap frames earlier than the out-point of layer a1170.

The type of time-sculpting rules discussed above with respect toFIGS. 4A-11Bare time shifting rules that allow a layer to be temporally arranged by being moved with respect to a composition's timeline based on a temporal link established with a target point within a target layer such that when a layer is modified (e.g., altered, substituted, swapped, etc.) a layer may be time shifted based on the modified layer. Embodiments herein may also provide trimming rules that allow a layer to be trimmed (e.g., have some content removed, or have a different in-point or out-point). These types of rules may establish a temporal link between a layer and one or more target points in one or more target layers such that when one of the target layers is altered (e.g., to content with a different length) the content of the control layer may be trimmed (e.g., have some content removed or have an in-point or out-point altered) to the target point in the target layer. Embodiments of these types of trimming rules may be better understood with reference toFIGS. 12A-19B.

Turning first toFIG. 12A, a block diagram depicting one embodiment of an interface for allowing a user to define an “in-point trims to in-point” rule is shown. Such a rule may specify that when a target layer (here layer a) changes duration (e.g., because the source changes or the content from the source changed), the control layer's (here layer b) in-point will be trimmed to the same position in time as the target layer's (here layer a) in-point. Thus, such an interface may be presented by a temporal sculpting module when a user is defining effects for a control layer (here layer b) in a digital compositing platform. In particular, interface1210may allow a user to specify control parameters for a layer (the “controlled layer”, here layer b). Interface1210provides a time menu1212for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu may include trim menu1216where the trim target (e.g. here layer a) may be specified, along with the rule that the in-point for the controlled layer (layer b) should be trimmed to the in-point of the target layer (layer a).

FIG. 12Bis a block diagram depicting one embodiment of the effect of applying an in-point trims to in-point rule as defined inFIG. 12Ato the controlled layer (layer b). Composition1260adepicts an initial state of the composition1260. Initially then, layer a1270is composited atop layer b1280and layer a1270has a first source of content. Composition1260bdepicts a state of composition1260after the source of content of layer a1270changes, before the application of the in-point trims to in-point rule defined for layer b1280. Composition1260cdepicts the state of the composition1260after the application of the in-point trims to in-point rule defined inFIG. 12A. Thus, for example, a rules engine of a temporal sculpting module may evaluate the rules associated with composition1260as defined in the project for the composition when the source of content for layer a1270changes, and apply the in-point trims to in-point rule specified for layer b1280in the project for composition1260(e.g., by changing the data associated with layer b1280in the project). Notice here that the application of the in-point trims to in-point rule shifts the in-point of layer b1280to cause the in-point of layer b1280to match (e.g., be the same point in time in the composition as) layer a's in-point. Notice as well, in contrast with an in-point shift to in-point rules as described above with respect toFIGS. 4A and 4B, that here layer b1280has NOT shifted in time (e.g., the start point and end point of layer b1280are still at the same point in time relative to the composition1260), the in-point of layer b1280has just been moved to match the in-point of layer a1270(which has trimmed layer b1280by leaving a portion1282of layer b1280that will not be displayed in composition1260when rendered).

Similarly, inFIG. 13A, a block diagram depicting one embodiment of an interface for allowing a user to define an “in-point trims to in-point with overlap” rule is shown. Such a rule may specify that when a target layer (here layer a) changes duration (e.g., because the source changes or the content from the source changed), the control layer's (here layer b) in-point will be trimmed to the same position in time as the target layer's (here layer a) in-point plus (e.g., later in time) some amount of frames. Such an interface may be presented by a temporal sculpting module when a user is defining effects for a control layer (here layer b) in a digital compositing platform. In particular, interface1310may allow a user to specify control parameters for the control layer (here layer b). Interface1310provides a time menu1312for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu may include trim menu1316where the trim target (e.g. here layer a) may be specified, along with the rule that the in-point for the controlled layer (layer b) should be trimmed to the in-point of the target layer (layer a) plus an overlap of a certain number of frames (here 15).

FIG. 13Bis a block diagram depicting one embodiment of the effect of applying an in-point trims to in-point rule with overlap as defined inFIG. 13Ato the controlled layer (layer b). Composition1360adepicts an initial state of the composition1360. Initially then, layer a1370is composited atop layer b1380and layer a1370has a first source of content. Composition1360bdepicts a state of composition1360after the source of content of layer a1370changes, before the application of the in-point trims to in-point rule plus overlap defined for layer b1380. Composition1360cdepicts the state of the composition1360after the application of the in-point trims to in-point rule with overlap defined inFIG. 13A. Thus, for example, a rules engine of a temporal sculpting module may evaluate the rules associated with composition1360as defined in the project for the composition when the source of content for layer a1370changes, and apply the in-point trims to in-point rule with overlap specified for layer b1380in the project for composition1360(e.g., by changing the data associated with layer b1380in the project).

Notice here that the application of the in-point trims to in-point with overlap rule shifts the in-point of layer b1380to cause the in-point of layer b1380to match (e.g., be the same point in time in the composition as) layer a's in-point plus a number of frames (here 15). Notice as well, that the in-point of layer b has just been moved to match the in-point of layer a1370plus the overlap number of frames (e.g., 15); layer b1380has not shifted. Accordingly, layer b1380has been trimmed by leaving a portion1382of layer b1380that will not be displayed in composition1360when rendered. When comparing with the application of an in-point trims to in-point rule in a similar composition containing similar layers as depicted inFIG. 12B, this portion1382has increased by the overlap number of frames (e.g., 15).

Moving toFIG. 14A, a block diagram depicting one embodiment of an interface for allowing a user to define an “in-point trims to out-point” rule is shown. Such a rule may specify that when a target layer (here layer a) changes duration (e.g., because the source changes or the content from the source changed), the control layer's (here layer b) in-point will be trimmed to the same position in time as the target layer's (here layer a) out-point. Thus, such an interface may be presented by a temporal sculpting module when a user is defining effects for a control layer (here layer b) in a digital compositing platform. In particular, interface1410may allow a user to specify control parameters for a layer (the “controlled layer”, here layer b). Interface1410provides a time menu1412for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu may include trim menu1416where the trim target (e.g. here layer a) may be specified, along with the rule that the in-point for the controlled layer (layer b) should be trimmed to the out-point of the target layer (layer a).

FIG. 14Bis a block diagram depicting one embodiment of the effect of applying an in-point trims to out-point rule as defined inFIG. 14Ato the controlled layer (layer b). Composition1460adepicts an initial state of the composition1460. Initially then, layer a1470is composited atop layer b1480and layer a1470has a first source of content. Composition1460bdepicts a state of composition1460after the source of content of layer a1470changes, before the application of the in-point trims to out-point rule defined for layer b1480. Composition1460cdepicts the state of the composition1460after the application of the in-point trims to out-point rule defined inFIG. 14A. Thus, for example, a rules engine of a temporal sculpting module may evaluate the rules associated with composition1460as defined in the project for the composition when the source of content for layer a1470changes, and apply the in-point trims to out-point rule specified for layer b1480in the project for composition1460(e.g., by changing the data associated with layer b1480in the project). Notice here that the application of the in-point trims to out-point rule shifts the in-point of layer b1480to cause the in-point of layer b1480to match (e.g., be the same point in time in the composition as) layer a's out-point. Notice as well, in contrast with an in-point shift to out-point rules as described above with respect toFIGS. 6A and 6B, that here layer b1480has NOT shifted in time (e.g., the start point and end point of layer b1480are still at the same point in time relative to the composition1460), the in-point of layer b1480has just been moved to match the in-point of layer a1470(which has trimmed layer b1480by leaving a portion1482of layer b1480that will not be displayed in composition1460when rendered).

FIG. 15Adepicts a block diagram of one embodiment of an interface for allowing a user to define an “in-point trims to out-point with overlap” rule is shown. Such a rule may specify that when a target layer (here layer a) changes duration the control layer's (here layer b) in-point will be trimmed to the same position in time as the target layer's (here layer a) out-point minus (e.g., earlier in time) some amount of frames. Such an interface may be presented by a temporal sculpting module when a user is defining effects for a control layer (here layer b) in a digital compositing platform. In particular, interface1510may allow a user to specify control parameters for the control layer (here layer b). Interface1510provides a time menu1512for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu may include trim menu1516where the trim target (e.g. here layer a) may be specified, along with the rule that the in-point for the controlled layer (layer b) should be trimmed to the out-point of the target layer (layer a) minus an overlap of a certain number of frames (here 15).

FIG. 15Bis a block diagram depicting one embodiment of the effect of applying an in-point trims to out-point rule with overlap as defined inFIG. 15Ato the controlled layer (layer b). Composition1560adepicts an initial state of the composition1560. Initially then, layer a1570is composited atop layer b1580and layer a1570has a first source of content. Composition1560bdepicts a state of composition1560after the source of content of layer a1570changes, before the application of the in-point trims to out-point rule defined for layer b1580. Composition1560cdepicts the state of the composition1560after the application of the in-point trims to out-point rule with overlap defined inFIG. 15A. Thus, for example, a rules engine of a temporal sculpting module may evaluate the rules associated with composition1560as defined in the project for the composition when the source of content for layer a1570changes, and apply the in-point trims to out-point rule with overlap specified for layer b1580in the project for composition1560(e.g., by changing the data associated with layer b1580in the project).

Notice here that the application of the in-point trims to out-point with overlap rule shifts the in-point of layer b1580to cause the in-point of layer b1580to match (e.g., be the same point in time in the composition as) layer a's out-point minus a number of frames (here 15). Notice as well, that the in-point of layer b has just been moved to match the out-point of layer a1570plus the overlap number of frames (e.g., 15); layer b1580has not shifted. Accordingly, layer b1580has been trimmed by leaving a portion1582of layer b1580that will not be displayed in composition1560when rendered. When comparing with the application of an in-point trims to out-point rule in a similar composition containing similar layers as depicted inFIG. 14B, this portion1582has decreased by the overlap number of frames (e.g., 15).

InFIG. 16A, a block diagram depicting one embodiment of an interface for allowing a user to define an “out-point trims to out-point” rule is shown. Such a rule may specify that when a target layer (here layer a) changes duration (e.g., because the source changes or the content from the source changed), the control layer's (here layer b) out-point will be trimmed to the same position in time as the target layer's (here layer a) out-point. Thus, such an interface may be presented by a temporal sculpting module when a user is defining effects for a control layer (here layer b) in a digital compositing platform. In particular, interface1610may allow a user to specify control parameters for a layer (the “controlled layer”, here layer b). Interface1610provides a time menu1612for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu may include trim menu1616where the trim target (e.g. here layer a) may be specified, along with the rule that the out-point for the controlled layer (layer b) should be trimmed to the out-point of the target layer (layer a).

FIG. 16Bis a block diagram depicting one embodiment of the effect of applying an out-point trims to out-point rule as defined inFIG. 16Ato the controlled layer (layer b). Composition1660adepicts an initial state of the composition1660. Initially then, layer a1670is composited atop layer b1680and layer a1670has a first source of content. Composition1660bdepicts a state of composition1660after the source of content of layer a1670changes, before the application of the out-point trims to out-point rule defined for layer b1680. Composition1660cdepicts the state of the composition1660after the application of the out-point trims to out-point rule defined inFIG. 16A. Thus, for example, a rules engine of a temporal sculpting module may evaluate the rules associated with composition1660as defined in the project for the composition when the source of content for layer a1670changes, and apply the out-point trims to out-point rule specified for layer b1680in the project for composition1660(e.g., by changing the data associated with layer b1680in the project). Notice here that the application of the out-point trims to out-point rule shifts the out-point of layer b1680to cause the out-point of layer b1680to match (e.g., be the same point in time in the composition as) layer a's out-point. Notice as well, in contrast with an out-point shift to out-point rules as described above with respect toFIGS. 10A and 10B, that here layer b1680has NOT shifted in time (e.g., the start point and end point of layer b1680are still at the same point in time relative to the composition1660), the out-point of layer b1680has just been moved to match the out-point of layer a1670(which has trimmed layer b1680by leaving a portion1682of layer b1680that will not be displayed in composition1660when rendered).

FIG. 17Adepicts a block diagram of one embodiment of an interface for allowing a user to define an “out-point trims to out-point with overlap” rule is shown. Such a rule may specify that when a target layer (here layer a) changes duration the control layer's (here layer b) out-point will be trimmed to the same position in time as the target layer's (here layer a) out-point minus (e.g., earlier in time) some amount of frames. Such an interface may be presented by a temporal sculpting module when a user is defining effects for a control layer (here layer b) in a digital compositing platform. In particular, interface1710may allow a user to specify control parameters for the control layer (here layer b). Interface1710provides a time menu1712for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu may include trim menu1716where the trim target (e.g. here layer a) may be specified, along with the rule that the out-point for the controlled layer (layer b) should be trimmed to the out-point of the target layer (layer a) minus an overlap of a certain number of frames (here 15).

FIG. 17Bis a block diagram depicting one embodiment of the effect of applying an out-point trims to out-point rule with overlap as defined inFIG. 17Ato the controlled layer (layer b). Composition1760adepicts an initial state of the composition1760. Initially then, layer a1770is composited atop layer b1780and layer a1770has a first source of content. Composition1760bdepicts a state of composition1760after the source of content of layer a1770changes, before the application of the out-point trims to out-point rule with overlap defined for layer b1780. Composition1760cdepicts the state of the composition1760after the application of the out-point trims to out-point rule with overlap defined inFIG. 17A. Thus, for example, a rules engine of a temporal sculpting module may evaluate the rules associated with composition1760as defined in the project for the composition when the source of content for layer a1770changes, and apply the out-point trims to out-point rule with overlap specified for layer b1780in the project for composition1760(e.g., by changing the data associated with layer b1780in the project).

Notice here that the application of the out-point trims to out-point with overlap rule shifts the out-point of layer b1780to cause the out-point of layer b1780to match (e.g., be the same point in time in the composition as) layer a's out-point minus a number of frames (here 15). Notice as well, that the out-point of layer b has just been moved to match the out-point of layer a1770minus the overlap number of frames (e.g., 15); layer b1780has not shifted. Accordingly, layer b1780has been trimmed by leaving a portion1782of layer b1780that will not be displayed in composition1760when rendered. When comparing with the application of an out-point trims to out-point rule in a similar composition containing similar layers as depicted inFIG. 16B, this portion1782has increased by the overlap number of frames (e.g., 15).

FIG. 18Ais a block diagram depicting one embodiment of an interface for allowing a user to define an “out-point trims to in-point” rule. Such a rule may specify that when a target layer (here layer a) changes duration (e.g., because the source changes or the content from the source changed), the control layer's (here layer b) out-point will be trimmed to the same position in time as the target layer's (here layer a) in-point. Thus, such an interface may be presented by a temporal sculpting module when a user is defining effects for a control layer (here layer b) in a digital compositing platform. In particular, interface1810may allow a user to specify control parameters for a layer (the “controlled layer”, here layer b). Interface1810provides a time menu1812for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu may include trim menu1816where the trim target (e.g. here layer a) may be specified, along with the rule that the out-point for the controlled layer (layer b) should be trimmed to the in-point of the target layer (layer a).

FIG. 18Bis a block diagram depicting one embodiment of the effect of applying an out-point trims to in-point rule as defined inFIG. 18Ato the controlled layer (layer b). Composition1860adepicts an initial state of the composition1860. Initially then, layer a1870is composited atop layer b1880and layer a1870has a first source of content. Composition1860bdepicts a state of composition1860after the source of content of layer a1870changes, before the application of the out-point trims to in-point rule defined for layer b1880. Composition1860cdepicts the state of the composition1860after the application of the out-point trims to in-point rule defined inFIG. 18A. Thus, for example, a rules engine of a temporal sculpting module may evaluate the rules associated with composition1860as defined in the project for the composition when the source of content for layer a1870changes, and apply the out-point trims to in-point rule specified for layer b1880in the project for composition1860(e.g., by changing the data associated with layer b1880in the project). Notice here that the application of the out-point trims to in-point rule shifts the out-point of layer b1860to cause the out-point of layer b1860to match (e.g., be the same point in time in the composition as) layer a's in-point. Notice as well, in contrast with an out-point shift to out-point rules as described above with respect toFIGS. 8A and 8B, that here layer b1880has NOT shifted in time (e.g., the start point and end point of layer b1880are still at the same point in time relative to the composition1860), the out-point of layer b1880has just been moved to match the in-point of layer a1870(which has trimmed layer b1880by leaving a portion1882of layer b1880that will not be displayed in composition1860when rendered).

FIG. 19Adepicts a block diagram of one embodiment of an interface for allowing a user to define an “out-point trims to in-point with overlap” rule is shown. Such a rule may specify that when a target layer (here layer a) changes duration the control layer's (here layer b) out-point will be trimmed to the same position in time as the target layer's (here layer a) in-point plus (e.g., later in time) some amount of frames. Such an interface may be presented by a temporal sculpting module when a user is defining effects for a control layer (here layer b) in a digital compositing platform. In particular, interface1910may allow a user to specify control parameters for the control layer (here layer b). Interface1910provides a time menu1912for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu may include trim menu1916where the trim target (e.g. here layer a) may be specified, along with the rule that the out-point for the controlled layer (layer b) should be trimmed to the in-point of the target layer (layer a) plus an overlap of a certain number of frames (here 15).

FIG. 19Bis a block diagram depicting one embodiment of the effect of applying an out-point trims to in-point rule with overlap as defined inFIG. 19Ato the controlled layer (layer b). Composition1960adepicts an initial state of the composition1960. Initially then, layer a1970is composited atop layer b1980and layer a1970has a first source of content. Composition1960bdepicts a state of composition1960after the source of content of layer a1970changes, before the application of the out-point trims to in-point rule with overlap defined for layer b1980. Composition1960cdepicts the state of the composition1960after the application of the out-point trims to in-point rule with overlap defined inFIG. 19A. Thus, for example, a rules engine of a temporal sculpting module may evaluate the rules associated with composition1960as defined in the project for the composition when the source of content for layer a1970changes, and apply the out-point trims to in-point rule with overlap specified for layer b1980in the project for composition1960(e.g., by changing the data associated with layer b1980in the project).

Notice here that the application of the out-point trims to in-point with overlap rule shifts the out-point of layer b1980to cause the out-point of layer b1980to match (e.g., be the same point in time in the composition as) layer a's in-point plus a number of frames (here 15). Notice as well, that the out-point of layer b1980has just been moved to match the in-point of layer a1970plus the overlap number of frames (e.g., 15); layer b1980has not shifted. Accordingly, layer b1980has been trimmed by leaving a portion1982of layer b1980that will not be displayed in composition1960when rendered. When comparing with the application of an out-point trims to in-point rule in a similar composition containing similar layers as depicted inFIG. 18B, this portion1982has decreased by the overlap number of frames (e.g., 15).

The type of time-sculpting rules discussed above with respect toFIGS. 12A-19Bare trimming rules that may establish a temporal link between a controlled layer and one or more target points in one or more target layers such that when one of the target layers is altered (e.g., modified or substituted with content of a different length) the control layer may be trimmed (e.g., have some content removed, or an in-point or out-point altered). Embodiments herein may also provide stretching rules that allow a layer to be stretched (e.g., the time of appearance in a composition, or of the layer, lengthened or shortened), for example to make a longer (or shorter) video or the like when the content of the layer includes a video. These types of stretching rules may establish a temporal link between a controlled layer and one or more target points in one or more target layers or a composition such that when a layer is altered (e.g., modified or substituted with content of a different length) the content of the control layer may be lengthened (or shortened). This time stretching (lengthening or shortening) may be accomplished, for example, by changing the playback speed of the content of the control layer in the composition. Embodiments of these types of stretching rules may be better understood with reference toFIGS. 20A-24B.

Looking first then atFIG. 20A, a block diagram depicting one embodiment of an interface for allowing a user to define a “stretch to in-point” rule is shown. Such a rule may specify that when a control layer (here layer b) changes (e.g., because the source changes or the content from the source changed), the control layer's (here layer b) playback speed will be adjusted such that the control layer's (here layer b) out-point will be at the same position in time (relative to the composition) as the target layer's (here layer a) in-point. Thus, such an interface may be presented by a temporal sculpting module when a user is defining effects for a control layer (here layer b) in a digital compositing platform. In particular, interface2010may allow a user to specify control parameters for a layer (the “controlled layer”, here layer b). Interface2010provides a time menu2012for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu may include stretch menu2018where the stretch target (e.g. here layer a) may be specified, along with the rule that the controlled layer (layer b) should be stretched to the in-point of the target layer (layer a).

FIG. 20Bis a block diagram depicting one embodiment of the effect of applying a stretch to in-point rule as defined inFIG. 20Ato the controlled layer (layer b). Composition2060adepicts an initial state of the composition2060. Initially then, layer a2070is composited atop layer b2080and layer b2080has a first source of content. Composition2060bdepicts a state of composition2060after the source of content of layer b2080changes, before the application of the stretch to in-point rule defined for layer b2080. Composition2060cdepicts the state of the composition2060after the application of the stretch to in-point rule defined inFIG. 20A.

Thus, for example, a rules engine of a temporal sculpting module may evaluate the rules associated with composition2060as defined in the project for the composition when the source of content for layer b2080changes, and apply the stretch to in-point rule specified for layer b2080in the project for composition2060(e.g., by changing the data associated with layer b2080in the project). The application of the rule may entail determining a new playback speed (or playback speed percentage) for layer b2080based on, for example, the length of layer b2080, the in-point of layer b2080, the in-point of layer a2070or other data. The playback speed (or percentage) can be associated with layer b2080in the project for the composition. Note that this playback speed (or percentage) may be greater than, or less than, a full or normal speed playback. Notice here that the application of the stretch to in-point rule changes the playback speed of layer b2080(if needed) to cause the out-point of layer b2080to match (e.g., be the same point in time in the composition as) layer a's in-point.

Similarly, inFIG. 21A, a block diagram depicting one embodiment of an interface for allowing a user to define a “stretch to in-point with overlap” rule is shown. Such a rule may specify that when a control layer (here layer b) changes (e.g., because the source changes or the content from the source changed), the control layer's (here layer b) playback speed will be adjusted such that the control layer's (here layer b) out-point will be at the same position in time (relative to the composition) as the target layer's (here layer a) in-point plus (e.g., later in time) some amount of frames. Thus, such an interface may be presented by a temporal sculpting module when a user is defining effects for a control layer (here layer b) in a digital compositing platform. In particular, interface2110may allow a user to specify control parameters for a layer (the “controlled layer”, here layer b). Interface2110provides a time menu2112for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu may include stretch menu2118where the stretch target (e.g. here layer a) may be specified, along with the rule that the controlled layer (layer b) should be stretched to the in-point of the target layer (layer a) plus an overlap of a certain number of frames (here 15).

FIG. 21Bis a block diagram depicting one embodiment of the effect of applying a stretch to in-point plus overlap rule as defined inFIG. 21Ato the controlled layer (layer b). Composition2160adepicts an initial state of the composition2160. Initially then, layer a2170is composited atop layer b2180and layer b2180has a first source of content. Composition2160bdepicts a state of composition2160after the source of content of layer b2180changes, before the application of the stretch to in-point rule defined for layer b2180. Composition2160cdepicts the state of the composition2160after the application of the stretch to in-point plus overlap rule defined inFIG. 21A.

Thus, for example, a rules engine of a temporal sculpting module may evaluate the rules associated with composition2160as defined in the project for the composition when the source of content for layer b2180changes, and apply the stretch to in-point rule plus overlap specified for layer b2180in the project for composition2160(e.g., by changing the data associated with layer b2180in the project). The application of the rule may entail determining a new playback speed (or playback speed percentage) for layer b2180based on, for example, the length of layer b2180, the in-point of layer b2180, the in-point of layer a2170, the number of frames specified for the control layer (here layer b), or other data. The playback speed (or percentage) can be associated with layer b2180in the project for the composition. Notice here that the application of the stretch to in-point rule plus overlap changes the playback speed of layer b2180(if needed) to cause the out-point of layer b2180to match (e.g., be the same point in time in the composition as) layer a's in-point plus the number of frames (here 15).

FIG. 22Adepicts a block diagram of one embodiment of an interface for allowing a user to define a “stretch to out-point” rule. Such a rule may specify that when a control layer (here layer b) changes (e.g., because the source changes or the content from the source changed), the control layer's (here layer b) playback speed will be adjusted such that the control layer's (here layer b) out-point will be at the same position in time (relative to the composition) as the target layer's (here layer a) out-point. Thus, such an interface may be presented by a temporal sculpting module when a user is defining effects for a control layer (here layer b) in a digital compositing platform. In particular, interface2210may allow a user to specify control parameters for a layer (the “controlled layer”, here layer b). Interface2210provides a time menu2212for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu may include stretch menu2218where the stretch target (e.g. here layer a) may be specified, along with the rule that the controlled layer (layer b) should be stretched to the out-point of the target layer (layer a).

FIG. 22Bis a block diagram depicting one embodiment of the effect of applying a stretch to out-point rule as defined inFIG. 22Ato the controlled layer (layer b). Composition2260adepicts an initial state of the composition2260. Initially then, layer a2270is composited atop layer b2280and layer b2280has a first source of content. Composition2260bdepicts a state of composition2260after the source of content of layer b2280changes, before the application of the stretch to out-point rule defined for layer b2280. Composition2260cdepicts the state of the composition2260after the application of the stretch to out-point rule defined inFIG. 22A.

Thus, for example, a rules engine of a temporal sculpting module may evaluate the rules associated with composition2260as defined in the project for the composition when the source of content for layer b2280changes, and apply the stretch to out-point rule specified for layer b2280in the project for composition2260(e.g., by changing the data associated with layer b2280in the project). The application of the rule may entail determining a new playback speed (or playback speed percentage) for layer b2280based on, for example, the length of layer b2280, the in-point of layer b2280, the out-point of layer a2270or other data. The playback speed (or percentage) can be associated with layer b2280in the project for the composition. Note that this playback speed (or percentage) may be greater than, or less than, a full or normal speed playback. Notice here that the application of the stretch to in-point rule changes the playback speed of layer b2280(if needed) to cause the out-point of layer b2280to match (e.g., be the same point in time in the composition as) layer a's out-point.

InFIG. 23A, a block diagram depicting one embodiment of an interface for allowing a user to define a similar “stretch to out-point with overlap” rule is shown. Such a rule may specify that when a control layer (here layer b) changes (e.g., because the source changes or the content from the source changed), the control layer's (here layer b) playback speed will be adjusted such that the control layer's (here layer b) out-point will be at the same position in time (relative to the composition) as the target layer's (here layer a) out-point plus (e.g., later in time) some amount of frames. Thus, such an interface may be presented by a temporal sculpting module when a user is defining effects for a control layer (here layer b) in a digital compositing platform. In particular, interface2310may allow a user to specify control parameters for a layer (the “controlled layer”, here layer b). Interface2310provides a time menu2312for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu may include stretch menu2318where the stretch target (e.g. here layer a) may be specified, along with the rule that the controlled layer (layer b) should be stretched to the out-point of the target layer (layer a) plus an overlap of a certain number of frames (here 15).

FIG. 23Bis a block diagram depicting one embodiment of the effect of applying a stretch to out-point plus overlap rule as defined inFIG. 23Ato the controlled layer (layer b). Composition2360adepicts an initial state of the composition2360. Initially then, layer a2370is composited atop layer b2380and layer b2380has a first source of content. Composition2360bdepicts a state of composition2360after the source of content of layer b2380changes, before the application of the stretch to in-point plus overlap rule defined for layer b2380. Composition2360cdepicts the state of the composition2360after the application of the stretch to in-point plus overlap rule defined inFIG. 23A.

Thus, for example, a rules engine of a temporal sculpting module may evaluate the rules associated with composition2360as defined in the project for the composition when the source of content for layer b2380changes, and apply the stretch to out-point rule plus overlap specified for layer b2380in the project for composition2360(e.g., by changing the data associated with layer b2380in the project). The application of the rule may entail determining a new playback speed (or playback speed percentage) for layer b2380based on, for example, the length of layer b2380, the in-point of layer b2380, the out-point of layer a2370, the number of frames specified for the control layer (here layer b), or other data. The playback speed (or percentage) can be associated with layer b2380in the project for the composition. Notice here that the application of the stretch to in-point rule plus overlap changes the playback speed of layer b2380(if needed) to cause the out-point of layer b2380to match (e.g., be the same point in time in the composition as) layer a's out-point plus the number of frames (here 15).

While the above embodiments of stretching rules have utilized a target point in another layer, embodiments of stretching rules may also utilize target points in the composition itself. For example, in one embodiment, the target for a control layer in a stretching rule may be the end time of a containing composition.FIG. 24Adepicts a block diagram of one embodiment of an interface for allowing a user to define a “stretch to end of comp” rule. Such a rule may specify that when a control layer (here layer b) changes (e.g., because the source changes or the content from the source changed), the control layer's (here layer b) playback speed will be adjusted such that the control layer's (here layer b) out-point will be at the same position in time as the composition containing the control layer (here layer b). Thus, such an interface may be presented by a temporal sculpting module when a user is defining effects for a control layer (here layer b) in a digital compositing platform. In particular, interface2410may allow a user to specify control parameters for a layer (the “controlled layer”, here layer b). Interface2410provides a time menu2412for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu may include stretch menu2418where the stretch target layer (e.g., here none) may be specified, along with the rule that the controlled layer (layer b) should be stretched to the target point of the end of the composition.

FIG. 24Bis a block diagram depicting one embodiment of the effect of applying a stretch to out-point rule as defined inFIG. 24Ato the controlled layer (layer b). Composition2460adepicts an initial state of the composition2460. Initially then, layer a2470is composited atop layer b2480and layer b2480has a first source of content. Composition2460bdepicts a state of composition2460after the source of content of layer b2480changes, before the application of the stretch to end of comp rule defined for layer b2480. Composition2460cdepicts the state of the composition2460after the application of the stretch to end of comp rule defined inFIG. 24A.

Thus, for example, a rules engine of a temporal sculpting module may evaluate the rules associated with composition2460as defined in the project for the composition when the source of content for layer b2480changes, and apply the stretch to end of comp rule specified for layer b2480in the project for composition2460(e.g., by changing the data associated with layer b2480in the project). The application of the rule may entail determining a new playback speed (or playback speed percentage) for layer b2480based on, for example, the length of layer b2480, the in-point of layer b2480, the end time of the composition2460, or other data. The playback speed (or percentage) can be associated with layer b2480in the project for the composition. Note that this playback speed (or percentage) may be greater than, or less than, a full or normal speed playback. Notice here that the application of the stretch to end of comp rule changes the playback speed of layer b2480(if needed) to cause the out-point of layer b2480to match (e.g., be the same point in time in the composition as) the end of the composition2460.

The type of time-sculpting rules discussed above with respect toFIGS. 20A-24Bare stretching rules that rules may establish a temporal link between a controlled layer to one or more target points in one or more target layers or a composition such that when one of the control layers is altered (e.g., modified or substituted with content of a different length) the content of the control layer may be lengthened (or shortened). Embodiments herein may also provide cropping rules that allow a user to define time cropping points (target points) with respect to a layer to establish a temporal link between the layer and the composition, such that when a layer changes, the in-point or out-point of the entire composition are altered based on the in-point or out-point of the layer. These rules may define, for example, where a composition starts and ends. Embodiments of these types of cropping rules may be better understood with reference toFIGS. 25A-26B.

Looking atFIG. 25A, a block diagram of one embodiment of an interface for allowing a user to define a “crop to in-point” rule is depicted. Such a rule may specify that when a control layer (here layer b) changes (e.g., because the source changes or the content from the source changed), the start time of the composition containing the control layer will be adjusted (or “cropped”) until the start time of the composition is the same as the in-point of the control layer (here layer b). Thus, such an interface may be presented by a temporal sculpting module when a user is defining effects for a control layer (here layer b) in a digital compositing platform. In particular, interface2510may allow a user to specify control parameters for a layer (the “controlled layer”, here layer b). Interface2510provides a time menu2512for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu may include crop menu2520where the rule that the composition containing the control layer (here layer b) should be cropped to the target point of the control layer's in-point.

FIG. 25Bis a block diagram depicting one embodiment of the effect of applying a crop to in-point rule as defined inFIG. 25Ato a composition. Composition2560adepicts an initial state of the composition2560. Initially then, layer a2570is composited atop layer b2580and layer b2580has a first source of content. Composition2560bdepicts a state of composition2560after the source of content of layer b2580changes, before the application of the crop to in-point rule defined for layer b2580. Composition2560cdepicts the state of the composition2560after the application of the crop to in-point rule defined inFIG. 25A.

Thus, for example, a rules engine of a temporal sculpting module may evaluate the rules associated with composition2560as defined in the project for the composition when the source of content for layer b2580changes, and apply the crop to in-point rule specified for layer b2580in the project for composition2560(e.g., by changing the data associated with layer b2580or the composition2560in the project). The application of the rule may entail determining a start time for the composition2560based on, for example, the in-point of layer b2580. Notice here that the application of the crop to in-point rule changes the start time of composition2560to cause the start time of composition2560to match (e.g., be the same point in time in as) the in-point of layer b2580.

FIG. 26Adepicts a block diagram of one embodiment of an interface for allowing a user to define a “crop to out-point” rule is depicted. Such a rule may specify that when a control layer (here layer b) changes (e.g., because the source changes or the content from the source changed), the end time of the composition containing the control layer will be adjusted (or “cropped”) until the end time of the composition is the same as the out-point of the control layer (here layer b). Thus, such an interface may be presented by a temporal sculpting module when a user is defining effects for a control layer (here layer b) in a digital compositing platform. In particular, interface2610may allow a user to specify control parameters for a layer (the “controlled layer”, here layer b). Interface2610provides a time menu2612for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu may include crop menu2620where the rule that the composition containing the control layer (here layer b) should be cropped to the target point of the control layer's out-point.

FIG. 26Bis a block diagram depicting one embodiment of the effect of applying a crop to out-point rule as defined inFIG. 26Ato a composition. Composition2660adepicts an initial state of the composition2660. Initially then, layer a2670is composited atop layer b2680and layer b2680has a first source of content. Composition2660bdepicts a state of composition2660after the source of content of layer b2680changes, before the application of the crop to out-point rule defined for layer b2680. Composition2660cdepicts the state of the composition2660after the application of the crop to out-point rule defined inFIG. 26A.

Thus, for example, a rules engine of a temporal sculpting module may evaluate the rules associated with composition2660as defined in the project for the composition when the source of content for layer b2680changes, and apply the crop to out-point rule specified for layer b2680in the project for composition2660(e.g., by changing the data associated with layer b2680or the composition2660in the project). The application of the rule may entail determining an end time for the composition2660based on, for example, the out-point of layer b2680. Notice here that the application of the crop to out-point rule changes the end time of composition2660to cause the end time of composition2660to match (e.g., be the same point in time in as) the out-point of layer b2670.

FIGS. 27A and 27Bdepict the simultaneous application of a crop to in-point rule and a crop to out-point rule for the same control layer.FIG. 27Ais a block diagram of one embodiment of an interface for allowing a user to define a “crop to out-point” rule and “crop to in-point” rule. Such an interface may be presented by a temporal sculpting module when a user is defining effects for a control layer (here layer b) in a digital compositing platform. In particular, interface2710may allow a user to specify control parameters for a layer (the “controlled layer”, here layer b). Interface2710provides a time menu2712for the controlled layer including controls allowing a user to define one or more time-sculpting rules with respect to that layer. This time menu may include crop menu2720where both the rule that the composition containing the control layer (here layer b) should be cropped to the target point of the control layer's in-point (a crop to in-point rule) and the rule that the composition containing the control layer (here layer b) should be cropped to the target point of the control layer's out-point may be specified.

FIG. 27Bis a block diagram depicting one embodiment of the effect of applying both a crop to out-point rule and a crop to in-point rule as defined inFIG. 27Ato a composition. Composition2760adepicts an initial state of the composition2760. Initially then, layer a2770is composited atop layer b2780and layer b2780has a first source of content. Composition2760bdepicts a state of composition2760after the source of content of layer b2780changes, before the application of the crop to out-point and crop to in-point rules defined for layer b2780. Composition2760cdepicts the state of the composition2760after the application of the crop to out-point and crop to in-point rules defined inFIG. 27A.

Here, a rules engine of a temporal sculpting module may evaluate the rules associated with composition2760as defined in the project for the composition when the source of content for layer b2780changes, and apply the crop to out-point and crop to in-point rules specified for layer b2780in the project for composition2760(e.g., by changing the data associated with layer b2780or the composition2760in the project). The application of the rules may entail determining both a start time and an end time for the composition2760based on, for example, the in-point and out-point of layer b2780. Notice here that the application of the crop to out-point and crop to in-point rules changes both the start time and end time of composition2660to cause the start time of composition2760to match (e.g., be the same point in time in as) the in-point of layer b2780and the end time of composition2760to match the out-point of layer b2780.

These cropping rules may also usefully be applied to different or distinct layers of a composition to similar effect.FIGS. 28A and 28Bare, respectively, block diagrams of embodiments of interfaces for allowing a user to define a crop to out-point rule for one layer (layer b) and a crop to in-point rule for another layer (layer a). These interfaces are substantially similar to those depicted and described above with respect toFIGS. 26A and 27A. As can be seen then, in the examples depicted for one control layer (layer b) a rule defining that the start time of the composition containing the control layer (layer b) should be cropped to the target point of the control layer's out-point (a crop to out-point rule) has been specified and for another control layer (layer a) a rule defining that the start point of the composition containing the control layer (layer a) should be cropped to the target point of the control layer's in-point (a crop to out-point rule) has been defined.

FIG. 28Cis a block diagram depicting one embodiment of the effect of applying both the crop to out-point rule (for layer b) and the crop to in-point rule (for layer a) as defined inFIGS. 28A and 28Bto a composition. Composition2860adepicts an initial state of the composition2860. Initially then, layer a2870is composited atop layer b2880and layer b2880has a first source of content. Composition2860bdepicts a state of composition2860after the source of content of layer b2880changes, before the application of the crop to out-point and crop to in-point rules defined for layer b2880and layer a2870. Composition2860cdepicts the state of the composition2860after the application of the crop to out-point and crop to in-point rules defined inFIGS. 28A and 28B.

Here, a rules engine of a temporal sculpting module may evaluate the rules associated with composition2860as defined in the project for the composition when the source of content for layer b2880changes, and apply the crop to out-point and crop to in-point rules specified for layer b2880and layer a2870in the project for composition2860(e.g., by changing the data associated with layer b2880, layer a2870or the composition2860in the project). The application of the rules may entail determining both a start time and an end time for the composition2860based on, for example, the in-point of layer a2870and the out-point of layer b2880. Notice here that the application of the crop to out-point and crop to in-point rules changes both the start time and end time of composition2860to cause the start time of composition2860to match (e.g., be the same point in time in as) the in-point of layer a2870and the end time of composition2860to match the out-point of layer b2880. Notice as well that the change in layer b2880caused the application of both the crop to in-point rule associated with layer a2870and the crop to out-point rule associated with layer b2880(despite the fact that layer a2870may not have changed).

It may now be useful to illustrate other applications and uses of embodiments of time-sculpting rules for digital compositions as described herein. The examples and applications and uses may reflect real-world applications and uses for the time-sculpting rules and illustrate the efficacy and usefulness of such time-sculpting rules. For example, it is often the case that digital editors may desire to have a composition with a layers that include a dynamic intro, a main segment and a trailing outro. As noted above, however, the content of the layers may change (sometimes often) when creating the composition. Using embodiments of the time-sculpting rules as discussed then, a digital editor may define rules for the layers of such a composition so that the desired temporal relationships between certain layers of the composition may be maintained.

For the above described scenario, in which a composition includes a dynamic intro, a main segment and a trailing outro,FIG. 29Ais a block diagram depicting one embodiment of an interface where a user is defining time-sculpting rules for the “outro” layer of a composition. Notice in the depicted interface the user has defined in-point shifts to out-point with overlap rule for the outro layer, where the target layer is the “main” layer of the composition and the number of frames of overlap is 15. Additionally, the user has defined a crop to out-point rule for the outro layer, such that end point of the composition containing the outro layer will be cropped to the out-point of the outro layer.FIG. 29Bis a block diagram depicting one embodiment of an interface where a user is defining time-sculpting rules for the “main” layer of a composition. Here, the user has defined an in-point shifts to out-point with overlap rule for the main layer, where the target layer is the “intro” layer of the composition and the number of frames of overlap is 15.

FIG. 29Cdepicts a block diagram of one embodiment of the effect of applying the temporal sculpting rules as defined inFIGS. 29A and 29Bto a composition including an intro, main and outro layer. In particular, composition2960adepicts an initial state of the composition2960. Initially then, outro layer2970is composited atop intro layer2980and main layer2990. Composition2960bdepicts a state of composition2960after the source of content of the intro layer2980and the main layer2990changes, before the application of the rules defined for outro layer2970and main layer2990. Composition2960cdepicts the state of the composition2960after the application of the rules for the outro layer2970and main layer2990defined inFIGS. 29A and 29B.

Here, a rules engine of a temporal sculpting module may evaluate the rules associated with composition2960as defined in the project for the composition when the source of content for intro layer2980or main layer2990changes, and apply the shift in-point to out-point rules with overlap specified for the main layer2990and outro layer2970and the crop to out-point rule specified for the outro layer2970in the project for composition2960(e.g., by changing the data associated with main layer2990, outro layer2970or the composition2960in the project). Notice here that the application of the shift to in-point rule with overlap specified for the for the main layer2990causes the in-point of main layer2990to be a point in time in the composition defined by intro layer's (the target layer) out-point minus the number of frames specified as the overlap (e.g., 15 frames). In other words, the in-point of main layer2990may be defined to be the number of overlap frames earlier than the out-point of intro layer2980. Similarly, the application of the shift to in-point rule with overlap specified for the for the outro layer2970causes the in-point of outro layer2970to be a point in time in the composition defined by main layer's (the target layer) out-point minus the number of frames specified as the overlap (e.g., 15 frames). In other words, the in-point of outro layer2970may be defined to be the number of overlap frames earlier than the out-point of main layer2990. Additionally, the application of the crop to out-point rule associated with outro layer2970causes the end point of composition2960to be the same as the out-point of outro layer2970.

Now suppose that a composition includes an intro layer, a main layer and an outro layer, and a digital editor wishes to include a graphic layer that is displayed as long as the main layer is displayed in the composition. To ensure that this temporal arrangement is maintained in such a scenario, a digital editor may utilize embodiments of the time-sculpting rules presented herein for their composition.FIGS. 30A-30Care block diagrams depicting such a scenario.FIG. 30Ais a block diagram depicting one embodiment of an interface where a user is defining time-sculpting rules for the “outro” layer of a composition. Notice in the interface the user has defined an in-point shifts to out-point with overlap rule for the outro layer, where the target layer is the “main” layer of the composition and the number of frames of overlap is 15. Additionally, the user has defined a crop to out-point rule for the outro layer, such that the end point of the composition containing the outro layer will be cropped to the out-point of the outro layer.FIG. 30Bis a block diagram for a block diagram depicting one embodiment of an interface where a user is defining time-sculpting rules for the “graphic” layer of a composition. Here, the user has defined an in-point trims to in-point rule and out-point trims to out-point rule for the graphic layer, where the target layer for both rules is the main layer of the composition.

FIG. 30Cdepicts a block diagram depicting one embodiment of the effect of applying the temporal sculpting rules as defined inFIGS. 30A and 30Bto a composition including an intro, main, graphic and outro layer. In particular, composition3060adepicts an initial state of the composition3060. Initially then, outro layer3070is composited atop graphic layer3050, intro layer3090and main layer3080. Composition3060bdepicts a state of composition3060after the source of content of the main layer3080and the outro layer3070changes, before the application of the rules defined for outro layer3070and graphic layer3050. Composition3060cdepicts the state of the composition3060after the application of the rules for the outro layer3070and graphic layer3050defined inFIGS. 30A and 30B.

A rules engine of a temporal sculpting module may evaluate the rules associated with composition3060as defined in the project for the composition when the source of content for main layer3080or outro layer3070changes, and apply the shift in-point to out-point rules with overlap and the crop to out-point rule specified for the outro layer3070, and the in-point trim to in-point rule and out-point trims to out-point rule specified for graphic layer3050in the project for composition3060(e.g., by changing the data associated with main layer3080, outro layer3070or the composition3060in the project). Notice here that the application of the in-point trims to in-point and out-point trims to out-point rules specified for the graphic layer3050causes the in-point of the graphic layer3050to be the same point in time as the in-point of the main layer3080and the out-point of graphic layer3050to be the same point in time as the out-point of main layer3080(e.g., the graphic layer3050will be displayed in the composition at the same time as main layer3080). Moreover, the in-point shifts to out-point rule plus overlap specified for the outro layer3070causes the in-point of outro layer3070to be a point in time in the composition defined by main layer's (the target layer) out-point minus the number of frames specified as the overlap (e.g., 15 frames). In other words, the in-point of outro layer3070may be defined to be the number of overlap frames earlier than the out-point of main layer3080. Additionally, the application of the crop to out-point rule associated with outro layer3070causes the end point of composition3060to be the same as the out-point of outro layer3070.

Generally then, embodiments of time sculpting rules as disclosed may be utilized to ensure that a desired temporal arrangement between layer of a composition is maintained, irrespective of alterations to certain layers. As a more general scenario suppose that a composition includes an intro, with a number of clips it is desired to display sequentially, followed by an outro. To ensure that this temporal arrangement is maintained in such a scenario, with introducing dead space or other artifacts, a digital editor may utilize embodiments of the time-sculpting rules presented herein for their composition.FIGS. 31A-31Fare block diagrams depicting such a scenario.

Specifically,FIGS. 31A-31Eare block diagrams depicting one embodiment of an interface where a user is defining time-sculpting rules for layers of the composition. In particular, inFIG. 31Aa user has defined an in-point shifts to out-point with overlap rule for the “clip 1” layer, where the target layer is the “intro” layer of the composition and the number of frames of overlap is 15. Additionally, the user has selected a preserve start and preserve end rule from the trim menu of the interface. These rules may be special cases of trim rule. A preserve the start selection may cause the in-point or the controlled layer to always be placed at the start time of the control layer so that effectively there is no trimming of the layer's in-point. Similarly, for a selection of preserve the end rule for the controlled layer indicates that the out-point of the controlled layer should be placed at the end time of the control layer so that effectively there is no trimming of the layer's out-point. That is, the in-point or out-point is forced to the extent of the layer's start time or end time respectively. As in some embodiment is may make little sense to both preserve the start (or end) and target a sibling layer (e.g., another layer in the same composition), in one embodiment, if a user selects a preserve start for a control layer in the interface then the “In point trims to” and “Trim target” menu items of the interface may be greyed-out and become disabled.

InFIG. 31Ba user has defined an in-point shifts to out-point with overlap rule for the “clip 2” layer, where the target layer is the clip 1 layer of the composition and the number of frames of overlap is 15. The user has also selected a preserve start and preserve end rule from the trim menu of the interface for the clip 2 layer.FIG. 31Cshows that a user has defined an in-point shifts to out-point with overlap rule for the “clip 3” layer, where the target layer is the clip 2 layer of the composition and the number of frames of overlap is 15. A preserve start and preserve end rule have also been selected from the trim menu of the interface for the clip 3 layer. InFIG. 31Da user has defined an in-point shifts to out-point with overlap rule for the “clip 4” layer, where the target layer is the clip 3 layer of the composition and the number of frames of overlap is 15. Again the user has selected a preserve start and preserve end rule from the trim menu of the interface for the clip 4 layer.FIG. 31Eshows that a user has defined an in-point shifts to out-point with overlap rule for the “outro” layer, where the target layer is the clip4 layer of the composition and the number of frames of overlap is 15. Additionally, a crop to out-point rule specified for the outro layer.

FIG. 31Fis a block diagram depicting one embodiment of the effect of applying the temporal sculpting rules as defined inFIGS. 31A-31Eto a composition including an intro, clip 1, clip 2, clip 2, clip 3, clip 4 and an outro layer. In particular, composition3160adepicts an initial state of the composition3160. Initially then, outro layer3170is composited atop clip 4 layer3172, clip 3 layer3174, clip 2 layer3176, clip 1 layer3178and intro layer3180. Composition3160bdepicts a state of composition3160after the source of content of one of the clip (1, 2, 3, or 4) layers3172,3174,3176,3178changes, before the application of the rules defined for outro layer3170and clip (1, 2, 3, or 4) layers3172,3174,3176,3178. Composition3160cdepicts the state of the composition3160after the application of the rules for outro layer3170and clip (1, 2, 3, or 4) layers3172,3174,3176,3178defined inFIGS. 31A-31E.

Here, a rules engine of a temporal sculpting module may evaluate the rules associated with composition3160as defined in the project for the composition when the source of content for one of the clip (1, 2, 3, or 4) layers3172,3174,3176,3178changes and apply the shift in-point to out-point rules with overlap specified for clip (1, 2, 3, or 4) layers3172,3174,3176,3178and outro layer3170and the crop to out-point rule specified for the outro layer3170in the project for composition3160(e.g., by changing the data associated with clip (1, 2, 3, or 4) layers3172,3174,3176,3178, outro layer3170or the composition3160in the project). Notice here that the application of the shift to in-point with overlap rules specified for clip (1, 2, 3, or 4) layers3172,3174,3176,3178and outro layer3170causes the in-point of clip 1 layer3172to be a point in time in the composition defined by intro layer's (the target layer) out-point minus the number of frames specified as the overlap (e.g., 15 frames); the in-point of clip 2 layer3174to be a point in time in the composition defined by clip 1 layer's (the target layer) out-point minus the number of frames specified as the overlap (e.g., 15 frames); the in-point of clip 3 layer3176to be a point in time in the composition defined by clip 2 layer's (the target layer) out-point minus the number of frames specified as the overlap (e.g., 15 frames); the in-point of clip 4 layer3178to be a point in time in the composition defined by clip 3 layer's (the target layer) out-point minus the number of frames specified as the overlap (e.g., 15 frames); and the in-point of outro layer3170to be a point in time in the composition defined by clip 4 layer's (the target layer) out-point minus the number of frames specified as the overlap (e.g., 15 frames). Additionally, the application of the crop to out-point rule associated with outro layer3170causes the end point of composition3160to be the same as the out-point of outro layer3170.

Now that embodiments of the time-sculpting rules implemented a temporal sculpting module of a digital compositing platform have been presented, it will be useful to discuss examples of the use of embodiments of such a temporal sculpting module in the context of the use of a digital compositing platform. Attention is therefore directed toFIGS. 32A to 32Owhich depict embodiments (or portions thereof) of an interface for a digital compositing platform that includes a temporal sculpting module.

Interface3200of a digital compositing platform may include a composition timeline area3210, a composition layer display area3220, a layer source asset area3230and a composition viewer area3240. The interface3200may also include temporal sculpting module interface areas3250,3260. In particular, these areas may include a timeline utility area3250and a layer effects control area3260.FIG. 32Edepicts one embodiment of a layer source asset area3230. A user may interact with layer source asset area3230to add content to a project. For example, assets may be added by selecting sources for the content for each layer using the layer source asset area3230. Here, this content may include footage assets3232and two animation slate composition assets3234.

FIG. 32Fdepicts one embodiment of a composition layer area3220and composition timeline area3210. Using these areas3210,3220a user can insert project content (e.g., as added in layer source asset area3230) as layers in a composition, assign other names to those layers if desired (e.g., here, “outro”, “clip 1”, “clip 2”, “clip 3”, “clip 4”, “intro”) and position those named layers in a composition timeline which is displayed in composition timeline area3210. The composition timeline area3210thus displays a timeline denoting a scale of time along with blocks representing each named layer and their relative position in the composition (e.g., as they will appear in a rendering of the composition). The project file for the project may thus now include the defined composition, including references to each layer, names for each layer, the source of content for the layer, and the arrangement (e.g., the temporal arrangement) of the layers of the composition.

FIG. 32Gdepicts an embodiment of layer effects control area3260and composition layer area3220. Using the composition layer area3220(or another area of the interface3200) a user may select a layer of the composition (e.g., here “clip 4” has been selected). Then, using the layer effects control area3260, the user may define one or more time—sculpting rules for that layer. The definition of rules for a layer is sometimes referred to as applying parameter controls to the layer as an effect modifier. In this manner, time-sculpting rules defining the temporal interaction of one or more layers of a composition may be associated with the composition or layers thereof such that a template may be defined for the composition. The layers or composition may thus be made to conform to this template or set of rules when the source or content of a layer changes by applying those rules (referred to as timeline invalidation). Accordingly, the project for the composition may include (e.g., store) the defined template or set of rules in association with the layers of the composition.

Timeline invalidation (e.g., a change in the content of a layer, as a result of either a change of the original content or the substitution of different content) may occur in a variety of manners, as elaborated on above. The composition (e.g., including the layers with the changed content) can then be altered according to the defined template (e.g., the set of temporal sculpting rules for at least one layer) so that the layers and the composition adhere to the set of temporal sculpting rules. In one embodiment, it may be desired by users to apply the template (e.g., the set of rules) to instances of the composition that include multiple sources of content for each layer. To facilitate this approach, embodiments of the digital compositing platform including the temporal sculpting module as described may allow the definition of multiple sources for one or more of the layers of the composition and the ability to process a composition according to each definition of the layers.

For example, as depicted inFIG. 32H, in one embodiment, a user may create a spreadsheet or other data file defining an instance of the composition, where each instance specifies a source of content for one or more layers of the composition. In one embodiment, a data file such a spreadsheet or the like may be used to define instances of a composition by defining different sources of content for one or more layers of the composition for each instance. Thus, for example, as depicted inFIG. 32H, a data file3294may include columns representing the layers of clip 1, clip 2, clip 3 and clip 4 of the composition. The data file3294thus defines three instances of the composition in rows 2, 3 and 4, with each instance defining a different source for the layer of the associated column. As depicted in the embodiment of the timeline utility area3250inFIG. 32I, a user can link the composition (e.g., the project for the composition) being edited in interface3200to the data file3294using timeline utility area3250by specifying the location of the data file3294.

The user can then initiate a timeline invalidation using timeline utility area3250as depicted inFIG. 32J. Specifically, in one embodiment, the user may select a button (e.g., the “Preview” button) displayed in timeline utility area3250. The selection of this button, may cause the temporal sculpting module of the digital compositing platform to retrieve a row of data from a data file linked to the project (e.g., data file3294) and read the sources for the layers as defined in the row of the read data file. Moving toFIG. 32K, the sources for the layers as defined in the retrieved row of data can then be updated in the project file for the composition, changing the content of these layers. The composition layer display area3220will display the timeline and layers of the composition based on the updated layers. It will be noted that, for layers of a composition not specified in the data file, the content of those layers may not change and may be as previously defined in the project for the composition.

As the content of one or more layers of the composition have been altered, the temporal sculpting module may apply the time-sculpting rules of the composition as defined for one or more of the layers in the project. Specifically, the layers of the composition may be rearranged (e.g., by shifting, trimming, stretching or cropping) the appropriate layers of composition as discussed above according to the rules specified for the layers of the composition. This rearrangement may adjust the data (e.g., the in-point, out-point, start time, end time, playback speed, etc.) associated with one or more layers in the project. Such rearrangement may thus be done automatically without further user involvement. In this manner, layers within a composition can be made to automatically interact with one another in a composition with respect to, for example, start or end time, playback speed, in-point, out-point or other points associated with the layers or compositions. The composition layer display area3220will display the timeline and layers of the composition based on the rearranged layers as depicted in the embodiment ofFIG. 32L.

This process may then be repeated, as depicted inFIGS. 32M to 32O. The user can initiate another timeline invalidation using timeline utility area3250as depicted inFIG. 32M. The selection of the Preview button, may cause the temporal sculpting module of the digital compositing platform to retrieve the next row of data from the data file linked to the project (e.g., data file3294) and read the sources for the layers as defined in the row of the read data file. Moving toFIG. 32N, the sources for the layers as defined in the retrieved row of data can then be updated in the project file for the composition, changing the content of these layers. The composition layer display area3220will display the timeline and layers of the composition based on the updated layers. As the content of one or more layers of the composition have been altered, the temporal sculpting module may apply the time-sculpting rules of the composition as defined for one or more of the layers in the project. Specifically, the layers of the composition may be rearranged (e.g., by shifting, trimming, stretching or cropping) the appropriate layers of composition as discussed above according to the rules specified for the layers of the composition. The composition layer display area3220will display the timeline and layers of the composition based on the rearranged layers as depicted in the embodiment ofFIG. 32O.

A user may also cause the digital compositing platform to render each instance of the composition as defined in a data file (e.g., data file3294) for the composition. In this case, a user may hit a “Render” button in the timeline utility area3250. For each instance of the composition defined in the data file (e.g., data file3294), the layers may be rearranged according to the set of time sculpting rules and the resulting composition queued for rendering by the digital compositing platform. Specifically, in one embodiment, the temporal sculpting module may iterate through each row of data in the data file linked to the project (e.g., data file3294) and read the sources for the layers as defined in the row of the read data file. The sources for the layers as defined in the retrieved row of data can then be updated in the project file for the composition, changing the content of these layers (while layers that have not changed or are not specified in the data file may be as previously defined in the project for the composition). The temporal sculpting module may then queue that instance of the composition for rendering by the digital compositing platform and read the next row of the data file (if another row is present). The digital compositing platform can then render each instance of the composition and save the resulting output file (e.g., the resulting .mov, .mp4, .avi, etc). The resulting compositions will thus contain the content specified for each layer arranged according to the specified time-sculpting rules.

Now that embodiments of digital compositing platforms that include temporal sculpting modules that implement time-sculpting rules have been explained, attention is now directed to embodiments of methods for applying those time-sculpting rules. In particular,FIGS. 33-40depict embodiments of methods for the configuring or sequencing of layers by application of one or more time sequencing rules to configure or sequence the layers of a composition (timeline invalidation).

Looking first atFIG. 33, a flow diagram for one embodiment of method for configuring and sequencing layers within a digital video composition is depicted. Embodiments of such methods may be employed by a digital compositing platform including a temporal sculpting module. Initially, then, a digital video composition may include a project including a set of named layers (which may themselves be a (nested) composition) and a template defining a set of time-sculpting rules, each rule associated with one or more of the set of layers. When one or more layers of a composition changes or it is desired to change one or more layers, (e.g., when a timeline invalidation is initiated or occurs) all the dynamic layers of the composition may be harvested into a data structure (referred to without loss of generality as an array) (STEP3310). Again, a dynamic layer is a layer of the composition which has a time-sculpting rule assigned to it, or associated with it. Thus, the harvesting may include determining from the template of the project all the layers referenced by the set of rules of the template and these layers placed into the array. The array thus includes references to each dynamic layer of the composition and the associated data or properties of that layer such as the start time, end time, in-point, out-point, playback speed, etc.

Using the array, then, each of the dynamic layers may be initialized and reset if needed (STEP3320). Based on the set of rules of the template, the resetting process may (re)set the playback speed of all the dynamic layers to 100% (e.g., normal playback speed) for all layers (e.g., if a layer's playback speed it not already at 100%). During this step it can also be determined if any of the rules for a layer specify that the end point or start point of a layer is to be preserved. If so, the in-point of the layer may be set to the start time (if the start of the layer is to be preserved) or the out-point of the layer set to the end point of the layer (if the start of the layer is to be preserved).

Once the dynamic layers are initialized and reset, the layers may be arranged according to the set of rules of the template (STEP3330). The arrangement of the layers may be done according to a nested depth of the composition of the project (referred to as the top-most or overall composition). In particular, in one embodiment, the maximum nested depth of the overall composition can be determined. For each level of depth, the layers can then be arranged according to the rules defined for those layers according to the template. This arrangement may include trimming one or more of the layers (e.g., setting a layer's in-point or out-point in the project based on a target layer's in-point or out-point); shifting one or more of the layers (e.g., setting a layer's start time or end time in the project so the layer's in-point or out-point reaches a target layer's in-point or out-point); cropping one or more layers (which may be compositions) (e.g., by adjusting the duration of the a containing composition where the beginning of a composition starts at a layer's in-point or the end of a composition ends at a layer's out-point, or both); or stretching one or more layers (e.g., by changing the duration of a layer in the project by adjusting the layer's playback speed until the layer's out-point reached the in-point or out-point of a target layer, or the end of the layer's containing composition).

Each of the steps ofFIG. 33will now be explained in more detail.FIG. 34depicts one embodiment of a method for harvesting layers;FIG. 35depicts one embodiment of a method for initializing and resetting layers; andFIG. 36depicts one embodiment of a method arranging the layers of the composition. Referring toFIG. 34, initially, then, a digital video composition may include a project including a set of named layers (which may themselves be a (nested) composition) and a template defining a set of time-sculpting rules, each rule associated with one or more of the set of layers. When one or more layers of a composition changes or it is desired to change one or more layers, (e.g., when a timeline invalidation is initiated or occurs) all the dynamic layers of the composition may be harvested into a data structure (referred to without loss of generality as an array).

Each layer of the project may be inspected (STEP3410) to determine if that layer is a dynamic layer (STEP3420). In one embodiment, for a particular layer the rules of the template may be obtained and evaluated to determine if that layer is referenced by any of the rules of the template. If the layer is referenced it can be determined that the layer is marked as dynamic, while if no rule of the template references that layer it can be determined that the layer is not dynamic. If the layer is determined not to be a dynamic layer (NO branch of STEP3420), it can be determined if the last layer of the project has been evaluated (STEP3470). If it is the last layer, the harvesting of the layers may be complete (NO branch of STEP3470), otherwise (YES branch of STEP3470) the next layer of the project may be evaluated to determine if it is a dynamic layer (STEP3420).

If, however, the layer is determined to be dynamic (e.g., is referenced by a rule) (YES branch of STEP3420) the layer may be added to an array of dynamic layers (referred to in the following FIGURES as the “Dynamic Layers Array”) (STEPS3430,3440). In one embodiment, the adding of the layer as a dynamic layer to the Dynamic Layer Array may comprise pushing or putting an object for that layer into the array. This object may be a reference to the layer in the project and thus may reference or include the associated data or properties of that layer, including, for example, the start time, end time, in-point, out-point, playback speed, containing or sub compositions or layers (composition(s) which contain the layer or compositions or layers which the layer includes), etc.

Once layer is determined to be dynamic and added to the Dynamic Layer Array, it can further be determined if that dynamic layer has a footage (e.g., not a still image) source (STEP3450). If the layer has a footage source (YES branch of STEP3450) the layer's footage source may be invalidated and updated to the new source (STEP3460). In one embodiment, this determination may entail determining if the footage source for that layer has changed or been altered from a source of content currently associated with that layer in the project. Thus, for example, as discussed above a data file may include footage sources for one or more layers of the composition of the project or the user may have otherwise specified footage sources for one or more layers of the composition. From the footage sources specified (e.g., the data file, row of the data file, user specification, etc.) it can be determined if there is a footage source for the layer different than the footage source currently associated with the layer in the project. In one embodiment, if the dynamic layer has a footage source (regardless of whether the source has changed or not), the footage source of the layer may be invalidated and updated (e.g., in the Dynamic Layer Array), such that any changes in the footage source may be accounted for (e.g., duration, location, etc.). It will be understood, that, in some embodiments, as the Dynamic Layer Array may include objects that reference the corresponding layer in the project, an update of the data associated with the layer in the Dynamic Layer Array may serve to (or may actually be) an update of the data associated with the layer in the project itself.

If the dynamic layer is determined not to have a footage source (NO branch of STEP3450), it can be determined if the last layer of the project has been evaluated (STEP3470). If it is the last layer of the project, the harvesting of the layers may be complete (NO branch of STEP3470), otherwise (YES branch of STEP3470) the next layer may be evaluated to determine if it is a dynamic layer (STEP3420).

Using the Dynamic Layer Array, then, each of the dynamic layers found may be initialized and reset if needed.FIG. 35depicts one embodiment of a method for initializing and resetting layers Based on the set of rules of the template, the resetting process may (re)set the playback speed of all the dynamic layers to 100% (e.g., normal playback speed) for all layers (e.g., if a layer's playback speed it not already at 100%). It can also be determined if any of the rules for a layer specify that the end point or start point of a layer is to be preserved. If so, the in-point of the layer may be set to the start time (if the start of the layer is to be preserved) or the out-point of the layer set to the end point of the layer (if the start of the layer is to be preserved).

More specifically, in one embodiment, each dynamic layer of the Dynamic Layer Array (STEP3510) may be iterated through to (re)set the playback speed of that dynamic layers to 100% (STEP3512) (e.g., each layer's associated playback speed in the Dynamic Layer Array may be set to 100%). Once the last layer of the Dynamic Layer Array has been processed (YES branch of STEP3514), each layer of the Dynamic Layer Array may be iterated through again (STEP3520). In this loop, for each layer, it can be determined if the layer has a finite duration (STEP3522). For example, videos or compositions may be of a finite duration, while still images may not have a finite duration. Other examples are possible. If the dynamic layer has a finite duration (YES branch of STEP3522) it can be determined if a rule of the template for the project indicates that the head of that layer is to be preserved (e.g., a user has checked the “Preserve Start” box when setting the control parameter for that layer in the Trim menu of an interface) (STEP3526). If a rule indicates that the head (or start) of the layer is to be preserved, the layer's associated in-point may be set to the layer's start time (e.g., the layer's associated in-point in the Dynamic Layer Array may be set to the layer's start time) (STEP3530).

Similarly, it can be determined if a rule of the template for the project indicates that the tail of that layer is to be preserved (e.g., a user has checked the “Preserve End” box when setting the control parameter for that layer in the Trim menu of an interface). If a rule indicates that the tail (or end) of the layer is to be preserved (YES branch of STEP3532), the layer's associated out-point may be set to the layer's end time (e.g., the layer's associated out-point in the Dynamic Layer Array may be set to the layer's end time) (STEP3538). If the last layer in the Dynamic Layer Array has been processed, the reset and initialization of the layers may end (YES branch of STEP3540). Otherwise, the next layer may be processed (NO branch of STEP3540).

If a dynamic layer does not have a finite duration (NO branch of STEP3522) it can be determined if a rule of the template for the project indicates that the head of that layer is to be preserved (e.g., a user has checked the “Preserve Start” box when setting the control parameter for that layer in the Trim menu of an interface) (STEP3524). If a rule indicates that the head (or start) of the layer is to be preserved, in this case the layer's associated in-point may be set to the start time of the composition that contains that layer (e.g., the layer's associated in-point in the Dynamic Layer Array may be set to the containing composition's start time) (STEP3528).

It can also be determined if a rule of the template for the project indicates that the tail of that layer is to be preserved (e.g., a user has checked the “Preserve End” box when setting the control parameter for that layer in the Trim menu of an interface). If a rule indicates that the tail (or end) of the layer is to be preserved (YES branch of STEP3534), the layer's associated out-point may be set to the end time or the composition that contains that layer (e.g., the layer's associated out-point in the Dynamic Layer Array may be set to the containing composition's end time) (STEP3536). If the last layer in the Dynamic Layer Array has been processed, the reset and initialization of the layers may end (YES branch of STEP3540). Otherwise, the next layer may be processed (NO branch of STEP3540).

Once the dynamic layers are initialized and reset, the layers may be arranged according to the set of rules of the template. The arrangement of the layers may be done according to a nested depth of the composition of the project (referred to as the top-most or overall composition). In particular, in one embodiment, the maximum nested depth of the overall composition can be determined. For each level of depth, the layers can then be arranged according to the rules defined for those layers according to the template. In one embodiment, this may include iterating through the layers in both a forward direction and performing arrangement of the layers, followed by iterating through the layers at that depth in the reverse direction and performing arrangement of the layers. The arrangement of the layers in each direction may include trimming, shifting; cropping or stretching one or more layers.

FIG. 36depicts one embodiment of a method for arranging the layers of the composition. Initially, the maximum depth (N) of the composition may be determined (STEP3610). As discussed, nesting is the inclusion of one composition within another where the nested composition appears as a layer in the containing composition. A nested composition may, itself, contain nested compositions, etc. Therefore, a composition may be thought of as a tree structure, where the root node of the corresponding tree structure is the topmost composition (or the composition corresponding to the project), each layer of the composition that is not itself a composition may be thought of as a leaf node, and each composition may be thought of as an internal node (inode or node of the tree that has any children) of the tree that will have one or more child nodes corresponding to the layers that the composition contains (where these child nodes may be leaf nodes or other inodes). The maximum depth of a composition may therefore be thought of as the maximum depth of any inode of the tree structure corresponding to the composition. Thought of another way, the maximum depth of the composition may be the greatest length of any path from the root node of the tree structure corresponding to the composition to any inode of that tree structure.

Once the depth level (N) is determined, a loop may be executed for each depth level (e.g., 1 to N) (STEP3612), where for each level the layers (e.g., all layers at each level) can be arranged in a forward direction and arranged in a reverse direction. Accordingly, as will be recalled from the above discussion, the layers may be ordered according to depth in the Dynamic Layer Array, with layers a higher depth (e.g., less nested) appearing before those at a greater depth (more nested). In other words, using the tree structure of a composition for analogy again, the layers of a composition may be ordered in the Dynamic Layer Array such that layers at a higher level of the tree (e.g., shorter length path to the root node) appear before layers at a lower level of the tree (e.g. longer length path to the root node). The layers are thus initially iterated through for a depth level starting with the first layer in the Dynamic Layer Array and iterating through them sequentially (STEP3614) (referred to as being processed in an “upstream” or forward direction). For each layer, that layer can then be trimmed (if needed) (STEP3616) by setting the layer's in-point or out-point based on a target layer's in-point or out-point; shifted (if needed) (STEP3618) by setting the layer's start time or end time so the layer's in-point or out-point reaches a target layer's in-point or out-point; cropped (if needed) (STEP3620) by adjusting the duration of the a containing composition; or stretched (if needed) (STEP3638) by changing the duration of a layer in the project by adjusting the layer's playback speed until the layer's out-point reached the in-point or out-point of a target layer, or the end of the layer's containing composition. Each layer of the Dynamic Layer Array can thus be iterated through sequentially until it is determined (STEP3622) that there are no more layers in the Dynamic Layer Array to be arranged in an upstream order (NO branch of STEP3622).

When it is determined that all the layers of the Dynamic Layer Array have been iterated through in an upstream or forward direction (e.g., from higher level to lower levels) ((NO branch of STEP3622) the layers of the Dynamic Layer Array can then be iterated through in a downstream or reverse direction (e.g., from lower levels to higher levels). Again, remember the layers may be in the order according to depth in the Dynamic Layer Array, with layers at a higher depth (e.g., less nested) appearing before those at a greater depth (more nested). Thus, in this embodiment, the layers are now iterated through for the depth level starting with the last layer in the Dynamic Layer Array and iterating through them in reverse sequential order (STEP3624) (referred to as being processed in a “downstream” direction). Again, for each layer, that layer can then be trimmed (if needed) (STEP3626); shifted (if needed) (STEP3628); cropped (if needed) (STEP3630); or stretched (if needed) (STEP3632). Each layer of the Dynamic Layer Array can thus be iterated through in reverse sequential order until it is determined (STEP3634) that there are no more layers in the Dynamic Layer Array to be arranged in an downstream order (NO branch of STEP3622). If, at this point it is determined that a number of iterations equal to the depth level (N) have been performed (YES branch of STEP3636) the arrangement of the layers according to the time-sculpting rules may be complete. If, however, a number of iterations is not equal to the depth level (N), the Dynamic Layer Array may again be iterated through in a forward and reverse direction (NO branch of STEP3636).

FIGS. 37-40depict embodiments of methods for the trimming, shifting, cropping or stretching of a layer that may be employed when arranging the layers of a composition. Referring first toFIG. 37, one embodiment of a method for trimming a layer is depicted. For the layer being trimmed, it can be determined if a rule of the template for the project indicates that the head of that layer is to be preserved (e.g., a user has checked the “Preserve Start” box when setting the control parameter for that layer in the Trim menu of an interface) (STEP3710). If a rule indicates that the head (or start) of the layer is to be preserved (YES branch of STEP3710), in this case the layer's associated in-point may be set to the same point in time as the layer's start time (e.g., the layer's associated in-point in the Dynamic Layer Array may be set to the start time of the layer) (STEP3730). It will be noted that in certain embodiments, these steps or similar steps may occur in the reset and initialization of layers of the composition and may not need to be repeated when trimming the layer.

If no rule indicates that the head (or start) of the layer is to be preserved (NO branch of STEP3710), it can be determined if a rule of the template specifies that the in-point of this layer is to be trimmed to in-point of a target (sibling) layer. If such a rule exists (YES branch of STEP3720) the layer's associated in-point may be set to the same point in time as the sibling layer's in-point (e.g., the layer's associated in-point in the Dynamic Layer Array may be set to the sibling layer's in-point) (STEP3740). At this point, any overlap designated in the rule may also be accounted for (e.g., if an overlap of a number of frames is specified in the rule, the layer's associated in-point may be set to the same point in time as the sibling layer's in-point with the amount of overlap designated by the rule). While not shown, similar steps may be performed for the in-point of the layer and the out-point of any sibling layer.

It can then be determined if a rule of the template for the project indicates that the tail; of that layer is to be preserved (e.g., a user has checked the “Preserve End” box when setting the control parameter for that layer in the Trim menu of an interface) (STEP3750). If a rule indicates that the tail (or end) of the layer is to be preserved (YES branch of STEP3750), the layer's associated out-point may be set to the same point in time as the layer's end time (e.g., the layer's associated out-point in the Dynamic Layer Array may be set to the end time of the layer) (STEP3760). It will be noted here again, that in certain embodiments, these steps or similar steps may occur in the reset and initialization of layers of the composition and may not need to be repeated when trimming the layer.

If no rule indicates that the tail (or end) of the layer is to be preserved (NO branch of STEP3750), it can be determined if a rule of the template specifies that the out-point of this layer is to be trimmed to an out-point of a target (sibling) layer. If such a rule exists (YES branch of STEP3780) the layer's associated out-point may be set to the same point in time as the sibling layer's out-point (e.g., the layer's associated out-point in the Dynamic Layer Array may be set to the sibling layer's out-point) (STEP3770). At this point, any overlap designated in the rule may also be accounted for (e.g., if an overlap of a number of frames is specified in the rule, the layer's associated out-point may be set to the same point in time as the sibling layer's out-point with the amount of overlap designated by the rule). While not shown, similar steps may be performed for the out-point of the layer and the in-point of any sibling layer.

Moving now toFIG. 38, one embodiment of a method for shifting a layer is depicted. Here, it can be determined if a rule specifies that the in-point of this layer is to be trimmed to an in-point of a target (sibling) layer. If such a rule exists (YES branch of STEP3810) the layer may be shifted with respect to the time line of the containing composition until the layer's in-point is the same time as the sibling layer's in-point (STEP3812). In one embodiment, the amount of time needed to add (or subtract) to (or from) the current in-point of the layer to cause the in-point of the layer to be the same as the in-point of the sibling layer may be determined and this amount of time added to (or subtracted from) both the in-point and the out-point of the layer (e.g., the amount of time added to (or subtracted from) the layer's associated in-point and out-point in the Dynamic Layer Array). At this point, any overlap designated in the rule may also be accounted for (e.g., if an overlap of a number of frames is specified in the rule, the associated amount of time added (or subtracted) may account for the amount of overlap designated by the rule).

If no rule specifies that the in-point of this layer is to be trimmed to an in-point of a target (sibling) layer (NO branch of STEP3810), it can be determined if a rule specifies that the in-point of this layer is to be trimmed to an out-point of a sibling layer. If such a rule exists (YES branch of STEP3820) the layer may be shifted with respect to the time line of the containing composition until the layer's in-point is the same time as the sibling layer's out-point (STEP3822). In one embodiment, the amount of time needed to add (or subtract) to (or from) the current in-point of the layer to cause the in-point of the layer to be the same as the out-point of the sibling layer may be determined and this amount of time added to (or subtracted from) both the in-point and the out-point of the layer (e.g., the amount of time added to (or subtracted from) the layer's associated in-point and out-point in the Dynamic Layer Array). At this point, any overlap designated in the rule may also be accounted for (e.g., if an overlap of a number of frames is specified in the rule, the amount of time added (or subtracted) may account for the amount of overlap designated by the rule).

If no rule specifies that the in-point of this layer is to be trimmed to an out-point of a target (sibling) layer (NO branch of STEP3820), it can be determined if a rule specifies that the out-point of this layer is to be trimmed to an in-point of a sibling layer. If such a rule exists (YES branch of STEP3830) the layer may be shifted with respect to the time line of the containing composition until the layer's out-point is the same time as the sibling layer's in-point (STEP3832). In one embodiment, the amount of time needed to add (or subtract) to (or from) the current out-point of the layer to cause the out-point of the layer to be the same as the in-point of the sibling layer may be determined and this amount of time added to (or subtracted from) both the in-point and the out-point of the layer (e.g., the amount of time added to (or subtracted from) the layer's associated in-point and out-point in the Dynamic Layer Array). At this point, any overlap designated in the rule may also be accounted for (e.g., if an overlap of a number of frames is specified in the rule, the amount of time added (or subtracted) may account for the amount of overlap designated by the rule).

If no rule specifies that the out-point of this layer is to be trimmed to an in-point of a sibling layer (NO branch of STEP3830), it can be determined if a rule specifies that the out-point of this layer is to be trimmed to an out-point of a sibling layer. If such a rule exists (YES branch of STEP3840) the layer may be shifted with respect to the time line of the containing composition until the layer's out-point is the same time as the sibling layer's out-point (STEP3842). In one embodiment, the amount of time needed to add (or subtract) to (or from) the current out-point of the layer to cause the out-point of the layer to be the same as the out-point of the sibling layer may be determined and this amount of time added to (or subtracted from) both the in-point and the out-point of the layer (e.g., the amount of time added to (or subtracted from) the layer's associated in-point and out-point in the Dynamic Layer Array). At this point, any overlap designated in the rule may also be accounted for (e.g., if an overlap of a number of frames is specified in the rule, the amount of time added (or subtracted) may account for the amount of overlap designated by the rule).

FIG. 39depicts one embodiment of a method for cropping a composition. Each of the layers in a composition can be iterated through (STEP3910). For each of the layers, it can be determined if there is a rule designating that layer's in-point as the start of the containing composition (STEP3912). If there is such a rule (YES branch of STEP3912), the start time of that layer and all the sibling layers may be shifted based on the layer's in-point (STEP3914) (e.g., the layers' associated start time may be shifted in the Dynamic Layer Array). In one embodiment, an amount of time equal to the layer's in-point may be added to the in-point of the layers. The start of the containing composition may then be set to the in-point of that layer (STEP3916) (e.g., the composition's associated start time may be set to the in-point of that layer in the Dynamic Layer Array). If the last layer of the composition has been processed at this point (YES branch of STEP3918), the layers can then be iterated through again (STEP3920).

For each of the layers, it can be determined if there is a rule designating that layer's out-point as the end of the containing composition (STEP3922). If there is such a rule (YES branch of STEP3922), the duration or end time of the containing composition may be set to the out-point of that layer (STEP3924) (e.g., the composition's associated end time may be set to the same time as the out-point of that layer in the Dynamic Layer Array). If the last layer of the composition has been processed at this point (YES branch of STEP3926) the cropping of the composition may be complete.

FIG. 40depicts one embodiment of a method for stretching a layer. For the layer being stretched the playback rate of the layer may be reset to the default stretch factor (e.g., 100% or normal playback rate) (STEP4010). It will be noted that in certain embodiments, these steps or similar steps may occur in the reset and initialization of layers of the composition and may not need to be repeated when stretching the layer. The current in-points and outpoints of the layers can then be determined using the in-point and out-point layer (e.g., which may be determined from the Dynamic Layer Array entry associated with the layer) (STEP4012). It can then be determined if a rule of the template for the project indicates that the layer is to be stretched to the in-point of a target layer (STEP4014). If a rule indicates that the layer is to be stretched to an in-point of a target layer a stretch factor may be calculated. This stretch factor may include, or may be used to determine, a playback speed (e.g., a percentage) based on the layer's duration and the target layer's in-point, such that the layer's out-point is the same as the target layer's in-point (STEP4020). The layer's playback speed can then be set to the determined playback speed (e.g., the layer's associated playback speed in the Dynamic Layer Array may be set to the determined playback speed) (STEP4076).

If no rule indicates that the layer is to be stretched to the in-point of a target layer (NO branch of STEP4014), it can be determined if a rule of the template for the project indicates that the layer is to be stretched to the out-point of a target layer (STEP4016). If a rule indicates that the layer is to be stretched to an out-point of a target layer a stretch factor may be calculated. This stretch factor may include, or may be used to determine, a playback speed (e.g., a percentage) based on the layer's duration and the target layer's out-point, such that the layer's out-point is the same as the target layer's out-point (STEP4022). The layer's playback speed can then be set to the determined playback speed (e.g., the layer's associated playback speed in the Dynamic Layer Array may be set to the determined playback speed) (STEP4076).

If no rule indicates that the layer is to be stretched to an out-point of a target layer (NO branch of STEP4016), it can be determined if a rule of the template for the project indicates that the layer is to be stretched to the end time of the composition which contains the layer (STEP4018). If a rule indicates that the layer is to be stretched to an end of the containing composition, a stretch factor may be calculated. This stretch factor may include, or may be used to determine, a playback speed (e.g., a percentage) based on the layer's duration and the containing composition's end time, such that the layer's out-point is the same as the composition's end time (STEP4024). The layer's playback speed can then be set to the determined playback speed (e.g., the layer's associated playback speed in the Dynamic Layer Array may be set to the determined playback speed) (STEP4076).

Embodiments discussed herein can be implemented in a computer communicatively coupled to a network (for example, the Internet), another computer, or in a standalone computer. As is known to those skilled in the art, a suitable computer can include a central processing unit (“CPU”), at least one read-only memory (“ROM”), at least one random access memory (“RAM”), at least one hard drive (“HD”), and one or more input/output (“I/O”) device(s). The I/O devices can include a keyboard, monitor, printer, electronic pointing device (for example, mouse, trackball, stylus, touch pad, etc.), or the like. In embodiments of the invention, the computer has access to at least one database over the network.

ROM, RAM, and HD are computer memories for storing computer-executable instructions executable by the CPU or capable of being compiled or interpreted to be executable by the CPU. Suitable computer-executable instructions may reside on a computer readable medium (e.g., ROM, RAM, and/or HD), hardware circuitry or the like, or any combination thereof. Within this disclosure, the term “computer readable medium” not limited to ROM, RAM, and HD and can include any type of data storage medium that can be read by a processor. For example, a computer-readable medium may refer to a data cartridge, a data backup magnetic tape, a floppy diskette, a flash memory drive, an optical data storage drive, a CD-ROM, ROM, RAM, HD, or the like. The processes described herein may be implemented in suitable computer-executable instructions that may reside on a computer readable medium (for example, a disk, CD-ROM, a memory, etc.). Alternatively, the computer-executable instructions may be stored as software code components on a direct access storage device array, magnetic tape, floppy diskette, optical storage device, or other appropriate computer-readable medium or storage device.