Page 1 of 1

Newbie question - moving many keyframes simultaneously

PostPosted: Sat Aug 04, 2018 9:35 am
by markpalmos
Hello all,

In After Effects, if you want to move the entire path of an animated object in any direction but want to keep the path, you park at one of the keyframes on the timeline, select all keyframes on that parameter, then move x or y and all move equally, the path remains the same but in a new position.

I can't find the way to do this in Fusion. Keyframes panel just moves keyframes earlier or later, Spline panel doesn't seem to work to do this either. At the moment there seems to be no way to get the path displayed on the viewers for some reason. (see video)
https://videoblurb.com/mp/move_path_Kee ... iewer.webm

Sorry, seems this is more than one question.

tx
Mark.

Re: Newbie question - moving many keyframes simultaneously

PostPosted: Sat Aug 04, 2018 3:19 pm
by Bryan Ray
Well, that Rectangle tool is certainly bugged. It should definitely show you its parameters when selected. If you copy and paste it, does the copy show it's controls in the Inspector?

As to your second question, Fusion's default motion path keyframes are in Displacement mode, which makes adjusting timing a little easier, but adjusting the motion spatially difficult. To get access to x- and y- paths, right-click in the Viewer, point to the Path#:PolyLine at the bottom of the context menu, then choose 'Convert to XY Path.' The Path modifier will be replaced with an XYPath modifier.

Given the bug you're seeing, though, I'm not sure if the path will appear in your context menu or not.

Re: Newbie question - moving many keyframes simultaneously

PostPosted: Sat Aug 04, 2018 3:25 pm
by markpalmos
Bryan Ray wrote:Well, that Rectangle tool is certainly bugged. It should definitely show you its parameters when selected. If you copy and paste it, does the copy show it's controls in the Inspector?

As to your second question, Fusion's default motion path keyframes are in Displacement mode, which makes adjusting timing a little easier, but adjusting the motion spatially difficult. To get access to x- and y- paths, right-click in the Viewer, point to the Path#:PolyLine at the bottom of the context menu, then choose 'Convert to XY Path.' The Path modifier will be replaced with an XYPath modifier.

Given the bug you're seeing, though, I'm not sure if the path will appear in your context menu or not.
Hi Bryan,
Thanks for the response. I'll test copying tomorrow, thanks.
So if I convert to xy, could I move the rectangle elsewhere and keep the animated key frames in the same relative position?
Cheers,
Mark.

Sent from my SM-N950F using Tapatalk

Re: Newbie question - moving many keyframes simultaneously

PostPosted: Sun Aug 05, 2018 1:42 am
by Bryan Ray
I'm not sure I understand the question. If you have an animation that you don't want to disturb, but you want to move the Rectangle to a new position, just use a Transform node. No need to futz with keyframes or splines if that's all you need to do.

Re: Newbie question - moving many keyframes simultaneously

PostPosted: Sun Aug 05, 2018 7:39 am
by markpalmos
Hi,
AFAIK the transform wouldn't work properly because you can't move the rectangle such that part of it that's out of frame would move into view. I think because the transform comes AFTER the rectangle on the background node, it'd move that "layer" so whatever out of frame will remain cropped and out of frame, I think?

Tx
Mark

Sent from my SM-N950F using Tapatalk

Re: Newbie question - moving many keyframes simultaneously

PostPosted: Sun Aug 05, 2018 7:54 am
by Bryan Ray
Nope. Fusion's canvas is infinite, and transforms concatenate (all consecutive transform operations are evaluated at once, as though they were just a single move). The only reason you'd see it crop is if you added a tool that has some kind of edge handling, like a Blur. But even then, you can usually set the Clipping Mode to None in order to preserve out-of-raster pixels.

Re: Newbie question - moving many keyframes simultaneously

PostPosted: Sun Aug 05, 2018 11:12 am
by markpalmos
Bryan Ray wrote:Nope. Fusion's canvas is infinite, and transforms concatenate (all consecutive transform operations are evaluated at once, as though they were just a single move). The only reason you'd see it crop is if you added a tool that has some kind of edge handling, like a Blur. But even then, you can usually set the Clipping Mode to None in order to preserve out-of-raster pixels.


Hi Bryan,
I have tried adding a transform, but the paint layer is applied to a background layer, and when I move them with a transform, the rectangle is cut off at the bounds of the background layer (see video)
https://videoblurb.com/mp/boundless_layers.webm
How would I paint a rectangle that is not limited to the size of a size-restricted layer?
Tx
Mark.

Re: Newbie question - moving many keyframes simultaneously

PostPosted: Sun Aug 05, 2018 3:45 pm
by Bryan Ray
Oooh. I see what you've got. Yes, the Paint tool only works inside the boundary of the frame, so in that case what I proposed wouldn't work. I had assumed you were using the Rectangle tool, but as I look at the video you posted originally, that obviously couldn't be the case because it has a Background piped into it. A Rectangle tool doesn't even have a gold input.

