3D Heading?

How can I control heading on a 3D path?
https://forum.blackmagicdesign.com/
https://forum.blackmagicdesign.com/viewtopic.php?f=22&t=107260
{
Tools = ordered() {
Shape3D1 = Shape3D {
Inputs = {
Shape = Input { Value = FuID { "SurfaceCylinderInputs" }, },
["MtlStdInputs.MaterialID"] = Input { Value = 1, },
["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
["SurfaceCylinderInputs.Radius"] = Input { Value = 0.07, },
["SurfaceCylinderInputs.Height"] = Input { Value = 0.5, },
["SurfaceCylinderInputs.BottomCap"] = Input { Value = 1, },
["SurfaceCylinderInputs.TopCap"] = Input { Value = 1, },
["SurfaceCylinderInputs.ObjectID.ObjectID"] = Input { Value = 2, }
},
ViewInfo = OperatorInfo { Pos = { 55, 16.5 } },
},
Shape3D1_1 = Shape3D {
Inputs = {
["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
["Transform3DOp.Translate.Y"] = Input { Value = 0.424510221332698, },
Shape = Input { Value = FuID { "SurfaceConeInputs" }, },
["MtlStdInputs.MaterialID"] = Input { Value = 1, },
["SurfaceCylinderInputs.Radius"] = Input { Value = 0.1, },
["SurfaceCylinderInputs.Height"] = Input { Value = 0.5, },
["SurfaceCylinderInputs.BottomCap"] = Input { Value = 1, },
["SurfaceCylinderInputs.TopCap"] = Input { Value = 1, },
["SurfaceCylinderInputs.ObjectID.ObjectID"] = Input { Value = 2, },
["SurfaceConeInputs.Radius"] = Input { Value = 0.12, },
["SurfaceConeInputs.Height"] = Input { Value = 0.3768, },
["SurfaceConeInputs.SubdivisionLevelHeight"] = Input { Value = 5, },
["SurfaceConeInputs.BottomCap"] = Input { Value = 1, },
["SurfaceConeInputs.ObjectID.ObjectID"] = Input { Value = 3, }
},
ViewInfo = OperatorInfo { Pos = { 55, 49.5 } },
},
Arrow = Merge3D {
CtrlWZoom = false,
NameSet = true,
Inputs = {
["Transform3DOp.Translate.X"] = Input {
SourceOp = "ArrowXOffset",
Source = "Value",
},
["Transform3DOp.Translate.Y"] = Input {
SourceOp = "ArrowYOffset",
Source = "Value",
},
["Transform3DOp.Translate.Z"] = Input {
SourceOp = "ArrowZOffset",
Source = "Value",
},
["Transform3DOp.Rotate.X"] = Input { Value = 90, },
["Transform3DOp.UseTarget"] = Input { Value = 1, },
["Transform3DOp.Target.X"] = Input {
SourceOp = "Calculation1",
Source = "Result",
},
["Transform3DOp.Target.Y"] = Input {
SourceOp = "Calculation2",
Source = "Result",
},
["Transform3DOp.Target.Z"] = Input {
SourceOp = "Calculation3",
Source = "Result",
},
SceneInput1 = Input {
SourceOp = "Shape3D1",
Source = "Output",
},
SceneInput2 = Input {
SourceOp = "Shape3D1_1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 275, 49.5 } },
},
ArrowXOffset = BezierSpline {
SplineColor = { Red = 250, Green = 59, Blue = 49 },
NameSet = true,
KeyFrames = {
[0] = { -2.01527115137355, RH = { 16.6666666666667, -2.01527115137355 } },
[50] = { -1.20134876668033, LH = { 33.3384049048145, -1.63385042171399 }, RH = { 63.3319997787476, -0.855276740786308 } },
[90] = { 0.320948684161712, LH = { 76.6680002212524, 0.111917029045098 }, RH = { 101.664637387403, 0.503837860570998 } },
[125] = { -0.025428095069065, LH = { 113.339303249811, 0.328641291583041 }, RH = { 141.664999723434, -0.531449849775801 } },
[175] = { -2.26002040457995, LH = { 158.335000276566, -1.81787731844192 }, RH = { 183.329967916605, -2.48102477200874 } },
[200] = { -2.015271, LH = { 191.666666666667, -2.015271 } }
}
},
ArrowYOffset = BezierSpline {
SplineColor = { Red = 252, Green = 131, Blue = 47 },
NameSet = true,
KeyFrames = {
[0] = { 0, RH = { 16.6666666666667, 0 } },
[50] = { 0.619418961702409, LH = { 33.3350002765656, 0.545709622256413 }, RH = { 63.3319997787476, 0.678386433259206 } },
[90] = { 0.398070246638593, LH = { 76.6734121115603, 0.785001998217739 }, RH = { 101.665499806404, 0.0593674735864128 } },
[125] = { -1.55817380333008, LH = { 113.334500193596, -1.51595845437464 }, RH = { 149.997499585152, -1.64863526537744 } },
[200] = { 0, LH = { 175, 0 } }
}
},
ArrowZOffset = BezierSpline {
SplineColor = { Red = 254, Green = 207, Blue = 46 },
NameSet = true,
KeyFrames = {
[0] = { 0, RH = { 16.6666666666667, 0 } },
[50] = { 0.905580906600217, LH = { 33.3350002765656, 0.889710124077001 }, RH = { 63.3319997787476, 0.91827753261879 } },
[90] = { 0.0857107981274588, LH = { 76.6877580984188, 0.861021161112748 }, RH = { 101.665499806404, -0.593692637910892 } },
[125] = { -3.46244948631127, LH = { 113.334500193596, -3.39063155690534 }, RH = { 141.664999723434, -3.56504652831975 } },
[175] = { -0.437586454524597, LH = { 158.335000276566, -1.20694271761504 }, RH = { 183.324909468921, -0.0532587410012162 } },
[200] = { 0, LH = { 191.666666666667, 0 } }
}
},
Calculation1 = Calculation {
CtrlWZoom = false,
Inputs = {
FirstOperand = Input {
SourceOp = "ArrowXOffset",
Source = "Value",
},
FirstOperandTimeOffset = Input { Value = 10, },
},
},
Calculation2 = Calculation {
Inputs = {
FirstOperand = Input {
SourceOp = "ArrowYOffset",
Source = "Value",
},
FirstOperandTimeOffset = Input {
Value = 10,
Expression = "Calculation1.FirstOperandTimeOffset",
},
},
},
Calculation3 = Calculation {
Inputs = {
FirstOperand = Input {
SourceOp = "ArrowZOffset",
Source = "Value",
},
FirstOperandTimeOffset = Input {
Value = 10,
Expression = "Calculation1.FirstOperandTimeOffset",
},
},
}
}
}