[Script] The Elusive Tracker Reference Frame

User avatar
SecondMan
Site Admin
Posts: 3580
Joined: Thu Jul 31, 2014 5:31 pm
Answers: 5
Location: Vancouver, Canada
Been thanked: 104 times
Contact:

[Script] The Elusive Tracker Reference Frame

#1

Post by SecondMan » Tue Dec 02, 2014 11:39 am

Hi all,

As many of you know or remember, many people have been trying to get a simple reference frame slider in the Tracker over the years but it just didn't happen. The truly maddening part is that the functionality is there in Fusion, it's just not easily available to the user.

There was a way to "fix" this by hand - dragging around controls in the viewer - but forget that - that's just inaccurate and a nutty workflow. Luckily there's a much easier solution with a simple tool script - not ideal either but it works and it's better than nothing. I've attached it here, and it also works for both Fusion 6 and 7, unlike the version you can/could find online. Copy it to the Scripts/Tool directory.

Basically take your tracker, go to the frame you want to be your reference frame, and run this script from the tracker. Your reference frame will now be set to the frame you're on. I usually put a note in the Tracker's info tab to remind of which frame the reference frame is set to.

With Fusion 7 you can also make an extra button in the Tracker to execute this script. So it's like it's actually there: https://www.steakunderwater.com/wesuckle ... p?f=6&t=60

Enjoy (kind of)! ;)
You do not have the required permissions to view the files attached to this post.

User avatar
DJMoney
Posts: 36
Joined: Wed Oct 15, 2014 11:20 pm
Location: Los Angeles

Re: [Script] The Elusive Tracker Reference Frame

#2

Post by DJMoney » Tue Dec 02, 2014 12:25 pm

Thanks! I have a list of tools/scripts that I am going to tackle, and this is functionality is on there. I may still do it, but this will work in the meantime.

User avatar
SecondMan
Site Admin
Posts: 3580
Joined: Thu Jul 31, 2014 5:31 pm
Answers: 5
Location: Vancouver, Canada
Been thanked: 104 times
Contact:

Re: [Script] The Elusive Tracker Reference Frame

#3

Post by SecondMan » Tue Dec 02, 2014 1:37 pm

Looking forward to that - curious to see what your list looks like. :)

User avatar
DJMoney
Posts: 36
Joined: Wed Oct 15, 2014 11:20 pm
Location: Los Angeles

Re: [Script] The Elusive Tracker Reference Frame

#4

Post by DJMoney » Tue Dec 02, 2014 1:49 pm

It's mostly issues that I run into at work. Along with the tracker reference frame, I also need to make clean plates from frames that are not at the start, end, or reference frame. There's an easy workflow to it, but automating it would help.

As I mentioned in the fuse thread, I want to come up with a better Mocha Pro to Fusion pipeline for importing shapes.

I have my own method for keying greenscreens, and want to make a system for that, too. With KaK being posted, I may move that one down the list. :)

User avatar
Tilt
Global Moderator
Posts: 336
Joined: Sat Aug 02, 2014 4:10 am
Location: Munich, Germany
Contact:

Re: [Script] The Elusive Tracker Reference Frame

#5

Post by Tilt » Tue Dec 02, 2014 2:00 pm

I had a Fuse on vfxpedia to change the reference frame after you have connected a tracker to a transform (so you could get several matchmoves with different reference frames from a single track). I'll post it to its own topic...

User avatar
ernesttx
Posts: 31
Joined: Wed Sep 03, 2014 5:59 am
Been thanked: 1 time

Re: [Script] The Elusive Tracker Reference Frame

#6

Post by ernesttx » Tue Dec 02, 2014 6:19 pm

For those of us who aren't as experienced as you guys, what would I use a reference frame for? That is, is it part of normal tracking, or is it a special case?

User avatar
SecondMan
Site Admin
Posts: 3580
Joined: Thu Jul 31, 2014 5:31 pm
Answers: 5
Location: Vancouver, Canada
Been thanked: 104 times
Contact:

Re: [Script] The Elusive Tracker Reference Frame

#7

Post by SecondMan » Tue Dec 02, 2014 11:03 pm

Say you have a shot going from frame 0 to 20 and an element you need to matchmove into it.

The element you have matches frame 10 of this sequence.

So in order to fit the entire sequence, your element's relative transform - running from 1 to 20 - has to be zero at frame 10 (because it already fits that frame). That's your reference frame.

Now imagine you have another element for that same sequence, which this time matches frame 15 and you need to matchmove that into it as well.

