Jump to: Board index » General » Fusion

motion path struggles

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

Rick van den Berg

  • Posts: 1377
  • Joined: Tue Jun 02, 2015 7:47 am
  • Location: Netherlands

motion path struggles

PostTue Nov 21, 2017 9:22 am

Hi, im having some problems with motion paths, im trying to make a cartoony rollercoaster, really basic 2d stuff. but i just cant find a way to create a smooth looking animation. here's the comp:
Code: Select all
{
   Tools = ordered() {
      Background10 = Background {
         Inputs = {
            GlobalOut = Input { Value = 250, },
            Width = Input { Value = 657, },
            Height = Input { Value = 351, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 0.731, },
            TopLeftBlue = Input { Value = 0.106, },
         },
         ViewInfo = OperatorInfo { Pos = { 10268.7, 808.5 } },
      },
      Polygon13 = PolylineMask {
         DrawMode = "ModifyOnly",
         DrawMode2 = "InsertAndModify",
         Inputs = {
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Polyline = Input {
               SourceOp = "Polygon13Polyline",
               Source = "Value",
            },
            Polyline2 = Input {
               Value = Polyline {
               },
               Disabled = true,
            },
         },
         ViewInfo = OperatorInfo { Pos = { 10395, 775.5 } },
      },
      Polygon13Polyline = BezierSpline {
         SplineColor = { Red = 173, Green = 255, Blue = 47 },
         NameSet = true,
         KeyFrames = {
            [86] = { 0, Flags = { Linear = true, LockedY = true }, Value = Polyline {
                  Closed = true,
                  Points = {
                     { Linear = true, X = 0.140315532684326, Y = 0.364302664995193, LX = 0.00993384917577108, LY = -0.0909608900547028, RX = 0.0383807917435964, RY = -0.00165347258249917 },
                     { Linear = true, X = 0.255457907915115, Y = 0.359342247247696, LX = -0.0383807917435964, LY = 0.00165347258249917, RX = -0.00722460945447286, RY = -0.0868066549301148 },
                     { Linear = true, X = 0.233784079551697, Y = 0.0989222824573517, LX = 0.00722460945447286, LY = 0.0868066549301148, RX = 0.0415809055169423, RY = 0 },
                     { Linear = true, X = 0.358526796102524, Y = 0.0989222824573517, LX = -0.0415809055169423, LY = 0, RX = 0.00718533992767334, RY = -0.0934205055236817 },
                     { X = 0.380082696676254, Y = -0.181339174509048, LX = 0.00812768936157227, LY = 0.133930251002312, RX = -0.00280946493148804, RY = -0.0462951809167862 },
                     { X = 0.3448626101017, Y = -0.305348664522171, LX = 0.0162053108215332, LY = 0.0388571321964264, RX = 0.00677309433619181, RY = -0.0272821088631948 },
                     { Linear = true, X = 0.365181893110275, Y = -0.387194991111755, LX = -0.00677309433619181, LY = 0.0272821088631948, RX = -0.236627558867137, RY = 0 },
                     { Linear = true, X = -0.344700783491135, Y = -0.387194991111755, LX = 0.236627558867137, LY = 0, RX = 0, RY = 0.218258152405421 },
                     { Linear = true, X = -0.344700783491135, Y = 0.267579466104507, LX = 0, LY = -0.218258152405421, RX = 0.0528531571229299, RY = 0 },
                     { Linear = true, X = -0.186141312122345, Y = 0.267579466104507, LX = -0.0528531571229299, LY = 0, RX = 0.0139957666397095, RY = -0.0132290720939637 },
                     { X = -0.144154012203217, Y = 0.227892190217972, LX = -0.0189646333456039, LY = 0.0496037602424622, RX = 0.0269903540611267, RY = -0.0705958604812622 },
                     { X = -0.0831962525844574, Y = -0.00524568557739258, LX = -0.0169837176799774, LY = 0.0812709927558899, RX = 0.000451539953549703, RY = -0.0644849389791489 },
                     { Linear = true, X = -0.0818416327238083, Y = -0.198700502514839, LX = -0.000451539953549703, LY = 0.0644849389791489, RX = 0.0546436856190364, RY = 0 },
                     { Linear = true, X = 0.0820894241333008, Y = -0.198700502514839, LX = -0.0546436856190364, LY = 0, RX = 0, RY = 0.113274251421293 },
                     { Linear = true, X = 0.0820894241333008, Y = 0.141122251749039, LX = 0, LY = -0.113274251421293, RX = 0.012184073527654, RY = 0 },
                     { Linear = true, X = 0.118641644716263, Y = 0.141122251749039, LX = -0.012184073527654, LY = 0, RX = 0, RY = -0.0165674189726512 },
                     { Linear = true, X = 0.118641644716263, Y = 0.0914199948310852, LX = 0, LY = 0.0165674189726512, RX = 0.0171584784984589, RY = 0 },
                     { Linear = true, X = 0.170117080211639, Y = 0.0914199948310852, LX = -0.0171584784984589, LY = 0, RX = -0.00993384917577108, RY = 0.0909608900547028 }
                  }
               } }
         }
      },
      MatteControl9 = MatteControl {
         Inputs = {
            MultiplyByMask = Input { Value = 1, },
            EffectMask = Input {
               SourceOp = "Polygon13",
               Source = "Mask",
            },
            Background = Input {
               SourceOp = "Background10",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 10433.7, 808.5 } },
      },
      Ellipse6 = EllipseMask {
         Inputs = {
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Width = Input { Value = 0.419, },
            Height = Input { Value = 0.419, },
            Angle = Input { Value = -22.825403886401, },
         },
         ViewInfo = OperatorInfo { Pos = { 10378.7, 1006.5 } },
      },
      Background10_1 = Background {
         Inputs = {
            GlobalOut = Input { Value = 250, },
            Width = Input { Value = 100, },
            Height = Input { Value = 100, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Type = Input { Value = FuID { "Gradient" }, },
            TopLeftRed = Input { Value = 0.683792069880592, },
            TopLeftGreen = Input { Value = 0.731, },
            TopLeftBlue = Input { Value = 0.67252, },
            GradientType = Input { Value = FuID { "Radial" }, },
            Start = Input { Value = { 0.500440358886523, 0.482718696092153 }, },
            End = Input { Value = { 0.814488282878338, 0.462258489445034 }, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0.184563758389262] = { 1, 1, 1, 1 },
                     [0.852348993288591] = { 0.444444444444444, 0.444444444444444, 0.444444444444444, 1 },
                     [1] = { 0, 0, 0, 1 }
                  }
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 10268.7, 1105.5 } },
      },
      Transform8 = Transform {
         Inputs = {
            Size = Input { Value = 0.803, },
            Input = Input {
               SourceOp = "MatteControl10",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 10488.7, 1105.5 } },
      },
      MatteControl10 = MatteControl {
         Inputs = {
            MultiplyByMask = Input { Value = 1, },
            EffectMask = Input {
               SourceOp = "Ellipse6",
               Source = "Mask",
            },
            Background = Input {
               SourceOp = "Background10_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 10378.7, 1105.5 } },
      },
      Merge72 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Merge71",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Transform8",
               Source = "Output",
            },
            Center = Input { Value = { 3.37485635146844, 0.5 }, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 10708.7, 1171.5 } },
      },
      Merge71 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Transform8",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Transform8",
               Source = "Output",
            },
            Center = Input { Value = { 1.87945349653228, 0.5 }, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 10598.7, 1171.5 } },
      },
      Merge70 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "MatteControl9",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Merge73",
               Source = "Output",
            },
            Center = Input { Value = { 0.189113355780022, 0.0588235294117647 }, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 10928.7, 1138.5 } },
      },
      Merge73 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Merge72",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Transform8",
               Source = "Output",
            },
            Center = Input { Value = { 4.81003714710253, 0.5 }, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 10818.7, 1171.5 } },
      },
      Background9_2 = Background {
         Inputs = {
            GlobalOut = Input { Value = 250, },
            Width = Input { Value = 2081, },
            Height = Input { Value = 422, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftAlpha = Input { Value = 0, },
            GradientType = Input { Value = FuID { "Reflect" }, },
            Start = Input { Value = { 0.363636363636364, 0.689054726368159 }, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 0 },
                     [0.590604026845638] = { 0.5704, 0.604760442306384, 0.62, 1 },
                     [0.996644295302013] = { 0.753, 0.73794, 0.749235, 1 }
                  }
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 10983.7, 1204.5 } },
      },
      Transform9 = Transform {
         CtrlWZoom = false,
         Inputs = {
            Center = Input {
               SourceOp = "Path3",
               Source = "Position",
            },
            Size = Input { Value = 0.394724749563459, },
            Input = Input {
               SourceOp = "Merge75",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 11093.7, 1237.5 } },
      },
      Path3 = PolyPath {
         DrawMode = "InsertAndModify",
         Inputs = {
            Displacement = Input {
               SourceOp = "Path3Displacement",
               Source = "Value",
            },
            PolyLine = Input {
               Value = Polyline {
                  Points = {
                     { Linear = true, LockY = true, X = -0.532110747082621, Y = -0.528657616892911, RX = 0.0506220792077218, RY = 0.0307297289515581 },
                     { LockY = true, X = -0.431462585816366, Y = -0.250735118850891, LX = -0.0298865253539417, LY = -0.117708504403188, RX = 0.08189175756474, RY = 0.315555490604537 },
                     { LockY = true, X = -0.184992224174239, Y = -0.225275654028189, LX = -0.0694085322067332, LY = -0.013638520739882, RX = 0.0281579158735543, RY = -0.00844043367930092 },
                     { X = -0.118145290674238, Y = -0.167021205199176, LX = -0.0174863878659429, LY = -0.0451991419451823, RX = 0.0301529204034943, RY = 0.077939819156957 },
                     { LockY = true, X = -0.041347362204172, Y = 0.14990854874222, LX = -0.0295667638158061, LY = -0.0854995324409278, RX = 0.0196396691776323, RY = 0.0660018184411643 },
                     { LockY = true, X = 0.0587324838839807, Y = 0.246267910383714, LX = -0.0511828559532792, LY = 0.0451933586047427, RX = 0.0840534232622805, RY = -0.0796742017009852 },
                     { LockY = true, X = 0.295026074414798, Y = -0.220982968309171, LX = -0.12104727017265, LY = -0.116799445048963, RX = 0.0268406927069304, RY = 0.0193390031261175 },
                     { X = 0.384607934414976, Y = -0.227719433006199, LX = -0.0319563529443387, LY = 0.0381087879582207, RX = 0.0503617811865841, RY = -0.0600577383613527 },
                     { LockY = true, X = 0.531570884427214, Y = -0.460177420669768, LX = -0.0556200078466448, LY = -0.0281730496462278 }
                  }
               },
            },
         },
      },
      Path3Displacement = BezierSpline {
         SplineColor = { Red = 255, Green = 0, Blue = 255 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 4, 0 }, Flags = { LockedY = true } },
            [12] = { 0.133625894735683, LH = { 8.00040006637573, 0.100802479114224 }, RH = { 18.6659295739483, 0.188331010382289 }, Flags = { LockedY = true } },
            [32] = { 0.303646964233612, LH = { 25.3341144149717, 0.243821369139728 }, RH = { 38.6659998893738, 0.363473585196513 }, Flags = { LockedY = true } },
            [52] = { 0.492621526033368, LH = { 45.3340001106262, 0.42952252111527 }, RH = { 56.3327799963797, 0.533634743980822 }, Flags = { LockedY = true } },
            [65] = { 0.568689293520645, LH = { 60.6671623593335, 0.534300913253522 }, RH = { 72.9991998672485, 0.63217644667078 }, Flags = { LockedY = true } },
            [89] = { 0.825962419692375, LH = { 81.0008001327515, 0.768460077258833 }, RH = { 100.998678880155, 0.912215064102686 }, Flags = { LockedY = true } },
            [125] = { 1, LH = { 113.001200199127, 1 }, RH = { 133, 1 }, Flags = { LockedY = true } },
            [149] = { 1, LH = { 141, 1 }, Flags = { Linear = true, Extrapolate = true } }
         }
      },
      Merge75 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background9_2",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Merge70",
               Source = "Output",
            },
            Center = Input { Value = { 0.5, 0.770650456802115 }, },
            Size = Input { Value = 0.581, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 11093.7, 1204.5 } },
      }
   }
}


