Кадры, время и длина уровня
Уровень считает время в своих кадрах, а не в кадрах экрана, поэтому играется одинаково на любом железе. Длину уровня задаёте вы, а fps лучше оставить по умолчанию, 60
Кадр уровня и кадр экрана
Кадр уровня не связан с кадром экрана.
Экран рисует столько кадров в секунду, сколько тянет железо. Уровень считает время в своих кадрах, и их число в секунду записано в самом уровне. По умолчанию - 60
Поэтому уровень играется одинаково на 60 Гц, на 144 Гц и на телефоне, просевшем до 30. Точность попаданий не зависит от видеокарты
Кадр - это ячейка, а не момент. Если один объект кончается на кадре 100, а другой начинается на кадре 100, они не пересекаются
Точнее: кадры считаются с 1, и кадр f занимает время от (f-1)/fps до f/fps, левая граница включена, правая нет. Поэтому кадр 1 начинается в самом начале трека
Длина уровня
Длину уровня задаёте вы. Длина трека берётся из файла. Совпадать они не обязаны
Содержимое за концом уровня допустимо. Оно просто никогда не проигрывается, и проверка на него не ругается. Объект может заходить за конец, но ИИ-ассистент не может создать объект, который начинается после него
С ребёнком, который вылезает за промежуток родителя, так же. Уровень хранит то, что вы написали, а фактическое время жизни считается отдельно
Подогнать время жизни детей и родителей друг к другу можно модификатором Подгонка отрезков в Генераторы. Он либо загоняет детей внутрь, либо раздвигает родителей
FPS уровня
Чем выше fps, тем точнее попадание в ритм. И тем больше кадров нужно на ту же длину.
Диапазон - от 1 до 1000, по умолчанию 60
Оставьте fps по умолчанию. На 60 слух не различает сдвиг в один кадр, а число ключей растёт вместе с fps
Шкала ограничена 1000000 кадров. Это примерно 4.6 часа на 60 fps и примерно 17 минут на 1000
Смена fps на готовом уровне - это пересчёт всех ключей в нём. Его делает модификатор Смена частоты кадров, руками это нереально
Дальше: Ключи и сглаживание, Ритм и структура, Порядок работы