Page 1 of 1

Deintance timeline position?

PostPosted: Tue Nov 21, 2017 5:25 am
by Wu Zhengjiang
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.

Re: Deintance timeline position?

PostPosted: Tue Nov 21, 2017 9:18 am
by Umberto Uderzo
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 } }
         }
      }
   }
}

Re: Deintance timeline position?

PostPosted: Tue Nov 21, 2017 9:38 am
by Wu Zhengjiang
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.

Re: Deintance timeline position?

PostPosted: Tue Nov 21, 2017 9:56 am
by Rick van den Berg
if you use time speed, you can delay the animation, i use it all the time. maybe that helps

Re: Deintance timeline position?

PostPosted: Tue Nov 21, 2017 10:00 am
by Sander de Regt
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.

Re: Deintance timeline position?

PostPosted: Tue Nov 21, 2017 10:22 am
by Umberto Uderzo
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.

Re: Deintance timeline position?

PostPosted: Tue Nov 21, 2017 11:30 am
by Wu Zhengjiang
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 }
                  }
               } }
         }
      }
   }
}

Re: Deintance timeline position?

PostPosted: Tue Nov 21, 2017 11:37 am
by Wu Zhengjiang
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.