my goal is to make the car/train move at a single speed. no accelleration, or braking. it has to be perfect, because i want to attach more cars, and there will grow a gap between the cars if it speeds up.

anyone who can help me?
Offline

Umberto Uderzo

  • Posts: 263
  • Joined: Fri Mar 13, 2015 12:19 am

Re: motion path struggles

PostTue Nov 21, 2017 11:01 am

I suspect you get the struggling effect because you animated the center point over time and you didn't position in time the key frames so that the motion is uniform.

Maybe this tutorial is of any help?

http://lesterbanks.com/2017/06/easily-create-motion-path-mask-fusion/

It works on a different concept, that is to use a mask path, where each spline point is defined statically, and to work with the displacement over the path to get an uniform motion.
I tried to follow it but, while i got better results, they still don't look like perfectly uniform.

Edit: Maybe because i tried with a BSpline instead of a polyline? Just guessing...
Offline

Rick van den Berg

  • Posts: 1377
  • Joined: Tue Jun 02, 2015 7:47 am
  • Location: Netherlands

Re: motion path struggles

PostTue Nov 21, 2017 11:43 am

yeah i saw that one, i first started with the same idea, but still the same issue
Offline

Sander de Regt

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

Re: motion path struggles

PostTue Nov 21, 2017 12:02 pm

