diff --git a/ntm-animator.blend b/ntm-animator.blend index 6b88f25a5..b7b0b3e19 100644 Binary files a/ntm-animator.blend and b/ntm-animator.blend differ diff --git a/src/main/java/com/hbm/render/anim/BusAnimationKeyframe.java b/src/main/java/com/hbm/render/anim/BusAnimationKeyframe.java index 9c24d1299..94563417a 100644 --- a/src/main/java/com/hbm/render/anim/BusAnimationKeyframe.java +++ b/src/main/java/com/hbm/render/anim/BusAnimationKeyframe.java @@ -120,6 +120,31 @@ public class BusAnimationKeyframe { double v4x = startTime + duration; double v4y = value; + // correct beziers into non-looping fcurves + double h1x = v1x - v2x; + double h1y = v1y - v2y; + + double h2x = v4x - v3x; + double h2y = v4y - v3y; + + double len = v4x - v1x; + double len1 = Math.abs(h1x); + double len2 = Math.abs(h2x); + + if(len1 + len2 != 0) { + if(len1 > len) { + double fac = len / len1; + v2x = v1x - fac * h1x; + v2y = v1y - fac * h1y; + } + + if(len2 > len) { + double fac = len / len2; + v3x = v4x - fac * h2x; + v3y = v4y - fac * h2y; + } + } + double curveT = findZero(currentTime, v1x, v2x, v3x, v4x); return cubicBezier(v1y, v2y, v3y, v4y, curveT); } else if(previous.interpolationType == IType.BACK) { @@ -200,7 +225,7 @@ public class BusAnimationKeyframe { // Blender bezier solvers, but rewritten (pain) private double solveCubic(double c0, double c1, double c2, double c3) { - if(c3 != 0) { + if(c3 > 0.000001) { double a = c2 / c3; double b = c1 / c3; double c = c0 / c3; @@ -242,10 +267,10 @@ public class BusAnimationKeyframe { double b = c1; double c = c0; - if(a != 0) { + if(a > 0.000001) { double p = b * b - 4 * a * c; - if(p > 0) { + if(p > 0.000001) { p = Math.sqrt(p); double result = (-b - p) / (2 * a); if(result < 0.000001 || result > 1.000001) { @@ -259,14 +284,10 @@ public class BusAnimationKeyframe { } } - if(b != 0) { + if(b > 0.000001) { return -c / b; } - if(c == 0) { - return 0; - } - return 0; } diff --git a/src/main/resources/assets/hbm/models/weapons/animations/python.json b/src/main/resources/assets/hbm/models/weapons/animations/python.json index 8659ec6c1..2a65e9774 100644 --- a/src/main/resources/assets/hbm/models/weapons/animations/python.json +++ b/src/main/resources/assets/hbm/models/weapons/animations/python.json @@ -1 +1 @@ -{"anim": {"Fire": {"Body": {"location": {"z": [[-0.0, 0.0], [0.1901400089263916, 50.0], [-0.0, 283.3333333333333]], "y": [[0.0, 0.0], [0.22623062133789062, 50.0], [0.0, 283.3333333333333]]}, "rotation_euler": {"x": [[0.0, 16.666666666666668], [50.512076610560676, 66.66666666666666], [0.0, 250.0]]}}, "Hammer": {"rotation_euler": {"x": [[0.0, 0.0], [-44.61753114928588, 16.666666666666668], [-44.61753114928588, 183.33333333333334], [0.0, 300.0]]}, "location": {"x": [[0.00012800097465515137, 0.0]], "z": [[0.1478099822998047, 0.0]], "y": [[0.1151699647307396, 0.0]]}}}, "Reload": {"Body": {"location": {"x": [[0.0, 0.0], [0.1266033947467804, 216.66666666666669], [-0.1256844699382782, 66.66666666666663], [-0.10699314624071121, 100.0], [-0.05540347099304199, 183.33333333333331], [-0.04984791576862335, 83.33333333333337], [-0.04814600944519043, 100.0], [-0.0495946928858757, 50.0], [-0.1901838481426239, 216.66666666666663], [-0.209717258810997, 366.66666666666663], [-0.2682616710662842, 83.33333333333326], [0.06351689994335175, 100.00000000000023], [0.059162016957998276, 83.33333333333326], [0.0, 199.99999999999977]], "z": [[-0.0, 0.0], [0.018239933997392654, 216.66666666666669], [-0.003715081140398979, 66.66666666666663], [0.003378540277481079, 100.0], [0.06673367321491241, 183.33333333333331], [0.13605912029743195, 83.33333333333337], [0.11836071312427521, 100.0], [0.13753235340118408, 50.0], [0.2322661280632019, 216.66666666666663], [0.20868675410747528, 366.66666666666663], [0.15863937139511108, 83.33333333333326], [0.2003980427980423, 100.00000000000023], [0.09448619186878204, 83.33333333333326], [-0.0, 199.99999999999977]], "y": [[0.0, 0.0], [0.04348362237215042, 216.66666666666669], [0.04043026641011238, 66.66666666666663], [0.0498494915664196, 100.0], [0.21255171298980713, 183.33333333333331], [0.027551360428333282, 83.33333333333337], [0.09703753143548965, 100.0], [0.024584002792835236, 50.0], [-0.3309659957885742, 216.66666666666663], [-0.3340303301811218, 366.66666666666663], [-0.1700890064239502, 83.33333333333326], [0.016301512718200684, 100.00000000000023], [-0.015913818031549454, 83.33333333333326], [0.0, 199.99999999999977]]}, "rotation_euler": {"x": [[0.0, 0.0], [3.3686347844983024, 150.0], [0.02222707974050119, 166.66666666666663], [4.537149524119608, 100.00000000000006], [61.414745582626026, 233.33333333333331], [52.280518454609116, 133.33333333333337], [-71.68136001842309, 199.9999999999999], [-67.29034068404862, 366.66666666666674], [-53.072130549224426, 116.66666666666652], [-7.130840436898373, 100.00000000000023], [-2.7997762896148553, 83.33333333333326], [0.0, 199.99999999999977]], "z": [[0.0, 0.0], [-17.712562234959403, 150.0], [13.30397138517142, 166.66666666666663], [5.758366003376731, 100.00000000000006], [5.603675025280636, 233.33333333333331], [6.040763589705493, 133.33333333333337], [-1.4811513876747122, 199.9999999999999], [-0.9937320130296772, 366.66666666666674], [5.75973417564485, 116.66666666666652], [-7.87355264592462, 100.00000000000023], [-5.935155631645579, 83.33333333333326], [-0.0, 199.99999999999977]], "y": [[0.0, 0.0], [-3.362418245136533, 150.0], [5.488280686800564, 166.66666666666663], [2.9251945710321565, 100.00000000000006], [-3.2122371128833507, 233.33333333333331], [-2.2836878362589266, 133.33333333333337], [6.285038902068653, 199.9999999999999], [6.379913644734715, 366.66666666666674], [24.273973215848397, 116.66666666666652], [-30.381999654726528, 100.00000000000023], [-9.056688259237983, 83.33333333333326], [0.0, 199.99999999999977]]}}, "Cylinder": {"location": {"x": [[-0.0010489225387573242, 0.0], [-0.0010489225387573242, 283.3333333333333], [-0.07956840097904205, 83.33333333333331], [-0.07956840097904205, 1200.0], [-0.0010489225387573242, 83.33333333333326]], "z": [[0.07426249980926514, 0.0], [0.07426249980926514, 283.3333333333333], [0.07129553705453873, 83.33333333333331], [0.07129553705453873, 1200.0], [0.07426249980926514, 83.33333333333326]], "y": [[0.10388392210006714, 0.0], [0.10388392210006714, 283.3333333333333], [0.07195358723402023, 83.33333333333331], [0.07195358723402023, 1200.0], [0.10388392210006714, 83.33333333333326]]}}}}, "offset": {"Cylinder": [-0.0010489225387573242, 0.10388392210006714, 0.07426249980926514], "Grip": [0.0, -1.8214237229585706e-08, -0.0], "Hammer": [0.00012800097465515137, 0.1151699647307396, 0.1478099822998047]}} \ No newline at end of file +{"anim": {"Fire": {"Body": {"location": {"z": [[-0.0, 0.0, "LINEAR", "AUTO"], [0.1901400089263916, 50.0, "LINEAR", "AUTO"], [-0.0, 283.3333333333333, "LINEAR", "AUTO"]], "y": [[0.0, 0.0, "LINEAR", "AUTO"], [0.22623062133789062, 50.0, "LINEAR", "AUTO"], [0.0, 283.3333333333333, "LINEAR", "AUTO"]]}, "rotation_euler": {"x": [[0.0, 16.666666666666668, "LINEAR", "AUTO"], [50.512076610560676, 66.66666666666666, "LINEAR", "AUTO"], [0.0, 250.0, "LINEAR", "AUTO"]]}}, "Hammer": {"rotation_euler": {"x": [[0.0, 0.0, "LINEAR", "AUTO"], [-44.61753114928588, 16.666666666666668, "LINEAR", "AUTO"], [-44.61753114928588, 183.33333333333334, "LINEAR", "AUTO"], [0.0, 300.0, "LINEAR", "AUTO"]]}, "location": {"x": [[0.00012800097465515137, 0.0, "LINEAR", "AUTO"]], "z": [[0.1478099822998047, 0.0, "LINEAR", "AUTO"]], "y": [[0.1151699647307396, 0.0, "LINEAR", "AUTO"]]}}}, "Reload": {"Body": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 72.22222487131755, 0.0, "AUTO_CLAMPED"], [0.1266033947467804, 216.66666666666669, "BEZIER", "AUTO", 144.44443384806317, 0.1266033947467804, "AUTO_CLAMPED", 238.88888359069824, 0.1266033947467804, "AUTO_CLAMPED"], [-0.1256844699382782, 66.66666666666663, "BEZIER", "AUTO", 261.11111640930176, -0.1256844699382782, "AUTO_CLAMPED", 316.66666666666663, -0.1256844699382782, "AUTO_CLAMPED"], [-0.10699314624071121, 100.0, "BEZIER", "AUTO", 350.0, -0.11716071516275406, "AUTO_CLAMPED", 444.44443384806317, -0.08835260570049286, "AUTO_CLAMPED"], [-0.05540347099304199, 183.33333333333331, "BEZIER", "AUTO", 505.5555661519369, -0.06418702006340027, "AUTO_CLAMPED", 594.444465637207, -0.05141094699501991, "AUTO_CLAMPED"], [-0.04984791576862335, 83.33333333333337, "BEZIER", "AUTO", 622.2222010294596, -0.05059652775526047, "AUTO_CLAMPED", 683.3333333333334, -0.048949580639600754, "AUTO_CLAMPED"], [-0.04814600944519043, 100.0, "BEZIER", "AUTO", 716.6666666666666, -0.04814600944519043, "AUTO_CLAMPED", 766.6666666666666, -0.04814600944519043, "AUTO_CLAMPED"], [-0.0495946928858757, 50.0, "BEZIER", "AUTO", 783.3333333333334, -0.04814600944519043, "AUTO_CLAMPED", 872.2222010294596, -0.055872321128845215, "AUTO_CLAMPED"], [-0.1901838481426239, 216.66666666666663, "BEZIER", "AUTO", 944.4444656372069, -0.17864137887954712, "AUTO_CLAMPED", 1138.888931274414, -0.209717258810997, "AUTO_CLAMPED"], [-0.209717258810997, 366.66666666666663, "BEZIER", "AUTO", 1261.111068725586, -0.1901838481426239, "AUTO_CLAMPED", 1411.111068725586, -0.21415667235851288, "AUTO_CLAMPED"], [-0.2682616710662842, 83.33333333333326, "BEZIER", "AUTO", 1438.888931274414, -0.2682616710662842, "AUTO_CLAMPED", 1500.0, -0.2682616710662842, "AUTO_CLAMPED"], [0.06351689994335175, 100.00000000000023, "BEZIER", "AUTO", 1533.3333333333333, 0.06351689994335175, "AUTO_CLAMPED", 1594.4444020589192, 0.06351689994335175, "AUTO_CLAMPED"], [0.059162016957998276, 83.33333333333326, "BEZIER", "AUTO", 1622.2222646077473, 0.06351689994335175, "AUTO_CLAMPED", 1716.6666666666665, 0.04871029779314995, "AUTO_CLAMPED"], [0.0, 199.99999999999977, "BEZIER", "AUTO", 1783.3333333333333, 0.0, "AUTO_CLAMPED", 1916.6666666666667, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 72.22222487131755, -0.0, "AUTO_CLAMPED"], [0.018239933997392654, 216.66666666666669, "BEZIER", "AUTO", 144.44443384806317, 0.018239933997392654, "AUTO_CLAMPED", 238.88888359069824, 0.018239933997392654, "AUTO_CLAMPED"], [-0.003715081140398979, 66.66666666666663, "BEZIER", "AUTO", 261.11111640930176, -0.003715081140398979, "AUTO_CLAMPED", 316.66666666666663, -0.003715081140398979, "AUTO_CLAMPED"], [0.003378540277481079, 100.0, "BEZIER", "AUTO", 350.0, 0.0009166612289845943, "AUTO_CLAMPED", 444.44443384806317, 0.007891984656453133, "AUTO_CLAMPED"], [0.06673367321491241, 183.33333333333331, "BEZIER", "AUTO", 505.5555661519369, 0.0051122792065143585, "AUTO_CLAMPED", 594.444465637207, 0.09474340081214905, "AUTO_CLAMPED"], [0.13605912029743195, 83.33333333333337, "BEZIER", "AUTO", 622.2222010294596, 0.13605912029743195, "AUTO_CLAMPED", 683.3333333333334, 0.13605912029743195, "AUTO_CLAMPED"], [0.11836071312427521, 100.0, "BEZIER", "AUTO", 716.6666666666666, 0.11836071312427521, "AUTO_CLAMPED", 766.6666666666666, 0.11836071312427521, "AUTO_CLAMPED"], [0.13753235340118408, 50.0, "BEZIER", "AUTO", 783.3333333333334, 0.12769433856010437, "AUTO_CLAMPED", 872.2222010294596, 0.18016371130943298, "AUTO_CLAMPED"], [0.2322661280632019, 216.66666666666663, "BEZIER", "AUTO", 944.4444656372069, 0.2322661280632019, "AUTO_CLAMPED", 1138.888931274414, 0.2322661280632019, "AUTO_CLAMPED"], [0.20868675410747528, 366.66666666666663, "BEZIER", "AUTO", 1261.111068725586, 0.2322661280632019, "AUTO_CLAMPED", 1411.111068725586, 0.20332780480384827, "AUTO_CLAMPED"], [0.15863937139511108, 83.33333333333326, "BEZIER", "AUTO", 1438.888931274414, 0.15863937139511108, "AUTO_CLAMPED", 1500.0, 0.15863937139511108, "AUTO_CLAMPED"], [0.2003980427980423, 100.00000000000023, "BEZIER", "AUTO", 1533.3333333333333, 0.2003980427980423, "AUTO_CLAMPED", 1594.4444020589192, 0.2003980427980423, "AUTO_CLAMPED"], [0.09448619186878204, 83.33333333333326, "BEZIER", "AUTO", 1622.2222646077473, 0.1338554322719574, "AUTO_CLAMPED", 1716.6666666666665, -0.0, "AUTO_CLAMPED"], [-0.0, 199.99999999999977, "BEZIER", "AUTO", 1783.3333333333333, -0.0, "AUTO_CLAMPED", 1916.6666666666667, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 72.22222487131755, 0.0, "AUTO_CLAMPED"], [0.04348362237215042, 216.66666666666669, "BEZIER", "AUTO", 144.44443384806317, 0.04348362237215042, "AUTO_CLAMPED", 238.88888359069824, 0.04348362237215042, "AUTO_CLAMPED"], [0.04043026641011238, 66.66666666666663, "BEZIER", "AUTO", 261.11111640930176, 0.04043026641011238, "AUTO_CLAMPED", 316.66666666666663, 0.04043026641011238, "AUTO_CLAMPED"], [0.0498494915664196, 100.0, "BEZIER", "AUTO", 350.0, 0.04043026641011238, "AUTO_CLAMPED", 444.44443384806317, 0.0671180710196495, "AUTO_CLAMPED"], [0.21255171298980713, 183.33333333333331, "BEZIER", "AUTO", 505.5555661519369, 0.21255171298980713, "AUTO_CLAMPED", 594.444465637207, 0.21255171298980713, "AUTO_CLAMPED"], [0.027551360428333282, 83.33333333333337, "BEZIER", "AUTO", 622.2222010294596, 0.027551360428333282, "AUTO_CLAMPED", 683.3333333333334, 0.027551360428333282, "AUTO_CLAMPED"], [0.09703753143548965, 100.0, "BEZIER", "AUTO", 716.6666666666666, 0.09703753143548965, "AUTO_CLAMPED", 766.6666666666666, 0.09703753143548965, "AUTO_CLAMPED"], [0.024584002792835236, 50.0, "BEZIER", "AUTO", 783.3333333333334, 0.06167126074433327, "AUTO_CLAMPED", 872.2222010294596, -0.13612744212150574, "AUTO_CLAMPED"], [-0.3309659957885742, 216.66666666666663, "BEZIER", "AUTO", 944.4444656372069, -0.3291552662849426, "AUTO_CLAMPED", 1138.888931274414, -0.3340303301811218, "AUTO_CLAMPED"], [-0.3340303301811218, 366.66666666666663, "BEZIER", "AUTO", 1261.111068725586, -0.3340303301811218, "AUTO_CLAMPED", 1411.111068725586, -0.3340303301811218, "AUTO_CLAMPED"], [-0.1700890064239502, 83.33333333333326, "BEZIER", "AUTO", 1438.888931274414, -0.2501014769077301, "AUTO_CLAMPED", 1500.0, -0.07407404482364655, "AUTO_CLAMPED"], [0.016301512718200684, 100.00000000000023, "BEZIER", "AUTO", 1533.3333333333333, 0.016301512718200684, "AUTO_CLAMPED", 1594.4444020589192, 0.016301512718200684, "AUTO_CLAMPED"], [-0.015913818031549454, 83.33333333333326, "BEZIER", "AUTO", 1622.2222646077473, -0.015913818031549454, "AUTO_CLAMPED", 1716.6666666666665, -0.015913818031549454, "AUTO_CLAMPED"], [0.0, 199.99999999999977, "BEZIER", "AUTO", 1783.3333333333333, 0.0, "AUTO_CLAMPED", 1916.6666666666667, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 50.0, 0.0, "AUTO_CLAMPED"], [3.3686347844983024, 150.0, "BEZIER", "AUTO", 100.0, 3.3686347844983024, "AUTO_CLAMPED", 205.5555502573649, 3.3686347844983024, "AUTO_CLAMPED"], [0.02222707974050119, 166.66666666666663, "BEZIER", "AUTO", 261.11111640930176, 0.02222707974050119, "AUTO_CLAMPED", 350.0, 0.02222707974050119, "AUTO_CLAMPED"], [4.537149524119608, 100.00000000000006, "BEZIER", "AUTO", 383.3333333333333, 0.022227143106513993, "AUTO_CLAMPED", 494.4444338480631, 15.07196841315016, "AUTO_CLAMPED"], [61.414745582626026, 233.33333333333331, "BEZIER", "AUTO", 572.2222010294596, 61.414745582626026, "AUTO_CLAMPED", 694.444465637207, 61.414745582626026, "AUTO_CLAMPED"], [52.280518454609116, 133.33333333333337, "BEZIER", "AUTO", 738.8888676961262, 61.414745582626026, "AUTO_CLAMPED", 850.0, 38.57917605503646, "AUTO_CLAMPED"], [-71.68136001842309, 199.9999999999999, "BEZIER", "AUTO", 916.6666666666666, -71.68136001842309, "AUTO_CLAMPED", 1105.5555979410808, -71.68136001842309, "AUTO_CLAMPED"], [-67.29034068404862, 366.66666666666674, "BEZIER", "AUTO", 1227.7777353922525, -67.82028823156074, "AUTO_CLAMPED", 1388.888931274414, -67.12171697381935, "AUTO_CLAMPED"], [-53.072130549224426, 116.66666666666652, "BEZIER", "AUTO", 1427.7777353922525, -67.29034068404862, "AUTO_CLAMPED", 1500.0, -40.88509231506237, "AUTO_CLAMPED"], [-7.130840436898373, 100.00000000000023, "BEZIER", "AUTO", 1533.3333333333333, -12.328117499015958, "AUTO_CLAMPED", 1594.4444020589192, -2.7997765030582666, "AUTO_CLAMPED"], [-2.7997762896148553, 83.33333333333326, "BEZIER", "AUTO", 1622.2222646077473, -2.971331431658535, "AUTO_CLAMPED", 1716.6666666666665, -2.388044162153436, "AUTO_CLAMPED"], [0.0, 199.99999999999977, "BEZIER", "AUTO", 1783.3333333333333, 0.0, "AUTO_CLAMPED", 1916.6666666666667, 0.0, "AUTO_CLAMPED"]], "z": [[0.0, 0.0, "BEZIER", "AUTO", 50.0, 0.0, "AUTO_CLAMPED"], [-17.712562234959403, 150.0, "BEZIER", "AUTO", 100.0, -17.712562234959403, "AUTO_CLAMPED", 205.5555502573649, -17.712562234959403, "AUTO_CLAMPED"], [13.30397138517142, 166.66666666666663, "BEZIER", "AUTO", 261.11111640930176, 13.30397138517142, "AUTO_CLAMPED", 350.0, 13.30397138517142, "AUTO_CLAMPED"], [5.758366003376731, 100.00000000000006, "BEZIER", "AUTO", 383.3333333333333, 5.82466195389499, "AUTO_CLAMPED", 494.4444338480631, 5.603675025280636, "AUTO_CLAMPED"], [5.603675025280636, 233.33333333333331, "BEZIER", "AUTO", 572.2222010294596, 5.603675025280636, "AUTO_CLAMPED", 694.444465637207, 5.603675025280636, "AUTO_CLAMPED"], [6.040763589705493, 133.33333333333337, "BEZIER", "AUTO", 738.8888676961262, 6.040763589705493, "AUTO_CLAMPED", 850.0, 6.040763589705493, "AUTO_CLAMPED"], [-1.4811513876747122, 199.9999999999999, "BEZIER", "AUTO", 916.6666666666666, -1.4811513876747122, "AUTO_CLAMPED", 1105.5555979410808, -1.4811513876747122, "AUTO_CLAMPED"], [-0.9937320130296772, 366.66666666666674, "BEZIER", "AUTO", 1227.7777353922525, -1.4811513876747122, "AUTO_CLAMPED", 1388.888931274414, -0.8386440301880752, "AUTO_CLAMPED"], [5.75973417564485, 116.66666666666652, "BEZIER", "AUTO", 1427.7777353922525, 5.75973417564485, "AUTO_CLAMPED", 1500.0, 5.75973417564485, "AUTO_CLAMPED"], [-7.87355264592462, 100.00000000000023, "BEZIER", "AUTO", 1533.3333333333333, -7.87355264592462, "AUTO_CLAMPED", 1594.4444020589192, -7.87355264592462, "AUTO_CLAMPED"], [-5.935155631645579, 83.33333333333326, "BEZIER", "AUTO", 1622.2222646077473, -6.982968975801712, "AUTO_CLAMPED", 1716.6666666666665, -3.4204037764255912, "AUTO_CLAMPED"], [-0.0, 199.99999999999977, "BEZIER", "AUTO", 1783.3333333333333, -0.0, "AUTO_CLAMPED", 1916.6666666666667, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 50.0, 0.0, "AUTO_CLAMPED"], [-3.362418245136533, 150.0, "BEZIER", "AUTO", 100.0, -3.362418245136533, "AUTO_CLAMPED", 205.5555502573649, -3.362418245136533, "AUTO_CLAMPED"], [5.488280686800564, 166.66666666666663, "BEZIER", "AUTO", 261.11111640930176, 5.488280686800564, "AUTO_CLAMPED", 350.0, 5.488280686800564, "AUTO_CLAMPED"], [2.9251945710321565, 100.00000000000006, "BEZIER", "AUTO", 383.3333333333333, 4.216823897329765, "AUTO_CLAMPED", 494.4444338480631, -0.08860740377234073, "AUTO_CLAMPED"], [-3.2122371128833507, 233.33333333333331, "BEZIER", "AUTO", 572.2222010294596, -3.2122371128833507, "AUTO_CLAMPED", 694.444465637207, -3.2122371128833507, "AUTO_CLAMPED"], [-2.2836878362589266, 133.33333333333337, "BEZIER", "AUTO", 738.8888676961262, -3.2122371128833507, "AUTO_CLAMPED", 850.0, -0.8908639213222903, "AUTO_CLAMPED"], [6.285038902068653, 199.9999999999999, "BEZIER", "AUTO", 916.6666666666666, 6.233289120048405, "AUTO_CLAMPED", 1105.5555979410808, 6.379913644734715, "AUTO_CLAMPED"], [6.379913644734715, 366.66666666666674, "BEZIER", "AUTO", 1227.7777353922525, 6.285038902068653, "AUTO_CLAMPED", 1388.888931274414, 6.410100946432055, "AUTO_CLAMPED"], [24.273973215848397, 116.66666666666652, "BEZIER", "AUTO", 1427.7777353922525, 24.273973215848397, "AUTO_CLAMPED", 1500.0, 24.273973215848397, "AUTO_CLAMPED"], [-30.381999654726528, 100.00000000000023, "BEZIER", "AUTO", 1533.3333333333333, -30.381999654726528, "AUTO_CLAMPED", 1594.4444020589192, -30.381999654726528, "AUTO_CLAMPED"], [-9.056688259237983, 83.33333333333326, "BEZIER", "AUTO", 1622.2222646077473, -12.830308011514791, "AUTO_CLAMPED", 1716.6666666666665, 0.0, "AUTO_CLAMPED"], [0.0, 199.99999999999977, "BEZIER", "AUTO", 1783.3333333333333, 0.0, "AUTO_CLAMPED", 1916.6666666666667, 0.0, "AUTO_CLAMPED"]]}}, "Cylinder": {"location": {"x": [[-0.0010489225387573242, 0.0, "LINEAR", "AUTO"], [-0.0010489225387573242, 283.3333333333333, "LINEAR", "AUTO"], [-0.07956840097904205, 83.33333333333331, "LINEAR", "AUTO"], [-0.07956840097904205, 1200.0, "LINEAR", "AUTO"], [-0.0010489225387573242, 83.33333333333326, "LINEAR", "AUTO"]], "z": [[0.07426249980926514, 0.0, "LINEAR", "AUTO"], [0.07426249980926514, 283.3333333333333, "LINEAR", "AUTO"], [0.07129553705453873, 83.33333333333331, "LINEAR", "AUTO"], [0.07129553705453873, 1200.0, "LINEAR", "AUTO"], [0.07426249980926514, 83.33333333333326, "LINEAR", "AUTO"]], "y": [[0.10388392210006714, 0.0, "LINEAR", "AUTO"], [0.10388392210006714, 283.3333333333333, "LINEAR", "AUTO"], [0.07195358723402023, 83.33333333333331, "LINEAR", "AUTO"], [0.07195358723402023, 1200.0, "LINEAR", "AUTO"], [0.10388392210006714, 83.33333333333326, "LINEAR", "AUTO"]]}}}}, "offset": {"Cylinder": [-0.0010489225387573242, 0.10388392210006714, 0.07426249980926514], "Grip": [0.0, -1.8214237229585706e-08, -0.0], "Hammer": [0.00012800097465515137, 0.1151699647307396, 0.1478099822998047]}} \ No newline at end of file