Jump to: Board index » General » Fusion

Deintance timeline position?

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

Wu Zhengjiang

  • Posts: 20
  • Joined: Sun Dec 18, 2016 1:58 am

Deintance timeline position?

PostTue Nov 21, 2017 5:25 am

If I make several instance copies of a node or a group, which contain animations, but I want to use them at different frame. How do I do that? I can't move them in timeline, because they all move together.
Offline

Umberto Uderzo

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

Re: Deintance timeline position?

PostTue Nov 21, 2017 9:18 am

I'm not a Fusion internals expert, so this is only my personal guessing.

I think it's not possible to get the result you are after the way you are doing, because each instance is connected to the same path instance, which has a single time displacement control.
Even if you deinstance each instance center, the path is still shared so there is no real gain. In fact what you are seeing in the time line is the path displacement, which is the same for each instance hence cannot be shifted in time. It should be possible if each instance could have a different displacement on the same shared path, but i didn't manage to get this result.

The only way i found is by using the Duplicate node, which has a time offset control.
In this way you can get the same element to repeat at different time points without event instancing it.

Don't know if it's a Fusion limitation or if this can be addressed by some scripting, but the diplacement way looks fine to some extent.

Code: Select all
{
   Tools = ordered() {
      Duplicate1 = Fuse.Duplicate {
         CtrlWZoom = false,
         Inputs = {
            Copies = Input { Value = 4, },
            TimeOffset = Input { Value = 17.78, },
            RandomSeed = Input { Value = 26024, },
            Background = Input {
               SourceOp = "Ellipse1",
               Source = "Mask",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 550, 49.5 } },
      },
      Ellipse1 = EllipseMask {
         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.0954117096053813, },
            Height = Input { Value = 0.0954117096053813, },
         },
         ViewInfo = OperatorInfo { Pos = { 385, 49.5 } },
      },
      Path1 = PolyPath {
         DrawMode = "InsertAndModify",
         CtrlWZoom = false,
         Inputs = {
            Displacement = Input {
               SourceOp = "Path1Displacement",
               Source = "Value",
            },
            PolyLine = Input {
               Value = Polyline {
                  Points = {
                     { Linear = true, LockY = true, X = -0.349325337331334, Y = 0, RX = 0.227386306846577, RY = 0 },
                     { Linear = true, LockY = true, X = 0.332833583208396, Y = 0, LX = -0.227386306846577, LY = 0 }
                  }
               },
            },
         },
      },
      Path1Displacement = BezierSpline {
         SplineColor = { Red = 255, Green = 0, Blue = 255 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 20.3333333333333, 0 }, Flags = { Linear = true, LockedY = true } },
            [61] = { 0, LH = { 40.6666666666667, 0 }, RH = { 104, 0.333333333333333 }, Flags = { Linear = true } },
            [190] = { 1, LH = { 147, 0.666666666666667 }, RH = { 210, 1 }, Flags = { Linear = true } },
            [250] = { 1, LH = { 230, 1 }, Flags = { Linear = true, LockedY = true } }
         }
      }
   }
}
Offline

Wu Zhengjiang

  • Posts: 20
  • Joined: Sun Dec 18, 2016 1:58 am

Re: Deintance timeline position?

PostTue Nov 21, 2017 9:38 am

Well, that's a bummer. I was trying to do a map location animation. So duplicator wouldn't work. Because every animated location sign has to be at specific position. Of course I can just copy and paste, but if I later want to change the animation (the color, the speed, etc. ), that would take a while. Since I got 20 locations.
Hmm, I guess this kind of animation is After Effects' strong suit.
Offline

Rick van den Berg

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

Re: Deintance timeline position?

PostTue Nov 21, 2017 9:56 am

if you use time speed, you can delay the animation, i use it all the time. maybe that helps
Offline

Sander de Regt

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

Re: Deintance timeline position?

PostTue Nov 21, 2017 10:00 am

