Dynamic switching between polylines

SirEdric
Fusionator
Posts: 1873
Joined: Tue Aug 05, 2014 10:04 am
Real name: Eric Westphal
Been thanked: 112 times
Contact:

Dynamic switching between polylines

Hi there.

So, imagine an EllipseMask with it's center being animated by means of a path.
(No XYPath, just the good ole' DisplacementPath).
The Path is connected to a Polyline (let's call it 'Polyline1') on the flow.
The Displacement is animated, so that the Ellipse follows that Path nicely from frame 1 to frame 100.

At Frame 101 I would like to connect to Polyline2 instead, reset the Displacement to 0,
and make the Ellipse follow the shape of Polyline2 for frames 101 to 200.

Is there any chance to dynamically switch to a different Polyline during Playback/Render?

I was thinking of a combination of some manually added <c>_InputControl</c>s accepting Polylines on the EllipseMask
plus an animatable ComboBox (or slider) to select which Polyline should be used as the animation path.

Any ideas are as always very welcome...

Cheers.

Eric.

Added in 16 minutes 23 seconds:
PS:
Another option would be to somehow 'combine' Polyline1 and Polyline2.
As in: copying the points of Polyline2 and appending them to Polyline1,
making 1 larger Polyline instead of 2 small ones.
But I dont see any way to do so either....

Added in 10 minutes 35 seconds:
(Other than manually appending the point list from Poly2 to Poly1 in Notepad++, but that's not exactly the workflow I'm looking for...)

intelligent machine
Fusionista
Posts: 407
Joined: Fri May 13, 2016 10:01 pm
Location: Austin, Texas, USA
Been thanked: 29 times
Contact:

Re: Dynamic switching between polylines

I have an idea if you can attach a simple setup with at least one of the paths already connected and working as you want.

SirEdric
Fusionator
Posts: 1873
Joined: Tue Aug 05, 2014 10:04 am
Real name: Eric Westphal
Been thanked: 112 times
Contact:

Re: Dynamic switching between polylines

Heya.

Simplified down to the most possible extent...
So most of the controls sit in scrblPath.
The idea is to switch Paths in pathMaster (the Modifier of scrblPath).

Looking forward to whatever you come up with...

Cheerio.

Eric.

You do not have the required permissions to view the files attached to this post.

intelligent machine
Fusionista
Posts: 407
Joined: Fri May 13, 2016 10:01 pm
Location: Austin, Texas, USA
Been thanked: 29 times
Contact:

Re: Dynamic switching between polylines

hmmmm....I think I understand what you're trying to do...making things that would seem trivial as complicated as possible

I know you can simply export the two paths to shape files and then import them into separate modifiers.
Then animate the displacement of each modifier 0 to 1 in order but that would be very linear and a lot of steps...and forget about iterations on the paths.

Have you tried using the paint tool instead with multiple polyline strokes?
You could set the 'write-on' for each polyline to a small range and the spacing to 1 and use the brush controls to set the size of the circle (which could later be tracked or a custom tool added to the brush if you want to change the shape)

I just fiddled with this a bit and it would seem to work but each stroke is separate and I'm sure you can come up with an expression to drive from one to the other easily:

Code: Select all

{
Tools = ordered() {
Background1_5 = Background {
Inputs = {
Width = Input { Value = 1920, },
Height = Input { Value = 1080, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
},
ViewInfo = OperatorInfo { Pos = { -55, 82.5 } },
},
DrawMode = "InsertAndModify",
DrawMode2 = "InsertAndModify",
Inputs = {
MaskWidth = Input { Value = 2048, },
MaskHeight = Input { Value = 1152, },
PixelAspect = Input { Value = { 1, 1 }, },
ClippingMode = Input { Value = FuID { "None" }, },
Polyline = Input {
Value = Polyline {
Closed = true,
Points = {
{ X = 0.00394908855556814, Y = 0.00279250120238955, LX = 0.0052358537759087, LY = -0.00806770511020882, RX = -0.00199097256244591, RY = 0.00306780521454549 },
{ X = 0.00471654114362605, Y = 0.0250587049966185, LX = 0.00273551118939429, LY = -0.00800233886481544, RX = -0.00366735792342474, RY = 0.0107283507315016 },
{ X = -0.00304443261152831, Y = 0.0322298463507886, LX = -0.00518669275819713, LY = 0.0108981170841351, RX = 0.00338129339451422, RY = -0.00710466823988975 },
{ X = -0.00739669795915895, Y = -0.00618496213345426, LX = 0.00242242697857742, LY = 0.015069593821608, RX = -0.000372050751314617, RY = -0.00231446727744543 },
{ X = -0.00508476900599436, Y = -0.0116155870392496, LX = 0.000241208348189229, LY = 0.00203559876236145, RX = -0.00311326545731543, RY = -0.0262737100355619 },
{ X = -0.00833760430217417, Y = -0.0360424431650192, LX = -0.00504622994437891, LY = -0.0179435034166255, RX = 0.00215488580145411, RY = 0.00766239374087591 },
{ X = -0.000916599378781358, Y = -0.00553081308361031, LX = -0.00598063422519896, LY = -0.0073574986248213, RX = 0.00352803988175484, RY = 0.00434024488048521 },
{ X = 0.00791432574597545, Y = 0.0026849770747672, LX = 0.00232997428258592, LY = -0.00648439326674114, RX = -0.00444192866671266, RY = 0.0123620813171365 },
{ X = -0.0120401409859903, Y = -0.0135112012927235, LX = -0.00381295312109813, LY = -0.012471977544008, RX = 0.00425156419524941, RY = 0.0139066662662808 },
{ X = 0.00814339290260641, Y = 0.0140325229365835, LX = -0.00341516019997085, LY = -0.00780624532434147, RX = 0.00424576817070965, RY = 0.0097048292517613 },
{ X = 0.0159084491710846, Y = 0.0319187132032364, LX = -0.00406213423954723, LY = 0.0144442425354066, RX = 0.00219394540318512, RY = -0.00780128810232969 },
{ X = 0.00343691194492896, Y = -0.000844002522809389, LX = -0.00241464087084285, LY = 0.0138059312740582, RX = 0.00117569229496554, RY = -0.00672216312967628 },
{ X = -0.00934397630443398, Y = 0.0099829673766739, LX = -0.00262521574373564, LY = 0.00820647644922987, RX = 0.00727844619931027, RY = -0.0227524210078403 },
{ X = 0.00394908957271228, Y = -0.0190521519028833, LX = 0.0217939292802713, LY = -0.0129158993244797, RX = -0.00778370376012252, RY = 0.00461291458022318 },
{ X = -0.0168158394323984, Y = 0.00444595110685209, LX = -0.00548129189896952, LY = 0.00265780056111403, RX = 0.00668444473823244, RY = -0.00324119227792802 }
}
},
},
Polyline2 = Input {
Value = Polyline {
},
Disabled = true,
},
},
ViewInfo = OperatorInfo { Pos = { 55, -16.5 } },
Colors = {
TileColor = { R = 0.474509803921569, G = 0.658823529411765, B = 0.815686274509804 },
TextColor = { R = 0.474509803921569, G = 0.658823529411765, B = 0.815686274509804 },
}
},
custombrushshape = Background {
Inputs = {
SourceOp = "Polygon9",
},
Width = Input { Value = 1920, },
Height = Input { Value = 1080, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
TopLeftRed = Input { Value = 0.641, },
TopLeftAlpha = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 55, 16.5 } },
},
scrblPath = Paint {
CtrlWZoom = false,
Inputs = {
Input = Input {
SourceOp = "Background1_5",
Source = "Output",
},
Paint = Input {
SourceOp = "PolylineStroke2",
Source = "Out",
},
},
ViewInfo = OperatorInfo { Pos = { 55, 82.5 } },
Colors = {
TileColor = { R = 0.913725490196078, G = 0.549019607843137, B = 0.709803921568627 },
TextColor = { R = 0.725490196078431, G = 0.690196078431373, B = 0.592156862745098 },
},
UserControls = ordered() {
pmStart = {
INPID_InputControl = "SliderControl",
INP_Integer = false,
INP_MinScale = 0,
INP_MaxScale = 100,
INP_MinAllowed = -1000000,
INP_MaxAllowed = 1000000,
ICS_ControlPage = "Controls"
}
}
},
PolylineStroke2 = PolylineStroke {
Points = {
},
Brushes = { "CircleBrush" },
ApplyModes = { "PaintApplyColor" },
Inputs = {
["SoftBrush.Size"] = Input { Value = 0.0283, },
["SoftBrush.Softness"] = Input { Value = 0.001, },
["ImageBrush.Size"] = Input { Value = 0.5, },
["ImageBrush.SourceTool"] = Input {
SourceOp = "custombrushshape",
Source = "Output",
},
["ImageBrush.Brush"] = Input { UserString1 = "bomb", },
SettingsNest = Input { Value = 0, },
Paint = Input {
SourceOp = "PolylineStroke1",
Source = "Out",
},
BrushShape = Input { Value = FuID { "CircleBrush" }, },
ApplyControls = Input { Value = 0, },
["PaintApplyColor.Red"] = Input { Value = 0.75, },
["PaintApplyColor.Green"] = Input { Value = 0.35, },
["PaintApplyColor.Blue"] = Input { Value = 0, },
StrokeControls = Input { Value = 1, },
StrokeAnimation = Input { Value = 5, },
WriteOnStart = Input {
Value = -1,
Expression = "(RubMe*2)-1",
},
WriteOnEnd = Input {
Value = -0.998,
Expression = "WriteOnStart+.002",
},
Spacing = Input { Value = 0.1, },
Polyline = Input {
Value = Polyline {
Closed = true,
Points = {
{ X = 2.32639492614428e-06, Y = -0.213135677571112, LX = 0.00402032192312973, LY = 0, RX = -0.00402032195444663, RY = 0 },
{ X = -0.00888740126869408, Y = -0.206769802076762, LX = 0.00129475943014024, LY = -0.00380452866147174, RX = -0.0089319638287822, RY = 0.0263127022666174 },
{ X = -0.0768106528558502, Y = -0.0933610558482956, LX = 0.0293760284902491, LY = -0.0154292170900837, RX = -0.00948082925313487, RY = 0.00498200923643199 },
{ X = -0.102410302622463, Y = -0.085855211049474, LX = 0.00750585206880572, LY = 0, RX = -0.0132947402787651, RY = 0 },
{ X = -0.128699531635857, Y = -0.0995111850562698, LX = 0.00548396322474276, LY = 0.00576074158723694, RX = -0.00050976681434145, RY = -0.00053165878710737 },
{ Linear = true, X = -0.130228832078882, Y = -0.101106161417592, LX = 0.000509772441588785, LY = 0.000531664530860843, RX = -0.00773102751566856, RY = -0.00791867381459255 },
{ X = -0.152586883155491, Y = -0.128474372397704, LX = 0.000145425879289451, LY = 0.000192337461709768, RX = -0.00168412553284281, RY = -0.00224706442961486 },
{ X = -0.159679918122352, Y = -0.132208558370287, LX = 0.00280062102486212, LY = 0.000121970096817137, RX = -0.00281000332638687, RY = -0.000145425881666106 },
{ X = -0.167073165406751, Y = -0.12909834730757, LX = 0.00187177178031783, LY = -0.00209225627885945, RX = -0.00041282185763275, RY = 0.000455042274890682 },
{ X = -0.247610953469023, Y = -0.0829608178545156, LX = 0.0390022838397943, LY = -0.00035183682446327, RX = -0.000214231147116273, RY = 0 },
{ Linear = true, X = -0.248253646910372, Y = -0.0829608178545156, LX = 0.000214229516030118, LY = 0, RX = -0.0127646394843048, RY = 0 },
{ X = -0.276203563994078, Y = -0.0934221147674325, LX = 0.00577950597554222, LY = 0.00694291314966455, RX = -0.00991710689813319, RY = -0.0119108488242006 },
{ X = -0.282616378979898, Y = -0.129450169801776, LX = -0.00100390770651337, LY = 0.00544174251221163, RX = 0.00379983755321089, RY = -0.0206317105666933 },
{ X = -0.262838460934425, Y = -0.176751075671328, LX = -0.000159499362753501, LY = 0.000262704826602511, RX = 0.00206410928816392, RY = -0.00342454495536282 },
{ X = -0.263664098493691, Y = -0.187601739513489, LX = 0.00255668090113159, LY = 0.00307270801066539, RX = -0.00255668082283944, RY = -0.00307270814488048 },
{ X = -0.274186364849017, Y = -0.19037422961432, LX = 0.00374354356063544, LY = -0.0014120383949292, RX = -0.00602813735293334, RY = 0.00227521137445352 },
{ X = -0.440961702493029, Y = -0.0213283528916337, LX = 0.0188772184591492, LY = -0.112043608738168, RX = -0.0129006830510247, RY = 0.0765643811184634 },
{ X = -0.286861870766543, Y = 0.177482887933691, LX = -0.112273474452211, LY = -0.0516402632176274, RX = 0.0398279269466181, RY = 0.0183236610899282 },
{ X = -0.17656338928683, Y = 0.214815119963597, LX = -0.00286160612569841, LY = -0.000764658679859087, RX = 0.0040109396395005, RY = 0.00107896621881298 },
{ X = -0.166120882486777, Y = 0.210639992675793, LX = -0.00216731481073196, LY = 0.00355120634358863, RX = 0.00216731475257226, RY = -0.00355589736460971 },
{ X = -0.167190451501717, Y = 0.19944219491997, LX = 0.00280531212193846, LY = 0.00308209048443264, RX = -0.00217200591004529, RY = -0.0024065637837003 },
{ X = -0.177905039136047, Y = 0.0937973443736639, LX = -0.042220417257899, LY = 0.045996800455372, RX = 0.0128303156889282, RY = -0.0139796492698376 },
{ X = -0.131486051687628, Y = 0.0724291206520663, LX = -0.0175355462407498, LY = 0, RX = 0.0343345815456182, RY = 0 },
{ X = -0.0627371446458593, Y = 0.123290663432715, LX = -0.00359811787358122, LY = -0.0235214632837973, RX = 0.00654885583244746, RY = 0.0427505180523594 },
{ X = -0.0553251072485956, Y = 0.224080184605522, LX = -9.38231539182599e-06, LY = -0.000577012385129416, RX = 6.09850471503526e-05, RY = 0.00423142404073606 },
{ X = -0.0482836824584024, Y = 0.233040294663329, LX = -0.00410007169188609, LY = -0.00105551040348595, RX = 0.00410945394643547, RY = 0.00106020158892062 },
{ X = -0.0377895654816822, Y = 0.228593068645901, LX = -0.00209694737593569, LY = 0.00367786736272291, RX = 0.00778575186423569, RY = -0.0136825426298747 },
{ Linear = true, X = -0.0144323098889751, Y = 0.187545440756277, LX = -0.00778575764294104, LY = 0.0136825430026944, RX = 0.00474589337012998, RY = 9.53821919694731e-05 },
{ Linear = true, X = -0.000194629778585143, Y = 0.187831587332185, LX = -0.00474588759142464, LY = -9.53868667789015e-05, RX = 0.00487098183577089, RY = -9.5382191969362e-05 },
{ Linear = true, X = 0.0144183157287275, Y = 0.187545440756277, LX = -0.00487098500473837, LY = 9.53868667789015e-05, RX = 0.00778575186423558, RY = 0.0136825426298747 },
{ Linear = true, X = 0.0377755713214346, Y = 0.228593068645901, LX = -0.00778575764294109, LY = -0.0136825430026943, RX = 0.00209225623300247, RY = 0.00367317630143726 },
{ X = 0.0482649997176114, Y = 0.233040294663329, LX = -0.00410476278896255, LY = 0.00104612813942973, RX = 0.00410007163148929, RY = -0.00105551043144747 },
{ X = 0.055311113088348, Y = 0.224080184605522, LX = -6.09850484085683e-05, LY = 0.00423611518478761, RX = 9.38231494618247e-06, RY = -0.000577012369191277 },
{ X = 0.0627184619050684, Y = 0.123290663432715, LX = -0.00654416458549767, LY = 0.0427505176586618, RX = 0.00360750009681388, RY = -0.0235214635701229 },
{ X = 0.13147205752738, Y = 0.0724291206520663, LX = -0.0343298896365406, LY = 0, RX = 0.0175402377919205, RY = 0 },
{ X = 0.177895733556343, Y = 0.0937973443736639, LX = -0.0128303151968062, LY = -0.0139796493593144, RX = 0.0423846077694575, RY = 0.0461703718502492 },
{ X = 0.167185798711864, Y = 0.19944219491997, LX = 0.00218607933884463, LY = -0.00240656383738624, RX = -0.00280531216891378, RY = 0.00308209045982655 },
{ X = 0.166116229696925, Y = 0.210639992675793, LX = -0.00216731481073207, LY = -0.00355589744066487, RX = 0.00216262359509911, RY = 0.00355589736460971 },
{ X = 0.176558736496978, Y = 0.214815119963597, LX = -0.00402501302020619, LY = 0.00108834850244233, RX = 0.00285691490111795, RY = -0.000769349825588295 },
{ X = 0.286852547291493, Y = 0.177482887933691, LX = -0.0398279258728973, LY = 0.01831896979824, RX = 0.112278162961173, RY = -0.0516402614638836 },
{ X = 0.440957098915377, Y = -0.0213283528916337, LX = 0.0129006830510247, LY = 0.0765643771099059, RX = -0.0188819088292271, RY = -0.112043605087518 },
{ X = 0.274177059269313, Y = -0.19037422961432, LX = 0.00602813719634909, LY = 0.00227521144156095, RX = -0.00374354366353369, RY = -0.00140734724193003 },
{ X = 0.263659463599185, Y = -0.187601739513489, LX = 0.00255668090113159, LY = -0.00306801691358904, RX = -0.00255668090113148, RY = 0.00306801691358904 },
{ X = 0.262829119564029, Y = -0.176751075671328, LX = -0.00205941817990307, LY = -0.00342454504483958, RX = 0.000159499354085324, RY = 0.000262704818493664 },
{ X = 0.2826117082947, Y = -0.129445445430542, LX = -0.00379045537024281, LY = -0.0205707265932639, RX = 0.000999216541770265, RY = 0.00544174266879582 },
{ X = 0.276194222623682, Y = -0.0934173546055068, LX = 0.00991241534696252, LY = -0.0119108489852587, RX = -0.00577950600685906, RY = 0.00693822190271476 },
{ X = 0.24824899412052, Y = -0.0829607820638244, LX = 0.0127646392785083, LY = 0, RX = -0.000212668286935114, RY = 0 },
{ Linear = true, X = 0.247610989259715, Y = -0.0829607820638244, LX = 0.000212665805353951, LY = 0, RX = -0.0390069743888256, RY = -0.000351836810482564 },
{ X = 0.167068476826208, Y = -0.12909834730757, LX = 0.000412821855395817, LY = 0.000459733420340336, RX = -0.0018717718317669, RY = -0.00208287391805639 },
{ X = 0.159675193751117, Y = -0.132208558370287, LX = 0.00284753255485493, LY = -0.000136043562805277, RX = -0.00280531216891378, RY = 0.000121970094300705 },
{ X = 0.152577470203713, Y = -0.128474372397704, LX = 0.00168881675742349, LY = -0.0022423732027973, RX = -0.00014073472419307, RY = 0.000197028613870276 },
{ X = 0.130219383336413, Y = -0.101106161417592, LX = 0.00772633614792517, LY = -0.00790929145043429, RX = -0.000508203954160291, RY = 0.000528533066745163 },
{ Linear = true, X = 0.128694771473932, Y = -0.0995205622173565, LX = 0.000508208730912729, LY = -0.000528537074556912, RX = -0.00548396308605392, RY = 0.00576543253443984 },
{ X = 0.102405506669846, Y = -0.085855211049474, LX = 0.0132947407977302, LY = 0, RX = -0.00750116079948671, RY = 0 },
{ X = 0.0768058569032334, Y = -0.0933610558482956, LX = 0.00948552075956721, LY = 0.00498200940643789, RX = -0.0294088661988633, RY = -0.015447981558918 },
{ X = 0.00888260531607732, Y = -0.206765077705528, LX = 0.0089225812811965, LY = 0.0263033193611247, RX = -0.00128998441172246, RY = -0.0038092359023868 }
}
},
},
CommentsNest = Input { Value = 0, },
FrameRenderScriptNest = Input { Value = 0, },
RubMe = Input {
SourceOp = "PolylineStroke2RubMe",
Source = "Value",
},
},
UserControls = ordered() {
RubMe = {
INPID_InputControl = "SliderControl",
INP_Integer = false,
INP_MinScale = 0,
INP_MaxScale = 1,
INP_MinAllowed = -1000000,
INP_MaxAllowed = 1000000,
ICS_ControlPage = "Controls"
}
}
},
PolylineStroke1 = PolylineStroke {
Points = {
},
Brushes = { "ImageBrush" },
ApplyModes = { "PaintApplyColor" },
CtrlWZoom = false,
Inputs = {
["SoftBrush.Size"] = Input { Value = 0.0359, },
["SoftBrush.Softness"] = Input { Value = 0.001, },
BrushControls = Input { Value = 1, },
BrushShape = Input { Value = FuID { "ImageBrush" }, },
["ImageBrush.Size"] = Input { Value = 0.5, },
["ImageBrush.ImageSource"] = Input { Value = 0, },
["ImageBrush.SourceTool"] = Input {
SourceOp = "custombrushshape",
Source = "Output",
},
["ImageBrush.Brush"] = Input { UserString1 = "bomb", },
ApplyControls = Input { Value = 0, },
["PaintApplyColor.Red"] = Input { Value = 0.75, },
["PaintApplyColor.Green"] = Input { Value = 0.35, },
["PaintApplyColor.Blue"] = Input { Value = 0, },
StrokeControls = Input { Value = 1, },
StrokeAnimation = Input { Value = 4, },
WriteOnStart = Input {
SourceOp = "PolylineStroke1Start",
Source = "Value",
Expression = "PolylineStroke2.RubMe*2",
},
WriteOnEnd = Input {
SourceOp = "PolylineStroke1End",
Source = "Value",
Expression = "WriteOnStart+.002",
},
Spacing = Input { Value = 0, },
Polyline = Input {
Value = Polyline {
Closed = true,
Points = {
{ Linear = true, X = 0.0162864685058594, Y = 0.0410648204662182, LX = -0.00200868182712133, LY = 8.94993911555453e-05, RX = 0.004468748304579, RY = 0.0685185185185185 },
{ Linear = true, X = 0.0296927134195963, Y = 0.246620376021774, LX = -0.00446874996026358, LY = -0.0685185185185185, RX = 0.00895659128824866, RY = 0.0231481481481481 },
{ Linear = true, X = 0.0565624872843424, Y = 0.316064820466218, LX = -0.00895659724871312, LY = -0.0231481481481481, RX = 0.00430208841959634, RY = -0.0250339460961613 },
{ Linear = true, X = 0.0694687525431315, Y = 0.240962982177734, LX = -0.00430208345254246, LY = 0.0250339508056642, RX = -0.00162847306993252, RY = -0.0705524774245274 },
{ Linear = true, X = 0.0645833333333333, Y = 0.0293055499041522, LX = 0.00162847302854063, LY = 0.0705524727150245, RX = 0.0174166666666666, RY = -0.00731481481481477 },
{ X = 0.106770833333333, Y = -0.00063889114945026, LX = -0.0121458331743878, LY = 0.0131018514986391, RX = -0.00694444444444442, RY = -0.140570991421923 },
{ Linear = true, X = 0.0859375, Y = -0.42235186541522, LX = 0.00694444427887597, LY = 0.14057098671242, RX = -0.0746136172112069, RY = -0.0403482695631999 },
{ X = -0.08233855565389, Y = -0.418898179796007, LX = 0.0914843320249018, LY = -0.0451807113505232, RX = -0.00754166709052195, RY = 0.138271604938272 },
{ Linear = true, X = -0.104963556925456, Y = -0.00408336498119211, LX = 0.00754166642824805, LY = -0.138271600228769, RX = 0, RY = 0 },
{ Linear = true, X = -0.104963556925456, Y = -0.00408336498119211, LX = 0, LY = 0, RX = 0.00164561639080152, RY = 0.00145421304777782 },
{ X = -0.099995485941569, Y = 0.000165755660445632, LX = -0.00166616042455037, LY = -0.00137829758502833, RX = 0.00166616043245105, RY = 0.00137829756647045 },
{ X = -0.0949674288431803, Y = 0.00418571189597794, LX = -0.00168559662997725, LY = -0.00130146565260714, RX = 0.00168559660554224, RY = 0.00130146562327382 },
{ X = -0.089882755279541, Y = 0.00797390407986109, LX = -0.00170391201972958, LY = -0.00122376834904703, RX = 0.00170391198651454, RY = 0.0012237683055214 },
{ X = -0.0847448031107585, Y = 0.0115277325665509, LX = -0.00172109442452589, LY = -0.00114525722132797, RX = -0.00392186906602648, RY = 0.0417160599320022 },
{ Linear = true, X = -0.0965104103088379, Y = 0.136675912362558, LX = 0.00392187113563214, LY = -0.0417160634641295, RX = 0.00607638888888884, RY = 0.0213672873414592 },
{ Linear = true, X = -0.0782812436421712, Y = 0.200777774386936, LX = -0.0060763890544574, LY = -0.0213672832206444, RX = 0.00942708121405711, RY = -0.0163395069263599 },
{ Linear = true, X = -0.05, Y = 0.151759253607856, LX = -0.009427081545194, LY = 0.0163395051602964, RX = 0.00381944444444438, RY = -0.0387561751000676 },
{ Linear = true, X = -0.0385416666666667, Y = 0.0354907283076533, LX = -0.00381944452722865, LY = 0.038756169213189, RX = 0.006835068596734, RY = 0.00146604938271599 },
{ Linear = true, X = -0.0180364608764649, Y = 0.0398888764558015, LX = -0.00683506925900773, LY = -0.00146604941950901, RX = 0.00683506925900779, RY = 0.00146604941950901 },
{ X = -0.033942699432373, Y = 0.154277773256655, LX = 0.00795312523841862, LY = -0.0625370378847476, RX = -0.00848437499999999, RY = 0.0669351851851852 },
{ X = -0.0498489379882813, Y = 0.295999993218316, LX = -0.00123958339293795, LY = -0.00408333319204823, RX = -0.0205052083333334, RY = 0.0383333333333333 },
{ X = -0.0615156173706055, Y = 0.368277768735532, LX = -0.00671874980131787, LY = -0.0119444440912316, RX = 0.0116666666666667, RY = 0.0207407407407407 },
{ X = -0.0631041526794434, Y = 0.42105554651331, LX = -0.00335937490065891, LY = -0.000611111135394471, RX = 0.0116666666666667, RY = 0.00185185185185188 },
{ X = -0.0341145833333333, Y = 0.295990724916811, LX = 0.0267760415871938, LY = 0.0942592620849609, RX = 0.00353645833333327, RY = -0.00848148148148153 },
{ X = -0.0102499961853028, Y = 0.168722195095486, LX = -0.00990104178587592, LY = 0.0593888883237486, RX = 0.0111354166666667, RY = -0.0663055555555556 },
{ X = 0.0102604230244955, Y = 0.0413333186396846, LX = 0.000531249990065819, LY = -0.00471296310424807, RX = 0.00200868182712122, RY = -8.94993911555453e-05 }
}
},
},
},
},
PolylineStroke1Start = BezierSpline {
SplineColor = { Red = 232, Green = 6, Blue = 244 },
NameSet = true,
KeyFrames = {
[14] = { 0, Flags = { Linear = true } }
}
},
PolylineStroke1End = BezierSpline {
SplineColor = { Red = 72, Green = 233, Blue = 54 },
NameSet = true,
KeyFrames = {
[14] = { 0, Flags = { Linear = true } }
}
},
PolylineStroke2RubMe = BezierSpline {
SplineColor = { Red = 240, Green = 19, Blue = 57 },
NameSet = true,
KeyFrames = {
[0] = { 0, RH = { 66.6666666666667, 0.333333333333333 }, Flags = { Linear = true } },
[200] = { 1, LH = { 133.333333333333, 0.666666666666667 }, Flags = { Linear = true } }
}
}
}
}

Last edited by intelligent machine on Thu May 16, 2019 1:00 pm, edited 1 time in total.

Fusionator
Posts: 1410
Joined: Fri Aug 08, 2014 1:11 pm
Been thanked: 14 times

Re: Dynamic switching between polylines

Could you sample XY along the paths using Duplicate2D and record to separate 1D images as RG, then crop/merge the two images together to concatenate them? Then use a Probe to sample along the combined image?

(I downloaded your .comp, double clicked, it launched F16 and opened the comp, I immediately selected all the nodes and copy/pasted into F9. That's put off I am by the F16 interface, even a very small technical comp is too much for me to deal with in that interface.)

Code: Select all

{
Tools = ordered() {
Crop3 = Crop {
CtrlWZoom = false,
Inputs = {
XSize = Input { Value = 100, },
YSize = Input { Value = 2, },
Input = Input {
SourceOp = "TimeStretcher1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 1430, 445.5 } },
},
Crop4 = Crop {
CtrlWZoom = false,
NameSet = true,
Inputs = {
XOffset = Input {
SourceOp = "Crop4XOffset",
Source = "Value",
},
XSize = Input { Value = 1, },
YSize = Input { Value = 2, },
Input = Input {
SourceOp = "Merge1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 1595, 478.5 } },
},
Crop4XOffset = BezierSpline {
SplineColor = { Red = 250, Green = 59, Blue = 49 },
NameSet = true,
KeyFrames = {
[0] = { 0, RH = { 33.3333333333333, 33 }, Flags = { Linear = true } },
[100] = { 99, LH = { 66.6666666666667, 66 }, Flags = { Linear = true } }
}
},
Merge1 = Merge {
CtrlWZoom = false,
Inputs = {
Background = Input {
SourceOp = "Crop3",
Source = "Output",
},
Foreground = Input {
SourceOp = "TimeStretcher1_1",
Source = "Output",
},
Center = Input { Value = { 0.75, 0.5 }, },
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 1485, 478.5 } },
},
CtrlWZoom = false,
NameSet = true,
Inputs = {
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
ClippingMode = Input { Value = FuID { "None" }, },
Center = Input {
SourceOp = "Expression1",
Source = "PointResult",
},
Width = Input { Value = 0.0270060689556587, },
Height = Input { Value = 0.0270060689556587, },
},
ViewInfo = OperatorInfo { Pos = { 1705, 478.5 } },
},
Expression1 = Expression {
CtrlWZoom = false,
Inputs = {
n1 = Input {
SourceOp = "Probe1",
Source = "Result",
},
n2 = Input {
SourceOp = "Probe1",
Source = "Green",
},
PointExpressionX = Input { Value = "n1", },
PointExpressionY = Input { Value = "n2", },
},
},
Probe1 = Probe {
CtrlWZoom = false,
Inputs = {
ImageToProbe = Input {
SourceOp = "Crop4",
Source = "Output",
},
},
},
TimeStretcher1 = TimeStretcher {
CtrlWZoom = false,
Inputs = {
SourceTime = Input { Value = 0, },
InterpolateBetweenFrames = Input { Value = 0, },
SampleSpread = Input { Disabled = true, },
Input = Input {
SourceOp = "Duplicate1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 1320, 412.5 } },
},
Duplicate2 = Fuse.Duplicate {
CtrlWZoom = false,
NameSet = true,
Inputs = {
Copies = Input { Value = 50, },
TimeOffset = Input { Value = 1, },
ApplyMode = Input { Value = FuID { "Lighten" }, },
RandomSeed = Input { Value = 26024, },
Background = Input {
SourceOp = "Crop2",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 1210, 511.5 } },
},
TimeStretcher1_1 = TimeStretcher {
CtrlWZoom = false,
Inputs = {
SourceTime = Input { Value = 0, },
InterpolateBetweenFrames = Input { Value = 0, },
SampleSpread = Input { Disabled = true, },
Input = Input {
SourceOp = "Duplicate2",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 1320, 511.5 } },
},
Duplicate1 = Fuse.Duplicate {
CtrlWZoom = false,
Inputs = {
Copies = Input { Value = 50, },
TimeOffset = Input { Value = 1, },
ApplyMode = Input { Value = FuID { "Lighten" }, },
RandomSeed = Input { Value = 26024, },
Background = Input {
SourceOp = "Crop1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 1210, 412.5 } },
},
Crop1 = Crop {
CtrlWZoom = false,
Inputs = {
XOffset = Input {
SourceOp = "Crop1XOffset",
Source = "Value",
},
XSize = Input { Value = 50, },
YSize = Input { Value = 2, },
Input = Input {
SourceOp = "Background1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 1100, 412.5 } },
},
Crop1XOffset = BezierSpline {
SplineColor = { Red = 250, Green = 59, Blue = 49 },
NameSet = true,
KeyFrames = {
[0] = { 0, RH = { 16.3333333333333, -16.3333333333333 }, Flags = { Linear = true } },
[49] = { -49, LH = { 32.6666666666667, -32.6666666666667 }, Flags = { Linear = true } }
}
},
Crop2 = Crop {
CtrlWZoom = false,
NameSet = true,
Inputs = {
XOffset = Input {
SourceOp = "Crop2XOffset",
Source = "Value",
},
XSize = Input { Value = 50, },
YSize = Input { Value = 2, },
Input = Input {
SourceOp = "Background2",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 1100, 511.5 } },
},
Crop2XOffset = BezierSpline {
SplineColor = { Red = 250, Green = 59, Blue = 49 },
NameSet = true,
KeyFrames = {
[0] = { 0, RH = { 16.3333333333333, -16.3333333333333 }, Flags = { Linear = true } },
[49] = { -49, LH = { 32.6666666666667, -32.6666666666667 }, Flags = { Linear = true } }
}
},
Background1 = Background {
CtrlWZoom = false,
Inputs = {
Width = Input { Value = 1, },
Height = Input { Value = 2, },
PixelAspect = Input { Value = { 100, 100 }, },
Depth = Input { Value = 3, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
TopLeftRed = Input {
Value = 0.813696612665685,
Expression = "Ellipse1.Center.X",
},
TopLeftGreen = Input {
Value = 0.86173001310616,
Expression = "Ellipse1.Center.Y",
},
},
ViewInfo = OperatorInfo { Pos = { 990, 412.5 } },
},
Background2 = Background {
CtrlWZoom = false,
NameSet = true,
Inputs = {
Width = Input { Value = 1, },
Height = Input { Value = 2, },
PixelAspect = Input { Value = { 100, 100 }, },
Depth = Input { Value = 3, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
TopLeftRed = Input {
Value = 0.314432989690722,
Expression = "Ellipse2.Center.X",
},
TopLeftGreen = Input {
Value = 0.178899082568807,
Expression = "Ellipse2.Center.Y",
},
},
ViewInfo = OperatorInfo { Pos = { 990, 511.5 } },
},
CtrlWZoom = false,
NameSet = true,
Inputs = {
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
ClippingMode = Input { Value = FuID { "None" }, },
Center = Input {
SourceOp = "Path1_1",
Source = "Position",
},
Width = Input { Value = 0.0270060689556587, },
Height = Input { Value = 0.0270060689556587, },
},
ViewInfo = OperatorInfo { Pos = { 825, 511.5 } },
},
Path1_1 = PolyPath {
DrawMode = "InsertAndModify",
Inputs = {
Displacement = Input {
SourceOp = "Path1_1Displacement",
Source = "Value",
},
PolyLine = Input {
Value = Polyline {
Points = {
{ Linear = true, LockY = true, X = 0.316642120765832, Y = 0.0235910878112713, RX = -0.0740766948575161, RY = -0.0145882797686239 },
{ X = 0.0944120361932831, Y = -0.0201737514945985, LX = 0.0139771079314992, LY = 0.129819957361908, RX = -0.0130018252820123, RY = -0.120761491719882 },
{ X = -0.0457363304502395, Y = -0.0215338549688848, LX = 0.02631462938974, LY = -0.19259366083905, RX = -0.0189969640022496, RY = 0.139036561143221 },
{ LockY = true, X = -0.185567010309278, Y = -0.321100917431193, LX = 0.0280827333761867, LY = 0.075804247581273 }
}
},
},
},
},
Path1_1Displacement = BezierSpline {
SplineColor = { Red = 255, Green = 0, Blue = 255 },
NameSet = true,
KeyFrames = {
[0] = { 0, RH = { 16.3333333333333, 0.333333333333333 }, Flags = { Linear = true, LockedY = true } },
[49] = { 1, LH = { 32.6666666666667, 0.666666666666667 }, Flags = { Linear = true, LockedY = true } }
}
},
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 = 0.0270060689556587, },
Height = Input { Value = 0.0270060689556587, },
},
ViewInfo = OperatorInfo { Pos = { 825, 412.5 } },
},
Path1 = PolyPath {
DrawMode = "InsertAndModify",
Inputs = {
Displacement = Input {
SourceOp = "Path1Displacement",
Source = "Value",
},
PolyLine = Input {
Value = Polyline {
Points = {
{ Linear = true, LockY = true, X = -0.383652430044183, Y = -0.304062909567497, RX = 0.0755277581779935, RY = 0.200819788707356 },
{ X = -0.157069155510202, Y = 0.298396456554571, LX = -0.110318315628985, LY = -0.141101004888326, RX = 0.0870957137802527, RY = 0.111398480531471 },
{ LockY = true, X = 0.313696612665685, Y = 0.36173001310616, LX = -0.156921922725296, LY = -0.0211111855171963 }
}
},
},
},
},
Path1Displacement = BezierSpline {
SplineColor = { Red = 255, Green = 0, Blue = 255 },
NameSet = true,
KeyFrames = {
[0] = { 0, RH = { 16.3333333333333, 0.333333333333333 }, Flags = { Linear = true, LockedY = true } },
[49] = { 1, LH = { 32.6666666666667, 0.666666666666667 }, Flags = { Linear = true, LockedY = true } }
}
}
}
}
Last edited by Chad on Thu May 16, 2019 2:03 pm, edited 1 time in total.

intelligent machine
Fusionista
Posts: 407
Joined: Fri May 13, 2016 10:01 pm
Location: Austin, Texas, USA
Been thanked: 29 times
Contact:

Re: Dynamic switching between polylines

Meh...I gave it a week and I'm over it now...this new one takes some getting used to for sure...a few more weeks and I'll forget what I'm missing.
That, and 16 seems more stable as a beta than 9.02 release.

SirEdric
Fusionator
Posts: 1873
Joined: Tue Aug 05, 2014 10:04 am
Real name: Eric Westphal
Been thanked: 112 times
Contact:

Re: Dynamic switching between polylines

Thanks guys!

A Paint won't cut the mustard, since that simplified comp is just the top of the iceberg....
Further down I use the X/Y Position of the Ellipse to drive some Particle Emitters.
The reason I use a Path rather than XYPath is that I need independend control over time & space in this case.
So at the end of the day one should be able to just select (or draw a new) Polyline,
and the rest of the setup follows along nicely.

Something I used many times but didn't think of applying in this case....hmmm.....interesting.

intelligent machine
Fusionista
Posts: 407
Joined: Fri May 13, 2016 10:01 pm