Jump to: Board index » General » Fusion

Individual alphabet animation in a title

Learn about 3D compositing, animation, broadcast design and VFX workflows.
  • Author
  • Message
Offline

neelan2001

  • Posts: 3
  • Joined: Thu Nov 08, 2018 7:00 am
  • Real Name: Raj Thoppil

Individual alphabet animation in a title

PostFri Nov 09, 2018 2:23 am

Dear All

I am a beginner and just getting to learn Fusion. Currently working on some title animations.
Recently saw a video where the alphabets in a word explode out.



Could someone please explain the workflow for animating like this?

Thank You
Offline

Okke Verbart

  • Posts: 290
  • Joined: Tue Jan 17, 2017 8:40 pm

Re: Individual alphabet animation in a title

PostFri Nov 09, 2018 9:25 pm

Hi Raj - typically for animating individual characters in the Text+ node, you'd turn to the so-called "follower" modifier. This allows you to specify animation and then apply that animation to the individual characters (with a specified delay) either left to right, right to left, random order etc. Unfortunately, the number of animation parameters available to you are somewhat limited. So, for instance, I haven't found a way to easily do this with a character's position with this method.

What I typically do for these things is to use Fusion's particle system and feed in individual characters as individual particles (essentially a text+ and then using an expression to show one character per-frame). I then use the pCustom to animate the position and all kinds of other stuff based on the particle ID.

See below for a very simple example (just copy & paste into a new comp), but you can make it much smarter and automate and awful lot. Maybe some other folks have got an easier method for this stuff though.

Code: Select all
{
   Tools = ordered() {
      Text1 = TextPlus {
         Inputs = {
            Width = Input { Value = 100, },
            Height = Input { Value = 100, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Size = Input { Value = 1.5, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input {
               Value = "T",
               Expression = "string.sub(\"THIS IS TEXT\",time+1,time+1)",
            },
            Style = Input { Value = "Bold", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 224, 26 } },
      },
      pCustom1 = pCustom {
         ID = 12,
         CtrlWZoom = false,
         Inputs = {
            Intermediate1 = Input { Value = "id-2", },
            PositionXExpression = Input { Value = "if(age==0,rand(-1,1),px)", },
            PositionYExpression = Input { Value = "if(age==0,rand(-1,1),py)", },
            PositionZExpression = Input { Value = "0", },
            VelocityXExpression = Input { Value = "if(time>15, ((i1/20)-px)/10,0)", },
            VelocityYExpression = Input { Value = "if(time>15, (0-py)/10,0)", },
            RotationZExpression = Input { Value = "if(time>15,(i1-py)*360,0)", },
            AlphaExpression = Input { Value = "if(time<15,0,1)", },
            MassExpression = Input { Value = "", },
            UserExpression = Input { Value = "", },
            Input = Input {
               SourceOp = "pEmitter1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 457, 193 } },
      },
      pEmitter1 = pEmitter {
         ID = 8,
         Inputs = {
            Number = Input { Value = 1, },
            Style = Input { Value = FuID { "ParticleStyleBitmap" }, },
            ["ParticleStyle.SizeOverLife"] = Input {
               SourceOp = "pEmitter1SizeoverLife",
               Source = "Value",
            },
            ["ParticleStyle.BlurOverLife"] = Input {
               SourceOp = "pEmitter1BluroverLife2D",
               Source = "Value",
            },
            ["ParticleStyleBitmap.Animate"] = Input { Value = 2, },
            ["ParticleStyleBitmap.DropToolsHere"] = Input {
               SourceOp = "Text1",
               Source = "Output",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 325, 193 } },
      },
      pEmitter1SizeoverLife = LUTBezier {
         KeyColorSplines = {
            [0] = {
               [0] = { 0.5, RH = { 0.3, 0.5 }, Flags = { Linear = true } },
               [1] = { 0.5, LH = { 0.7, 0.5 }, Flags = { Linear = true } }
            }
         },
         SplineColor = { Red = 192, Green = 128, Blue = 64 },
         NameSet = true,
      },
      pEmitter1BluroverLife2D = LUTBezier {
         KeyColorSplines = {
            [0] = {
               [0] = { 0.5, RH = { 0.3, 0.5 }, Flags = { Linear = true } },
               [1] = { 0.5, LH = { 0.7, 0.5 }, Flags = { Linear = true } }
            }
         },
         SplineColor = { Red = 192, Green = 128, Blue = 64 },
         NameSet = true,
      },
      pRender1 = pRender {
         Inputs = {
            _MotionBlurWarning = Input { Disabled = true, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            IntegrationMethod = Input { Value = FuID { "RK4" }, },
            ["MaterialID.MaterialID"] = Input { Value = 1, },
            ["ObjectID.ObjectID"] = Input { Value = 1, },
            Input = Input {
               SourceOp = "pCustom1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 690, 196 } },
      }
   }
}
www.ablackbirdcalledsue.com
Offline

neelan2001

  • Posts: 3
  • Joined: Thu Nov 08, 2018 7:00 am
  • Real Name: Raj Thoppil

Re: Individual alphabet animation in a title

PostSat Nov 10, 2018 9:10 am

Thank you very much Okke for helping out.

Well, I am just a beginner and not much familiar with coding for now. I saved the code you had given me as a test.comp and then opened in Fusion and then could understand what you had explained.

But to build on it from there I need to learn and practice a lot I think. Meanwhile searching on Youtube, I found one tutorial which might be of help. I am yet to go through it.

wwwDOTyoutubeDOTcom/watch?v=PpApnNoStiI

Thank you once again for your time and advice..
Offline

Okke Verbart

  • Posts: 290
  • Joined: Tue Jan 17, 2017 8:40 pm

Re: Individual alphabet animation in a title

PostFri Nov 16, 2018 6:29 am

Hey Raj - yes, that's a clever tutorial and definitely works (with characterlevelstyling). Very flexible and for smaller number of items to animate, definitely very good. When you would have a lot of text to work with though, it could become quite a lot of effort (but upside is a lot of control over each individual character).

Advantage with my approach is that you van easily apply it to any number of text strings (with a bit of modification), but downsides: requires some knowledge of expressions in the pCustom and it's harder to control each character individually (like right now the starting position of each character is based on a rand() function). If you'd like to know a bit more about the pCustom, there are a few tutorials out there. I did one quite some time ago:




And another one that builds on the same principles:

www.ablackbirdcalledsue.com

Return to Fusion

Who is online

Users browsing this forum: AlexYez, Philippe Metro and 66 guests