Muito comum é a abordagem para ter um "mapa de batidas". Qualquer tipo de dado que represente as batidas da música. Pode ser uma textura, arquivo de dados ou qualquer outra coisa que contenha essas informações. Na maioria das vezes, é criado manualmente para criar batidas e combinações diferentes, versões de velocidades para um mapa de áudio.
Porém, ele pode ser gerado procedimentalmente a partir de dados de arquivos de áudio.
Como obter velocidade para combinar com o "ponto de batida"? Quando gerar um objeto?
Speed = Distance / Time
.
Distance =
Distância entre os pontos de criação do GameObject e do "beat point".
Time =
A duração do áudio e o mapa de batida construído devem ser suficientes. Com essas informações, você pode analisar os dados do áudio / mapa para prever quando um objeto deve ser gerado para atingir o ponto exato. Agora tudo depende de quando você deseja gerar esse objeto, se você quer que seja muito rápido após a geração, então você gera mais tarde com grande velocidade. Se você deseja que ele esteja a uma velocidade normal - será necessário tempo para alcançar o player e o áudio precisa de tempo para tocar no momento certo.
Você pode até gerar um novo mapa com carimbos de data / hora para gerar objetos de batida para determinado mapa de áudio. Você tem que fazer algumas previsões em algum momento para poder corresponder à batida, para o estilo mais popular, eu diria, prever when
gerar o objeto para que ele se mova com certeza speed
. Esses podem ser feitos em tempo de execução, ou lidos em alguns arquivos calculados anteriormente ou salvos na RAM ...
Eu suponho que jogos como Osu
esse não têm isso Distance
, eles apenas têm o tempo de círculos encolhendo, bpm ... Os mapas geralmente são feitos sob medida. Portanto, a abordagem para calcular recursos visuais depende do estilo do jogo que você está criando também.
Então, para resumir tudo, os valores são interdependentes. Depende de quantas batidas você tem, da distância entre o ponto de reprodução e o jogador, e algumas vezes depende dos dados fornecidos [alguns jogos têm a velocidade de cada batida e sua aparência codificada em algum arquivo de dados que é criado manualmente]. Se você estiver fazendo isso de maneira processual, poderá calcular tudo basicamente usando dados de áudio.