For this you need the same transform curve, but shifted so the element's relative transform at frame 15 is zero. In other words, for that one you want to set your reference frame to 15.

Fusion, for some reason, doesn't offer this out of the box. This script does it, and Tilt's excellent PositionHelper Modifier does it as well.

Here's a little comp to illustrate the concept:

Code: Select all

{
	Tools = ordered() {
		Ellipse2 = EllipseMask {
			Inputs = {
				MaskWidth = Input { Value = 1280, },
				MaskHeight = Input { Value = 720, },
				PixelAspect = Input { Value = { 1, 1, }, },
				ClippingMode = Input { Value = FuID { "None", }, },
				Center = Input { Value = { 0.323037843088031, 0.488603195057281, }, },
				Width = Input { Value = 0.0142159327932784, },
				Height = Input { Value = 0.0142159327932784, },
			},
			ViewInfo = OperatorInfo { Pos = { 770, 16.5, }, },
		},
		Note1 = Note {
			Inputs = {
				Comments = Input { Value = "Element matching frame 10", },
			},
			ViewInfo = StickyNoteInfo {
				Pos = { 770, -82.5, },
				Flags = {
					Expanded = true,
				},
				Size = { 112, 78.3, },
			},
		},
		Background2 = Background {
			Inputs = {
				GlobalOut = Input { Value = 20, },
				Width = Input { Value = 1280, },
				Height = Input { Value = 720, },
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
				TopLeftRed = Input { Value = 0.503875968992248, },
				TopLeftBlue = Input { Value = 0.589147286821705, },
				Gradient = Input {
					Value = Gradient {
						Colors = {
							[0] = { 0, 0, 0, 1, },
							[1] = { 1, 1, 1, 1, },
						},
					},
				},
				EffectMask = Input {
					SourceOp = "Ellipse2",
					Source = "Mask",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 770, 49.5, }, },
		},
		Ellipse1 = EllipseMask {
			Inputs = {
				MaskWidth = Input { Value = 1280, },
				MaskHeight = Input { Value = 720, },
				PixelAspect = Input { Value = { 1, 1, }, },
				ClippingMode = Input { Value = FuID { "None", }, },
				Center = Input {
					SourceOp = "Shake1",
					Source = "Position",
				},
				Width = Input { Value = 0.0498301847549443, },
				Height = Input { Value = 0.0498301847549443, },
			},
			ViewInfo = OperatorInfo { Pos = { 495, 82.5, }, },
		},
		Shake1 = Shake {
		},
		Background2_1 = Background {
			Inputs = {
				GlobalOut = Input { Value = 20, },
				Width = Input { Value = 1280, },
				Height = Input { Value = 720, },
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
				TopLeftRed = Input { Value = 0.108527131782946, },
				TopLeftGreen = Input { Value = 0.503875968992248, },
				TopLeftBlue = Input { Value = 0.372093023255814, },
				Gradient = Input {
					Value = Gradient {
						Colors = {
							[0] = { 0, 0, 0, 1, },
							[1] = { 1, 1, 1, 1, },
						},
					},
				},
				EffectMask = Input {
					SourceOp = "Ellipse2_1",
					Source = "Mask",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 990, 49.5, }, },
		},
		Ellipse2_1 = EllipseMask {
			Inputs = {
				MaskWidth = Input { Value = 1280, },
				MaskHeight = Input { Value = 720, },
				PixelAspect = Input { Value = { 1, 1, }, },
				ClippingMode = Input { Value = FuID { "None", }, },
				Center = Input { Value = { 0.281847200217251, 0.485117299526888, }, },
				Width = Input { Value = 0.0211358334465321, },
				Height = Input { Value = 0.0211358334465321, },
			},
			ViewInfo = OperatorInfo { Pos = { 990, 16.5, }, },
		},
		Note1_1 = Note {
			Inputs = {
				Comments = Input { Value = "A second element matching frame 15", },
			},
			ViewInfo = StickyNoteInfo {
				Pos = { 990, -82.5, },
				Flags = {
					Expanded = true,
				},
				Size = { 121, 74.3, },
			},
		},
		Tracker1_1 = Tracker {
			Trackers = {
				{
					PatternTime = 15,
					PatternX = 0.27178718149662,
					PatternY = 0.483762616291642,
				},
			},
			CtrlWZoom = false,
			Inputs = {
				Input = Input {
					SourceOp = "Tracker1",
					Source = "Output",
				},
				Foreground = Input {
					SourceOp = "Background2_1",
					Source = "Output",
				},
				Operation = Input { Value = 1, },
				MatchMoveSettings = Input { Value = 1, },
				Reference = Input { Value = 0, },
				Name1 = Input { Value = "Tracker 1", },
				PatternCenter1 = Input { Value = { 0.27178718149662, 0.483762616291642, }, },
				PatternWidth1 = Input { Value = 0.0593525179856115, },
				PatternHeight1 = Input { Value = 0.0932225063938619, },
				SearchWidth1 = Input { Value = 0.243525179856115, },
				SearchHeight1 = Input { Value = 0.251790281329923, },
				TrackedCenter1 = Input {
					SourceOp = "Tracker1Tracker1Path_1",
					Source = "Position",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 990, 148.5, }, },
		},
		Tracker1Tracker1Path_1 = PolyPath {
			ShowKeyPoints = false,
			ShowHandles = false,
			DrawMode = "ModifyOnly",
			NameSet = true,
			Inputs = {
				Displacement = Input {
					SourceOp = "Tracker1Tracker1Path_1Displacement",
					Source = "Value",
				},
				PolyLine = Input {
					Value = Polyline {
						Points = {
							{ Linear = true, LockY = true, X = -0.022841727361083, Y = -0.27295395731926, RX = 0.00285644549876451, RY = 0.0141456872224808, },
							{ Linear = true, LockY = true, X = -0.0142723908647895, Y = -0.230516895651817, LX = -0.00285644549876451, LY = -0.0141456872224808, RX = -0.000103759579360485, RY = 0.0146990716457367, },
							{ Linear = true, LockY = true, X = -0.0145836696028709, Y = -0.186419680714607, LX = 0.000103759579360485, LY = -0.0146990716457367, RX = -0.00259195951124032, RY = 0.0144856770833333, },
							{ Linear = true, LockY = true, X = -0.0223595481365919, Y = -0.142962649464607, LX = 0.00259195951124032, LY = -0.0144856770833333, RX = -0.00461832744379838, RY = 0.0135308181246122, },
							{ Linear = true, LockY = true, X = -0.0362145304679871, Y = -0.102370195090771, LX = 0.00461832744379838, LY = -0.0135308181246122, RX = -0.00618692984183629, RY = 0.0118091727296511, },
							{ Linear = true, LockY = true, X = -0.0547753199934959, Y = -0.0669426769018173, LX = 0.00618692984183629, LY = -0.0118091727296511, RX = -0.00728963315486908, RY = 0.00933521365125974, },
							{ Linear = true, LockY = true, X = -0.0766442194581032, Y = -0.0389370359480381, LX = 0.00728963315486908, LY = -0.00933521365125974, RX = -0.00792643179496129, RY = 0.00610532363255819, },
							{ Linear = true, LockY = true, X = -0.100423514842987, Y = -0.0206210650503635, LX = 0.00792643179496129, LY = -0.00610532363255819, RX = -0.00810953726371129, RY = 0.00232928246259689, },
							{ Linear = true, LockY = true, X = -0.124752126634121, Y = -0.0136332176625729, LX = 0.00810953726371129, LY = -0.00232928246259689, RX = -0.00782267500956853, RY = -0.00071976271768411, },
							{ Linear = true, LockY = true, X = -0.148220151662827, Y = -0.0157925058156252, LX = 0.00782267500956853, LY = 0.00071976271768411, RX = -0.00707397361596425, RY = -0.00254267950852712, },
							{ Linear = true, LockY = true, X = -0.169442072510719, Y = -0.0234205443412066, LX = 0.00707397361596425, LY = 0.00254267950852712, RX = -0.00595703224341075, RY = -0.00314670118192832, },
							{ Linear = true, LockY = true, X = -0.187313169240952, Y = -0.0328606478869915, LX = 0.00595703224341075, LY = 0.00314670118192832, RX = -0.00484415392080943, RY = -0.00254267950852712, },
							{ Linear = true, LockY = true, X = -0.20184563100338, Y = -0.0404886864125729, LX = 0.00484415392080943, LY = 0.00254267950852712, RX = -0.00382486979166667, RY = -0.000705295552810033, },
							{ Linear = true, LockY = true, X = -0.21332024037838, Y = -0.042604573071003, LX = 0.00382486979166667, LY = 0.000705295552810033, RX = -0.00289713839689891, RY = 0.00234375024835269, },
							{ Linear = true, LockY = true, X = -0.222011655569077, Y = -0.0355733223259449, LX = 0.00289713839689891, LY = -0.00234375024835269, RX = -0.00206705431143443, RY = 0.00644531287252903, },
							{ Linear = true, LockY = true, X = -0.22821281850338, Y = -0.0162373837083578, LX = 0.00206705431143443, LY = -0.00644531287252903, RX = -0.00133260091145833, RY = 0.00985966405520836, },
							{ Linear = true, LockY = true, X = -0.232210621237755, Y = 0.0133416084572673, LX = 0.00133260091145833, LY = -0.00985966405520836, RX = -0.000687663753827413, RY = 0.0116066265230378, },
							{ Linear = true, LockY = true, X = -0.234273612499237, Y = 0.0481614880263805, LX = 0.000687663753827413, LY = -0.0116066265230378, RX = -0.000144451856613159, RY = 0.0116970477004846, },
							{ Linear = true, LockY = true, X = -0.234706968069077, Y = 0.0832526311278343, LX = 0.000144451856613159, LY = -0.0116970477004846, RX = 0.000309248765309652, RY = 0.0100983803470929, },
							{ Linear = true, LockY = true, X = -0.233779221773148, Y = 0.113547772169113, LX = -0.000309248765309652, LY = -0.0100983803470929, RX = 0.000661212577522478, RY = 0.00683232051772668, },
							{ Linear = true, LockY = true, X = -0.23179558404058, Y = 0.134044733722293, LX = -0.000661212577522478, LY = -0.00683232051772668, },
						},
					},
				},
			},
		},
		Tracker1Tracker1Path_1Displacement = BezierSpline {
			SplineColor = { Red = 255, Green = 0, Blue = 255, },
			NameSet = true,
			KeyFrames = {
				[0] = { 0, RH = { 0.333333333333333, 0.0247998513054188, }, Flags = { Linear = true, LockedY = true, }, },
				[1] = { 0.0743995539162565, LH = { 0.666666666666667, 0.0495997026108377, }, RH = { 1.33333333333333, 0.0996603558890623, }, Flags = { Linear = true, LockedY = true, }, },
				[2] = { 0.150181959834674, LH = { 1.66666666666667, 0.124921157861868, }, RH = { 2.33333333333333, 0.175470782148214, }, Flags = { Linear = true, LockedY = true, }, },
				[3] = { 0.226048426775293, LH = { 2.66666666666667, 0.200759604461753, }, RH = { 3.33333333333333, 0.250618111754192, }, Flags = { Linear = true, LockedY = true, }, },
				[4] = { 0.29975748171199, LH = { 3.66666666666667, 0.275187796733091, }, RH = { 4.33333333333333, 0.322667871246712, }, Flags = { Linear = true, LockedY = true, }, },
				[5] = { 0.368488650316157, LH = { 4.66666666666667, 0.345578260781435, }, RH = { 5.33333333333333, 0.388842753532406, }, Flags = { Linear = true, LockedY = true, }, },
				[6] = { 0.429550959964904, LH = { 5.66666666666667, 0.409196856748655, }, RH = { 6.33333333333333, 0.446744709658243, }, Flags = { Linear = true, LockedY = true, }, },
				[7] = { 0.481132209044922, LH = { 6.66666666666667, 0.463938459351583, }, RH = { 7.33333333333333, 0.495631820548471, }, Flags = { Linear = true, LockedY = true, }, },
				[8] = { 0.52463104355557, LH = { 7.66666666666667, 0.510131432052021, }, RH = { 8.33333333333333, 0.538130997395742, }, Flags = { Linear = true, LockedY = true, }, },
				[9] = { 0.565130905076086, LH = { 8.66666666666667, 0.551630951235914, }, RH = { 9.33333333333333, 0.578048894569056, }, Flags = { Linear = true, LockedY = true, }, },
				[10] = { 0.603884873554995, LH = { 9.66666666666667, 0.590966884062025, }, RH = { 10.3333333333333, 0.615462425721786, }, Flags = { Linear = true, LockedY = true, }, },
				[11] = { 0.638617530055367, LH = { 10.6666666666667, 0.627039977888576, }, RH = { 11.3333333333333, 0.648019251009536, }, Flags = { Linear = true, LockedY = true, }, },
				[12] = { 0.666822692917873, LH = { 11.6666666666667, 0.657420971963704, }, RH = { 12.3333333333333, 0.673506498776565, }, Flags = { Linear = true, LockedY = true, }, },
				[13] = { 0.686874110493948, LH = { 12.6666666666667, 0.680190304635256, }, RH = { 13.3333333333333, 0.693278002467633, }, Flags = { Linear = true, LockedY = true, }, },
				[14] = { 0.706085786415004, LH = { 13.6666666666667, 0.699681894441319, }, RH = { 14.3333333333333, 0.717717646522327, }, Flags = { Linear = true, LockedY = true, }, },
				[15] = { 0.740981366736972, LH = { 14.6666666666667, 0.729349506629649, }, RH = { 15.3333333333333, 0.758079135473215, }, Flags = { Linear = true, LockedY = true, }, },
				[16] = { 0.7922746729457, LH = { 15.6666666666667, 0.775176904209457, }, RH = { 16.3333333333333, 0.812255493890902, }, Flags = { Linear = true, LockedY = true, }, },
				[17] = { 0.852217135781305, LH = { 16.6666666666667, 0.832236314836103, }, RH = { 17.3333333333333, 0.872319900186326, }, Flags = { Linear = true, LockedY = true, }, },
				[18] = { 0.912525428996368, LH = { 17.6666666666667, 0.892422664591347, }, RH = { 18.3333333333333, 0.929887506000673, }, Flags = { Linear = true, LockedY = true, }, },
				[19] = { 0.964611660009282, LH = { 18.6666666666667, 0.947249583004977, }, RH = { 19.3333333333333, 0.976407773339521, }, Flags = { Linear = true, LockedY = true, }, },
				[20] = { 1, LH = { 19.6666666666667, 0.988203886669761, }, Flags = { Linear = true, LockedY = true, }, },
			},
		},
		Tracker1 = Tracker {
			Trackers = {
				{
					PatternTime = 10,
					PatternX = 0.330557927489281,
					PatternY = 0.476579455658793,
				},
			},
			Inputs = {
				Input = Input {
					SourceOp = "Background1",
					Source = "Output",
				},
				Foreground = Input {
					SourceOp = "Background2",
					Source = "Output",
				},
				Operation = Input { Value = 1, },
				MatchMoveSettings = Input { Value = 1, },
				Reference = Input { Value = 0, },
				Name1 = Input { Value = "Tracker 1", },
				PatternCenter1 = Input { Value = { 0.330557927489281, 0.476579455658793, }, },
				PatternWidth1 = Input { Value = 0.0593525179856115, },
				PatternHeight1 = Input { Value = 0.0932225063938619, },
				SearchWidth1 = Input { Value = 0.243525179856115, },
				SearchHeight1 = Input { Value = 0.251790281329923, },
				TrackedCenter1 = Input {
					SourceOp = "Tracker1Tracker1Path",
					Source = "Position",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 770, 148.5, }, },
		},
		Tracker1Tracker1Path = PolyPath {
			ShowKeyPoints = false,
			ShowHandles = false,
			DrawMode = "ModifyOnly",
			NameSet = true,
			Inputs = {
				Displacement = Input {
					SourceOp = "Tracker1Tracker1PathDisplacement",
					Source = "Value",
				},
				PolyLine = Input {
					Value = Polyline {
						Points = {
							{ Linear = true, LockY = true, X = -0.022841727361083, Y = -0.27295395731926, RX = 0.00285644549876451, RY = 0.0141456872224808, },
							{ Linear = true, LockY = true, X = -0.0142723908647895, Y = -0.230516895651817, LX = -0.00285644549876451, LY = -0.0141456872224808, RX = -0.000103759579360485, RY = 0.0146990716457367, },
							{ Linear = true, LockY = true, X = -0.0145836696028709, Y = -0.186419680714607, LX = 0.000103759579360485, LY = -0.0146990716457367, RX = -0.00259195951124032, RY = 0.0144856770833333, },
							{ Linear = true, LockY = true, X = -0.0223595481365919, Y = -0.142962649464607, LX = 0.00259195951124032, LY = -0.0144856770833333, RX = -0.00461832744379838, RY = 0.0135308181246122, },
							{ Linear = true, LockY = true, X = -0.0362145304679871, Y = -0.102370195090771, LX = 0.00461832744379838, LY = -0.0135308181246122, RX = -0.00618692984183629, RY = 0.0118091727296511, },
							{ Linear = true, LockY = true, X = -0.0547753199934959, Y = -0.0669426769018173, LX = 0.00618692984183629, LY = -0.0118091727296511, RX = -0.00728963315486908, RY = 0.00933521365125974, },
							{ Linear = true, LockY = true, X = -0.0766442194581032, Y = -0.0389370359480381, LX = 0.00728963315486908, LY = -0.00933521365125974, RX = -0.00792643179496129, RY = 0.00610532363255819, },
							{ Linear = true, LockY = true, X = -0.100423514842987, Y = -0.0206210650503635, LX = 0.00792643179496129, LY = -0.00610532363255819, RX = -0.00810953726371129, RY = 0.00232928246259689, },
							{ Linear = true, LockY = true, X = -0.124752126634121, Y = -0.0136332176625729, LX = 0.00810953726371129, LY = -0.00232928246259689, RX = -0.00782267500956853, RY = -0.00071976271768411, },
							{ Linear = true, LockY = true, X = -0.148220151662827, Y = -0.0157925058156252, LX = 0.00782267500956853, LY = 0.00071976271768411, RX = -0.00707397361596425, RY = -0.00254267950852712, },
							{ Linear = true, LockY = true, X = -0.169442072510719, Y = -0.0234205443412066, LX = 0.00707397361596425, LY = 0.00254267950852712, RX = -0.00595703224341075, RY = -0.00314670118192832, },
							{ Linear = true, LockY = true, X = -0.187313169240952, Y = -0.0328606478869915, LX = 0.00595703224341075, LY = 0.00314670118192832, RX = -0.00484415392080943, RY = -0.00254267950852712, },
							{ Linear = true, LockY = true, X = -0.20184563100338, Y = -0.0404886864125729, LX = 0.00484415392080943, LY = 0.00254267950852712, RX = -0.00382486979166667, RY = -0.000705295552810033, },
							{ Linear = true, LockY = true, X = -0.21332024037838, Y = -0.042604573071003, LX = 0.00382486979166667, LY = 0.000705295552810033, RX = -0.00289713839689891, RY = 0.00234375024835269, },
							{ Linear = true, LockY = true, X = -0.222011655569077, Y = -0.0355733223259449, LX = 0.00289713839689891, LY = -0.00234375024835269, RX = -0.00206705431143443, RY = 0.00644531287252903, },
							{ Linear = true, LockY = true, X = -0.22821281850338, Y = -0.0162373837083578, LX = 0.00206705431143443, LY = -0.00644531287252903, RX = -0.00133260091145833, RY = 0.00985966405520836, },
							{ Linear = true, LockY = true, X = -0.232210621237755, Y = 0.0133416084572673, LX = 0.00133260091145833, LY = -0.00985966405520836, RX = -0.000687663753827413, RY = 0.0116066265230378, },
							{ Linear = true, LockY = true, X = -0.234273612499237, Y = 0.0481614880263805, LX = 0.000687663753827413, LY = -0.0116066265230378, RX = -0.000144451856613159, RY = 0.0116970477004846, },
							{ Linear = true, LockY = true, X = -0.234706968069077, Y = 0.0832526311278343, LX = 0.000144451856613159, LY = -0.0116970477004846, RX = 0.000309248765309652, RY = 0.0100983803470929, },
							{ Linear = true, LockY = true, X = -0.233779221773148, Y = 0.113547772169113, LX = -0.000309248765309652, LY = -0.0100983803470929, RX = 0.000661212577522478, RY = 0.00683232051772668, },
							{ Linear = true, LockY = true, X = -0.23179558404058, Y = 0.134044733722293, LX = -0.000661212577522478, LY = -0.00683232051772668, },
						},
					},
				},
			},
		},
		Tracker1Tracker1PathDisplacement = BezierSpline {
			SplineColor = { Red = 255, Green = 0, Blue = 255, },
			NameSet = true,
			KeyFrames = {
				[0] = { 0, RH = { 0.333333333333333, 0.0247998513054188, }, Flags = { Linear = true, LockedY = true, }, },
				[1] = { 0.0743995539162565, LH = { 0.666666666666667, 0.0495997026108377, }, RH = { 1.33333333333333, 0.0996603558890623, }, Flags = { Linear = true, LockedY = true, }, },
				[2] = { 0.150181959834674, LH = { 1.66666666666667, 0.124921157861868, }, RH = { 2.33333333333333, 0.175470782148214, }, Flags = { Linear = true, LockedY = true, }, },
				[3] = { 0.226048426775293, LH = { 2.66666666666667, 0.200759604461753, }, RH = { 3.33333333333333, 0.250618111754192, }, Flags = { Linear = true, LockedY = true, }, },
				[4] = { 0.29975748171199, LH = { 3.66666666666667, 0.275187796733091, }, RH = { 4.33333333333333, 0.322667871246712, }, Flags = { Linear = true, LockedY = true, }, },
				[5] = { 0.368488650316157, LH = { 4.66666666666667, 0.345578260781435, }, RH = { 5.33333333333333, 0.388842753532406, }, Flags = { Linear = true, LockedY = true, }, },
				[6] = { 0.429550959964904, LH = { 5.66666666666667, 0.409196856748655, }, RH = { 6.33333333333333, 0.446744709658243, }, Flags = { Linear = true, LockedY = true, }, },
				[7] = { 0.481132209044922, LH = { 6.66666666666667, 0.463938459351583, }, RH = { 7.33333333333333, 0.495631820548471, }, Flags = { Linear = true, LockedY = true, }, },
				[8] = { 0.52463104355557, LH = { 7.66666666666667, 0.510131432052021, }, RH = { 8.33333333333333, 0.538130997395742, }, Flags = { Linear = true, LockedY = true, }, },
				[9] = { 0.565130905076086, LH = { 8.66666666666667, 0.551630951235914, }, RH = { 9.33333333333333, 0.578048894569056, }, Flags = { Linear = true, LockedY = true, }, },
				[10] = { 0.603884873554995, LH = { 9.66666666666667, 0.590966884062025, }, RH = { 10.3333333333333, 0.615462425721786, }, Flags = { Linear = true, LockedY = true, }, },
				[11] = { 0.638617530055367, LH = { 10.6666666666667, 0.627039977888576, }, RH = { 11.3333333333333, 0.648019251009536, }, Flags = { Linear = true, LockedY = true, }, },
				[12] = { 0.666822692917873, LH = { 11.6666666666667, 0.657420971963704, }, RH = { 12.3333333333333, 0.673506498776565, }, Flags = { Linear = true, LockedY = true, }, },
				[13] = { 0.686874110493948, LH = { 12.6666666666667, 0.680190304635256, }, RH = { 13.3333333333333, 0.693278002467633, }, Flags = { Linear = true, LockedY = true, }, },
				[14] = { 0.706085786415004, LH = { 13.6666666666667, 0.699681894441319, }, RH = { 14.3333333333333, 0.717717646522327, }, Flags = { Linear = true, LockedY = true, }, },
				[15] = { 0.740981366736972, LH = { 14.6666666666667, 0.729349506629649, }, RH = { 15.3333333333333, 0.758079135473215, }, Flags = { Linear = true, LockedY = true, }, },
				[16] = { 0.7922746729457, LH = { 15.6666666666667, 0.775176904209457, }, RH = { 16.3333333333333, 0.812255493890902, }, Flags = { Linear = true, LockedY = true, }, },
				[17] = { 0.852217135781305, LH = { 16.6666666666667, 0.832236314836103, }, RH = { 17.3333333333333, 0.872319900186326, }, Flags = { Linear = true, LockedY = true, }, },
				[18] = { 0.912525428996368, LH = { 17.6666666666667, 0.892422664591347, }, RH = { 18.3333333333333, 0.929887506000673, }, Flags = { Linear = true, LockedY = true, }, },
				[19] = { 0.964611660009282, LH = { 18.6666666666667, 0.947249583004977, }, RH = { 19.3333333333333, 0.976407773339521, }, Flags = { Linear = true, LockedY = true, }, },
				[20] = { 1, LH = { 19.6666666666667, 0.988203886669761, }, Flags = { Linear = true, LockedY = true, }, },
			},
		},
		Background1 = Background {
			Inputs = {
				GlobalOut = Input { Value = 20, },
				Width = Input { Value = 1280, },
				Height = Input { Value = 720, },
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
				TopLeftRed = Input { Value = 1, },
				TopLeftGreen = Input { Value = 0.37984496124031, },
				Gradient = Input {
					Value = Gradient {
						Colors = {
							[0] = { 0, 0, 0, 1, },
							[1] = { 1, 1, 1, 1, },
						},
					},
				},
				EffectMask = Input {
					SourceOp = "Ellipse1",
					Source = "Mask",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 495, 148.5, }, },
		},
		Note1_2_1 = Note {
			Inputs = {
				Comments = Input { Value = "A copy of the same tracker, but with the reference frame set to 15. ", },
			},
			ViewInfo = StickyNoteInfo {
				Pos = { 935, 181.5, },
				Flags = {
					Expanded = true,
				},
				Size = { 221, 61.3, },
			},
		},
		Note1_2 = Note {
			Inputs = {
				Comments = Input { Value = "Tracker with reference frame set to 10", },
			},
			ViewInfo = StickyNoteInfo {
				Pos = { 715, 181.5, },
				Flags = {
					Expanded = true,
				},
				Size = { 210, 62.3, },
			},
		},
	},
}