In the basis the idea of seperating displacement and the shape of the motion-path is a good one.
The main reason that it's a little unpredictable at times is that what is logical for us humans (just keep the same speed along the path) is not so simple for Fusion. The curvature of the spline and the handles of the spline points all influence the 'length' of the spline internally. I haven't found a way around this yet, but it can be difficult to work with this.

Best example is write on/write off. If you create a spline and use that as a paintstroke and then animate the write on end to go from 0-1 and use that same spline to move a small dot over time and animate the displacement from 0-1 in the same way you did with the Write On End, the two will not match up.
It's really annoying.
Sander de Regt

ShadowMaker SdR
The Netherlands
Offline

Umberto Uderzo

  • Posts: 263
  • Joined: Fri Mar 13, 2015 12:19 am

Re: motion path struggles

PostTue Nov 21, 2017 4:02 pm

Looks like the only viable option is to "sample" the BSpline curve by quantization and create a number or nearly linear curves all of the same length. This would make the path traversing more uniform, but it's a destructive way.
Or maybe writing a fuse (whathever thing a fuse is :? )that transforms a path into a "quantized path" so the original path is still editable in its original form.
Offline

JP Docherty

  • Posts: 188
  • Joined: Wed Dec 31, 2014 2:37 pm

Re: motion path struggles

