Page 1 of 1

How to lines separately in one text node

PostPosted: Wed Dec 15, 2021 3:58 pm
by molenmer
Hi all,
For the last few months I've thoroughly started using Fusion a lot more for my client work and I'm learning more and more and definitely enjoying it! It's fun once things click so to speak.
However, I still have much to learn and once again I turn to this wonderful community to ask for your help.

In this screen capture you can see my node tree. Everything you see is currently static. I just one to animate one simple thing:

In the THIS node I have 5 different lines of text in ONE text node. My goal is to animate in each line separately from below the screen to their assigned positions. I know I should probably do something with right clicking in the text window and use one of the available options in order to do this. But I have no idea how to do this? Does anyone have a clue for me?

Bonus question: Once I have animated these separate lines I also want to make sure they all have the same amount of motion blur.

Thanks in advance!

Re: How to lines separately in ONE text node

PostPosted: Thu Dec 16, 2021 1:34 am
by xunile
If you want to animate each line separately, you can right-click in the text edit box and choose Character Level Styling. Then you can box select the line you want in the viewer and choose the Modifiers tab in the Inspector and click on the Shading tab. There you can toggle open the Position section and change the Offset x y to animate the position of the different lines. For the animation, you have to switch to the Text tab under the Character Level Styling modifier and right-click on the place that says "Right-click here to animate Character Level Styling". You do this for each keyframe.

Re: How to lines separately in one text node

PostPosted: Sun Dec 19, 2021 2:15 pm
by molenmer
Hi Xuline,

Thank you so much for your reply! I wasn't able to get it to work at first because I thought I could do all the lines in just one modifier. After some troubleshooting I figured out I can only use one modifier for each line (am I correct?).

The result being that I created 5 different modifiers. You can see in the picture below. I also selected each point in the spline tab and eased it in.

Is this a good and correct, effective method? I'm trying to learn more about fusion and figuring out the best way to do things fast and efficiently...

Re: How to lines separately in one text node

PostPosted: Sun Dec 19, 2021 2:36 pm
by Sander de Regt
How did you even manage to create 5 modifiers?
You can do this in one modifier, but it's more difficult to control the animation that way. This way is much easier, but I didn't know that was possible.

If you'd like some feedback in Dutch just PM me and maybe I can help.

Re: How to lines separately in one text node

PostPosted: Sun Dec 19, 2021 2:42 pm
by molenmer
Hi Sander,

To answer your question: I was looking for another way to add more character level styling modifiers. When I right-clicked in the normal text node it wasn't available as I made one already. I was able to still do it in the text box of the first characterlevelstyling modifier

Re: How to lines separately in one text node

PostPosted: Sun Dec 19, 2021 3:23 pm
by TheBloke
Yeah you can stack text modifiers by adding each one to the Styled Text of the previous one. This is how you have, for example, CLS + Follower.

Image

But yeah, you can do all this in one modifier. Here's a quick example:
Image

