Jump to: Board index » General » Fusion

Scott Pilgrim effect

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

Dreevok

  • Posts: 3
  • Joined: Thu Nov 29, 2018 5:57 pm
  • Real Name: Alan Smithee

Scott Pilgrim effect

PostThu Nov 29, 2018 6:03 pm

Hello I'm a new user of Fusion and I want to make a Scott Pilgrim like effect like in the trailer at 2:9.
Is there a tool to do that kind of job?
Offline

Frank Feijen

  • Posts: 106
  • Joined: Tue Dec 13, 2016 10:04 am
  • Location: Vilvoorde, Belgium

Re: Scott Pilgrim effect

PostThu Nov 29, 2018 7:53 pm

Can you share a link to that particular trailer?
Offline

Sander de Regt

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

Re: Scott Pilgrim effect

PostThu Nov 29, 2018 9:54 pm

(s)He can't share a link yet, since this is his/her first post. Sharing links etc doesn't work yet when you're new to the forum, if I recall correctly.
Sander de Regt

ShadowMaker SdR
The Netherlands
Offline
User avatar

Bryan Ray

  • Posts: 1094
  • Joined: Mon Nov 28, 2016 5:32 am
  • Location: Los Angeles, CA, USA

Re: Scott Pilgrim effect

PostThu Nov 29, 2018 10:05 pm

Are you talking about the big LED wall? A Blackbird Called Sue has a tutorial that might get you started:
https://ablackbirdcalledsue.com/2017/10 ... billboard/
Bryan Ray
http://www.bryanray.name
http://www.musevfx.com
Offline

Dreevok

  • Posts: 3
  • Joined: Thu Nov 29, 2018 5:57 pm
  • Real Name: Alan Smithee

Re: Scott Pilgrim effect

PostFri Jan 04, 2019 11:01 am

No sorry I miswritten I wanted to ask how to split videos and superimpose another just like a "comic" design
Offline
User avatar

Bryan Ray

  • Posts: 1094
  • Joined: Mon Nov 28, 2016 5:32 am
  • Location: Los Angeles, CA, USA

Re: Scott Pilgrim effect

PostFri Jan 04, 2019 4:09 pm

Oh, that's much easier! It's just a matter of Transforms, Merges, and masks. Copy this code and paste into the Flow View to see the nodes (the Select All button is broken, by the way):

Code: Select all
{
   Tools = ordered() {
      Text1 = TextPlus {
         Inputs = {
            GlobalOut = Input { Value = 30, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Size = Input { Value = 0.2543, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input { Value = "SOURCE 1", },
            Style = Input { Value = "Bold", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 55, 16.5 } },
      },
      Background1 = Background {
         Inputs = {
            GlobalOut = Input { Value = 30, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 0.563, },
         },
         ViewInfo = OperatorInfo { Pos = { 55, 49.5 } },
      },
      Merge1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Text1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 165, 49.5 } },
      },
      Text1_1 = TextPlus {
         Inputs = {
            GlobalOut = Input { Value = 30, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Size = Input { Value = 0.2543, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input { Value = "SOURCE 2", },
            Style = Input { Value = "Bold", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 55, 115.5 } },
      },
      Merge1_1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background1_1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Text1_1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 165, 148.5 } },
      },
      Background1_1 = Background {
         Inputs = {
            GlobalOut = Input { Value = 30, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftBlue = Input { Value = 0.438, },
         },
         ViewInfo = OperatorInfo { Pos = { 55, 148.5 } },
      },
      Crop1 = Crop {
         Inputs = {
            YOffset = Input { Value = 303, },
            XSize = Input { Value = 1920, },
            YSize = Input { Value = 474, },
            KeepCentered = Input { Value = 1, },
            Input = Input {
               SourceOp = "Merge1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 275, 49.5 } },
      },
      Crop1_1 = Crop {
         Inputs = {
            YOffset = Input { Value = 303, },
            XSize = Input { Value = 1920, },
            YSize = Input { Value = 474, },
            KeepCentered = Input { Value = 1, },
            Input = Input {
               SourceOp = "Merge1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 275, 148.5 } },
      },
      Transform1_1 = Transform {
         Inputs = {
            Center = Input { Value = { 0.5, -0.0485232067510549 }, },
            Input = Input {
               SourceOp = "Crop1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 385, 148.5 } },
      },
      Merge3 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background2",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Transform1_1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
            EffectMask = Input {
               SourceOp = "Rectangle1",
               Source = "Mask",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 385, 247.5 } },
      },
      Background2 = Background {
         Inputs = {
            GlobalOut = Input { Value = 30, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
         },
         ViewInfo = OperatorInfo { Pos = { 275, 247.5 } },
      },
      Transform1 = Transform {
         Inputs = {
            Center = Input { Value = { 0.5, 1.04824191279888 }, },
            Input = Input {
               SourceOp = "Crop1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 495, 49.5 } },
      },
      Merge2 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Merge3",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Transform1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
            EffectMask = Input {
               SourceOp = "Rectangle1_1",
               Source = "Mask",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 495, 247.5 } },
      },
      Rectangle1_1 = RectangleMask {
         CtrlWZoom = false,
         Inputs = {
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Center = Input {
               SourceOp = "Path1",
               Source = "Position",
            },
            Width = Input { Value = 1, },
            Height = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 495, 313.5 } },
      },
      Path1 = PolyPath {
         DrawMode = "InsertAndModify",
         Inputs = {
            Displacement = Input {
               SourceOp = "Path1Displacement",
               Source = "Value",
            },
            PolyLine = Input {
               Value = Polyline {
                  Points = {
                     { Linear = true, LockY = true, X = -1.0125, Y = 0, RX = 0.3375, RY = 0 },
                     { Linear = true, LockY = true, X = 0, Y = 0, LX = -0.3375, LY = -0 }
                  }
               },
            },
         },
      },
      Path1Displacement = BezierSpline {
         SplineColor = { Red = 255, Green = 0, Blue = 255 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 8, 0 }, Flags = { Linear = true, LockedY = true } },
            [24] = { 1, LH = { 16, 1 }, Flags = { LockedY = true } }
         }
      },
      Rectangle1 = RectangleMask {
         Inputs = {
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Center = Input {
               SourceOp = "Path2",
               Source = "Position",
            },
            Width = Input { Value = 1, },
            Height = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 385, 313.5 } },
      },
      Path2 = PolyPath {
         DrawMode = "InsertAndModify",
         Inputs = {
            Displacement = Input {
               SourceOp = "Path2Displacement",
               Source = "Value",
            },
            PolyLine = Input {
               Value = Polyline {
                  Points = {
                     { Linear = true, LockY = true, X = 1.00833333333333, Y = 0, RX = -0.336111111111111, RY = 0 },
                     { Linear = true, LockY = true, X = 0, Y = 0, LX = 0.336111111111111, LY = -0 }
                  }
               },
            },
         },
      },
      Path2Displacement = BezierSpline {
         SplineColor = { Red = 255, Green = 0, Blue = 255 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 8, 0 }, Flags = { Linear = true, LockedY = true } },
            [24] = { 1, LH = { 16, 1 }, Flags = { LockedY = true } }
         }
      }
   }
}