PostTue Nov 21, 2017 5:13 pm

Another method that I've found quite useful is detailed here -
http://tale2tell.com/fusion-motion-paths/
Offline

Sander de Regt

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

Re: motion path struggles

PostTue Nov 21, 2017 7:54 pm

JP Docherty wrote:Another method that I've found quite useful is detailed here -
http://tale2tell.com/fusion-motion-paths/

You really, really shouldn't follow the workflow demonstrated in this video. It's so completely wrong in so many ways. There is no need to export/import paths in Fusion.
He should have just added points on the very first path he creates to shape the motion path the way he wants to and he'd be done. It's a sympathetic video and the method works. But the whole point of working in Fusion is that you can keep almost anything connected all the time in a non-destructive way.
Sander de Regt

ShadowMaker SdR
The Netherlands
Offline

Umberto Uderzo

  • Posts: 263
  • Joined: Fri Mar 13, 2015 12:19 am

Re: motion path struggles

PostTue Nov 21, 2017 10:23 pm

Just to try every possible approach, i applied the technique hoping in some kind of escamotage to obtain an uniform movement speed but too bad nothing changes. Guess the issue must be faced in a different way, if possible. At the moment the only solution i see is to apply some manual correction until the movement "looks like" is't uniform, but sure it's not easy in every case.
Offline