User avatar
Tilt
Global Moderator
Posts: 336
Joined: Sat Aug 02, 2014 4:10 am
Location: Munich, Germany
Contact:

Re: [Script] The Elusive Tracker Reference Frame

#8

Post by Tilt » Tue Dec 02, 2014 11:50 pm

As Secondman said... but Fusion has an even bigger "gotcha". It offers you to use the comp's first or last frame as a reference. So imagine, you set up your comp with the tracker reference set to "last frame". Now your shot gets extended for some reason and you increase your comp's range. Of course, you need to extend your tracker as well for the new frames (let's assume the required footage runs long enough).

But now "last frame" is no longer where it used to be and everything that was connected to the tracker gets repositioned. All your roto might be broken now and fixing this takes a lot of time.

Secondman's script could be used to reset the reference frame to where the "last frame" used to be before extending the shot.

User avatar
ernesttx
Posts: 31
Joined: Wed Sep 03, 2014 5:59 am
Been thanked: 1 time

Re: [Script] The Elusive Tracker Reference Frame

#9

Post by ernesttx » Wed Dec 03, 2014 5:57 am

Ah, ok gotcha. Thanks guys for the explanation. I'll delve into that type of scenario and see if I grasp the concepts, and work through SecondMan's comp. I don't suppose there is a tutorial demonstrating such a thing. I'll search the webs, if not.

User avatar
tlittle
Posts: 33
Joined: Tue Aug 05, 2014 12:12 pm
Location: Chicago, USA
Been thanked: 1 time
Contact:

Re: [Script] The Elusive Tracker Reference Frame

#10

Post by tlittle » Fri Aug 28, 2015 8:35 am

SecondMan, I want to say thank you from the bottom of my heart for posting your tracker reference frame script! You just saved my bacon from the exact situation outlined in your post. I had tracked a scoreboard and replaced its surface with all new text but then learned that the timecode I was given was off by 4 seconds so the end frame of my comp needed to change. Of course I had set the last comp frame as my reference so everything was anchored to it, thanks to your script the change was painless!

User avatar
SecondMan
Site Admin
Posts: 3580
Joined: Thu Jul 31, 2014 5:31 pm
Answers: 5
Location: Vancouver, Canada
Been thanked: 104 times
Contact:

Re: [Script] The Elusive Tracker Reference Frame

#11

Post by SecondMan » Fri Aug 28, 2015 2:17 pm

Ah - nice! You're welcome Tim! :)

User avatar
villain
Posts: 1
Joined: Fri Mar 25, 2016 6:44 am

Re: [Script] The Elusive Tracker Reference Frame

#12

Post by villain » Fri Mar 25, 2016 7:15 am

Hi ladies & gents.
is the situation same now with fusion 8b3 ? i am new in fusion (coming from nuke-shake) but i am really surprised i cant find a way to check and set the refFrame.

i didnt find the proper topic for this question, i am sure it was asked before:
are there some docs around to help with switching from nuke to fusion? maybe something like "Shake to Nuke node guide". is there a (official) shortcut list around somewhere?

User avatar
SecondMan
Site Admin
Posts: 3580
Joined: Thu Jul 31, 2014 5:31 pm
Answers: 5
Location: Vancouver, Canada
Been thanked: 104 times
Contact:

Re: [Script] The Elusive Tracker Reference Frame

#13

Post by SecondMan » Fri Mar 25, 2016 1:06 pm

Hi villain, welcome to the forum!

Keyboard shortcuts: https://www.steakunderwater.com/wesuckle ... 503&p=4204

As for going from Nuke to Fusion, the best course of action is to just get your hands dirty and ask here whenever you're stuck. A lot of tools are very similar, so that's pretty easy, but then Fusion is in certain areas completely different (it's resolution independent, for one, and Nuke has no Modifiers or concatenating Merge. In other areas, Fusion lacks camera tracking and deforming roto shape previews through the 3D engine, and so forth). So much depends on your personal workflow, as well. Any Nuke to Fusion guide would almost by definition be a very limited document (and boring to write ;))

As for the Reference Frame, yes, that's still the same in 8b3 - it's just one of those strange cases. I'm sure the Tracker will be revised at some point, but in terms of functionality, 7 and 8 are largely identical - not much (if any) work has been done on particular tools.