Jump to: Board index » General » Fusion

Keyframe Stretcher in a Macro for Title Template

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

pinhead

  • Posts: 4
  • Joined: Tue May 27, 2025 10:36 pm
  • Location: Vancouver
  • Real Name: Allan Pinvidic

Keyframe Stretcher in a Macro for Title Template

PostTue May 27, 2025 11:26 pm

I can add a Keyframe Stretcher node to my Fusion comp directly and it works as expected (with known error when shortening the clip), but if I create a Macro including those same nodes to use in Edit page as a Title Template, the Keyframe Stretcher part does not work at all. Is this a known bug or do I need to enable some special parameter when creating the Macro for it to work? I have tried creating the Macro several times with different Keyframe Stretcher parameters enabled, but it never works.
Offline

Sander de Regt

  • Posts: 4128
  • Joined: Thu Nov 13, 2014 10:09 pm

Re: Keyframe Stretcher in a Macro for Title Template

PostWed May 28, 2025 6:58 am

Can you share what you have so far? I've created a couple of them where it did work. So it could be a minor difference. Also 'it doesn't work at all' can mean many things. Can you please elaborate?
Sander de Regt

ShadowMaker SdR
The Netherlands
Offline
User avatar

KrunoSmithy

  • Posts: 4552
  • Joined: Fri Oct 20, 2023 11:01 pm
  • Warnings: 1
  • Real Name: Kruno Stifter

Re: Keyframe Stretcher in a Macro for Title Template

PostWed May 28, 2025 10:15 am

" does not work at all." " (with known error when shortening the clip)," are arbitrary statements that need backing. Unless you provide code for what you are doing, I'll assume its the user error. Post to code so we can see.
Offline

pinhead

  • Posts: 4
  • Joined: Tue May 27, 2025 10:36 pm
  • Location: Vancouver
  • Real Name: Allan Pinvidic

Re: Keyframe Stretcher in a Macro for Title Template

PostThu May 29, 2025 11:30 pm

Code: Select all
{
   Tools = ordered() {
      MacroTool1 = MacroOperator {
         Inputs = ordered() {
            Input1 = InstanceInput {
               SourceOp = "Text1",
               Source = "StyledText",
            },
            Input2 = InstanceInput {
               SourceOp = "Text1",
               Source = "Font",
               ControlGroup = 2,
            }
         },
         Outputs = {
            MainOutput1 = InstanceOutput {
               SourceOp = "Merge1",
               Source = "Output",
            }
         },
         ViewInfo = GroupInfo { Pos = { 0, 0 } },
         Tools = ordered() {
            Text1 = TextPlus {
               Inputs = {
                  GlobalIn = Input { Value = 1466, },
                  GlobalOut = Input { Value = 1467, },
                  Width = Input { Value = 1920, },
                  Height = Input { Value = 1080, },
                  UseFrameFormatSettings = Input { Value = 1, },
                  ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
                  LayoutRotation = Input { Value = 1, },
                  TransformRotation = Input { Value = 1, },
                  Softness1 = Input { Value = 1, },
                  StyledText = Input { Value = "this is a test", },
                  Font = Input { Value = "Open Sans", },
                  Style = Input { Value = "Bold", },
                  VerticalJustificationNew = Input { Value = 3, },
                  HorizontalJustificationNew = Input { Value = 3, }
               },
               ViewInfo = OperatorInfo { Pos = { -48.6667, 8.57587 } },
            },
            Merge1 = Merge {
               Inputs = {
                  Blend = Input {
                     SourceOp = "Merge1Blend",
                     Source = "Value",
                  },
                  Background = Input {
                     SourceOp = "Background1",
                     Source = "Output",
                  },
                  Foreground = Input {
                     SourceOp = "Text1",
                     Source = "Output",
                  },
                  PerformDepthMerge = Input { Value = 0, }
               },
               ViewInfo = OperatorInfo { Pos = { 97.3338, 71.6064 } },
            },
            Merge1Blend = BezierSpline {
               SplineColor = { Red = 205, Green = 205, Blue = 205 },
               CtrlWZoom = false,
               KeyFrames = {
                  [0] = { 0, RH = { 4, 0.333333333333333 }, Flags = { Linear = true } },
                  [12] = { 1, LH = { 8, 0.666666666666667 }, RH = { 43.6666666666667, 1 }, Flags = { Linear = true } },
                  [107] = { 1, LH = { 75.3333333333333, 1 }, RH = { 111, 0.666666666666667 }, Flags = { Linear = true } },
                  [119] = { 0, LH = { 115, 0.333333333333333 }, Flags = { Linear = true } }
               }
            },
            Background1 = Background {
               CtrlWZoom = false,
               Inputs = {
                  GlobalIn = Input { Value = 1466, },
                  GlobalOut = Input { Value = 1467, },
                  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 = { -215.334, 71.6064 } },
            },
            KeyframeStretcher1 = KeyStretcher {
               Inputs = {
                  Keyframes = Input {
                     SourceOp = "Merge1",
                     Source = "Output",
                  },
                  StretchStart = Input { Value = 12, },
                  StretchEnd = Input { Value = 108, }
               },
               ViewInfo = OperatorInfo { Pos = { 306.668, 71.6064 } },
            }
         },
      }
   },
   ActiveTool = "MacroTool1"
}
Offline