Marcus Goller

  • Posts: 58
  • Joined: Sat Nov 29, 2014 9:41 pm

Re: motion path struggles

PostWed Nov 22, 2017 8:24 pm

Have a look at this version, if this covers your needs.

I converted the motion path to a XY Path (Fusion 9 User Manual, page 305) and deleted the superflous keyframes for the X value to make it a straight line.

I also removed the Matte Control nodes, as you can connect the mask directly to the background node.

Code: Select all
{
   Tools = ordered() {
      Ellipse6 = EllipseMask {
         Inputs = {
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Width = Input { Value = 0.419, },
            Height = Input { Value = 0.419, },
            Angle = Input { Value = -22.825403886401, },
         },
         ViewInfo = OperatorInfo { Pos = { 605, 313.5 } },
      },
      Background10 = Background {
         Inputs = {
            GlobalOut = Input { Value = 150, },
            Width = Input { Value = 657, },
            Height = Input { Value = 351, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 0.731, },
            TopLeftBlue = Input { Value = 0.106, },
            EffectMask = Input {
               SourceOp = "Polygon13",
               Source = "Mask",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 1138.7, 346.5 } },
      },
      Polygon13 = PolylineMask {
         DrawMode = "ModifyOnly",
         DrawMode2 = "InsertAndModify",
         Inputs = {
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Polyline = Input {
               SourceOp = "Polygon13Polyline",
               Source = "Value",
            },
            Polyline2 = Input {
               Value = Polyline {
               },
               Disabled = true,
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1155, 280.5 } },
      },
      Polygon13Polyline = BezierSpline {
         SplineColor = { Red = 173, Green = 255, Blue = 47 },
         NameSet = true,
         KeyFrames = {
            [86] = { 0, Flags = { Linear = true, LockedY = true }, Value = Polyline {
                  Closed = true,
                  Points = {
                     { Linear = true, X = 0.140315532684326, Y = 0.364302664995193, LX = 0.00993384917577108, LY = -0.0909608900547028, RX = 0.0383807917435964, RY = -0.00165347258249917 },
                     { Linear = true, X = 0.255457907915115, Y = 0.359342247247696, LX = -0.0383807917435964, LY = 0.00165347258249917, RX = -0.00722460945447286, RY = -0.0868066549301148 },
                     { Linear = true, X = 0.233784079551697, Y = 0.0989222824573517, LX = 0.00722460945447286, LY = 0.0868066549301148, RX = 0.0415809055169423, RY = 0 },
                     { Linear = true, X = 0.358526796102524, Y = 0.0989222824573517, LX = -0.0415809055169423, LY = 0, RX = 0.00718533992767334, RY = -0.0934205055236817 },
                     { X = 0.380082696676254, Y = -0.181339174509048, LX = 0.00812768936157227, LY = 0.133930251002312, RX = -0.00280946493148804, RY = -0.0462951809167862 },
                     { X = 0.3448626101017, Y = -0.305348664522171, LX = 0.0162053108215332, LY = 0.0388571321964264, RX = 0.00677309433619181, RY = -0.0272821088631948 },
                     { Linear = true, X = 0.365181893110275, Y = -0.387194991111755, LX = -0.00677309433619181, LY = 0.0272821088631948, RX = -0.236627558867137, RY = 0 },
                     { Linear = true, X = -0.344700783491135, Y = -0.387194991111755, LX = 0.236627558867137, LY = 0, RX = 0, RY = 0.218258152405421 },
                     { Linear = true, X = -0.344700783491135, Y = 0.267579466104507, LX = 0, LY = -0.218258152405421, RX = 0.0528531571229299, RY = 0 },
                     { Linear = true, X = -0.186141312122345, Y = 0.267579466104507, LX = -0.0528531571229299, LY = 0, RX = 0.0139957666397095, RY = -0.0132290720939637 },
                     { X = -0.144154012203217, Y = 0.227892190217972, LX = -0.0189646333456039, LY = 0.0496037602424622, RX = 0.0269903540611267, RY = -0.0705958604812622 },
                     { X = -0.0831962525844574, Y = -0.00524568557739258, LX = -0.0169837176799774, LY = 0.0812709927558899, RX = 0.000451539953549703, RY = -0.0644849389791489 },
                     { Linear = true, X = -0.0818416327238083, Y = -0.198700502514839, LX = -0.000451539953549703, LY = 0.0644849389791489, RX = 0.0546436856190364, RY = 0 },
                     { Linear = true, X = 0.0820894241333008, Y = -0.198700502514839, LX = -0.0546436856190364, LY = 0, RX = 0, RY = 0.113274251421293 },
                     { Linear = true, X = 0.0820894241333008, Y = 0.141122251749039, LX = 0, LY = -0.113274251421293, RX = 0.012184073527654, RY = 0 },
                     { Linear = true, X = 0.118641644716263, Y = 0.141122251749039, LX = -0.012184073527654, LY = 0, RX = 0, RY = -0.0165674189726512 },
                     { Linear = true, X = 0.118641644716263, Y = 0.0914199948310852, LX = 0, LY = 0.0165674189726512, RX = 0.0171584784984589, RY = 0 },
                     { Linear = true, X = 0.170117080211639, Y = 0.0914199948310852, LX = -0.0171584784984589, LY = 0, RX = -0.00993384917577108, RY = 0.0909608900547028 }
                  }
               } }
         }
      },
      Transform8 = Transform {
         Inputs = {
            Size = Input { Value = 0.803, },
            Input = Input {
               SourceOp = "Background10_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 715, 412.5 } },
      },
      Background10_1 = Background {
         Inputs = {
            GlobalOut = Input { Value = 150, },
            Width = Input { Value = 100, },
            Height = Input { Value = 100, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Type = Input { Value = FuID { "Gradient" }, },
            TopLeftRed = Input { Value = 0.683792069880592, },
            TopLeftGreen = Input { Value = 0.731, },
            TopLeftBlue = Input { Value = 0.67252, },
            GradientType = Input { Value = FuID { "Radial" }, },
            Start = Input { Value = { 0.500440358886523, 0.482718696092153 }, },
            End = Input { Value = { 0.814488282878338, 0.462258489445034 }, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0.184563758389262] = { 1, 1, 1, 1 },
                     [0.852348993288591] = { 0.444444444444444, 0.444444444444444, 0.444444444444444, 1 },
                     [1] = { 0, 0, 0, 1 }
                  }
               },
            },
            EffectMask = Input {
               SourceOp = "Ellipse6",
               Source = "Mask",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 605, 412.5 } },
      },
      Merge70 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background10",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Merge73",
               Source = "Output",
            },
            Center = Input { Value = { 0.189113355780022, 0.0588235294117647 }, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1155, 445.5 } },
      },
      Merge73 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Merge72",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Transform8",
               Source = "Output",
            },
            Center = Input { Value = { 4.81003714710253, 0.5 }, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1045, 478.5 } },
      },
      Merge72 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Merge71",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Transform8",
               Source = "Output",
            },
            Center = Input { Value = { 3.37485635146844, 0.5 }, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 935, 478.5 } },
      },
      Merge71 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Transform8",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Transform8",
               Source = "Output",
            },
            Center = Input { Value = { 1.87945349653228, 0.5 }, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 825, 478.5 } },
      },
      Merge75 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background9_2",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Merge70",
               Source = "Output",
            },
            Center = Input { Value = { 0.5, 0.770650456802115 }, },
            Size = Input { Value = 0.581, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1320, 511.5 } },
      },
      Background9_2 = Background {
         Inputs = {
            GlobalOut = Input { Value = 150, },
            Width = Input { Value = 2081, },
            Height = Input { Value = 422, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftAlpha = Input { Value = 0, },
            GradientType = Input { Value = FuID { "Reflect" }, },
            Start = Input { Value = { 0.363636363636364, 0.689054726368159 }, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 0 },
                     [0.590604026845638] = { 0.5704, 0.604760442306384, 0.62, 1 },
                     [0.996644295302013] = { 0.753, 0.73794, 0.749235, 1 }
                  }
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1210, 511.5 } },
      },
      Transform9 = Transform {
         CtrlWZoom = false,
         Inputs = {
            Center = Input {
               SourceOp = "XYPath1",
               Source = "Value",
            },
            Size = Input { Value = 0.394724749563459, },
            Input = Input {
               SourceOp = "Merge75",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1320, 544.5 } },
      },
      XYPath1 = XYPath {
         ShowKeyPoints = false,
         DrawMode = "ModifyOnly",
         Inputs = {
            X = Input {
               SourceOp = "XYPath1X",
               Source = "Value",
            },
            Y = Input {
               SourceOp = "XYPath1Y",
               Source = "Value",
            },
         },
      },
      XYPath1X = BezierSpline {
         SplineColor = { Red = 255, Green = 0, Blue = 0 },
         NameSet = true,
         KeyFrames = {
            [0] = { -0.032110747082621, RH = { 41.6666666666667, 0.322449796753991 }, Flags = { Linear = true } },
            [125] = { 1.03157088442721, LH = { 83.3344708982133, 0.660738255716818 } }
         }
      },
      XYPath1Y = BezierSpline {
         SplineColor = { Red = 0, Green = 255, Blue = 0 },
         NameSet = true,
         KeyFrames = {
            [0] = { -0.028657616892911, RH = { 4.0007038423304, 0.025666317450726 }, Flags = { Linear = true } },
            [12] = { 0.249264881149109, LH = { 8.00010442128288, 0.15222013250718 }, RH = { 18.6655336743417, 0.372461070798404 } },
            [32] = { 0.274724345971811, LH = { 25.3333436750238, 0.26023608928037 }, RH = { 33.5899307340263, 0.265636903934981 } },
            [36.7695143677978] = { 0.332978794800824, LH = { 35.1798509793655, 0.302439769242236 }, RH = { 41.8464233872599, 0.434681157164045 } },
            [52] = { 0.64990854874222, LH = { 46.9231167233257, 0.546929145797813 }, RH = { 56.3331083736503, 0.704509654133304 } },
            [65] = { 0.746267910383714, LH = { 60.6667082809911, 0.78358193559229 }, RH = { 73.0003123931662, 0.607488353213858 } },
            [89] = { 0.279017031690829, LH = { 80.9995227138635, 0.150093225697664 }, RH = { 91.1245162275229, 0.298855675929609 } },
            [95.373822995296] = { 0.272280566993801, LH = { 93.2493732077175, 0.298278122089536 }, RH = { 105.24923679068, 0.197579712112591 } },
            [125] = { 0.039822579330232, LH = { 115.124380668336, 0.00082688924184629 } }
         }
      }
   }
}
--
OS: Windows 10
CPU: i7-4771
RAM: 32 GB
GPU: Nvidia GTX 960
Offline

