Flip Over Lower Third not properly animating all characters

Get answers to your questions about color grading, editing and finishing with DaVinci Resolve.
  • Author
  • Message
Offline

Parallax Abstraction

  • Posts: 5
  • Joined: Sat Apr 24, 2021 3:29 am
  • Real Name: Gerry Corcoran

Flip Over Lower Third not properly animating all characters

PostSat Apr 24, 2021 3:47 am

Hey everyone.

Apologies if this has been answered elsewhere but I searched for some time and couldn't find anything. I'm also a long-suffering Vegas Pro convert but am still very much a noob with Resolve.

I make indie game impressions videos for YouTube. I typically have a title that shows the developer, platforms and price for the game I'm currently featuring. I'm trying to use the Flip Over Lower Third for this, with a custom background colour. Should be simple enough but for whatever reason, the title is always showing the last few characters of what's in it, regardless of where the animation is. For example, here's what one completed title should look like:

Resolve_uZsctR5NFr.png
Example of title I'm creating.
Resolve_uZsctR5NFr.png (9.34 KiB) Viewed 1812 times


As per the template, it's supposed to flip in the characters one by one until it gets to the end. What it does is instantly display the DN from the last line and then animate the rest. If I reduce the number of characters, the issue persists, unless I make the title basically only a few characters long.

O8qX31DBT6.gif
The issue visualized.
O8qX31DBT6.gif (311.91 KiB) Viewed 1812 times


I've redone the title multiple times, I've tried doing it in a fresh project from scratch and I've explored every setting it offers and I can't figure out a solution to this. It's frustrating because I really like the template, it just doesn't seem to want to animate properly.

Anyone know what I could do to resolve this (sorry)? Thanks all! :)
Offline

xunile

  • Posts: 3069
  • Joined: Mon Apr 23, 2018 5:21 am
  • Real Name: Eric Eisenmann

Re: Flip Over Lower Third not properly animating all charact

PostSat Apr 24, 2021 3:39 pm

The issue is with the Follower on the Text+ node of the Title, if you add more than one line then a character or more is left visible from the start of the animation, it is a quirk or bug of the Follower. The quickest fix is to add a mask and keyframe it to cover the unwanted characters until they should be revealed, at least it is one way I found to help the issue.
Attachments
2021-04-24.png
2021-04-24.png (284.67 KiB) Viewed 1807 times
2021-04-24 (1).png
2021-04-24 (1).png (281.09 KiB) Viewed 1807 times
2021-04-24 (2).png
2021-04-24 (2).png (323.39 KiB) Viewed 1807 times
Win 10 Home | Intel i7 - 10700f 64 GB 1 TB GB SSD 2 TB SSD
RTX-3060 12 GB | Resolve Studio 18.6.6| Fusion Studio 18.6.6

Win 10 Home | Intel Core I7-7700HQ 32 GB 1 TB NVME SSD 1 TB SATA SSD
GTX-1060-6GB | Resolve 17.4.6
Offline

Parallax Abstraction

  • Posts: 5
  • Joined: Sat Apr 24, 2021 3:29 am
  • Real Name: Gerry Corcoran

Re: Flip Over Lower Third not properly animating all charact

PostTue Apr 27, 2021 2:12 pm

Thank you very much for this! Definitely a pain to have to do it this way but if it works, it works! Hopefully this bug can get resolved soon.
Offline

kalpox

  • Posts: 130
  • Joined: Thu Nov 22, 2018 9:49 am
  • Real Name: Álvaro Urquiza

Re: Flip Over Lower Third not properly animating all charact

PostMon May 03, 2021 10:17 am

Same problem here. The workaround proposed might work but obviously this need to be fixed.
DaVinci Resolve Studio 18, Windows 10, GeForce RTX 2060SUPER 8GB, 32GB RAM, Ryzen 7 2700X
Offline

Parallax Abstraction

  • Posts: 5
  • Joined: Sat Apr 24, 2021 3:29 am
  • Real Name: Gerry Corcoran

Re: Flip Over Lower Third not properly animating all charact

PostFri May 07, 2021 2:04 pm

