Очень распространенным является подход к созданию «карты ударов». Любые данные, которые представляют ритмы в песне. Это может быть текстура, файл данных или что-то еще, что содержит эту информацию. Большую часть времени он создается вручную для создания различных ударов и комбинаций, версий скоростей для звуковой карты.
Однако он может быть сгенерирован процедурно из данных аудиофайла.
Как получить скорость, соответствующую «точке удара»? Когда порождать объект?
Speed = Distance / Time
,
Distance =
Расстояние между точками создания GameObject и «точки удара».
Time =
Длина звука и построенная карта битов должно быть достаточно. С помощью этой информации вы можете анализировать данные аудио / карты, чтобы предсказать, когда объект должен быть создан для достижения точной точки. Теперь все зависит от того, когда вы хотите порождать этот объект, если вы хотите, чтобы он был очень быстрым после появления, тогда вы вызываете его позже с большой скоростью. Если вы хотите, чтобы он работал с нормальной скоростью - тогда ему понадобится время, чтобы дойти до плеера, а для воспроизведения звука нужно время.
Вы даже можете создать новую карту с метками времени для появления объектов битов для конкретной звуковой карты. Вы должны сделать некоторые прогнозы в какой-то момент, чтобы иметь возможность соответствовать ритму, для самого популярного стиля, я бы сказал, чтобы предсказать when
появление объекта, чтобы он перемещался с определенной вероятностью speed
. Они могут быть сделаны во время выполнения, или считаны из некоторого файла, рассчитанного ранее, или сохранены в RAM ...
Я полагаю, что в играх Osu
этого нет Distance
, просто время сокращения кругов, ударов в минуту ... Карты обычно создаются на заказ. Таким образом, подход к вычислению визуальных эффектов зависит также от стиля игры, которую вы делаете.
Таким образом, чтобы подвести итог всего, значения являются взаимозависимыми. Зависит от того, сколько ударов у вас есть, на расстоянии между точкой возрождения и игроком, а иногда зависит от предоставленных данных [в некоторых играх скорость каждого удара и его внешний вид закодированы в некотором файле данных, который создается вручную]. Если вы делаете это процедурным способом, то вы можете вычислить все в основном, используя аудиоданные.