Sander de Regt

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

Re: motion path struggles

PostWed Nov 22, 2017 9:04 pm

Hi everyone,
not to be a technical bore, but Marcus' example is exactly why this is such a difficult discussion.
When you have a constant speed on the X-axis, and then add an up/down motion to it, the speed on the path as a whole changes enormously.
I am in no way a mathematical expert, but when you compare a couple of points on a rotating disc - in our human perception they all move at the same speed, but a point on the outer rim of the disc moves much faster than a point somewhere on the middle of the disc. Their *rotational* speed is the same - they make the same number of revolutions, but their actual velocity is different.
So if you want something to follow a path with a constant velocity, which definition do you use?
Food for thought. :cry: :idea:
Sander de Regt

ShadowMaker SdR
The Netherlands
Offline

Marcus Goller

  • Posts: 58
  • Joined: Sat Nov 29, 2014 9:41 pm

Re: motion path struggles

PostWed Nov 22, 2017 11:30 pm

Good points, Sander. :-)

My understanding in this case, was that the perception of the moving object should be that of constant speed.
Either way, I think there are mainly those two options to choose from. So whatever looks right (considering the goal I am trying to achieve), is right. But maybe I am oversimplifying. ;-)
--
OS: Windows 10
CPU: i7-4771
RAM: 32 GB
GPU: Nvidia GTX 960

Return to Fusion

Who is online

Users browsing this forum: No registered users and 16 guests