pinhead

  • Posts: 4
  • Joined: Tue May 27, 2025 10:36 pm
  • Location: Vancouver
  • Real Name: Allan Pinvidic

Re: Keyframe Stretcher in a Macro for Title Template

PostThu May 29, 2025 11:34 pm

I added the code - this is a simple 12fr fade up and 12fr fade out just for testing purposes in advance of a more complicated routine. It reveals controls for text, font and I want to be able to time scale the effect once in the EDIT page. Currently trimming length does not pull the end fade-out along with it.
Offline

Sander de Regt

  • Posts: 4128
  • Joined: Thu Nov 13, 2014 10:09 pm

Re: Keyframe Stretcher in a Macro for Title Template

PostFri May 30, 2025 6:43 am

Your macro uses the output of the original merge not the keyframestretcher.
If you view the keyframestretcher it works as intended.
Change the output of your macro and you should be good to go.
Sander de Regt

ShadowMaker SdR
The Netherlands
Offline
User avatar

KrunoSmithy

  • Posts: 4552
  • Joined: Fri Oct 20, 2023 11:01 pm
  • Warnings: 1
  • Real Name: Kruno Stifter

Re: Keyframe Stretcher in a Macro for Title Template

PostFri May 30, 2025 9:55 am

Yes, Keyframe stretcher goes to nowhere. You need to make it follow the flow outside the group for macro.

sshot-1360.jpg
sshot-1360.jpg (32.78 KiB) Viewed 1881 times


sshot-1361.jpg
sshot-1361.jpg (30.8 KiB) Viewed 1881 times


...and of course your keyframe strecher needs to match your animation for it to work as intended as a macro.

sshot-200-gigapixel-text-shapes-2ssx.jpg
sshot-200-gigapixel-text-shapes-2ssx.jpg (320.01 KiB) Viewed 1881 times
Offline

pinhead

  • Posts: 4
  • Joined: Tue May 27, 2025 10:36 pm
  • Location: Vancouver
  • Real Name: Allan Pinvidic

Re: Keyframe Stretcher in a Macro for Title Template

PostFri May 30, 2025 9:28 pm

KrunoSmithy wrote:Yes, Keyframe stretcher goes to nowhere. You need to make it follow the flow outside the group for macro.

sshot-1360.jpg


sshot-1361.jpg


...and of course your keyframe strecher needs to match your animation for it to work as intended as a macro.

sshot-200-gigapixel-text-shapes-2ssx.jpg


Thank you, very helpful - it works now. But still the issue of "stretching" to a length shorter rather than longer. I get a cut to black frame if I trim the template clip (or the original Fusion effect) to anything shorter than the original length. I assume this is a bug, but can anybody get it to work properly?
Offline
User avatar

KrunoSmithy

  • Posts: 4552
  • Joined: Fri Oct 20, 2023 11:01 pm
  • Warnings: 1
  • Real Name: Kruno Stifter

Re: Keyframe Stretcher in a Macro for Title Template

PostFri May 30, 2025 9:44 pm

pinhead wrote:I assume this is a bug, but can anybody get it to work properly?


You should assume that you need more training for this type of work. Look for more information in the manual or search for one of many tutorials online to explain how keyframe strecher works. It works as it always has. It is nothing special it, essentially duplicates frames over a certain range so you can extend the clip like its a freeze frame. Obviously you can't have animation that is dynamic in that range or it won't work. For more advance version animations you use keyframe strecher as a modifier and for simple in and out type animation like titles you use just a node. Its sufficient. If you don't understand how it works. Get busy learning. Tutorials are waiting for you. Or experiment on your own until you get it right.

Return to Fusion

Who is online

Users browsing this forum: No registered users and 18 guests