
- Posts: 9
- Joined: Mon May 14, 2018 1:23 am
- Real Name: Joe Fles
Version: Davinci Resolve V15.0.0B.037
OS: Win10 Home (1803)
Following some tutorials (Fusion tutorials) I've been able to do some fun things with 2D paths.
But, after 10ish hours I can't for the life of me find any way to do this:

on the left, a 2d object following a curve and its rotation/heading. (I got this easily).
on the right, a 3d curve+cube. But there is no "connect to -> path heading" for Transform3D. there is a "Modify with -> path heading" but I can't figure out the right way to connect to it.
So, How can I have a 3D object follow a 3D curve/path/transform and automatically rotate with it?
My nodes:
Thanks
OS: Win10 Home (1803)
Following some tutorials (Fusion tutorials) I've been able to do some fun things with 2D paths.
But, after 10ish hours I can't for the life of me find any way to do this:

on the left, a 2d object following a curve and its rotation/heading. (I got this easily).
on the right, a 3d curve+cube. But there is no "connect to -> path heading" for Transform3D. there is a "Modify with -> path heading" but I can't figure out the right way to connect to it.
So, How can I have a 3D object follow a 3D curve/path/transform and automatically rotate with it?
My nodes:
- Code: Select all
{
Tools = ordered() {
Rectangle1 = RectangleMask {
Inputs = {
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
ClippingMode = Input { Value = FuID { "None" }, },
Width = Input { Value = 0.19047619047619, },
Height = Input { Value = 0.150793650793651, },
Angle = Input {
SourceOp = "Path1",
Source = "Heading",
},
},
ViewInfo = OperatorInfo { Pos = { 55, 16.5 } },
},
Path1 = PolyPath {
DrawMode = "InsertAndModify",
CtrlWZoom = false,
Inputs = {
Displacement = Input {
SourceOp = "Path1Displacement",
Source = "Value",
},
PolyLine = Input {
Value = Polyline {
Points = {
{ Linear = true, LockY = true, X = -0.605654761904762, Y = 0.0158730158730159, RX = 0.548282705229272, RY = -0.576325250712477 },
{ LockY = true, X = 0.0580357142857143, Y = 0.0132275132275133, LX = -0.14831339012207, LY = -0.0360777739181698, RX = 0.352245742109357, RY = 0.0917680744595778 },
{ LockY = true, X = 0.526785714285714, Y = -0.428571428571429, LX = -0.214468631121785, LY = 0.0570363763471618 }
}
},
},
},
},
Path1Displacement = BezierSpline {
SplineColor = { Red = 255, Green = 0, Blue = 255 },
NameSet = true,
KeyFrames = {
[0] = { 0, RH = { 8.66579985618591, 0 }, Flags = { LockedY = true } },
[26] = { 0.522, LH = { 17.3333333333333, 0.522 }, RH = { 28.3333333333333, 0.522 } },
[33] = { 0.550255342723338, LH = { 30.6666666666667, 0.550255342723338 }, RH = { 34, 0.550255342723338 }, Flags = { LockedY = true } },
[36] = { 0.602, LH = { 34.879241472986, 0.582176178655133 }, RH = { 44.65, 0.755 } },
[46] = { 0.977999999999999, LH = { 42.6509489295175, 0.955481113562847 }, RH = { 52.0944220533245, 1.01897865193173 } },
[61] = { 1, LH = { 57.2481390427702, 0.969429281089239 }, Flags = { LockedY = true } }
}
},
Background1 = Background {
Inputs = {
GlobalOut = Input { Value = 119, },
Width = Input { Value = 1920, },
Height = Input { Value = 1080, },
UseFrameFormatSettings = Input { Value = 1, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
TopLeftRed = Input { Value = 0.677, },
TopLeftGreen = Input { Value = 0.389952, },
EffectMask = Input {
SourceOp = "Rectangle1",
Source = "Mask",
}
},
ViewInfo = OperatorInfo { Pos = { 55, 49.5 } },
},
Shape3D1 = Shape3D {
CtrlWZoom = false,
Inputs = {
["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
["SurfaceSphereInputs.ObjectID.ObjectID"] = Input { Value = 2, },
["SurfaceIcoInputs.ObjectID.ObjectID"] = Input { Value = 3, },
["Transform3DOp.ScaleNest"] = Input { Value = 0, },
["Transform3DOp.ScaleLock"] = Input { Value = 0, },
["Transform3DOp.Scale.Z"] = Input { Value = 2.56, },
["Transform3DOp.Target.X"] = Input {
SourceOp = "Shape3D1XTargetPosition",
Source = "Value",
},
["Transform3DOp.Target.Z"] = Input {
SourceOp = "Shape3D1ZTargetPosition",
Source = "Value",
},
Shape = Input { Value = FuID { "SurfaceCubeInputs" }, },
MaterialInput = Input {
SourceOp = "Background1_1",
Source = "Output",
},
["MtlStdInputs.MaterialID"] = Input { Value = 1, },
["SurfaceCubeInputs.Width"] = Input { Value = 1.89, },
["SurfaceCubeInputs.ObjectID.ObjectID"] = Input { Value = 4, }
},
ViewInfo = OperatorInfo { Pos = { 330, 82.5 } },
},
Shape3D1XTargetPosition = BezierSpline {
SplineColor = { Red = 250, Green = 132, Blue = 49 },
NameSet = true,
KeyFrames = {
[0] = { 4.45660969484583 }
}
},
Shape3D1ZTargetPosition = BezierSpline {
SplineColor = { Red = 254, Green = 56, Blue = 46 },
NameSet = true,
KeyFrames = {
[0] = { -10.0044542343344 }
}
},
Background1_1 = Background {
Inputs = {
GlobalOut = Input { Value = 119, },
Width = Input { Value = 1920, },
Height = Input { Value = 1080, },
UseFrameFormatSettings = Input { Value = 1, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
TopLeftGreen = Input { Value = 0.677, },
TopLeftBlue = Input { Value = 0.400784, },
},
ViewInfo = OperatorInfo { Pos = { 330, 16.5 } },
},
Transform3D1 = Transform3D {
Inputs = {
SceneInput = Input {
SourceOp = "Shape3D1",
Source = "Output",
},
["Transform3DOp.Translate.X"] = Input {
SourceOp = "Transform3D1XOffset",
Source = "Value",
},
["Transform3DOp.Translate.Z"] = Input {
SourceOp = "Transform3D1ZOffset",
Source = "Value",
},
["Transform3DOp.Rotate.X"] = Input {
SourceOp = "Transform3D1XRotation",
Source = "Value",
},
["Transform3DOp.Rotate.Z"] = Input {
SourceOp = "Transform3D1ZRotation",
Source = "Value",
},
["Transform3DOp.PivotNest"] = Input { Value = 1, },
["Transform3DOp.ScaleNest"] = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 440, 82.5 } },
},
Transform3D1XOffset = BezierSpline {
SplineColor = { Red = 250, Green = 132, Blue = 49 },
NameSet = true,
KeyFrames = {
[0] = { 0.673863467147791, RH = { 5, 0.673863467147791 } },
[15] = { -4.71266018488545, LH = { 10.0005000829697, -4.85292326421746 }, RH = { 21.3326998949051, -4.53499361773157 } },
[34] = { 1.62774781086851, LH = { 27.6673001050949, 1.64258907650563 }, RH = { 37.6662999391556, 1.61915549918387 } },
[45] = { -4.78296794879379, LH = { 41.3333333333333, -4.78296794879379 } }
}
},
Transform3D1ZOffset = BezierSpline {
SplineColor = { Red = 254, Green = 207, Blue = 46 },
NameSet = true,
KeyFrames = {
[0] = { -12.3863280000872, RH = { 5, -12.3863280000872 } },
[15] = { -5.92587489914208, LH = { 10.0005000829697, -7.77825501712506 }, RH = { 21.2402846446866, -3.6137678087917 } },
[34] = { 0.21111675571383, LH = { 27.9731593012009, -2.61097162618701 }, RH = { 37.6662999391556, 1.92787400548094 } },
[45] = { 8.12172577394287, LH = { 41.3337000608444, 6.42072712320362 }, RH = { 49.7057137763257, 10.3049658026184 } },
[60] = { 12.2739500353627, LH = { 55, 12.2739500353627 } }
}
},
Transform3D1XRotation = BezierSpline {
SplineColor = { Red = 255, Green = 128, Blue = 128 },
NameSet = true,
KeyFrames = {
[0] = { 0, RH = { 8, 0 }, Flags = { Linear = true } },
[24] = { 0, LH = { 16, 0 }, Flags = { Linear = true } }
}
},
Transform3D1ZRotation = BezierSpline {
SplineColor = { Red = 128, Green = 128, Blue = 255 },
NameSet = true,
KeyFrames = {
[0] = { 0, RH = { 8, 0 }, Flags = { Linear = true } },
[24] = { 0, LH = { 16, 0 }, Flags = { Linear = true } }
}
},
DirectionalLight1 = LightDirectional {
Inputs = {
["Transform3DOp.Translate.Y"] = Input { Value = 2.87468346915684, },
["Transform3DOp.Translate.Z"] = Input { Value = 4.36091754179702, },
["Transform3DOp.Rotate.X"] = Input { Value = -35.7642137589864, },
Red = Input { Value = 0.819, },
Green = Input { Value = 0, },
Blue = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 440, -16.5 } },
},
Merge3D1 = Merge3D {
Inputs = {
SceneInput1 = Input {
SourceOp = "Transform3D1",
Source = "Output",
},
SceneInput2 = Input {
SourceOp = "DirectionalLight1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 440, 16.5 } },
},
MediaOut1 = MediaOut {
ViewInfo = OperatorInfo { Pos = { 770, 82.5 } },
},
Transform1 = Transform {
Inputs = {
Center = Input {
SourceOp = "Path1",
Source = "Position",
},
Input = Input {
SourceOp = "Background1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 165, 49.5 } },
},
MediaIn1 = MediaIn {
CustomData = { MediaProps = {
MEDIA_HEIGHT = 1080,
MEDIA_MARK_IN = 0,
MEDIA_MARK_OUT = 119,
MEDIA_NAME = "Compound Clip 1",
MEDIA_NUM_FRAMES = 120,
MEDIA_PAR = 1,
MEDIA_SRC_FRAME_RATE = 24,
MEDIA_START_FRAME = 0,
MEDIA_WIDTH = 1920
} },
Inputs = {
GlobalOut = Input { Value = 119, },
Layer = Input { Value = "0", },
},
ViewInfo = OperatorInfo { Pos = { -110, -49.5 } },
},
path2d = Underlay {
NameSet = true,
ViewInfo = UnderlayInfo {
Pos = { 110, -16.5 },
Size = { 233.333, 101.091 }
},
},
curve3D = Underlay {
NameSet = true,
ViewInfo = UnderlayInfo {
Pos = { 387.667, -49.5 },
Size = { 250.666, 181.091 }
},
}
},
ActiveTool = "path2d"
}
Thanks