The Crops and Transforms were used to choose which parts of the source images would be seen and where they'd be on the screen. The black Background2 provides the 'canvas', and also the panels' border color. The two animated Rectangle tools are simple masks that reveal the images.

For some variations, you could remove the masks and instead animate the Transforms, which would let you slide the images into the frame instead of wiping them on. More complex layouts can easily be made by adding more layers and adjusting the Crops and Transforms on each:

Code: Select all
{
   Tools = ordered() {
      Text1_1_1 = TextPlus {
         Inputs = {
            GlobalOut = Input { Value = 30, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Size = Input { Value = 0.2543, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input { Value = "SRC \n3", },
            Style = Input { Value = "Bold", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
            Alignment = Input { Value = 1, },
            HorizontalJustification = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 55, -82.5 } },
      },
      Background1_1_1 = Background {
         Inputs = {
            GlobalOut = Input { Value = 30, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftGreen = Input { Value = 0.306, },
         },
         ViewInfo = OperatorInfo { Pos = { 55, -49.5 } },
      },
      Merge1_1_1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background1_1_1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Text1_1_1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 165, -49.5 } },
      },
      Text1 = TextPlus {
         Inputs = {
            GlobalOut = Input { Value = 30, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Size = Input { Value = 0.2543, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input { Value = "SOURCE 1", },
            Style = Input { Value = "Bold", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 55, 16.5 } },
      },
      Crop1_1_1 = Crop {
         Inputs = {
            XOffset = Input { Value = 607, },
            YOffset = Input { Value = 34, },
            XSize = Input { Value = 631, },
            YSize = Input { Value = 1004, },
            Input = Input {
               SourceOp = "Merge1_1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 275, -49.5 } },
      },
      Crop1 = Crop {
         Inputs = {
            XOffset = Input { Value = 94, },
            YOffset = Input { Value = 163, },
            XSize = Input { Value = 1732, },
            YSize = Input { Value = 754, },
            KeepCentered = Input { Value = 1, },
            Input = Input {
               SourceOp = "Merge1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 275, 49.5 } },
      },
      Merge1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Text1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 165, 49.5 } },
      },
      Background1 = Background {
         Inputs = {
            GlobalOut = Input { Value = 30, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 0.563, },
         },
         ViewInfo = OperatorInfo { Pos = { 55, 49.5 } },
      },
      Text1_1 = TextPlus {
         Inputs = {
            GlobalOut = Input { Value = 30, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Size = Input { Value = 0.2543, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input { Value = "SOURCE 2", },
            Style = Input { Value = "Bold", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 55, 115.5 } },
      },
      Transform1_1 = Transform {
         Inputs = {
            Center = Input {
               SourceOp = "Path3",
               Source = "Position",
            },
            Size = Input { Value = 0.632, },
            Input = Input {
               SourceOp = "Crop1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 385, 148.5 } },
      },
      Path3 = PolyPath {
         DrawMode = "InsertAndModify",
         Inputs = {
            Displacement = Input {
               SourceOp = "Path3Displacement",
               Source = "Value",
            },
            PolyLine = Input {
               Value = Polyline {
                  Points = {
                     { Linear = true, LockY = true, X = -0.882828137028483, Y = -0.350481072349252, RX = 0.228637413394919, RY = 0 },
                     { Linear = true, LockY = true, X = -0.196915896843726, Y = -0.350481072349252, LX = -0.228637413394919, LY = 0 }
                  }
               },
            },
         },
      },
      Path3Displacement = BezierSpline {
         SplineColor = { Red = 255, Green = 0, Blue = 255 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 4.66666666666667, 0 }, Flags = { Linear = true, LockedY = true } },
            [14] = { 1, LH = { 9.33333333333333, 1 }, Flags = { LockedY = true } }
         }
      },
      Crop1_1 = Crop {
         Inputs = {
            XOffset = Input { Value = 94, },
            YOffset = Input { Value = 163, },
            XSize = Input { Value = 1732, },
            YSize = Input { Value = 754, },
            KeepCentered = Input { Value = 1, },
            Input = Input {
               SourceOp = "Merge1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 275, 148.5 } },
      },
      Background1_1 = Background {
         Inputs = {
            GlobalOut = Input { Value = 30, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftBlue = Input { Value = 0.438, },
         },
         ViewInfo = OperatorInfo { Pos = { 55, 148.5 } },
      },
      Merge1_1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background1_1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Text1_1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 165, 148.5 } },
      },
      Transform1 = Transform {
         Inputs = {
            Center = Input {
               SourceOp = "Path2",
               Source = "Position",
            },
            Size = Input { Value = 0.632, },
            Input = Input {
               SourceOp = "Crop1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 495, 49.5 } },
      },
      Path2 = PolyPath {
         DrawMode = "InsertAndModify",
         Inputs = {
            Displacement = Input {
               SourceOp = "Path2Displacement",
               Source = "Value",
            },
            PolyLine = Input {
               Value = Polyline {
                  Points = {
                     { Linear = true, LockY = true, X = -0.199225365665897, Y = 1.07126959078072, RX = 0, RY = -0.24580017683466 },
                     { Linear = true, LockY = true, X = -0.199225365665897, Y = 0.333869060276742, LX = 0, LY = 0.24580017683466 }
                  }
               },
            },
         },
      },
      Path2Displacement = BezierSpline {
         SplineColor = { Red = 255, Green = 0, Blue = 255 },
         NameSet = true,
         KeyFrames = {
            [4] = { 0, RH = { 8.66666666666667, 0 }, Flags = { Linear = true, LockedY = true } },
            [18] = { 1, LH = { 13.3333333333333, 1 }, Flags = { LockedY = true } }
         }
      },
      Transform1_1_1 = Transform {
         CtrlWZoom = false,
         Inputs = {
            Center = Input {
               SourceOp = "Path1",
               Source = "Position",
            },
            Input = Input {
               SourceOp = "Crop1_1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 605, -49.5 } },
      },
      Path1 = PolyPath {
         DrawMode = "InsertAndModify",
         Inputs = {
            Displacement = Input {
               SourceOp = "Path1Displacement",
               Source = "Value",
            },
            PolyLine = Input {
               Value = Polyline {
                  Points = {
                     { Linear = true, LockY = true, X = 2.0785030375066, Y = -0.00237422418353783, RX = -0.380348652931854, RY = 0 },
                     { Linear = true, LockY = true, X = 0.937457078711041, Y = -0.00237422418353783, LX = 0.380348652931854, LY = 0 }
                  }
               },
            },
         },
      },
      Path1Displacement = BezierSpline {
         SplineColor = { Red = 255, Green = 0, Blue = 255 },
         NameSet = true,
         KeyFrames = {
            [10] = { 0, RH = { 14.6666666666667, 0 }, Flags = { Linear = true, LockedY = true } },
            [24] = { 1, LH = { 19.3333333333333, 1 }, Flags = { LockedY = true } }
         }
      },
      Merge3 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background2",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Transform1_1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 385, 247.5 } },
      },
      Merge2 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Merge3",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Transform1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 495, 247.5 } },
      },
      Background2 = Background {
         Inputs = {
            GlobalOut = Input { Value = 30, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
         },
         ViewInfo = OperatorInfo { Pos = { 275, 247.5 } },
      },
      Merge4 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Merge2",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Transform1_1_1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 605, 247.5 } },
      }
   }
}
Bryan Ray
http://www.bryanray.name
http://www.musevfx.com
Offline

Dreevok

  • Posts: 3
  • Joined: Thu Nov 29, 2018 5:57 pm
  • Real Name: Alan Smithee

Re: Scott Pilgrim effect

PostSat Jan 05, 2019 9:53 am

Oh thanks a lot that's exactly what I searched for thank you very much!

Return to Fusion

Who is online

Users browsing this forum: No registered users and 4 guests