Assuming this is the kind of thing you're attempting to build, I'll propose a different approach:


Code: Select all
{
   Tools = ordered() {
      Rectangle2 = RectangleMask {
         CtrlWZoom = false,
         Inputs = {
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Center = Input {
               SourceOp = "Path1",
               Source = "Position",
            },
            Width = Input { Value = 0.536931818181818, },
            Height = Input { Value = 0.196969696969697, },
         },
         ViewInfo = OperatorInfo { Pos = { 350, 149 } },
      },
      Path1 = PolyPath {
         DrawMode = "InsertAndModify",
         Inputs = {
            Displacement = Input {
               SourceOp = "Path1Displacement",
               Source = "Value",
            },
            PolyLine = Input {
               Value = Polyline {
                  Points = {
                     { Linear = true, LockY = true, X = 0, Y = 0, RX = -0.169981060606061, RY = 0 },
                     { Linear = true, LockY = true, X = -0.509943181818182, Y = 0, LX = 0.169981060606061, LY = 0 }
                  }
               },
            },
         },
      },
      Path1Displacement = BezierSpline {
         SplineColor = { Red = 255, Green = 0, Blue = 255 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 17, 0.333333333333333 }, Flags = { Linear = true, LockedY = true } },
            [51] = { 1, LH = { 34, 0.666666666666667 }, Flags = { Linear = true, LockedY = true } }
         }
      },
      Merge1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background2",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Background3",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 570, 262 } },
      },
      Background2 = Background {
         Inputs = {
            GlobalOut = Input { Value = 100, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 453, 262 } },
      },
      Background3 = Background {
         Inputs = {
            GlobalOut = Input { Value = 100, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftGreen = Input { Value = 0.579268292682927, },
            TopLeftBlue = Input { Value = 0.951219512195122, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
            EffectMask = Input {
               SourceOp = "Transform2",
               Source = "Output",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 571, 150 } },
      },
      Transform2 = Transform {
         Inputs = {
            Center = Input { Value = { 0.866477272727273, 0.5 }, },
            Input = Input {
               SourceOp = "Rectangle2",
               Source = "Mask",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 457, 150 } },
      }
   }
}



In this case, the Rectangle (a mask tool rather than the Paint node) is animated and used to mask a Background that contains the desired color. The Transform allows you to reposition the Rectangle without disturbing its relative motion path, but since the Background (which extends only to the edge of frame) isn't translated, you don't have the domain problem you're noticing.

In Resolve's Fusion panel, you can see the Domain of Definition (a frame around where pixels exist, regardless of whether they're in the visible raster) by right-clicking and choosing Region > Show DoD. That will tell you whether or not using a Transform like this will do you any good. In the nodes I posted, set your playhead to frame 1 and look at the difference between the DoD when viewing the Transform versus viewing Background3.

edit: And I just realized why your Inspector panel isn't showing the parameters. That's a Paint tool, so all the actual controls are in the Modifiers, not the Tool Controls. Paint tools can have layered elements, and each one goes on as a Modifier, which allows you to go back and change parameters for individual pieces of it.

Re: Newbie question - moving many keyframes simultaneously

PostPosted: Sun Aug 05, 2018 7:12 pm
by markpalmos
Bryan Ray wrote:Oooh. I see what you've got. Yes, the Paint tool only works inside the boundary of the frame, so in that case what I proposed wouldn't work.

edit: And I just realized why your Inspector panel isn't showing the parameters. That's a Paint tool, so all the actual controls are in the Modifiers, not the Tool Controls.


Hi Bryan,
Thanks fella, I will mod my approch to use a rectangle mask on a background instead.
Also, thanks for the Paint gotcha. I saw the list of Modifiers, but there is no indication that double clicking one would bring up the inspector panel for that item. Perhaps a cog icon or something to click on would make it clear.
Cheers,
Mark.

Re: Newbie question - moving many keyframes simultaneously

PostPosted: Mon Aug 06, 2018 5:47 pm
by Bryan Ray
They really need to stop removing buttons from the UI. Fusion Standalone has a disclosure triangle next to the Modifier's name, so it's pretty obvious that it can be opened.

Re: Newbie question - moving many keyframes simultaneously

PostPosted: Mon Aug 06, 2018 7:48 pm
by markpalmos
Bryan Ray wrote:They really need to stop removing buttons from the UI. Fusion Standalone has a disclosure triangle next to the Modifier's name, so it's pretty obvious that it can be opened.
Yep, that would make it a lot more intuitive.

Sent from my SM-N950F using Tapatalk

Re: Newbie question - moving many keyframes simultaneously

PostPosted: Mon Aug 06, 2018 8:07 pm
by Sander de Regt
Bryan Ray wrote:They really need to stop removing buttons from the UI. Fusion Standalone has a disclosure triangle next to the Modifier's name, so it's pretty obvious that it can be opened.

I just posted a report similar to this: the position of this triangle in the Fusion UI is taken in the DaFusion UI with an on/off slider (the pass-through) so my muscle memory regularly trips me up.