Une fois de plus on va exploiter une nouveauté de Resolve 21 pour simplifier ce processus. Il n’en reste pas moins complexe car il utilise une expression incluse dans un node de Fusion. Regardons cela
Regardons les 2 problèmes à résoudre :
Texte mise en forme
Afin de maitriser la mise en forme et de ne pas refaire la mise en forme du texte 2 fois, on n’utilisera pas les node de textes de Fusion/Resolve :
- Avoir une Mise en forme hétérogène n’est pas simple
- Une gouttière n’est pas simple
Comme la nuit des temps on utilise un logiciel plus souple et simple à utiliser dans un grand document avec l’intégralité du générique déplié/déroulé. Jusqu’à présent Photoshop a été utilisé.

Le soucis est le poids de fichier. <c’est là que Affinty entre en jeu :

Affinity a tous les outils de mise ne forme et garde le texte sous forme Vectorielle: c’est très propre et ca ne pèse rien!

Comme les fichiers .af d’Affinity sont reconnus dans resolve 21 …. utilisons-les!
Effet de pompage
C’est le plus gros soucis qui vient du rendu des lettres:
- qui ont une taille impaire : 17px, 25px, 33px
- une vitesse (lignes par image) avec des décimale
Exemple :
un texte de 17px avec une vitesse de 3,5 lignes/image
- a bien une hauteur de 17px à l’image N
- aura une hauteur de 18px à l’image N+1
- aura une hauteur de 17px à l’image N+2
- aura une hauteur de 18px à l’image N+3
- aura une hauteur de 17px à l’image N+4
La solution est donc d’avoir une vitesse de défilement qui soit un multiple entier d’une ligne par image (en pratique : 1 à 6 lignes/image).
Ce la implique que vous ne pouvez pas avoir n’importe quelle durée pour votre générique.
Mise en œuvre
Dans un composition Fusion, Mergez le générique sur un background transparent.

- Le node Background assure la bonne Résolution
- Le merge va faire défiler le générique
On va coller cette expression dans le centre du merge :
Point(0.5,((time-comp.GlobalStart)*math.ceil((Merge1.Background.OriginalHeight+Merge1.Foreground.OriginalHeight)/(comp.GlobalEnd-comp.GlobalStart+1)) - Merge1.Foreground.OriginalHeight/2) / Merge1.Background.OriginalHeight)
elle permet de :
- commencer et finir hors champ
- d’avoir une vitesse qui soit nombre entier de ligne/image …. en fonction de la durée de la composition
Amélioration


J’ai ajouté un autre merge qui indique la vitesse. A désactiver quand c’est ajusté.


