Звуковая система «Аллодов Онлайн»

  • View
    744

  • Download
    1

  • Category

    Career

Preview:

DESCRIPTION

Докладчики: Дмитрий Патраков, директор по звуку на проекте «Аллоды Онлайн»; Антон Ольховик, программист команды клиента на проекте «Аллоды Онлайн».

Citation preview

Антон ОльховикПрограммист, департамент клиентских игр

www.mail.ru

Звуковая система «Аллодов Онлайн»

Для чего это нужно?

Цель: дополнение игровой атмосферы

Задачи: воспроизведение и остановка нужных звуков в нужное времяреалистичное и согласованное звучание

www.mail.ru 2

Категории звуковых явлений

Действия (бег, удар, падение)События (скриптовые сцены)Голоса/эмоцииФоновые звуки (ambient)Музыка

Сложные/составные явления(звук от болота, от системы громкоговорителей)

www.mail.ru 3

Типы источников звука

2D — воспроизводится через колонки «как есть»

Имеет положение в пространстве, согласованное с визуальной сценойРаспределяется по каналам в процессе рендеринга звуковой сцены

www.mail.ru 4

Звуковой контент

Необходимость использования аудио-компрессииБольшое количество схожих звуков

Объединение всех вариаций в один элемент

Одни звуки часто включают в себя другие

Использование звуковых банковСобытие (sound event) — комбинация банков + правила воспроизведенияЭкземпляр события — готовый источник звука, имеет положение, направление, громкость и т.д.

www.mail.ru 5

Архитектурные решения

Gfx GUI ... SndПодсистема

нетMiddleware

APIs

нет FMOD

Direct3D DirectSound(Xbox 360,

PS3, iPhone, ...)

Phys

нет

нет

Унифицированная «обёртка» над множеством APIУдобная система «звуковых событий»Готовые средства разработки для звукового дизайнера

Engine

www.mail.ru 6

Необходимый функционал

www.mail.ru 7

Возможность воспроизведения звука

Обработка, микширование

Что воспроизводить

Обработка, микширование

Как воспроизводить

Когда воспроизводить

Audio API

Middleware

Sound Engine

Взаимодействие с ресурсной системой

www.mail.ru 8

Кеширование звуковых банков, подгрузка и выгрузка по мере необходимости

Способ хранения – ZIP-архив с разными степенями сжатия → виртуальная файловая система → отложенная загрузка ресурсов в отдельном потоке

Источник звука запущен, но банк не подгружен → воспроизведение начнётся по окончании загрузки

Короткие события загружаются в память полностью, длинные (музыка, амбиенты) — читаются с диска по мере воспроизведения

Структура движка

www.mail.ru 9

SoundCategorySoundCore

SoundSystem SoundEvent

SoundProject SoundBank

DataProvider

Структура движка

www.mail.ru 10

UI

MoveSfxPlayer

AmbiencePlayer

MusicPlayer

SoundCore

Пользовательские настройки

Содержимое звуковых банков

...Задание положения слушателя, запрос отладочной информации

Создание источника звука, управление им

GlobalStorage

DataProvider

Хранение звуковых событий

www.mail.ru 11

Project

Banks

(описания событий)

(аудио-данные)

(тип источника звука)

Все проекты загружаются сразу, при создании звуковой системы

Банки кэшируются. Когда загруженно максимальное число банков, производится выгрузка неиспользуемых (если таковые имеются)

Event

Управление воспроизведением

www.mail.ru 12

Звук рендерится в отдельном потоке с высоким приоритетом – «запинки» недопустимы

Управляющее воздействие (создание экземпляра события, изменение его позиции и параметров) приходит только из основного потока

Раз в кадр: soundSystem->Update()Все изменения применяются разом

Анимационные плееры

www.mail.ru 13

Персонаж

Состояния:

Бег

Начало прыжка

Ключевые кадры:[10, 25, 40]

Звук = startJump

Звук = run

Пока звук играет – храним указатель на него, т. к.:

Нужно перемещать вслед за персонажем

Нужно вовремя остановить, напр. смена состояния, зацикленный звук

Нужно изменять параметры, напр. «тип поверхности»

Музыкальный и амбиентный плееры

www.mail.ru 14

Задержки перед началом и повтором воспроизведения

Зоны на карте

Время сутокАзимут

Таймаут при смене зоныПриоритет трека

Помещения, а также их составные части – отдельные зоны

Пресет реверберацииДополнительные параметры

Протяжённые источники звука

www.mail.ru 15

2D

Антон ОльховикПрограммист, департамент клиентских игрolkhovik@corp.mail.ru

Спасибо!

Mail.RuРазработчик игр и сервисов №1Крупнейший работодатель в отрасли

Работайте у нас!job.gamedev@corp.mail.ruhttp://corp.mail.ru/career/vacancies/voronezh

www.mail.ru

Recommended