Funcionamiento
Concepto base
En la vida real, la caía de un proyectil es afectada por su velocidad inicial, gravedad y resistencia del aire. En el nodo BallisticPath3D, esos valores son interpretados por Speed, Gravity y Loss Speed respectivamente.
Simulación de recorrido atreves del tiempo
Dividiendo el valor Time Life entre Num Points obtenemos una marca de tiempo delta, la cual nos permite calcular el avance del proyectil y dibujar la curva.
Usando los valores delta, Speed, Gravity y Loss Speed podremos calcular la poción de cada punto que conformara nuestra curva. Debido a que Loss Speed hace referencia a un porcentaje de perdida a través del tiempo y no un valor constante, incrementar el valor Num Points no solo provoca una curva con más definida, sino también afecta el alcance la misma. Sin embargo, esto también permite tener comportamientos más variados y representar caídas exponenciales y no solo lineales. Visto de forma 2D, Speed y Loss Speed afectan el avance en eje X durante el recorrido, mientras que Gravity lo hace en el eje Y
Punto cero
Suponiendo que quieras que la trayectoria dibujada conocida con la marca de tu mira a cierta distancia, puedes usar los valores Point Zero y Height of the Sight. El primero representado la distancia a la que se desea que la que curva se cruce con la mira, y el segundo la diferencia de altura entra el punto de mira y la boca del cañón.
Primero, se obtiene la curva sin ajuste ningún ajuste adicional. Posteriormente, se verifica cuál es punto más cercano la distancia indicada en Point Zero y revisa su altura con relación al punto de mira. Después se vuelve a calcular la curva corrigiendo la posición los puntos gracias al dato anterior.
Limitaciones
Hasta ahora, lo más destacable sería la necesidad de un PathFollow3D y su programación manual. Pero más importante, es que la curva se calcula de forma paralela al piso, así que si apuntas al cielo, el proyectil no regresaría al piso, sino que terminaría yendo hacia adelante.
Le damos bienvenida a la wiki.
