Let's see how to create a sophisticated animation of a text. We want purple text on a yellow background to be progressively covered by a rectangle of the same purple; at the same time the covered text takes on a negative color (a slight yellow) so that it remains visible with respect to the purple rectangle. We can see the example video here: ... The movement of the purple rectangle that goes to cover the text from left to right, is not linear, but has a slow start, a linear middle part and a slow and smooth ending again. The problems in achieving this effect in \CGG{} are twofold: 1- the animation of a plugin (Title for example) using keyframes is linear. Only dynamic keyframes (autos) can be configured to create smooth curves using Bezier nodes and handles (thus getting smooth movements and speed variations). For example the movement of the Camera along the X, Y and Z axes can be implemented with the Camera (x,y,z) autos. (see ...). 2- The Mask tool can be animated by keyframe like the Title plugin, but then we can't move the result by Camera autos because they happen in Temporary (see ...) and so before the application of mask or effects. In short, you can't get smooth movements and speed variations through a curve as it happens with Camera (see also ... and ... for a workaround). Let's see how to achieve this effect with a stratified and complex but very instructive workaround. The project and the materials behind the tutorial are in the public domain and can be downloaded here: insert timeline image In a basic track (UNDERLAYING VIDEO) you put a colored background (yellow) created with the Sketcher plugin. UNDERLYING VIDEO: (the position of this track is irrelevant) - uncheck the MUTE button (i.e. don't send to output) and (optionally) the PLAY button in the patchbay - [NOTE: You may use this track to host shared tracks if you want more than one track to play under the animated title effect. Just stack the remaining tracks anywhere, share them here and uncheck the MUTE button on each of them (possibly keyframe it to allow them to be seen in other parts of the video).] We create an upper track (Effect layer 4) that is a Shared Track of the UNDERLAYING VIDEO track, so that it has a yellow background. In this track we put the script in purple. Effect layer 4: [ no video content ] UNDERLYING VIDEO (shared track) Title (the first violet text shown) Effect layer 3: Reroute (shared effect) Between the previous two tracks we create the Effect layer 2 track that contains only one png image (purple rectangle on white background). This image will serve as a base to create a kind of mask that can be moved with the movements of the Camera. Thus we obviate problem 2. The movement of the purple rectangle starts from the left and moves to the right (along the X axis) until it covers the whole script. We get this easily with the Camera X autos. insert image png Effect layer 2: - uncheck the MUTE button (i.e. don't send to output) and (optionally) the PLAY button in the patchbay - [ Mask for chromakey - PNG file ] - animate using CAMERA AUTO - Above the Effect layer 2 track we create the Effect layer 3 track that will contain the pseudo-mask. As we said the problem is to move the purple rectangle with Camera movements because we can't use the Mask animation or the Title plugin. The idea is to use the Chromakey that allows to make transparent the purple rectangle that becomes a real hole, that is a pseudo-mask. To get the desired result this track must be a shared track of Effect layer 2, so that it can report its content and movement set. Effect layer 3 also contains the Sketcher plugin which consists of a white rectangle that starts to the left of the frame, is as high as the whole frame and ends just before the beginning of the text. This rectangle is used to cover the pseudo-mask in its movement from left to right until it reaches the beginning of the text; from here on it will no longer be covered and will show the content below the hole. In short, what comes out from the Effect layer 2 and 3 tracks must be just the pseudo-mask of the purple rectangle. Finally, in this track (Effect layer 3) we also put the Reroute plugin which is used to take the transparency values created by the Chromakey (i.e. still the hole, contained in the alpha channel) and transfer them to the Effect layer 4 track through the shared effect. Effect layer 3: [ no video content ] Effect layer 2 (shared track) Sketcher (a white rectangle covering the part of the screen from which the highlight emerges) F_chromakey (be sure to fine-tune it to remove any unwanted edges) Reroute (settings: Target track: Top - Operation: Alpha replace) Notice well the layering of the tracks and the animation steps. In Effect layer 2 we have the image of the rectangle on a white background. In Effect layer 3 we make the purple rectangle transparent through Chromakey. In Effect layer 4 we transfer the transparency of the pseudo-mask via the shared effect Reroute. Infine creiamo la traccia Effect layer 1 sotto Effect layer 2 e qui mettiamo uno sfondo viola e la scritta in negativo (giallo chiaro) che saranno visualizzati sotto alla pseudo-maschera che è stata creata. Questa traccia riguarda il lato negativo del testo; infatti tutta l'animazione consiste nella scritta viola che diventa giallo chiaro via via che viene coperta da un rettangolo viola. La scritta su sfondo viola è proprio ciò che vediamo attraverso il buco della pseudo-maschera. Effect layer 1: [ no video content ] Sketcher (highlight color - may cover the entire frame or less) Title (the second yellow text shown - the one with highlight) Notare la successione delle tracce: è importante per avere la corretta visualizzazione sulla finestra compositor. Infatti la traccia superiore, con i suoi effetti e contenuti, ha la priorità sulle tracce sottostanti. Solo la traccia UNDERLYING VIDEO può essere messa dove vogliamo (e in ultima posizione da meno disturbo...) perché serve solo a fornire la base della shared track superiore, cioè Effect layer 4. Si rende quindi invisibile disabilitando il Playtrack e abilitando il Mute. The sequence, with its order of priority, is even more important in the effects stack because the output of one effect acts as the input of the underlying effect. Let's take Effect layer 3 as an example: The first effect is the Shared Track with Effect layer 2, which only serves to bring the content (the png image) and its Camera movement to this track. It is the first effect because it works as the base of the track. Below we have the Sketecher plugin which creates a white rectangle that starts on the left of the frame and ends just before the text. This white mass remains fixed because it is not bound to the png image, but is on top of it, partially covering it but with no other interaction. Since it is on top of the purple rectangle, we will see it only when the move takes it out of the coverage. Below that is the Chromakey plugin which is used to create a transparent pseudo-mask that follows the shape of the purple rectangle and follows its movement. Still below is the ReRoute plugin that takes the hole created by Chromakey (its output) and transfers it to the Layer 4 effect track via Shared Effect. It is important to understand the sophisticated interplay between the order of effects and the order of tracks. Also note the interplay of enabling/disabling the various tracks done via the Patchbay buttons: PlayTrack; Arm e Mute. Last detail is to see how the ReRoute shared effect is implemented on the Effect layer 4 track. It starts with just a small visible purple rectangle placed before the text. It looks like a blinking cursor waiting to be moved. After a blink it starts expanding to the right to form a purple rectangle that covers all the text (which changes from purple to light yellow).