https://googledrive.com/host/0B8EFYcEZMa4deTNOUjM2OTlKTVU/ximballisticcurvetool.htmlHi everyone, I've made another new tool to help people make ballistic curves and browse other users' curves. The most obvious use of this tool is you can plug in ballistic curves that other people post and it will show you the curve in your browser without having to start up the XIM software. (simply enter it in the XIM ballistic code box and press the button). The images can also be downloaded by clicking the icon in the upper right, or hosted on imgur and pasted into a forum post by clicking the button on the bottom.
More in-depth, it helps authors quickly generate new curves, and compute points with mathematical precision based on various algorithms, instead of painstakingly moving them around by hand. Authors will do this by picking a couple points that they want their curve to pass through (specified as a value from 0-1 on each of the X and Y axis). They can then choose from various functions with parameters how to fill in the space between. For now there are just a few functions supported. If people like the tool, I will continue to add more functionality later.
So for example, you can enter the following:
20
0.2 0.3 lineardeceleration 0.4
0.7 0.8 linear
1 1 lineardeceleration 0.6
-
15
0.3 0.3 linearacceleration 3
1 1 linear
Try it out and see what happens. Basically, for Hip aiming we have created a simple boost curve for pushing past auto-aim, using linear deceleration curves at the bottom and top to smooth it out. For ADS aiming, we are using a linear acceleration curve to slow down the aim when making fine movements, with a linear top-end for snap aiming.
The first line sets the Hip sensitivity to 20. This doesn't affect the curves, it's simply for the generated XIM ballistics code. The next line starts with "0.2 0.3", saying we wish to move through the point 20% along the X axis and 30% up the Y-axis. This is followed by "logarithmic", stating the type of curve we wish to use to get to that point, along with a parameter specific to logarithmic curves. Different functions will take different types and numbers of parameters. The next line connects us to the point "0.7 0.8" with a straight line. And the third line finishes off by reaching the top right corner of the graph.
The two empty lines with the "-" in between them separate the ADS section, which works the same way.
You can also put "copy" by itself on a line right after the ADS sensitivity line to have it simply use the same curve as the Hip curve.
When specifying points, you can enter "?" as the Y coordinate. When doing so, the tool will calculate the curve that would have led to the previous point, then extend it to the new X coordinate and use the Y coordinate that would have naturally resulted. This should not be used on the first point.
Currently the following functions are supported:
linear - connect two points with a straight line, no parameters
linearacceleration - use a linear acceleration curve, 1 parameter (must be >0). The sensitivity at the endpoint is fixed, and the parameter indicates what the factor of sensitivity rampup from start to end to reach it was. For example a factor of 2 will add twice the starting sensitivity from beginning to end, so the sensitivity at the end of the range will be triple the start.
lineardeceleration - use a linear deceleration curve, 1 parameter (must be >0). The sensitivity at the endpoint is fixed, and the parameter indicates what the factor of sensitivity lowering from start to end to reach it was. For example a factor of 2 will start at an additional twice the ending sensitivity, so the sensitivity at the end of the range will be triple at the start.
logarithmic - a logarithmic curve, 1 parameter (must be >0) indicating the domain range that should be set to match the endpoint (higher values will make for a steeper start, lower values will make the curve straighter)
exponential - an exponential growth curve, 1 parameter (must be >0) indicating the domain range that should be set to match the endpoing (higher values will make for a steeper start, lower values will make the curve straighter)
The three parameters are designed so that if you operate on a region twice as wide, you should double the parameter to achieve a similar curve nature. So looking at the example script, the parameter was raised by 50% for the second deceleration section, because that section covers an area 50% wider, resulting in similar curves.
Curve generation will also create a save link to come back to your work, and forum code to post the results, as will viewing of xim-pasted curves. Following either method, if you want to add images of the graphs to the forum code, you can do so by clicking the button at the bottom of the page. This takes some time, wait until it automatically selects the text to let you know it is complete.
I make no promises about what might happen if you enter weird things (incorrect parameters, points out of order or out of bounds or not reaching the end, etc). Suggestions on what to work on next or bug reports are welcome.