Jump to: Board index » General » Fusion

Newbie problem merging layers

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

Ignacio de La Cierva

  • Posts: 163
  • Joined: Tue Apr 26, 2016 12:20 pm

Newbie problem merging layers

PostFri Dec 08, 2017 1:26 pm

I can't believe I've been two hours stucked on this. I suspect when I find it out, I'll realize I was misunderstanding something essential to Fusion compositing.

I'm trying to make a graphic (not realistic) super8 movie film strip to present some old family footage. You know that cheesy look ( :

-I comp one frame on a small background, then cut a hole on the alpha for the sprocket.
-Then merge that over a 5 frames height background with wrap on, so I get 5 repetitions of the frame. Animating vertical transform, due to the wrap setting in the merge, I can simulate an infinite film.


To end the filmstrip layer I add some text on margins and texture (keeping the sproket alpha using Atop operator in the merge). Again, merging in wrap mode to get the infinite effect when moving vertical.

So now I have a 700x4000 layer simulating an infinite filmmstrip with internal sliding animation. Perfect.

Now I want to merge that over my background, just a thin filmstrip crossing my background, but here comes my problem:

I can only get a final comp with multiple filmstrips, repetitions covering the scree, as if that final merge was in wrap mode too, but no, it is in CANVAS mode, I expected it to insert ONE fimstrip, a thin band crossing the screen. But it's still wrapping.

Here is the example scene:

Code: Select all
Composition {
   CurrentTime = 787,
   RenderRange = { 0, 1000 },
   GlobalRange = { 0, 1000 },
   CurrentID = 191,
   HiQ = true,
   PlaybackUpdateMode = 0,
   Version = "Fusion 8.2.1 build 6",
   SavedOutputs = 2,
   HeldTools = 0,
   DisabledTools = 0,
   LockedTools = 0,
   AudioOffset = 0,
   AutoRenderRange = true,
   Resumable = true,
   OutputClips = {
   },
   Tools = {
      Background5 = Background {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Type = Input { Value = FuID { "Corner" }, },
            TopLeftRed = Input { Value = 0.584313750267029, },
            TopLeftGreen = Input { Value = 0.360784322023392, },
            TopLeftBlue = Input { Value = 0.368627458810806, },
            TopRightRed = Input { Value = 1, },
            TopRightGreen = Input { Value = 0.980392217636108, },
            TopRightBlue = Input { Value = 0.65490198135376, },
            BottomLeftRed = Input { Value = 0.874509871006012, },
            BottomLeftGreen = Input { Value = 0.65490198135376, },
            BottomLeftBlue = Input { Value = 0.447058856487274, },
            BottomRightRed = Input { Value = 1, },
            BottomRightGreen = Input { Value = 0.960784375667572, },
            BottomRightBlue = Input { Value = 0.835294187068939, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1806.8, -382.573 } },
      },
      FILMSTRIPCanvas = Background {
         NameSet = true,
         Inputs = {
            Width = Input { Value = 1255, },
            Height = Input { Value = 4000, },
            ["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 = { 975.672, -96.9775 } },
      },
      Background2_1 = Background {
         Inputs = {
            Width = Input { Value = 1298, },
            Height = Input { Value = 707, },
            ["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 = { 714.41, 13.055 } },
      },
      OneFrameCanvas = Background {
         NameSet = true,
         Inputs = {
            Width = Input { Value = 1298, },
            Height = Input { Value = 707, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 88.2546, 154.322 } },
      },
      Rectangle1_1 = RectangleMask {
         Inputs = {
            SoftEdge = Input { Value = 0.0102127659574468, },
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Center = Input { Value = { 0.485555165117181, 0.520366598778004 }, },
            Width = Input { Value = 0.882172391857506, },
            Height = Input { Value = 0.909453496266124, },
            CornerRadius = Input { Value = 0.174468085106383, },
         },
         ViewInfo = OperatorInfo { Pos = { 360.232, -50.8182 } },
      },
      Background1 = Background {
         Inputs = {
            Width = Input { Value = 768, },
            Height = Input { Value = 576, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Type = Input { Value = FuID { "Corner" }, },
            TopLeftRed = Input { Value = 0.75609756097561, },
            TopLeftGreen = Input { Value = 0.266666666666667, },
            TopLeftBlue = Input { Value = 0.0745098039215686, },
            TopRightRed = Input { Value = 0.75609756097561, },
            TopRightGreen = Input { Value = 0.384146341463415, },
            TopRightBlue = Input { Value = 0.378048780487805, },
            BottomLeftRed = Input { Value = 0.75609756097561, },
            BottomLeftGreen = Input { Value = 0.266666666666667, },
            BottomLeftBlue = Input { Value = 0.0745098039215686, },
            BottomRightRed = Input { Value = 0.75609756097561, },
            BottomRightGreen = Input { Value = 0.49390243902439, },
            BottomRightBlue = Input { Value = 0.0745098039215686, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
            EffectMask = Input {
               SourceOp = "Rectangle1_1",
               Source = "Mask",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 360.232, -17.8182 } },
      },
      Text1 = TextPlus {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input { Value = "This is\n8mm footage\n", },
            Style = Input { Value = "Bold", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
            ShadingGradient1 = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 251.483, 13.4647 } },
      },
      Merge2 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Text1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 361.483, 13.4647 } },
      },
      FilmGrain1 = FilmGrain {
         Inputs = {
            Input = Input {
               SourceOp = "Merge2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 360.445, 43.8 } },
      },
      Merge1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "OneFrameCanvas",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "FilmGrain1",
               Source = "Output",
            },
            Center = Input { Value = { 0.629533678756477, 0.483622892696155 }, },
            Size = Input { Value = 1.28028482239218, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 365.089, 148.422 } },
      },
      FilmHole = RectangleMask {
         NameSet = true,
         Inputs = {
            SoftEdge = Input { Value = 0.0051063829787234, },
            Invert = Input { Value = 1, },
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Center = Input { Value = { 0.183658170914543, 0.5 }, },
            Width = Input { Value = 0.121390917444503, },
            Height = Input { Value = 0.29009515643387, },
            CornerRadius = Input { Value = 0.148936170212766, },
         },
         ViewInfo = OperatorInfo { Pos = { 666.86, 49.2624 } },
      },
      Merge8 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background2_1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Merge1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
            EffectMask = Input {
               SourceOp = "FilmHole",
               Source = "Mask",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 689.449, 145.769 } },
      },
      WRAPFRAME = Merge {
         NameSet = true,
         Inputs = {
            Background = Input {
               SourceOp = "FILMSTRIPCanvas",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Merge8",
               Source = "Output",
            },
            Center = Input { Value = { 0.479522184300341, 0.46174782630114 }, },
            Edges = Input { Value = 1, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 976.131, 143.644 } },
      },
      Background2 = Background {
         Inputs = {
            Width = Input { Value = 1255, },
            Height = Input { Value = 4000, },
            ["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 = { 1174.81, -3.61546 } },
      },
      Text2 = TextPlus {
         Inputs = {
            Width = Input { Value = 200, },
            Height = Input { Value = 4000, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Center = Input { Value = { 0.504395604395605, 0.5 }, },
            AngleZ = Input { Value = 90, },
            Size = Input { Value = 1, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input { Value = "KODAK  SAFETY  FILM  >>         E 21>        ", },
            Style = Input { Value = "Regular", },
            InternationalFontControls = Input { Value = 1, },
            AdvancedFontControls = Input { Value = 1, },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
            SelectTransform = Input { Value = 1, },
            WordSpacing = Input { Value = 1.41276595744681, },
            CharacterSpacing = Input { Value = 1.1063829787234, },
            Green1 = Input { Value = 0.629397726384589, },
            Blue1 = Input { Value = 0.283837386560225, },
            ShadingGradient1 = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
            Softness1 = Input { Value = 1, },
            SoftnessX1 = Input { Value = 10.1395348837209, },
            SoftnessY1 = Input { Value = 11.3488372093023, },
            SoftnessOnFillColorToo1 = Input { Value = 1, },
            SoftnessGlow1 = Input { Value = 0.381395348837209, },
         },
         ViewInfo = OperatorInfo { Pos = { 1174.81, 29.3845 } },
      },
      Merge4 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background2",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Text2",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1289.55, 33.1819 } },
      },
      AddLetters = Merge {
         CtrlWZoom = false,
         NameSet = true,
         Inputs = {
            ProcessAlpha = Input { Value = 0, },
            Background = Input {
               SourceOp = "WRAPFRAME",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Merge4",
               Source = "Output",
            },
            Center = Input { Value = { 0.114583333333333, 0.494652406417112 }, },
            Operator = Input { Value = FuID { "Atop" }, },
            Edges = Input { Value = 1, },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1293.74, 147.442 } },
      },
      AnimateThis_UP_DOWN = Transform {
         NameSet = true,
         Inputs = {
            Center = Input {
               SourceOp = "Perturb1",
               Source = "Value",
            },
            Input = Input {
               SourceOp = "AddLetters",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1433.03, 147.442 } },
      },
      Perturb1 = PerturbPoint {
         CtrlWZoom = false,
         Inputs = {
            Value = Input { Value = { 0.5, 0.202857142857143 }, },
            XScale = Input { Value = 0, },
         },
      },
      Transform1 = Transform {
         Inputs = {
            Size = Input { Value = 0.663829787234043, },
            Angle = Input { Value = 24.72103, },
            Input = Input {
               SourceOp = "AnimateThis_UP_DOWN",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1616.95, 146.047 } },
      },
      Merge3 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background5",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Transform1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1808.19, 148.836 } },
      }
   },
   Views = {
      {
         FrameTypeID = "ChildFrame",
         Mode = 3,
         LayoutPreset = 0,
         Left = 0,
         Top = 27,
         Width = 2560,
         Height = 1258,
         Views = ordered() {
            Main = MultiView {
               Active = "Flow",
               ViewList = ordered() {
                  Flow = "FlowView",
                  Console = "ConsoleView",
                  Timeline = "TimelineView",
                  Spline = "SplineEditorView",
                  Info = "InfoView",
                  Chat = "ChatView"
               },
               Flow = FlowView {
                  Flags = {
                     AutoHideNavigator = true,
                     AutoSnap = true,
                     RemoveRouters = true
                  },
                  NavigatorSize = { 200, 140 },
                  Direction = "Horizontal",
                  PipeStyle = "Direct",
                  Scale = 0.716977,
                  Offset = { 92.7904, 471.336 }
               },
               Timeline = TimelineView {
                  TreeControlState = {
                  },
                  DisplayMode = "All Tools",
                  ShowCurrentTimeTools = false,
                  Filter = "Show All",
                  ShowSelectedTools = false,
                  ShowAnimatedToolsOnly = false,
                  ShowEditBoxes = false,
                  KeyFrameView = {
                     Position = { Left = 150, Bottom = 583 },
                     ScaleX = 2.14424951267057,
                     OffsetX = -51.4619883040936,
                     OffsetY = 0,
                     AutoScaling = "scroll",
                     AutoSnapTo = "frame",
                     AutoSnapToGuidelines = false,
                     GuidelinesGrabEnabled = true,
                     GuidelinesSnapTo = "frame"
                  },
                  Spreadsheet = { LeftPos = 150, Visible = false }
               },
               Spline = SplineEditorView {
                  LeftPos = 256,
                  ScaleX = 0.2,
                  ScaleY = 0.00338983050847458,
                  OffsetX = -38,
                  OffsetY = 0,
                  AutoScaling = "scroll",
                  AutoSnapTo = "frame",
                  AutoSnapToGuidelines = false,
                  GuidelinesSnapTo = "frame",
                  ShowKeyMarkers = false,
                  IndependentHandles = false,
                  ShowNonSplineModifiers = false,
                  GuidelinesGrabEnabled = true,
                  ShowOneToolOnly = false,
                  ShowSelectedTools = true,
                  ShowAllInputs = false,
                  Filter = "Show All"
               },
            },
            Controls = MultiView {
               Active = "Tools",
               ViewList = ordered() {
                  Tools = "ControlView",
                  Modifiers = "ModifierView"
               },
            },
            Left = "PreviewContainer",
            Right = "PreviewContainer",
            Transport = "TransportView",
            Time = "TimeView"
         },
         Layout = {
            Columns = 2,
            RatioX = 1,
            RatioY = 1,
            {
               Rows = 3,
               RatioX = 0.865362035225049,
               RatioY = 96.6154458598726,
               {
                  Columns = 2,
                  RatioX = 1,
                  RatioY = 0.4768,
                  { ID = "Left", RatioX = 0.5, RatioY = 99.3338926174497, Pop = true },
                  { ID = "Right", RatioX = 0.5, Pop = true },
                  Pop = true
               },
               { ID = "Main", RatioY = 0.4768, Pop = true },
               { ID = "Time", SnapY = 56, Flat = true }
            },
            {
               Rows = 2,
               PixelX = 342,
               { ID = "Controls", RatioX = 1, RatioY = 1 },
               { ID = "Transport", FixedY = -2 }
            }
         }
      }
   },
   Prefs = {
      Comp = {
         Views = {
            Right = {
               Viewer = {
                  Channel = 4294967295,
                  CheckerUnderlay = true,
               },
               SideB = {
                  PrevCtrlInactiveColor = 4278255360,
                  PickW = 1,
                  PickH = 1,
                  PrevCtrlActiveColor = 4278190335,
                  Viewer = {
                     EnableLUTs = false,
                     LUTPlugin = "FusionViewLUT",
                     NearZ = 0,
                     FitMarginX = 0,
                     FitMarginType = 0,
                     FarZ = -1000,
                     FitMarginY = 0
                  }
               },
            },
            Left = {
               Viewer = {
                  Channel = 4294967295,
                  CheckerUnderlay = true,
               },
               SideB = {
                  PrevCtrlInactiveColor = 4278255360,
                  PickW = 1,
                  PickH = 1,
                  PrevCtrlActiveColor = 4278190335,
                  Viewer = {
                     EnableLUTs = false,
                     LUTPlugin = "FusionViewLUT",
                     NearZ = 0,
                     FitMarginX = 0,
                     FitMarginType = 0,
                     FarZ = -1000,
                     FitMarginY = 0
                  }
               },
            },
            View1 = {
               PickW = 1,
               PrevCtrlInactiveColor = 0,
               FullScreen = false,
               AlwaysOnTop = true,
               SideB = {
                  PrevCtrlInactiveColor = 4278255360,
                  PickW = 1,
                  PickH = 1,
                  PrevCtrlActiveColor = 4278190335,
                  Viewer = {
                     EnableLUTs = false,
                     LUTPlugin = "FusionViewLUT",
                     NearZ = 0,
                     FitMarginX = 0,
                     FitMarginType = 0,
                     FarZ = -1000,
                     FitMarginY = 0
                  }
               },
               PickH = 1,
               PrevCtrlActiveColor = 0,
               QuadView = false
            },
            View2 = {
               PickH = 1,
               FullScreen = false,
               PickW = 1,
               AlwaysOnTop = true
            }
         },
         FrameFormat = {
            Rate = 25,
            GuideRatio = 1.77777777777778,
            DepthLock = false,
         },
         LastFile = "R:\\_Boda Borja\\Render Fusion\\fondos ELLA\\foto 01",
         Paths = {
         },
         QuickTime = {
            KeyRate = 25,
            Quality = 100,
         }
      }
   }
}

 