Is there a formal place to report bugs like this to Blackmagic?
Offline

xunile

  • Posts: 3069
  • Joined: Mon Apr 23, 2018 5:21 am
  • Real Name: Eric Eisenmann

Re: Flip Over Lower Third not properly animating all charact

PostFri May 07, 2021 6:47 pm

I've played around with it a bit more and found that you can also leave a space or two at the end, this will keep the last letter from showing at the beginning, the overall bug still needs to be fixed though.
Attachments
2021-05-07.png
2021-05-07.png (899.46 KiB) Viewed 1716 times
2021-05-07 (1).png
2021-05-07 (1).png (972.44 KiB) Viewed 1716 times
Win 10 Home | Intel i7 - 10700f 64 GB 1 TB GB SSD 2 TB SSD
RTX-3060 12 GB | Resolve Studio 18.6.6| Fusion Studio 18.6.6

Win 10 Home | Intel Core I7-7700HQ 32 GB 1 TB NVME SSD 1 TB SATA SSD
GTX-1060-6GB | Resolve 17.4.6
Offline

xunile

  • Posts: 3069
  • Joined: Mon Apr 23, 2018 5:21 am
  • Real Name: Eric Eisenmann

Re: Flip Over Lower Third not properly animating all charact

PostFri May 07, 2021 7:07 pm

You can also right-click on the Follower text box in the Modifier tab and choose Expression. Then add a "\r" before the "\n" and that seems to fix the issue, don't know if anybody wants to bother jumping through hoops like that though.
Attachments
2021-05-07 (2).png
2021-05-07 (2).png (290.46 KiB) Viewed 1712 times
Win 10 Home | Intel i7 - 10700f 64 GB 1 TB GB SSD 2 TB SSD
RTX-3060 12 GB | Resolve Studio 18.6.6| Fusion Studio 18.6.6

Win 10 Home | Intel Core I7-7700HQ 32 GB 1 TB NVME SSD 1 TB SATA SSD
GTX-1060-6GB | Resolve 17.4.6
Offline

Parallax Abstraction

  • Posts: 5
  • Joined: Sat Apr 24, 2021 3:29 am
  • Real Name: Gerry Corcoran

Re: Flip Over Lower Third not properly animating all charact

PostFri May 07, 2021 10:38 pm

Thank you for that information, very helpful! :)

I'm making another video this weekend so I'll test those methods and see how they work out.
Offline

Parallax Abstraction

  • Posts: 5
  • Joined: Sat Apr 24, 2021 3:29 am
  • Real Name: Gerry Corcoran

Re: Flip Over Lower Third not properly animating all charact

PostSat May 08, 2021 4:24 pm

So I just tried your trick above and it works great! Yeah, it's a pain and this bug should definitely be fixed but it's not a ton of work to get the desired result. Thank you very much!

Does anyone know if there's a formal place to report this bug to Blackmagic? Thanks again!
Offline

John Holt

  • Posts: 197
  • Joined: Sat Mar 02, 2019 8:54 pm
  • Real Name: John Holt

Re: Flip Over Lower Third not properly animating all charact

PostSun Sep 05, 2021 8:38 am

Hi

Yes this is very annoying!

I have come up with a workaround but again not ideal.

Change "All Characters" to "Character Range"

