Muy común es el enfoque para tener un "mapa de ritmo". Cualquier tipo de datos que represente los ritmos de la canción. Puede ser una textura, un archivo de datos o cualquier otra cosa que contenga esa información. La mayoría de las veces se crea manualmente para crear diferentes ritmos y combinaciones, versiones de velocidades para un mapa de audio.
Sin embargo, puede generarse procesalmente a partir de datos de archivos de audio.
¿Cómo conseguir que la velocidad coincida con el "punto de latido"? ¿Cuándo generar un objeto?
Speed = Distance / Time
.
Distance =
Distancia entre los puntos de creación de GameObject y de "beat point".
Time =
La longitud de audio y el mapa de ritmo construido deberían ser suficientes. Con esta información puede analizar los datos de audio / mapa para predecir cuándo se debe generar un objeto para llegar al punto exacto. Ahora todo depende de cuándo quieres engendrar ese objeto, si quieres que sea muy rápido después del engendro, entonces lo engendras más tarde con gran velocidad. Si desea que esté a una velocidad normal, necesitará tiempo para llegar al reproductor y el audio necesita tiempo para reproducirse en el momento adecuado.
Incluso puede generar un nuevo mapa con marcas de tiempo para engendros de objetos beat para un mapa de audio en particular. Tienes que hacer algunas predicciones en algún momento para poder igualar el ritmo, para el estilo más popular, diría, para predecir when
generar el objeto para que se mueva con seguridad speed
. Esos pueden hacerse en tiempo de ejecución, o leerse de algún archivo calculado previamente, o guardarse en RAM ...
Supongo que los juegos como Osu
no tienen esto Distance
, solo tienen tiempo de reducción de círculos, bpm ... Los mapas generalmente están hechos a medida. Por lo tanto, el enfoque para calcular las imágenes depende del estilo del juego que estés haciendo también.
Para resumir todo, los valores son interdependientes. Depende de cuántos latidos tenga, de la distancia entre el punto de generación y el jugador, y a veces depende de los datos proporcionados [algunos juegos tienen la velocidad de cada latido y su apariencia codificada en algún archivo de datos que se crea manualmente]. Si lo está haciendo de manera procesal, puede calcular todo básicamente utilizando datos de audio.