Jump to: Board index » General » Fusion

Series of objects following a path.

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

Marc Poirier

  • Posts: 62
  • Joined: Wed Jul 22, 2015 6:48 pm
  • Location: Toronto, Ontario

Series of objects following a path.

PostTue Apr 13, 2021 5:09 pm

Hello, I'm trying to achieve loop that consists of a series of arrows that are following a path.

I'm able to get this achieve with 1 arrow, by creating a path then setting the angle to the path's heading...

But! the graphic doesn't follow the path in its whole (Like a text would do on a path)...

And how do I create a series of object that will loop and follow the path (like the image below)

thx!

Marc.
Attachments
Screenshot 2021-04-13 130842.jpg
Screenshot 2021-04-13 130842.jpg (13.56 KiB) Viewed 502 times
Marc Poirier, Content Producer | Mach1 Studio
System info | AMD Ryzen 9 5950X 16 core | 64 Gigs Ram | RTX 3090 24gigs VRam | M.2 1TB System Drive | M.2 2TB video/cache drive | 8 TB USB C External Video Drive
Offline

birdseye

  • Posts: 361
  • Joined: Fri Jun 12, 2020 2:36 pm
  • Real Name: Iain Fisher

Re: Series of objects following a path.

PostThu Apr 15, 2021 1:13 am

This tutorial by Tony Gallardo may help you.

Offline

Sander de Regt

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

Re: Series of objects following a path.

PostThu Apr 15, 2021 7:12 am

Hi Marc,

You were already halfway there with your 'like a text would do on a path' remark, because that is one way of doing something like this in a relatively easy way. Copy/paste the following in your node area and see if you can figure out what I've done. If you use a font that's actually square it's even easier, but for now I stuck with the W because that's nice and wide.

Code: Select all
{
   Tools = ordered() {
      Triangle1 = TriangleMask {
         Inputs = {
            Filter = Input { Value = FuID { "Fast Gaussian" }, },
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Point1 = Input { Value = { 0.5, 0.1 }, },
            Point2 = Input { Value = { 0.99, 0.5 }, },
         },
         ViewInfo = OperatorInfo { Pos = { 179.333, -22 } },
      },
      Rectangle1 = RectangleMask {
         Inputs = {
            Filter = Input { Value = FuID { "Fast Gaussian" }, },
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Center = Input { Value = { 0.276978417266187, 0.5 }, },
            Width = Input { Value = 0.485611510791367, },
            Height = Input { Value = 0.370503597122302, },
            EffectMask = Input {
               SourceOp = "Triangle1",
               Source = "Mask",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 182.667, 21.9091 } },
      },
      Background1 = Background {
         Inputs = {
            GlobalOut = Input { Value = 125, },
            Width = Input { Value = 720, },
            Height = Input { Value = 720, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 1, },
            EffectMask = Input {
               SourceOp = "Rectangle1",
               Source = "Mask",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 179.333, 66.7576 } },
      },
      Text1 = TextPlus {
         CtrlWZoom = false,
         Inputs = {
            GlobalOut = Input { Value = 125, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            LayoutType = Input { Value = 3, },
            PositionOnPath = Input {
               SourceOp = "Text1Positiononpath",
               Source = "Value",
            },
            CharacterSpacing = Input { Value = 1.543, },
            ElementShape1 = Input { Value = 2, },
            ExtendHorizontal1 = Input { Value = 1.33, },
            Type1 = Input { Value = 1, },
            ColorImage1 = Input {
               SourceOp = "Background1",
               Source = "Output",
            },
            StyledText = Input { Value = "WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW", },
            Font = Input { Value = "Open Sans", },
            Style = Input { Value = "Bold", },
            Size = Input { Value = 0.0632, },
            VerticalJustificationNew = Input { Value = 3, },
            HorizontalLeftCenterRight = Input { Value = -1, },
            HorizontalJustificationNew = Input { Value = 3, },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
            Path = Input {
               SourceOp = "Text1Path",
               Source = "Value",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 469.333, 62.5151 } },
      },
      Text1Positiononpath = BezierSpline {
         SplineColor = { Red = 237, Green = 132, Blue = 220 },
         NameSet = true,
         KeyFrames = {
            [0] = { -1.072, RH = { 41.6666666666667, -0.381 } },
            [125] = { 1.001, LH = { 83.3333333333333, 0.31 }, Flags = { Linear = true } }
         }
      },
      Text1Path = BezierSpline {
         SplineColor = { Red = 186, Green = 244, Blue = 89 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, Flags = { LockedY = true }, Value = Polyline {
                  Points = {
                     { X = -0.43261456489563, Y = 0.148562297224998, RX = 0.0870373177958228, RY = 0.120232469456 },
                     { X = -0.154986518693741, Y = 0.397763587224979, LX = -0.103258592842909, LY = -0.016403154462588, RX = 0.169843953839437, RY = 0.0269805788812498 },
                     { X = 0.351752012968063, Y = 0.273162931203842, LX = -0.16067734466313, LY = 0.10150609857855, RX = 0.0665053515415772, RY = -0.0420140050467831 },
                     { X = 0.462264150381088, Y = -0.0479233227670193, LX = 0.0122365802321479, LY = 0.123574621107251, RX = -0.0155631462077265, RY = -0.157168903351273 },
                     { X = 0.284366577863693, Y = -0.407348245382309, LX = 0.0830863757855058, LY = 0.0604118388755608, RX = -0.0929104665996167, RY = -0.0675549039779922 },
                     { X = -0.0157232703858617, Y = -0.452076663700536, LX = 0.100121061114323, LY = -0.0128320672753453, RX = -0.0975982616990668, RY = 0.012508731391182 },
                     { X = -0.301437556743622, Y = -0.332268357276917, LX = 0.090495890261254, LY = -0.0661711265931387, RX = -0.0820070353890192, RY = 0.0599640260412816 },
                     { X = -0.532344996929169, Y = -0.097444087266922, LX = 0.0740712678204917, LY = -0.0891233742162568 }
                  }
               } }
         }
      }
   }
}
Sander de Regt

ShadowMaker SdR
The Netherlands

Return to Fusion

Who is online

Users browsing this forum: No registered users and 61 guests