I added a slider control to get the length of the characters (string.len(Follower1.StyledText.Value). I then connected this to the Last Character control, adding "+1" (unsure why the "+1" but it failed without)

Hope this helps.

Code: Select all
{
   Tools = ordered() {
      Text1 = TextPlus {
         CtrlWZoom = false,
         Inputs = {
            GlobalOut = Input { Value = 149, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            UseFrameFormatSettings = Input { Value = 1, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Position1 = Input { Value = 1, },
            StyledText = Input {
               SourceOp = "Follower1",
               Source = "StyledText",
            },
            Font = Input { Value = "Open Sans", },
            Style = Input { Value = "Bold", },
            VerticalJustificationNew = Input { Value = 3, },
            HorizontalLeftCenterRight = Input { Value = -1.1, },
            HorizontalJustificationNew = Input { Value = 3, },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
            StartRenderScripts = Input { Value = 1, },
            stringLen = Input {
               Value = 26,
               Expression = "string.len(Follower1.Text.Value)",
            },
            FirstLine = Input {
               Value = StyledText {
                  Array = {
                     {
                        Parameter = 2600,
                        Index = 0,
                        First = 0,
                        Last = 0,
                        Value = 1,
                        String = ""
                     },
                     {
                        Parameter = 2600,
                        Index = 0,
                        First = 1,
                        Last = 1,
                        Value = 1,
                        String = ""
                     },
                     {
                        Parameter = 2600,
                        Index = 0,
                        First = 2,
                        Last = 2,
                        Value = 1,
                        String = ""
                     },
                     {
                        Parameter = 2600,
                        Index = 0,
                        First = 3,
                        Last = 3,
                        Value = 1,
                        String = ""
                     },
                     {
                        Parameter = 2600,
                        Index = 0,
                        First = 4,
                        Last = 4,
                        Value = 1,
                        String = ""
                     },
                     {
                        Parameter = 2600,
                        Index = 0,
                        First = 5,
                        Last = 5,
                        Value = 1,
                        String = ""
                     },
                     {
                        Parameter = 2600,
                        Index = 0,
                        First = 6,
                        Last = 6,
                        Value = 1,
                        String = ""
                     },
                     {
                        Parameter = 2600,
                        Index = 0,
                        First = 7,
                        Last = 7,
                        Value = 1,
                        String = ""
                     }
                  },
                  Value = "MULTIPLE"
               },
            },
            SecondLine = Input { Value = "INSTALLER", },
            ThirdLine = Input { Value = "OPTIONS", },
         },
         ViewInfo = OperatorInfo { Pos = { 880, 148.5 } },
         UserControls = ordered() { stringLen = { INP_Integer = false, LINKID_DataType = "Number", INP_Default = 20, INPID_InputControl = "SliderControl", LINKS_Name = "stringLen", }, FirstLine = {
               LINKS_Name = "FirstLine",
               LINKID_DataType = "Text",
               INPID_InputControl = "TextEditControl",
               TEC_Lines = 1,
               TEC_Wrap = false,
               TEC_ReadOnly = false,
            }, SecondLine = {
               LINKS_Name = "SecondLine",
               LINKID_DataType = "Text",
               INPID_InputControl = "TextEditControl",
               TEC_Lines = 1,
               TEC_Wrap = false,
               TEC_ReadOnly = false,
            }, ThirdLine = {
               LINKS_Name = "ThirdLine",
               LINKID_DataType = "Text",
               INPID_InputControl = "TextEditControl",
               TEC_Lines = 1,
               TEC_Wrap = false,
               TEC_ReadOnly = false,
            } }
      },
      Follower1 = StyledTextFollower {
         CtrlWZoom = false,
         Inputs = {
            Range = Input { Value = 1, },
            LastCharacter = Input {
               Value = 27,
               Expression = "Text1.stringLen+1",
            },
            Delay = Input { Value = 2, },
            Text = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = "MULTIPLE\nINSTALLER\nOPTIONS"
               },
            },
            Properties1 = Input { Value = 0, },
            Position1 = Input { Value = 1, },
            Offset1 = Input {
               SourceOp = "XYPath1",
               Source = "Value",
            },
         },
      },
      XYPath1 = XYPath {
         ShowKeyPoints = false,
         DrawMode = "ModifyOnly",
         Inputs = {
            X = Input {
               SourceOp = "XYPath1X",
               Source = "Value",
            },
            Y = Input { Value = 0, },
         },
      },
      XYPath1X = BezierSpline {
         SplineColor = { Red = 255, Green = 0, Blue = 0 },
         NameSet = true,
         KeyFrames = {
            [0] = { -5, RH = { 10, -3.33333333333333 }, Flags = { Linear = true } },
            [30] = { 0, LH = { 20, -1.66666666666667 }, Flags = { Linear = true } }
         }
      }
   },
   ActiveTool = "Text1"
}
Windows 10 Pro
AMD Ryzen 5 3600 6-Core Processor 3.60 GHz
64GB RAM
GTX1650 4GB :(
Samsung SSD 970 EVO Plus 1TB 1000.2 GB
Dual Monitors 32" & 27" Samsung
BM Multidock
Speed Editor
DR Studio Latest Version Fusion Studio Latest Version
Offline
User avatar

TheBloke

  • Posts: 1905
  • Joined: Sat Nov 02, 2019 11:49 pm
  • Location: UK
  • Real Name: Tom Jobbins

Re: Flip Over Lower Third not properly animating all charact

PostMon Sep 06, 2021 7:28 am

The problem is the newline characters. If you enter multiple lines of text, each line is separated by a newline character. The Follower is not smart enough to exclude the newlines when it counts how many characters are in the text. The newline character is represented as \n, which the Follower actually counts as two characters. A really silly bug that I believe has been present for years.

The result is that Follower will be off by 2 for every line after the first. Two lines of text = off by 2, three lines of text = off by 4, and so on.

To solve this problem, one can use the Character Range as John said, but with an expression that counts the number of newlines and takes that into account when working out the Last Character.

Below is a Text+ node with a Follower, and three extra controls added:
- TextToUse = enter your text here, not in the Text1.Styled Text or Follower.Text fields.
- NumberLines = calculates the number of lines in the entered text.
- TextLength = calculates the value to use for Character Range, taking those newlines into account.

Image

The Follower's Text field uses an expression to take its value from TextToUse on the main Text+ node.

With this node, you can enter any text (in the TextToUse field) with any number of lines, then set up your Follower keyframes as normal. You don't need to worry about setting Character Range, and it will work correctly regardless of the number of lines of text you have.

To use the node, copy the text below and paste it into Fusion:
Code: Select all
{
   Tools = ordered() {
      Text1 = TextPlus {
         CtrlWZoom = false,
         Inputs = {
            GlobalOut = Input { Value = 15586, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            StyledText = Input {
               SourceOp = "Follower1",
               Source = "StyledText",
            },
            Font = Input { Value = "Open Sans", },
            Style = Input { Value = "Bold", },
            VerticalJustificationNew = Input { Value = 3, },
            HorizontalJustificationNew = Input { Value = 3, },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
            TextToUse = Input { Value = "Multiple Lines\nOf Text\nAre No\nProblem", },
            TextLength = Input {
               Value = 40,
               Expression = ": txt = TextToUse.Value ; return string.len(txt) + NumberLines - 1",
            },
            NumberLines = Input {
               Value = 4,
               Expression = ": txt = TextToUse.Value ; _, newl = string.gsub(txt, \"\\n\", \"\\n\") ; return 1 + newl",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 87.6374, 160.688 } },
         UserControls = ordered() {
            TextToUse = {
               TEC_ReadOnly = false,
               LINKID_DataType = "Text",
               LINKS_Name = "TextToUse",
               INPID_InputControl = "TextEditControl",
               ICS_ControlPage = "Text",
               TEC_Wrap = false,
            },
            TextLength = {
               INP_Integer = false,
               LINKID_DataType = "Number",
               ICS_ControlPage = "Text",
               INPID_InputControl = "SliderControl",
               LINKS_Name = "TextLength",
            },
            NumberLines = {
               INP_MaxAllowed = 100,
               INP_Integer = true,
               INPID_InputControl = "ScrewControl",
               INP_MaxScale = 100,
               INP_MinScale = 0,
               INP_MinAllowed = 0,
               LINKID_DataType = "Number",
               ICS_ControlPage = "Text",
               LINKS_Name = "NumberLines"
            }
         }
      },
      Follower1 = StyledTextFollower {
         CtrlWZoom = false,
         Inputs = {
            Range = Input { Value = 1, },
            LastCharacter = Input {
               Value = 39,
               Expression = "Text1.TextLength-1",
            },
            Text = Input {
               Value = "Multiple Lines\nOf Text\nAre No\nProblem",
               Expression = "Text1.TextToUse.Value",
            },
         },
      }
   }
}
It should be possible to make a version that doesn't require the separate TextToUse control for entering text, and instead uses the standard Styled Text field. But when I tried to make that, Resolve and Fusion Studio kept locking up. Apparently I'm hitting one of the long-standing freeze bugs when expressions are involved on controls that are Connect To linked to other controls. I'll keep looking at that to see if it can be made to work.
Resolve Studio 17.4.3 and Fusion Studio 17.4.3 on macOS 11.6.1

Hackintosh:: X299, Intel i9-10980XE, 128GB DDR4, AMD 6900XT 16GB
Monitors: 1 x 3840x2160 & 3 x 1920x1200
Disk: 2TB NVMe + 4TB RAID0 NVMe; NAS: 36TB RAID6
BMD Speed Editor
Offline

John Holt

  • Posts: 197
  • Joined: Sat Mar 02, 2019 8:54 pm
  • Real Name: John Holt

Re: Flip Over Lower Third not properly animating all charact

PostMon Sep 06, 2021 10:37 am

TheBloke you are a star.

I didn't take into account the "\n" it didn't cross my mind. Thank You

I noticed a lot of crashes too when connecting controls to modifier controls. I think the follower modifier needs some work as to do simple things like whole word is a real pain.

I found that to make the follower procedural I have to expose the followers text box in a macro and not the StyledText box.

In your example how is the styled text populated? (Just noticed "Text1.TextToUse.Value")

I also tried to concatenate three separate textInputs in the StyledText box but the follower did not work, I am now wondering if I concatenate 3 textInputs into Follower1.Text if it will work, something to try later.

Once again thanks for this as it has helped with some other issues I had.
Windows 10 Pro
AMD Ryzen 5 3600 6-Core Processor 3.60 GHz
64GB RAM
GTX1650 4GB :(
Samsung SSD 970 EVO Plus 1TB 1000.2 GB
Dual Monitors 32" & 27" Samsung
BM Multidock
Speed Editor
DR Studio Latest Version Fusion Studio Latest Version
Offline
User avatar

TheBloke

  • Posts: 1905
  • Joined: Sat Nov 02, 2019 11:49 pm
  • Location: UK
  • Real Name: Tom Jobbins

Re: Flip Over Lower Third not properly animating all charact

PostMon Sep 06, 2021 11:01 am

John Holt wrote:I found that to make the follower procedural I have to expose the followers text box in a macro and not the StyledText box.
Yeah. Once the Follower (or any text modifier, eg Suck Less Write On) is added, Text1.StyledText becomes unchangeable. The text is now controlled by Follower1.Text, and so this is what should be published in a macro. If you have a chain of such modifiers, such as Follower -> Suck Less Write On, you expose the last one.
John Holt wrote:In your example how is the styled text populated? (Just noticed "Text1.TextToUse.Value")
Yeah, just an expression on Follower1.Text pointing back to the TextToUse control I added to Text1.

It also works to Publish the TextToUse field and then Connect To it from Follower1.Text. And arguably this may be the better method, as it then allows the text to be changed in either Text1.TextToUse or Follower1.Text.

There may also be caching benefits to the Connect To method; expressions never cache future frames, but I think Publish -> Connect To fields might. Not that that helps in this specific example as we already have other expressions in use. But in principle, Connect To may be preferable to an Expression where one simply wishes to use the value of one control in another.
John Holt wrote:I also tried to concatenate three separate textInputs in the StyledText box but the follower did not work, I am now wondering if I concatenate 3 textInputs into Follower1.Text if it will work, something to try later.
Add the Follower as normal, then add an expression to Follower1.Text and do your concatenation in there. That will work.
Resolve Studio 17.4.3 and Fusion Studio 17.4.3 on macOS 11.6.1

Hackintosh:: X299, Intel i9-10980XE, 128GB DDR4, AMD 6900XT 16GB
Monitors: 1 x 3840x2160 & 3 x 1920x1200
Disk: 2TB NVMe + 4TB RAID0 NVMe; NAS: 36TB RAID6
BMD Speed Editor

Return to DaVinci Resolve

Who is online

Users browsing this forum: Bing [Bot], NealShireman and 151 guests