World of Warcraft

Слово инженерам: персонализация персонажей

Слово инженерам: персонализация персонажей

До перехода в Темные Земли осталось меньше недели! Надеемся, вы как следует повеселились в обновлении, предшествующем выходу дополнения, и испробовали различные варианты персонализации своих персонажей! Возможно, в процессе выбора новых причесок и цвета глаз вы задумывались над тем, как проходила кардинальная переработка этой огромной игровой функции, постоянно расширяющейся с каждым дополнением. И сейчас мы вам все расскажем!

Немного истории

Когда мы только выпустили World of Warcraft, нашим основным приоритетом было сделать так, чтобы в эту игру могло играть как можно больше людей. Для этого нужно было оптимизировать минимальные требования под все многообразие устройств, на которых WoW мог запускаться. Перед нами встал выбор. Чего мы хотим? Чтобы у персонажа были отдельные пальцы, даже если это повлияет на частоту смены кадров? Или лучше все-таки направить эту вычислительную мощность на какую-нибудь игровую, а не декоративную функцию? Игра вышла в 2004 году, и подобный выбор перед нами больше не стоит просто потому, что мощность компьютерного «железа» растет с каждым поколением, и это дает нам возможность воплощать в жизнь новые идеи и вносить долгожданные изменения.

Текстуры моделей тауренов

Итак, как же изначально создавались персонажи и что мы изменили? Первоначально модель данных была относительно простой, но со временем и добавлением новых функций начали возникать сложности. До выхода дополнения Legion для персонажа каждой расы и пола существовало только пять настроек, которые можно было изменить (после — восемь). А что делать, если таких настроек нужно было больше? Как до Legion создавались неигровые охотники на демонов, если ночные эльфы уже использовали все пять доступных ячеек? В какой-то момент дизайнеров посетило озарение, и они решили, что их спасут предметы (в первую очередь, конечно же, рубашки). На рубашку можно было нанести узор в виде татуировок, а затем сделать ее текстуру, за исключением узора, совершенно прозрачной. Умно!

Татуировки охотников на демонов

Размещение систем, игровых и технических данных

Но техническая гимнастика, о которой мы рассказали выше, — совсем не то, чем должны заниматься разработчики каждый раз, когда им хочется добавить в игру какую-нибудь потрясающую новую функцию. Мы обработали все уроки предыдущих дополнений и определили для себя, что хотим иметь неограниченные возможности персонализации персонажей. При этом все функции персонализации должны работать по отдельности (то есть игрок может отдельно менять глаза, лицо, усы и бороду) и не ограничиваться пятью общими ячейками. На поддержание этой функции должно уходить меньше времени, а еще было бы неплохо, если бы она избавила нас от необходимости дублировать большие массивы данных (посмотрите, например, на представленную ниже «таблицу» редактора стилей, в которой каждая ячейка — это вариант лица плюс цвет кожи). А больше всего мы хотели уменьшить нагрузку на рисующих текстуры художников и дизайнеров, затем применяющих эти текстуры к персонажам.

Старый редактор персонализации
Старый редактор персонализации, которым мы пользовались до обновления, предшествующего выходу Shadowlands.

Для начала мы взяли таблицы базы данных со свободной привязкой, в каждой записи которых содержались колоссальные объемы информации, и разбили их на более компактные и логичные группы данных. Это, в свою очередь, позволило нам покончить с редактированием таблиц и создать ряд автоматически генерируемых настраиваемых редакторов, очень похожих на те, которые в конечном итоге будет видеть игрок. В конце концов новый макет дал нам необходимую гибкость, а также открыл доступ к новым интересным настройкам: например, к возможности редактировать облики воргена и гилнеасца независимо друг от друга.

Новое окно просмотра персонажа
Благодаря банку текстур и новым возможностям редактирования добавлять новые варианты персонализации стало гораздо проще!

Мы полностью переработали технические и игровые элементы, так что теперь надо было подготовиться к тому, что сразу же после выхода обновления в систему войдут тысячи игроков со старыми данными. Нужно было сделать так, чтобы их персонажи (а также десятки тысячи НИП) выглядели в точности так же, как и раньше. Для этого мы создали бесшумный процесс преобразования, включающий в себя почти 9000 правил, отвечающих, например, за разделение бороды человека на бороду, усы и бакенбарды. Команда автоматизации разработала инструмент, способный массово сравнивать снимки экрана до и после, чтобы сотрудники отдела по контролю качества могли быстро выявить любые несоответствия. Если все пройдет хорошо, в первый день после установки обновления игроки войдут в игру и даже не заметят, что с их любимыми персонажами вообще что-то случилось!

Переработка движка игры

Для того чтобы игроки смогли воспользоваться новой системой персонализации, нам нужно было полностью переработать движок игры. Раньше у каждого уникального набора параметров персонализации была собственная текстура, и изменение параметра предполагало смену уникальной текстуры, используемой для конкретного персонажа. В Shadowlands количество вариаций настроек исчисляется миллионами, поэтому мы разработали совершенно новую систему персонажей, благодаря которой процедурная генерация текстур происходит на лету.

Помимо прочего, весь код обработки текстур был переписан с нуля с использованием расширений SIMD (централизованного управления потоком данных) и системы, созданной для управления общими ресурсами персонажей с одними и теми же текстурами. Эти изменения позволяют использовать процессор по максимуму и помогают нам избежать копирования текстур во время загруженных графикой сцен. В тандеме с новой структурой базы данных это позволило нам отказаться от настраиваемых вручную таблиц и создать скоростную, полностью управляемую данными систему. Посмотрите, что происходит в движке, когда ему приходит запрос на создание дворфа.

Новое окно просмотра персонажа
Для создания промежуточных текстур используется текстура в градациях серого и маска с процедурно окрашенной татуировкой.
Новое окно просмотра персонажа
Снимок экрана с изображением раннего прототипа. Здесь вы видите, какие текстуры и вводные данные были использованы для персонализации модели, а также конечный результат.

Пользовательский интерфейс и анимация

В связи с увеличением числа вариантов настройки пользовательский интерфейс для Shadowlands пришлось полностью переписать. Новая система позволяет дизайнерам создавать и классифицировать столько параметров настройки, сколько нужно, без необходимости модификации базового кода или систем его поддержки. Кроме того, теперь у каждого варианта может быть произвольное количество опций, каждая из которых отображается в виде номера, названия или максимум двух образцов цвета. Также мы проделали масштабную работу, чтобы игровой процесс стал более восприимчивым к действиям игрока. Нашей целью было сделать так, чтобы вам не приходилось постоянно щелкать на текстуры: теперь они меняются просто при наведении на них указателя мыши. Теперь пользовательский интерфейс настройки персонажа также доступен в парикмахерской.

Интерфейс экрана создания персонажа

Мы также полностью переделали экран выбора рас и классов, позволив нашим выдающимся дизайнерам и художникам добавить на него особую анимацию и эффекты. Пока игрок находится на экране создания персонажа, основные игровые системы еще не работают, так что нам понадобилось провести капитальную реорганизацию кода. В новой системе художники и дизайнеры имеют полный контроль над тем, какая анимация и эффекты воспроизводятся для каждой отдельной комбинации расы, класса и пола, и могут вносить изменения по мере необходимости.


Надеемся, вам понравился наш рассказ о том, как проходила переработка системы персонализации персонажей. Будьте уверены, что нам-то уж точно нравится, какие образы вы создаете с ее помощью! Живи стильно, Азерот!

Следующая статья

Главные новости