- Posts: 597
- Joined: Fri Sep 15, 2017 1:24 am
- Code: Select all
{
Tools = ordered() {
MatteControl1 = MatteControl {
Inputs = {
["Garbage.Matte"] = Input {
SourceOp = "Polygon1",
Source = "Mask",
},
["Garbage.MaskNest"] = Input { Value = 1, },
["Garbage.MaskInverted"] = Input { Value = 1, },
Background = Input {
SourceOp = "FastNoise1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 550, 148.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 = { 550, 82.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.0255474448204041, Y = 0.269480526447296, LX = 0.0541362514098485, LY = -0.113636367022991, RX = 0.102978150534953, RY = 0 },
{ Linear = true, X = 0.33448189496994, Y = 0.269480526447296, LX = -0.102978150534953, LY = -0, RX = -0.0488418968634594, RY = -0.113636365958623 },
{ Linear = true, X = 0.18795619904995, Y = -0.0714285746216774, LX = 0.0488418968634594, LY = 0.113636365958623, RX = -0.0541362514098485, RY = 0.113636367022991 }
}
} }
}
},
Transform1 = Transform {
CtrlWZoom = false,
Inputs = {
Center = Input { Value = { 0.226277372262774, 0.301948051948052 }, },
Input = Input {
SourceOp = "MatteControl1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 550, 214.5 } },
},
Note1 = Note {
Inputs = {
Comments = Input { Value = "Draw the Polygon around the feature you wish to clone.\n\nInvert the Garbage Matte to cut out the patch.\n\nTransform to move it to the desired location. \n\nTrackers can be used to move the Polygon and/or the patch itself. \n\nA TimeStretcher with no animation can be used to freeze the patch. Put it between the MatteControl and the Transform.", }
},
ViewInfo = StickyNoteInfo {
Pos = { 715, 82.5 },
Flags = {
Expanded = true
},
Size = { 196, 269.3 }
},
},
FastNoise1 = FastNoise {
Inputs = {
Width = Input { Value = 1920, },
Height = Input { Value = 1080, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
},
ViewInfo = OperatorInfo { Pos = { 275, 280.5 } },
},
Merge1 = Merge {
Inputs = {
Background = Input {
SourceOp = "FastNoise1",
Source = "Output",
},
Foreground = Input {
SourceOp = "Transform1",
Source = "Output",
},
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 550, 280.5 } },
}
}
}
Now, to answer the questions:
1) The Paint tool has a Polyline Stroke mode. You can use this to substitute a Bezier shape for an actual paint stroke. You get some additional benefits by doing so, such as write-on/write-off and the ability to modify the size and softness of the stroke after the fact. Unfortunately, in this mode you can't set the Offset by clicking in the Viewer, so you need to use the Offset point control in the Panel. This is one of the only places where I like the ability to scrub a number in the control panel with v16. In v9 you have to type numbers in here by hand, or customize the control to have a Viewport widget.
2) To move an image underneath the Clone stroke, regardless of the mode it's in, you can use the Source Tool field to feed it an image other than the one that goes into the main Input. Pull a branch from your source image to a Transform, and drop that Xf into the Source Tool field. Now the cloned pixels will come from the output of the Transform, which you can animate.
3) The Paint tool doesn't create solid shapes, as far as I know—it only does strokes. However, the technique illustrated in the nodes I shared should do what you need.