Jump to: Board index » General » Fusion

Clone Source Out of Frame?

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

Gabi Bucataru

  • Posts: 334
  • Joined: Tue Jan 12, 2016 1:39 am

Clone Source Out of Frame?

PostTue Jun 25, 2019 4:44 pm

Hi All -

So I am succesfully cloning and tracking a logo I want covered on a building where the camera tilts downward.
All is good (A) while my clone source stays in the frame (the windows on the building).
But once my clone source runs off frame, my target shows the edge of the frame(B) - see attachment

Is there a trick around this?

Thanks!
Attachments
tracker.jpg
tracker.jpg (181.86 KiB) Viewed 4695 times
Resolve 18.6.2 Studio * WIN10 Pro 64-bit * intel core i7-7700K CPU 4.20Ghz * 32 Gb RAM * NVIDIA GeForce GTX 1080 Ti *
Offline

xunile

  • Posts: 3028
  • Joined: Mon Apr 23, 2018 5:21 am
  • Real Name: Eric Eisenmann

Re: Clone Source Out of Frame?

PostTue Jun 25, 2019 5:08 pm

Gabi Bucataru wrote:Hi All -

So I am succesfully cloning and tracking a logo I want covered on a building where the camera tilts downward.
All is good (A) while my clone source stays in the frame (the windows on the building).
But once my clone source runs off frame, my target shows the edge of the frame(B) - see attachment

Is there a trick around this?

Thanks!


You can try using the "Still Source" option.
Attachments
2019-06-25.png
2019-06-25.png (952.54 KiB) Viewed 4694 times
Win 10 Home | Intel i7 - 10700f 64 GB 1 TB GB SSD 2 TB SSD
RTX-3060 12 GB | Resolve Studio 18.6.6| Fusion Studio 18.6.6

Win 10 Home | Intel Core I7-7700HQ 32 GB 1 TB NVME SSD 1 TB SATA SSD
GTX-1060-6GB | Resolve 17.4.6
Offline
User avatar

Bryan Ray

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

Re: Clone Source Out of Frame?

PostTue Jun 25, 2019 9:16 pm

For this kind of thing, I frequently create a patch using a mask tool, such as Polygon, a Matte Control, a Time Stretcher, and a Tracker and/or Transform.

Draw the mask around the item you wish to remove in order to get the shape right, then select it all and move it to the windows you want to use as a patch. Connect the image to the MatteControl's Background, and the Polygon to the Garbage Matte input. The resulting image will be everything but the bit you need, so either use the Matte Controls Invert Garbage Matte switch, or the Invert switch in the Polygon itself to reverse the selection. Remove the animation from the Time Stretcher's Source Time control and set it to whatever frame you happen to be looking at. You now have the patch you need.

Track the feature you want to cover and use whatever method you prefer to apply that motion to the patch (there are several ways to do it; I usually use the Tracker itself in Matchmove/FG Only mode). Then Merge over the original image. You may need to use an additional Transform to position the patch exactly where you want it to go.

Here's a quick example of how it would wire together. The Background is standing in for a Loader or MediaIn.