Here's the node I made to create this - you can copy this code and paste it into Fusion to re-create the node I made:
Code: Select all
{
   Tools = ordered() {
      Text1 = TextPlus {
         CtrlWZoom = false,
         Inputs = {
            GlobalOut = Input { Value = 100, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            StyledText = Input {
               SourceOp = "CharacterLevelStyling1",
               Source = "StyledText",
            },
            Font = Input { Value = "Open Sans", },
            Style = Input { Value = "Bold", },
            VerticalJustificationNew = Input { Value = 3, },
            HorizontalJustificationNew = Input { Value = 3, },
         },
         ViewInfo = OperatorInfo { Pos = { 758, 35.8485 } },
      },
      CharacterLevelStyling1 = StyledTextCLS {
         CtrlWZoom = false,
         Inputs = {
            Select = Input { Value = 2, },
            TransformRotation = Input { Value = 1, },
            ElementPosition = Input { Value = 1, },
            Text = Input { Value = "This is line one\nAnd this is line two\nBut this is line three\nLine four, line four, line four!", },
            CharacterLevelStyling = Input {
               SourceOp = "CharacterLevelStyling1RightclickHeretoAnimateCharacterLevelStyling",
               Source = "Value",
            },
         },
      },
      CharacterLevelStyling1RightclickHeretoAnimateCharacterLevelStyling = BezierSpline {
         SplineColor = { Red = 240, Green = 105, Blue = 156 },
         CtrlWZoom = false,
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 33.3333333333333, 0.333333333333333 }, Flags = { Linear = true, LockedY = true }, Value = StyledText {
                  Array = {
                     { 1100, 0, 15, Value = 1 },
                     { 1112, 0, 15 },
                     { 2710, 0, 15, Value = -3.791 },
                     { 2711, 0, 15 },
                     { 2710, 17, 36, Value = 3.4 },
                     { 2711, 17, 36 },
                     { 2710, 61, 92 },
                     { 2711, 61, 92, Value = -1.912 },
                     { 2710, 38, 59 },
                     { 2711, 38, 59, Value = 3.157 },
                     { 2401, 38, 59, Value = 0.936999976634979 },
                     { 2402, 38, 59, Value = 0.405037075281143 },
                     { 2403, 38, 59, Value = 0.13586500287056 },
                     { 2401, 0, 15, Value = 0.810999989509583 },
                     { 2402, 0, 15, Value = 0.1370590031147 },
                     { 2403, 0, 15, Value = 0.1370590031147 },
                     { 2401, 17, 36, Value = 0.182115361094475 },
                     { 2402, 17, 36, Value = 0.0793799981474876 },
                     { 2403, 17, 36, Value = 0.882000029087067 },
                     { 2401, 61, 92, Value = 0.724198818206787 },
                     { 2402, 61, 92, Value = 0.834999978542328 },
                     { 2403, 61, 92, Value = 0.106045000255108 }
                  }
               } },
            [100] = { 1, LH = { 66.6666666666667, 0.666666666666667 }, Flags = { Linear = true, LockedY = true }, Value = StyledText {
                  Array = {
                     { 1100, 0, 15, Value = 1 },
                     { 1112, 0, 15 },
                     { 2710, 0, 15, Value = 4 },
                     { 2711, 0, 15 },
                     { 2710, 17, 36, Value = -3.379 },
                     { 2711, 17, 36 },
                     { 2710, 61, 92 },
                     { 2711, 61, 92 },
                     { 2710, 38, 59 },
                     { 2711, 38, 59, Value = 0.002 }
                  }
               } }
         }
      }
   }
}

Re: How to lines separately in one text node

PostPosted: Sun Dec 19, 2021 3:27 pm
by TheBloke
Basically, I think each animation/setting is saved per-character. So to create this, do this:
1. Add your text in the Text+
2. Go to the first frame of the animation
3. Add the CLS, and in the CLS modifier right-click on "Right-click here to animate.." and choose Animate
4. In the Viewer, select the line of text (or group of characters) to be animated
5. In the CLS modifier, apply the shading/parameters you want on this frame
6. Go to the next frame in the animation
7. In CLS, apply the shading/parameters you want on this frame
8. Repeat steps 5 - 7 for each keyframe for this set of characters / this line
9. Repeat steps 4 - 8 for each separate group of characters - eg once per line of text.

There are a couple of downsides:

1. When selecting in the viewer, you need to select characters based on their initial, non-CLS position. So when you're animating position, it can create situations like this, where if you want to later modify the animation you need to select the characters based on where they were, not where they're now animated to:

Image
I've selected all four lines of text, but I have to do this in the positions they were in before I applied CLS adjustments. I can't select the text based on where I can actually see it, as the CLS has already adjusted its position.

2. There's no visualisation in the modifier or the Spline Editor as to how many separate sets of animations you have. In my example above I created two keyframes - one on frame 0, one on frame 100 - for each of four lines of text. In the Spline Editor I see have two keyframes, but there's no indication as to which characters are animated on these keyframes:
Image

So there could be some advantage to using multiple Modifiers - or even multiple Text+. It would at least make it easier to understand what characters are modified by what and when.

Re: How to lines separately in one text node

PostPosted: Sun Dec 19, 2021 3:38 pm
by Sander de Regt
TheBloke wrote:Yeah you can stack text modifiers by adding each one to the Styled Text of the previous one.

I honestly never knew this. I think having the stacked version has a lot of benefits, the main one being able to control every line/character/whatever with its own set of keyframes. Now if you want one line to go from 0-25 and one from 12-37 you can't seperately ease in/out these animations.
By giving them all their own one you can circumvent this.

Re: How to lines separately in one text node

PostPosted: Sun Dec 19, 2021 3:54 pm
by TheBloke
Yeah, I think doing multiple separate sets of text in one CLS is only viable if all the animations share the same keyframes. And even then it might be more readable and easier to manage to have separate, nameable CLS modifiers.

Image