What I'm missing? It must be something so... humilliating :lol:
Offline

Sander de Regt

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

Re: Newbie problem merging layers

PostFri Dec 08, 2017 1:52 pm

Just put a crop tool after 'Animate This' and you should be good to go.
Sander de Regt

ShadowMaker SdR
The Netherlands
Offline

Ignacio de La Cierva

  • Posts: 163
  • Joined: Tue Apr 26, 2016 12:20 pm

Re: Newbie problem merging layers

PostFri Dec 08, 2017 3:46 pm

Great. Easier than my masking workaround.

So I understand the wrap merge creates a kind of infinite background, and that attribute goes all down the node stream, overriding any subsequent "Canvas" merge, until you cut it with a crop.

I hope some day I'll find out why this behaviour makes sense.

Thank you again Sander.
Offline

Sander de Regt

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

Re: Newbie problem merging layers

PostFri Dec 08, 2017 3:54 pm

Glad I could help.

This behaviour makes sense because it keeps the original resolution of the image intact all across the stream, so the quality of your image stays the best. For example you can have a car drive across the frame with a transform and then add another transform that scales down the original combination and the car will reappear because it no longer goes offscreen. If that makes sense to you.
Sander de Regt

ShadowMaker SdR
The Netherlands

Return to Fusion

Who is online

Users browsing this forum: No registered users and 43 guests