Code: Select all
{
   Tools = ordered() {
      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 = { 2475, -1369.5 } },
      },
      Polygon1Polyline = BezierSpline {
         SplineColor = { Red = 173, Green = 255, Blue = 47 },
         NameSet = true,
         KeyFrames = {
            [29] = { 0, Flags = { Linear = true, LockedY = true }, Value = Polyline {
                  Closed = true,
                  Points = {
                     { Linear = true, X = -0.139062498013178, Y = 0.0148148160289835, LX = 0.0326388877299097, LY = -0.00216049312809367, RX = -0.000173612766795691, RY = -0.0111111113410673 },
                     { Linear = true, X = -0.139583336313566, Y = -0.0185185179942184, LX = 0.000173612766795691, LY = 0.0111111113410673, RX = 0.0324652788539727, RY = -0.00216049366159202 },
                     { Linear = true, X = -0.0421874997516473, Y = -0.0249999989789945, LX = -0.0324652788539727, LY = 0.00216049366159202, RX = 0.000347221642732619, RY = 0.0111111118745656 },
                     { Linear = true, X = -0.0411458348234495, Y = 0.00833333664470248, LX = -0.000347221642732619, LY = -0.0111111118745656, RX = -0.0326388877299097, RY = 0.00216049312809367 }
                  }
               } }
         }
      },
      TimeStretcher2_1 = TimeStretcher {
         Inputs = {
            SourceTime = Input { Value = 29, },
            Input = Input {
               SourceOp = "MatteControl1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 2585, -1336.5 } },
      },
      MatteControl1 = MatteControl {
         Inputs = {
            Filter = Input { Value = FuID { "Multi-box" }, },
            Passes = Input { Value = 16, },
            ["Garbage.Matte"] = Input {
               SourceOp = "Polygon1",
               Source = "Mask",
            },
            ["Garbage.MaskNest"] = Input { Value = 1, },
            ["Garbage.MaskInverted"] = Input { Value = 1, },
            Background = Input {
               SourceOp = "PipeRouter1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 2475, -1336.5 } },
      },
      Background1 = Background {
         CtrlWZoom = false,
         Inputs = {
            GlobalIn = Input { Value = 1, },
            GlobalOut = Input { Value = 241, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
         },
         ViewInfo = OperatorInfo { Pos = { 2310, -1270.5 } },
      },
      Merge2 = Merge {
         Inputs = {
            UseOpenCL = Input { Value = 0, },
            Background = Input {
               SourceOp = "PipeRouter1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Transform1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 2695, -1270.5 } },
      },
      Transform1 = Transform {
         Inputs = {
            Center = Input { Value = { 0.452604166666667, 0.576851851851852 }, },
            Input = Input {
               SourceOp = "Tracker1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 2695, -1303.5 } },
      },
      Tracker1 = Tracker {
         Trackers = {
            {
               PatternTime = 1,
               PatternX = 0,
               PatternY = 0
            }
         },
         Inputs = {
            Input = Input {
               SourceOp = "PipeRouter1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "TimeStretcher2_1",
               Source = "Output",
            },
            Operation = Input { Value = 1, },
            Merge = Input { Value = 1, },
            MatchMoveSettings = Input { Value = 1, },
            Name1 = Input { Value = "Tracker 1", },
         },
         ViewInfo = OperatorInfo { Pos = { 2695, -1336.5 } },
         UserControls = ordered() {
            UpdateReferenceFrame = {
               INP_Integer = false,
               LINKID_DataType = "Number",
               BTNCS_Execute = "RunScript([[S:\\net_exe\\BlackMagic\\fusion9\\scripts\\Tool\\updateTrackerReferenceFrame.lua]])",
               ICS_ControlPage = "Operation",
               INPID_InputControl = "ButtonControl",
               LINKS_Name = "Update Reference Frame"
            }
         }
      },
      PipeRouter1 = PipeRouter {
         Inputs = {
            Input = Input {
               SourceOp = "Background1",
               Source = "Output",
            },
         },
         ViewInfo = PipeRouterInfo { Pos = { 2365, -1270.5 } },
      }
   }
}
Bryan Ray
http://www.bryanray.name
http://www.sidefx.com
Offline
User avatar

Gabi Bucataru

  • Posts: 334
  • Joined: Tue Jan 12, 2016 1:39 am

Re: Clone Source Out of Frame?

PostWed Jun 26, 2019 1:23 am

Bryan -

Thanks so much for the detailed explanation, but you've lost me there. I am just starting to meddle with fusion, and although I have the basic concepts I don't think I can pull off what you've explained without actually seeing how it is put together.

I understand the code you attached would probably reconstruct the example, but I don't know how to do that either.

If it's not that much, do you mind recording a screencast? There's no need to narrate or anything, but only so I visually understand what you are doing.

I believe there's immense power in these skills to master, that's why I am keen on learning it.

Thanks so much!
Gabi
Resolve 18.6.2 Studio * WIN10 Pro 64-bit * intel core i7-7700K CPU 4.20Ghz * 32 Gb RAM * NVIDIA GeForce GTX 1080 Ti *
Offline
User avatar

Bryan Ray

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

Re: Clone Source Out of Frame?

PostWed Jun 26, 2019 2:24 pm

No, that's too much work for me to do at the moment. Copy the above code. Paste it into your Flow view. It's as simple as that.
Bryan Ray
http://www.bryanray.name
http://www.sidefx.com
Offline
User avatar

Gabi Bucataru

  • Posts: 334
  • Joined: Tue Jan 12, 2016 1:39 am

Re: Clone Source Out of Frame?

PostWed Jun 26, 2019 7:56 pm

Bryan Ray wrote:No, that's too much work for me to do at the moment. Copy the above code. Paste it into your Flow view. It's as simple as that.


Bryan - no worries, I understand.

It actually worked, I was able to recreate the nodes and connections. The only thing was that my tracking gradually went off as I neared the end of the clip. How would you fine tune the tracking path when it goes off in this situation? I used the Tracker in Matchmove/FG Only mode as you mentioned.
Tried with three different trackers but it still goes off.

thanks!
Gabi
Resolve 18.6.2 Studio * WIN10 Pro 64-bit * intel core i7-7700K CPU 4.20Ghz * 32 Gb RAM * NVIDIA GeForce GTX 1080 Ti *
Offline
User avatar

Gabi Bucataru

  • Posts: 334
  • Joined: Tue Jan 12, 2016 1:39 am

Re: Clone Source Out of Frame?

PostThu Jun 27, 2019 12:25 am

I NAILED IT!!!

Thanks so much Brian! I used a planar tracker that seemed to be tracking much better than the regular tracker. The only issue I have now is that when I view the clip in Edit mode (timeline), it's all an empty black clip.
I know I am missing the obvious but do you know what might be wrong? Here's the screencapture of the nodes:
Capture.PNG
Capture.PNG (33.27 KiB) Viewed 4636 times


Thanks!
GAbi
Resolve 18.6.2 Studio * WIN10 Pro 64-bit * intel core i7-7700K CPU 4.20Ghz * 32 Gb RAM * NVIDIA GeForce GTX 1080 Ti *
Offline
User avatar

Gabi Bucataru

  • Posts: 334
  • Joined: Tue Jan 12, 2016 1:39 am

Re: Clone Source Out of Frame?

PostThu Jun 27, 2019 1:37 am

Ok, a bit more on that black clip in edit mode after the Fusion edit. Here's an error I reveived (from the exclamation sign icon next to the Project manager:

Code: Select all
MediaOut1 cannot get Parameter for Input at time 549
MediaOut1 cannot get Parameter for Input at time 549
MediaOut1 failed at time 549
MediaOut1 cannot get Parameter for Input at time 549
MediaOut1 cannot get Parameter for Input at time 549
MediaOut1 cannot get Parameter for Input at time 620
MediaOut1 cannot get Parameter for Input at time 620
MediaOut1 failed at time 620
MediaOut1 cannot get Parameter for Input at time 620
MediaOut1 cannot get Parameter for Input at time 620
MediaOut1 failed at time 620


Thanks!
Gabi
Attachments
Capture.PNG
Capture.PNG (239.94 KiB) Viewed 4627 times
Resolve 18.6.2 Studio * WIN10 Pro 64-bit * intel core i7-7700K CPU 4.20Ghz * 32 Gb RAM * NVIDIA GeForce GTX 1080 Ti *
Offline
User avatar

Bryan Ray

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

Re: Clone Source Out of Frame?

PostThu Jun 27, 2019 1:55 am

You're outside of my area of expertise when it comes to dealing with the Resolve end of things. I work exclusively in Fusion standalone. Hopefully someone with a better understanding of the interaction between Fusion and Resolve will be along to help.
Bryan Ray
http://www.bryanray.name
http://www.sidefx.com
Offline

theonegoodroad

  • Posts: 2
  • Joined: Sun Jun 16, 2019 10:21 am
  • Real Name: Josef von Nuding

Re: Clone Source Out of Frame?

PostThu Jul 04, 2019 11:02 am

I have a similar issues with just creating new fusion clips..

You figured out why it does this??

MediaOut1 failed at time 18
MediaOut1 cannot get Parameter for Input at time 18
MediaOut1 cannot get Parameter for Input at time 18
Offline
User avatar

Gabi Bucataru

  • Posts: 334
  • Joined: Tue Jan 12, 2016 1:39 am

Re: Clone Source Out of Frame?

PostThu Jul 11, 2019 2:02 pm

I'm suspecting a graphic card issue. The same project exported to another machine, works fine.
Resolve 18.6.2 Studio * WIN10 Pro 64-bit * intel core i7-7700K CPU 4.20Ghz * 32 Gb RAM * NVIDIA GeForce GTX 1080 Ti *
Offline
User avatar

Gabi Bucataru

  • Posts: 334
  • Joined: Tue Jan 12, 2016 1:39 am

Re: Clone Source Out of Frame?

PostFri Aug 09, 2019 9:09 pm

So I thought I'd give back to this wonderful community by recording a tutorial on how to mask logos and signs (or anything else for that matter), using the Planar Tracker tool within Resolve.



Thanks again for the wonderful help and tips everyone gave me. Cheers!

Gabi
Resolve 18.6.2 Studio * WIN10 Pro 64-bit * intel core i7-7700K CPU 4.20Ghz * 32 Gb RAM * NVIDIA GeForce GTX 1080 Ti *

Return to Fusion

Who is online

Users browsing this forum: Bing [Bot] and 25 guests