Всем привет, изучаю фмод, пробую что то написать, нужна критика)
https://www.youtube.com/watch?v=4SLSvpmEEhI
Привет! Звучит отлично, но выглядит расточительно по ресурсам. Для игры следующим шагом в отношении этих ивентов должна быть оптимизация:
1. Количество дорожек выглядит чрезмерным для этого метода. Стоит поискать способы обьединить партии в один рендер, если слои никак динамически не изменяются друг относительно друга. Возможно, часть партий объединятся в стемы. В первом треке вообще только 1 смена стейта- выглядит как возможность сделать весь микс в 2-3 дорожки, не занимаясь разбивкой. Во втором треке (меню) вообще не вижу смысла делать разбивку - никаких адаптивных отрабатывание микса в этом примере нет, а количество файлов внутри ивента раздует банк трека в 4-5 раза.
2. Если партии более-менее из повторяющихся звуков состоят - можно сделать рендер повторяющихся звуков в виде ваншотов. В первом треке вся партия ударных может быть разъята на несколько маленьких семплов и перенабрана внутри сетки тактов. Ещё музыка геймплея на трекерную похожа - может быть весь трек возможно имитировать в таком формате? Как пример см. Celeste - в проекте есть «трекерный» саундтрек - замороченно, но интересно сделан.
3. Эффекты фильтра и прочие простые штуки - делаются автоматизацией эффектов в fmod, на этом тоже можно сэкономить семплы - не рендерить эффекты внутрь семплов, а сделать рендер короткого фрагмента, который далее будет преобразоваться эффектами.
Возможно, стоит более внимательно проверять реализацию на соответствие цели. Хороший метод - идти от противного. Задать вопрос чем будет плох линейный full mix в данной ситуации? Намного ли лучше и зачем делать адаптивно меняющийся вариант? Каких изменений будет достаточно? Добавят ли вариации при повторах прирост удовольствия от игры? Как ограничены ресурсы? Когда ответы получены - делать экономный вариант рендера, который обслуживает конкретную задачу, не раздувая размер банка разбивками и повторами, которые ни на что не влияют и в игре не будет прироста качества от их наличия.
Конкретным мерилом оптимизации по ресурсам может быть размер банка. Можно сравнивать банки: с линейным full mix рендером и с адаптивным вариативным треком. В идеале - стремимся по ресурсам не превышать размер линейного. Но если адаптивный вариант даёт неоспоримый профит - можно в 1.5-2. Далее уже компромиссные варианты начинаются. Должны быть очевидны плюсы, чтобы брать в билд трек, который в разы превышает более простые варианты, которые как-то тоже работают.
Благодарю, отличный ответ, цель сейчас освоить фмод, поэтому столько дорожек, сейчас на большинстве звуков стоит разная вероятность, не стал делать долгое видео, но они не просто так все время играют.
Получается, размер важней нагрузки на цпу? Действительно можно разбить на петли, и сильно уменьшить размер проекта, но если поставить везде фильтры и какую то обработку, не возникнет ли проблемы с цпу? Сколько вообще должен брать на себя звук?
dchnk
>Сколько вообще должен брать на себя звук?
Сильно зависит от проекта. Бюджеты по весу и цпу, чем ближе к мобайлу - тем суровее. Много дорожек в параллели будут отнимать ресурсы и на микширование тоже (цпу). Если они из памяти читаются - это одна история, если стриминг - другая. Все эти варианты и их затраты можно измерить в профайлере, чтобы наглядно вычислить приемлемую комбинацию параметров.
Компромисс между лишними мб дорожек или лишней нагрузкой на цпу стоит смотреть сравнительно. Несложные эффекты, встроенные в fmod, относительно небольшую нагрузку дают.
Если это тренировочный проект - очень рекомендую искать пути оптимизации по всем фронтам (и размеры, и нагрузка), т.к. даже ПК сейчас довольно часто на консоли портируется, что требует тщательного отбора ресурсов.
Sekmet
Спасибо, теперь стало понятней)
Тема в архиве.