La structure nodale
Copier le code ci dessous et coller dans le node graph
{
Tools = ordered() {
Merge1 = Merge {
NameSet = true,
Inputs = {
Background = Input {
SourceOp = "Transparent",
Source = "Output",
},
Center = Input {
Value = { 0.5, 1.86527777777778 },
Expression = "Point(0.5,((time-comp.GlobalStart)*math.ceil((Merge1.Background.OriginalHeight+Merge1.Foreground.OriginalHeight)/(comp.GlobalEnd-comp.GlobalStart+1)) - Merge1.Foreground.OriginalHeight/2) / Merge1.Background.OriginalHeight)",
},
PerformDepthMerge = Input { Value = 0, },
ForegroundZOffset = Input { Value = 9, }
},
ViewInfo = OperatorInfo { Pos = { 858.276, 216.318 } },
},
Transparent = Background {
NameSet = true,
CurrentSettings = 5,
CustomData = { Settings = { [1] = { Tools = ordered() { ["Arrièreplan1"] = Background { Inputs = { ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" } }, GlobalOut = Input { Value = 124 }, Height = Input { Value = 1080 }, UseFrameFormatSettings = Input { Value = 1 }, Width = Input { Value = 1920 } }, CtrlWZoom = false, ViewInfo = OperatorInfo { Pos = { 165, 82.5 } }, CustomData = {
} } } }, [2] = { Tools = ordered() { ["Arrièreplan1"] = Background { Inputs = { GlobalOut = Input { Value = 124 }, ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" } }, TopLeftRed = Input { Value = 1 }, TopLeftBlue = Input { Value = 1 }, Height = Input { Value = 1080 }, TopLeftGreen = Input { Value = 1 }, UseFrameFormatSettings = Input { Value = 1 }, Width = Input { Value = 1920 } }, CtrlWZoom = false, ViewInfo = OperatorInfo { Pos = { 165, 82.5 } }, CustomData = {
} } } }, [3] = { Tools = ordered() { ["Arrièreplan1"] = Background { Inputs = { ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" } }, TopLeftRed = Input { Value = 1 }, GlobalOut = Input { Value = 124 }, Height = Input { Value = 1080 }, UseFrameFormatSettings = Input { Value = 1 }, Width = Input { Value = 1920 } }, CtrlWZoom = false, ViewInfo = OperatorInfo { Pos = { 165, 82.5 } }, CustomData = {
} } } }, [4] = { Tools = ordered() { ["Arrièreplan1"] = Background { Inputs = { ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" } }, GlobalOut = Input { Value = 124 }, Height = Input { Value = 1080 }, TopLeftGreen = Input { Value = 1 }, UseFrameFormatSettings = Input { Value = 1 }, Width = Input { Value = 1920 } }, CtrlWZoom = false, ViewInfo = OperatorInfo { Pos = { 165, 82.5 } }, CustomData = {
} } } }, [6] = { Tools = ordered() { ["Arrièreplan1"] = Background { Inputs = { ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" } }, TopLeftAlpha = Input { Value = 0 }, GlobalOut = Input { Value = 124 }, Height = Input { Value = 1080 }, UseFrameFormatSettings = Input { Value = 1 }, Width = Input { Value = 1920 } }, CtrlWZoom = false, ViewInfo = OperatorInfo { Pos = { 165, 82.5 } }, CustomData = {
} } } } }, },
Inputs = {
GlobalOut = Input { Value = 1275, },
Width = Input { Value = 1920, },
Height = Input { Value = 1080, },
UseFrameFormatSettings = Input { Value = 1, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
TopLeftAlpha = Input { Value = 0, }
},
ViewInfo = OperatorInfo { Pos = { 733.578, 216.318 } },
},
Merge2 = Merge {
NameSet = true,
CustomData = { Settings = { [2] = { Tools = ordered() { Merge1 = Merge { Inputs = { PerformDepthMerge = Input { Value = 0 }, Operator = Input { Value = FuID { "Mask" } } }, CtrlWZoom = false, ViewInfo = OperatorInfo { Pos = { 330, 148.5 } }, CustomData = {
} } } }, [3] = { Tools = ordered() { Merge1 = Merge { Inputs = { PerformDepthMerge = Input { Value = 0 }, Operator = Input { Value = FuID { "Stencil" } } }, CtrlWZoom = false, ViewInfo = OperatorInfo { Pos = { 330, 148.5 } }, CustomData = {
} } } }, [4] = { Tools = ordered() { Merge1_1 = Merge { Inputs = { PerformDepthMerge = Input { Value = 0 }, Operator = Input { Value = FuID { "Under" } } }, CtrlWZoom = false, ViewInfo = OperatorInfo { Pos = { 550, 16.5 } }, CustomData = {
} } } }, }, },
Inputs = {
Background = Input {
SourceOp = "Merge1",
Source = "Output",
},
Foreground = Input {
SourceOp = "Vitesse",
Source = "Output",
},
PerformDepthMerge = Input { Value = 0, }
},
ViewInfo = OperatorInfo { Pos = { 982.438, 216.318 } },
},
Vitesse = TextPlus {
NameSet = true,
Inputs = {
GlobalOut = Input { Value = 1275, },
Width = Input { Value = 1920, },
Height = Input { Value = 1080, },
UseFrameFormatSettings = Input { Value = 1, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
Wrap = Input { Value = 1, },
Center = Input { Value = { 0, 0 }, },
LayoutRotation = Input { Value = 1, },
TransformRotation = Input { Value = 1, },
Softness1 = Input { Value = 1, },
StyledText = Input { Expression = "Text(ceil((Merge1.Background.OriginalHeight+Merge1.Foreground.OriginalHeight)/(comp.GlobalEnd-comp.GlobalStart+1)) .. \" lignes/image\")", },
Font = Input { Value = "Open Sans", },
Style = Input { Value = "Bold", },
Size = Input { Value = 0.0669, },
VerticalTopCenterBottom = Input { Value = 1.8, },
VerticalJustificationNew = Input { Value = 3, },
HorizontalLeftCenterRight = Input { Value = -1, },
HorizontalJustificationNew = Input { Value = 3, }
},
ViewInfo = OperatorInfo { Pos = { 982.438, 137.753 } },
}
}
}

Laisser un commentaire