First of all: try to let go of your After Effect ways :-)
1st rule of Fusion: don't use the timeline for anything except referencing what you're doing, the theoretical gain is just not worth it.

Since I have no idea what is you're trying to do, it's a bit difficult to help you. So bear with me:
You're saying you want a map location animation, that you want to instance, but my guess is that you need different locations (you can't instance London/Paris/Amsterdam), you also need different positions and different timing, because you don't want everything to pop up at once.

What remains then, that you want to instance?

Almost everything in Fusion can be retimed, reused, conncected and transformed with modifiers, expressions etc.

If you can provide a more detailed description of what you want to do, we can help you better.
Sander de Regt

ShadowMaker SdR
The Netherlands
Offline

Umberto Uderzo

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

Re: Deintance timeline position?

PostTue Nov 21, 2017 10:22 am

Uhm... something like this?

Code: Select all
{
   Tools = ordered() {
      Merge2 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "TimeStretcher1_2",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Merge1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 825, 181.5 } },
      },
      TimeStretcher1_2 = TimeStretcher {
         Inputs = {
            SourceTime = Input {
               SourceOp = "TimeStretcher1_2SourceTime",
               Source = "Value",
            },
            Input = Input {
               SourceOp = "Transform1_2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 605, 181.5 } },
      },
      TimeStretcher1_2SourceTime = BezierSpline {
         SplineColor = { Red = 233, Green = 217, Blue = 243 },
         NameSet = true,
         KeyFrames = {
            [105] = { 0, RH = { 136.666666666667, 66.6666666666667 }, Flags = { Linear = true } },
            [200] = { 200, LH = { 168.333333333333, 133.333333333333 }, Flags = { Linear = true } }
         }
      },
      Merge1 = Merge {
         EnabledRegion = TimeRegion { { Start = -21, End = 200.9999, FrameLength = 1 } },
         Inputs = {
            Background = Input {
               SourceOp = "TimeStretcher1_1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "TimeStretcher1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 715, 115.5 } },
      },
      TimeStretcher1_1 = TimeStretcher {
         CtrlWZoom = false,
         EnabledRegion = TimeRegion { { Start = 0, End = 201.9999, FrameLength = 1 } },
         Inputs = {
            SourceTime = Input {
               SourceOp = "TimeStretcher1_1SourceTime",
               Source = "Value",
            },
            Input = Input {
               SourceOp = "Transform1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 605, 115.5 } },
      },
      TimeStretcher1_1SourceTime = BezierSpline {
         SplineColor = { Red = 233, Green = 217, Blue = 243 },
         NameSet = true,
         KeyFrames = {
            [45] = { 0, RH = { 83.3333333333333, 66.6666666666667 }, Flags = { Linear = true } },
            [160] = { 200, LH = { 121.666666666667, 133.333333333333 }, Flags = { Linear = true } }
         }
      },
      Transform1_2 = Transform {
         Inputs = {
            Center = Input { Value = { 0.528485757121439, 0.150666666666667 }, },
            Input = Input {
               SourceOp = "Background1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 495, 181.5 } },
      },
      Transform1_1 = Transform {
         Inputs = {
            Center = Input { Value = { 0.77736131934033, 0.548 }, },
            Input = Input {
               SourceOp = "Background1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 495, 115.5 } },
      },
      Background1 = Background {
         Inputs = {
            GlobalOut = Input { Value = 200, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 1, },
            TopLeftGreen = Input { Value = 1, },
            TopLeftBlue = Input { Value = 1, },
            EffectMask = Input {
               SourceOp = "Ellipse1",
               Source = "Mask",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 275, 115.5 } },
      },
      TimeStretcher1 = TimeStretcher {
         Inputs = {
            SourceTime = Input {
               SourceOp = "TimeStretcher1SourceTime",
               Source = "Value",
            },
            Input = Input {
               SourceOp = "Transform1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 605, 49.5 } },
      },
      TimeStretcher1SourceTime = BezierSpline {
         SplineColor = { Red = 233, Green = 217, Blue = 243 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 66.6666666666667, 66.6666666666667 }, Flags = { Linear = true } },
            [200] = { 200, LH = { 133.333333333333, 133.333333333333 }, Flags = { Linear = true } }
         }
      },
      Transform1 = Transform {
         Inputs = {
            Center = Input { Value = { 0.30359820089955, 0.558666666666667 }, },
            Input = Input {
               SourceOp = "Background1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 495, 49.5 } },
      },
      Ellipse1 = EllipseMask {
         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.0954117096053813, },
            Height = Input { Value = 0.0954117096053813, },
         },
         ViewInfo = OperatorInfo { Pos = { 165, 115.5 } },
      },
      Path1 = PolyPath {
         DrawMode = "InsertAndModify",
         CtrlWZoom = false,
         Inputs = {
            ZRotation = Input { Value = -91.9499741339443, },
            Displacement = Input {
               SourceOp = "Path1Displacement",
               Source = "Value",
            },
            PolyLine = Input {
               Value = Polyline {
                  Points = {
                     { X = 0.00149925037481258, Y = 0.136, RX = 0.0652106429072545, RY = -0.0373391235938121 },
                     { X = 0.13227973055502, Y = -0.0348504403696321, LX = -0.000359194365698506, LY = 0.096172193182008, RX = 0.00039497186408527, RY = -0.105751409380819 },
                     { X = 0.0029538883891754, Y = -0.25347083107817, LX = 0.0589268805873273, LY = -0.0144715842067049, RX = -0.0550152620558396, RY = 0.01351094762797 },
                     { X = -0.0681784415786693, Y = 0.0143791690894285, LX = -0.0174605412936441, LY = -0.0937272897735907, RX = 0.0123554693772129, RY = 0.0663235256645971 },
                     { X = 0.0492055172628763, Y = -0.00519446042957199, LX = -0.025866418457997, LY = 0.052599304743922, RX = 0.0179155762407926, RY = -0.0364312846744762 },
                     { X = -0.00574342702807945, Y = -0.112582294955949, LX = 0.025369067872468, LY = 0.0175383724557137, RX = -0.0116872681925851, RY = -0.00807974749335687 },
                     { X = -0.0100155624703443, Y = -0.0461357105697844, LX = -0.00370756637516016, LY = -0.0372631659397608 }
                  }
               },
            },
         },
      },
      Path1Displacement = BezierSpline {
         SplineColor = { Red = 255, Green = 0, Blue = 255 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 66.6666666666667, 0 } },
            [200] = { 1, LH = { 133.333333333333, 1 } }
         }
      }
   }
}


P.S. If you need to animate each "instance" transform path over the original animation path, simply swap the time stretcher with the transform node and animate the transform too. This way the original animation is feeded to each transform node at different times then you can animate over.
Offline

Wu Zhengjiang

  • Posts: 20
  • Joined: Sun Dec 18, 2016 1:58 am

Re: Deintance timeline position?

PostTue Nov 21, 2017 11:30 am

Rick van den Berg wrote:if you use time speed, you can delay the animation, i use it all the time. maybe that helps

Oh, yeah! That's the one. All I need is put TimeSpeed after every instance, and delay by certain frame.
Thanks man.
Sander de Regt wrote:First of all: try to let go of your After Effect ways :-)
If you can provide a more detailed description of what you want to do, we can help you better.

Nothing fancy:
Code: Select all
{
   Tools = ordered() {
      Merge2 = Merge {
         CtrlWZoom = false,
         Inputs = {
            Background = Input {
               SourceOp = "Merge1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "TimeSpeed1",
               Source = "Output",
            },
            Center = Input { Value = { 0.562481835619623, 0.574747474747475 }, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 495, 82.5 } },
      },
      TimeSpeed1 = TimeSpeed {
         Inputs = {
            Delay = Input { Value = 28, },
            Input = Input {
               SourceOp = "Instance_Transform1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 495, 49.5 } },
      },
      TimeSpeed2 = TimeSpeed {
         Inputs = {
            Delay = Input { Value = 11, },
            Input = Input {
               SourceOp = "Transform1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 385, 49.5 } },
      },
      Merge1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Merge3",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "TimeSpeed2",
               Source = "Output",
            },
            Center = Input { Value = { 0.333759590792839, 0.322727272727273 }, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 385, 82.5 } },
      },
      Instance_Group1 = GroupOperator {
         SourceOp = "Group1",
         Outputs = {
            Output1 = InstanceOutput {
               SourceOp = "Instance_Transform1",
               Source = "Output",
            }
         },
         ViewInfo = GroupInfo {
            Pos = { 495, 16.5 },
            Flags = {
               AllowPan = false,
               GridSnap = true,
               AutoSnap = true,
               RemoveRouters = true
            },
            Size = { 126, 130.3, 63, 22 },
            Direction = "Horizontal",
            PipeStyle = "Direct",
            Scale = 1,
            Offset = { -385, 93.2 }
         },
         Tools = ordered() {
            Instance_Background4 = Background {
               CtrlWShown = false,
               SourceOp = "Background4",
               Inputs = {
                  ["Gamut.ColorSpaceNest"] = Input { },
                  ["Gamut.GammaSpaceNest"] = Input { },
                  StartEndRenderScripts = Input { },
                  EffectMask = Input { }
               },
               ViewInfo = OperatorInfo { Pos = { 385, -82.5 } },
            },
            Instance_Paint2 = Paint {
               CtrlWShown = false,
               SourceOp = "Paint2",
               Inputs = {
                  Input = Input {
                     SourceOp = "Instance_Background4",
                     Source = "Output",
                  },
                  StartEndRenderScripts = Input { },
                  EffectMask = Input { }
               },
               ViewInfo = OperatorInfo { Pos = { 385, -49.5 } },
            },
            Instance_Transform1 = Transform {
               CtrlWShown = false,
               SourceOp = "Transform1",
               Inputs = {
                  ReferenceSize = Input { },
                  Input = Input {
                     SourceOp = "Instance_Paint2",
                     Source = "Output",
                  },
                  StartEndRenderScripts = Input { },
                  EffectMask = Input { }
               },
               ViewInfo = OperatorInfo { Pos = { 385, -16.5 } },
            }
         },
      },
      Circle3 = Circle {
         IsThreaded = false,
         Brushes = {
         },
         ApplyModes = { "PaintApplyColor" },
         Inputs = {
            Paint = Input {
               SourceOp = "Circle2",
               Source = "Out",
            },
         },
      },
      Circle2 = Circle {
         IsThreaded = false,
         Brushes = {
         },
         ApplyModes = { "PaintApplyColor" },
         CtrlWZoom = false,
         Inputs = {
            Paint = Input {
               SourceOp = "Circle1",
               Source = "Out",
            },
            Radius = Input { Value = 0.0235066424047965, },
            ["PaintApplyColor.Red"] = Input { Value = 0.996078431372549, },
            ["PaintApplyColor.Green"] = Input { Value = 0.92156862745098, },
            ["PaintApplyColor.Blue"] = Input { Value = 0.83921568627451, },
         },
      },
      Circle1 = Circle {
         IsThreaded = false,
         Brushes = {
         },
         ApplyModes = { "PaintApplyColor" },
         CtrlWZoom = false,
         Inputs = {
            Radius = Input { Value = 0.0321, },
            ["PaintApplyColor.Red"] = Input { Value = 0.984313725490196, },
            ["PaintApplyColor.Green"] = Input { Value = 0.117647058823529, },
            ["PaintApplyColor.Blue"] = Input { Value = 0.117647058823529, },
         },
      },
      Transform1Size = BezierSpline {
         SplineColor = { Red = 225, Green = 0, Blue = 225 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 1, 0.179333333333333 }, Flags = { Linear = true } },
            [3] = { 0.538, LH = { 2, 0.358666666666667 }, RH = { 4, 0.504 }, Flags = { Linear = true } },
            [6] = { 0.436, LH = { 5, 0.47 }, Flags = { Linear = true } }
         }
      },
      Group1 = GroupOperator {
         Outputs = {
            Output1 = InstanceOutput {
               SourceOp = "Transform1",
               Source = "Output",
            }
         },
         ViewInfo = GroupInfo {
            Pos = { 385, 16.5 },
            Flags = {
               AllowPan = false,
               GridSnap = true,
               AutoSnap = true,
               RemoveRouters = true
            },
            Size = { 126, 130.3, 63, 22 },
            Direction = "Horizontal",
            PipeStyle = "Direct",
            Scale = 1,
            Offset = { -385, 93.2 }
         },
         Tools = ordered() {
            Background4 = Background {
               Inputs = {
                  GlobalOut = Input { Value = 100, },
                  Width = Input { Value = 1920, },
                  Height = Input { Value = 1080, },
                  ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
                  TopLeftAlpha = Input { Value = 0, },
                  Gradient = Input {
                     Value = Gradient {
                        Colors = {
                           [0] = { 0, 0, 0, 1 },
                           [1] = { 1, 1, 1, 1 }
                        }
                     },
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 385, -82.5 } },
            },
            Paint2 = Paint {
               Inputs = {
                  Input = Input {
                     SourceOp = "Background4",
                     Source = "Output",
                  },
                  Paint = Input {
                     SourceOp = "Circle3",
                     Source = "Out",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 385, -49.5 } },
            },
            Transform1 = Transform {
               Inputs = {
                  Size = Input {
                     SourceOp = "Transform1Size",
                     Source = "Value",
                  },
                  Input = Input {
                     SourceOp = "Paint2",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 385, -16.5 } },
            }
         },
      },
      Merge3 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background2",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Paint1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 275, 82.5 } },
      },
      Background3 = Background {
         Inputs = {
            GlobalOut = Input { Value = 100, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftAlpha = Input { Value = 0, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 275, 16.5 } },
      },
      Paint1 = Paint {
         Inputs = {
            Input = Input {
               SourceOp = "Background3",
               Source = "Output",
            },
            Paint = Input {
               SourceOp = "PolylineStroke1",
               Source = "Out",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 275, 49.5 } },
      },
      PolylineStroke1 = PolylineStroke {
         Points = {
         },
         IsThreaded = false,
         Brushes = { "SoftBrush" },
         ApplyModes = { "PaintApplyColor" },
         CtrlWZoom = false,
         Inputs = {
            BrushControls = Input { Value = 1, },
            ["SoftBrush.Size"] = Input { Value = 0.0098, },
            ["PaintApplyColor.Green"] = Input { Value = 0.186, },
            ["PaintApplyColor.Blue"] = Input { Value = 0.129, },
            StrokeControls = Input { Value = 1, },
            WriteOnEnd = Input {
               SourceOp = "PolylineStroke1WriteOnEnd",
               Source = "Value",
            },
            Polyline = Input {
               Value = Polyline {
                  Points = {
                     { Linear = true, X = -0.355498734032711, Y = -0.177272732691331, RX = 0.0673486825843013, RY = 0.00303030508980984 },
                     { X = -0.153452679514885, Y = -0.168181821703911, LX = -0.0751662571984704, LY = -0.0419108906570628, RX = 0.0796371341931349, RY = 0.0444037437516359 },
                     { X = 0.0562659837305546, Y = 0.0750000029802322, LX = -0.0741687988781412, LY = -0.0204545424743125, RX = 0.103927558535156, RY = 0.0286615219939274 },
                     { X = 0.352941170982693, Y = 0.265909097682346, LX = -0.0767524402759236, LY = 0.0213130049843973 }
                  }
               },
            },
         },
      },
      PolylineStroke1WriteOnEnd = BezierSpline {
         SplineColor = { Red = 249, Green = 211, Blue = 145 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 0.666666666666667, 0.0136054333333333 }, Flags = { Linear = true } },
            [2] = { 0.0408163, LH = { 1.33333333333333, 0.0272108666666667 }, RH = { 16.3333333333333, 0.3333333 }, Flags = { Linear = true } },
            [45] = { 0.9183673, LH = { 30.6666666666667, 0.6258503 }, RH = { 46.3333333333333, 0.9455782 }, Flags = { Linear = true } },
            [49] = { 1, LH = { 47.6666666666667, 0.9727891 }, Flags = { Linear = true } }
         }
      },
      Background2 = Background {
         Inputs = {
            GlobalOut = Input { Value = 100, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 1, },
            TopLeftGreen = Input { Value = 0.925, },
            TopLeftBlue = Input { Value = 0.85, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
            EffectMask = Input {
               SourceOp = "Polygon1",
               Source = "Mask",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 165, 82.5 } },
      },
      Polygon1 = PolylineMask {
         DrawMode = "InsertAndModify",
         DrawMode2 = "InsertAndModify",
         Inputs = {
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Polyline = Input {
               SourceOp = "Polygon1Polyline",
               Source = "Value",
            },
            Polyline2 = Input {
               Value = Polyline {
               },
               Disabled = true,
            },
         },
         ViewInfo = OperatorInfo { Pos = { 165, 49.5 } },
      },
      Polygon1Polyline = BezierSpline {
         SplineColor = { Red = 173, Green = 255, Blue = 47 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, Flags = { Linear = true, LockedY = true }, Value = Polyline {
                  Closed = true,
                  Points = {
                     { Linear = true, X = -0.407928384325998, Y = 0.304545445875688, LX = 0.035805622380916, LY = 0.0537878825809016, RX = 0.00341005357838228, RY = -0.12272726947611 },
                     { X = -0.397698223590851, Y = -0.0636363625526428, LX = -0.0189625631789759, LY = 0.118163791777163, RX = 0.0212183049579115, RY = -0.132220277672736 },
                     { X = -0.25319692492485, Y = -0.386363625526428, LX = -0.013735600911164, LY = 0.00705117922939772, RX = 0.0867275908708659, RY = -0.0445216624536097 },
                     { X = 0.0933503806591034, Y = -0.400000005960464, LX = -0.0319693124355258, LY = 0.00454544858498986, RX = 0.0988632316298065, RY = -0.0140565342850439 },
                     { X = 0.326086968183517, Y = -0.0704545453190804, LX = -0.00511507785228815, LY = -0.0249999998645349, RX = 0.0290529730863616, RY = 0.141996728925341 },
                     { X = 0.356777489185333, Y = 0.379545450210571, LX = -0.000818773957727087, LY = -0.154001633302155, RX = -0.070332478061763, RY = 0.0272727272727272 },
                     { Linear = true, X = 0.145780055000044, Y = 0.461363632028753, LX = 0.070332478061763, LY = -0.0272727272727272, RX = -0.148763857394431, RY = 0.00151515386321333 },
                     { Linear = true, X = -0.30051151718325, Y = 0.465909093618393, LX = 0.148763857394431, LY = -0.00151515386321333, RX = -0.035805622380916, RY = -0.0537878825809016 }
                  }
               } }
         }
      }
   }
}
Offline

Wu Zhengjiang

  • Posts: 20
  • Joined: Sun Dec 18, 2016 1:58 am

Re: Deintance timeline position?

PostTue Nov 21, 2017 11:37 am

Umberto Uderzo wrote:Uhm... something like this?

P.S. If you need to animate each "instance" transform path over the original animation path, simply swap the time stretcher with the transform node and animate the transform too. This way the original animation is feeded to each transform node at different times then you can animate over.

Thanks for the reply.
This copy and paste code feature really is amazing. You could never do that with After Effects. See my code, I actually needed something much simpler.

Return to Fusion

Who is online

Users browsing this forum: No registered users and 31 guests