Molto comune è l'approccio per avere una "beat map". Qualsiasi tipo di dato che rappresenta i battiti della canzone. Può essere una trama, un file di dati o qualsiasi altra cosa che contenga tali informazioni. Il più delle volte viene creato manualmente per creare battute e combinazioni diverse, versioni di velocità per una mappa audio.
Tuttavia, può essere generato proceduralmente dai dati dei file audio.
Come ottenere la velocità corrispondente al "punto di battuta"? Quando generare un oggetto?
Speed = Distance / Time
.
Distance =
Distanza tra i punti di creazione di GameObject e di "beat point".
Time =
La lunghezza dell'audio e la beat map costruita dovrebbero essere sufficienti. Con queste informazioni è possibile analizzare i dati di audio / mappa per prevedere quando un oggetto deve essere generato per raggiungere il punto esatto. Ora tutto dipende da quando vuoi spawnare quell'oggetto, se vuoi che sia molto veloce dopo la spawn, quindi lo spawn in seguito con grande velocità. Se vuoi che sia a una velocità normale, allora avrà bisogno di tempo per raggiungere il lettore e l'audio ha bisogno di tempo per suonare al momento giusto.
Puoi persino generare una nuova mappa con timestamp per la generazione di oggetti beat per una particolare mappa audio. Devi fare delle previsioni ad un certo punto per riuscire ad abbinare il ritmo, per lo stile più popolare, direi, per prevedere when
di generare l'oggetto affinché si muova con certezza speed
. Questi possono essere fatti in runtime, o letti da alcuni file calcolati in precedenza, o salvati nella RAM ...
Suppongo che giochi come questi Osu
non abbiano questo Distance
, hanno solo il tempo di restringimento dei cerchi, bpm ... Le mappe sono generalmente personalizzate. Quindi l'approccio per calcolare gli elementi visivi dipende anche dallo stile del gioco che stai realizzando.
Quindi per riassumere tutto, i valori sono interdipendenti. Dipende da quanti battiti hai, dalla distanza tra il punto di spawn e il giocatore, e talvolta dipende dai dati forniti [alcuni giochi hanno la velocità di ogni battuta e il suo aspetto codificato in alcuni file di dati creati manualmente]. Se lo stai facendo in modo procedurale, puoi calcolare tutto sostanzialmente usando i dati audio.