Pull to refresh
VK
Building the Internet

Визуальные эффекты для Skyforge. Арт и технологии

VK corporate blog
image
Все иллюстрации, приведенные в статье, даны для примера на тестовых объектах и не отражают финального качества игры. Хотелось бы похвастаться, но, извините, пока не можем.

Меня зовут Дмитрий Никифоров, я художник по эффектам в студии Allods Team. Работа над проектом Skyforge началась для меня в мае 2011 года, до этого я делал эффекты для MMORPG «Аллоды Онлайн».

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

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

В технологическом плане эффекты двигают всю игровую индустрию вперед. Чтобы добиться того или иного визуального эффекта, проводятся крупные исследования и огромное количество тестов.


Как же мы делаем эффекты? Это зависит от того, что именно нужно получить, какого типа требуется эффект. Если мы работаем с водопадом или огнедышащим драконом, то художники рисуют концепт-арт и передают его FX-художникам. Если же эффект должен сопровождать некую способность персонажа, как вышеупомянутый фаербол, то процесс несколько усложняется. Не получится просто так взять и нарисовать. Для реализации замысла художника всей команде придется собраться и устроить мозговой штурм. Визуальный дизайн разрабатывается так, чтобы наиболее эффективно и зрелищно показать определенные события игровой механики. Далее нужно подобрать образцы «материалов», из которых будет состоять нужный эффект. Подбираются кадры из фильмов, фотографии, даже делаются черновые наброски на клочках бумаги. При необходимости составляется концепт-арт будущего эффекта в раскадровке. Затем дизайн игровой механики тестируется с заглушечными эффектами — хорошо ли это выглядит? И только потом эффект передается в производство.

Технологии

Любой успешный MMO-проект должен непрерывно развиваться, в том числе и в технологическом плане. Яркий тому пример — WoW от Blizzard. Достаточно сравнить набор игровых и графических фич на момент запуска игры и на сегодняшний день.

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

Собственный редактор эффектов экономит много времени на экспорт и последующую настройку визуализации в игровом движке, позволяя сразу видеть результат работы. Возможности редактора постоянно расширяются в соответствии с требованиями современных технологий. Любой художник может «заказать» нужный ему инструментарий. Своего имени у редактора пока нет. (Есть идеи? Предложения принимаются! :)

А что приходит вам на ум, когда вы слышите об эффектах в играх? Наверняка это динамические симуляции вроде дыма, огня или взрывов. Однако в большинстве случаев в играх нет динамических эффектов, просчитываемых в реальном времени.


Пример эффекта с использованием технологии PhysX и без нее.

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

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

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


Частицы типа “billboarded sprites”



Частицы типа “directed sprites” и пример эффекта, где они используются.

Вместо «спрайтов» на месте частиц можно рисовать программные «трейлы». Это геометрические ленты, которые процедурно строятся в каждом кадре во время жизни частицы.




Частицы типа “trails” и пример эффекта, где они используются.

Также мы можем заменить рендер частиц на полноценную геометрию, предварительно смоделированную в Maya, так называемые instances.



Частицы типа “instanced geometry” и пример эффекта, где они используются.

Кроме того, мы можем рендерить вместо частиц источники света.



Частицы типа “lights” и пример эффекта, где они используются.

Игровой движок использует для рендеринга технологию deferred shading, где финальная картинка строится путем композиции множества предварительно посчитанных слоев из G-Buffer. Так как при этом подходе невозможно корректно отображать полупрозрачные объекты (к которым, в первую очередь, относятся эффекты), то они рендерятся отдельно. Обычно для эффектов используется облегченный шейдер, не зависящий от освещения, а чтобы эффекты не выбивались из окружающего мира, на них накладывается color grading, который учитывает освещение локальной зоны.

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



Частицы с материалом “water shader” и пример эффекта, где они используются.

Геометрия, рожденная эмиттером частиц, может иметь любой шейдерный код, используемый в игре. Но чаще всего в эффектах используется облегченный шейдер с аддитивным или альфа-блендингом. Для трейлов используется отдельный шейдер, который имеет четыре варианта блендинга: alpha, additive, multiply и даже inverse.

Редактор эффектов позволяет управлять некоторыми параметрами шейдинга — цветом, прозрачностью, самосвечением — и делать это отдельно для каждой частицы. Именно поэтому большинство наших текстур обесцвечены. Сами текстуры собраны в текстурные атласы, которые представляют собой одно или несколько изображений на одной площади текстурного пространства (секвенции взрывов, огня, дыма и т. п.).
Текстуры могут иметь несколько каналов-масок для имитации различных свойств материала. Основная текстура содержит цвет и маску прозрачности. В зависимости от материала, текстурный атлас может содержать еще карту нормалей, маски самосвечения, глянца, интенсивности блика, светопроницаемости.


Пример текстурного атласа.

Частицы могут освещаться глобальными источниками света, а также реагировать на IBL (Image based lighting). На рисунке видно, как освещается дым в зависимости от положения «солнца», а также показана работа маски самосвечения.


Частицы и освещение.

Управление частицами

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

Есть точечные и объемные генераторы частиц, различные «силовые поля» для обеспечения нужного поведения: гравитация, турбулентность, расталкивающее и стягивающее поле. Также есть вспомогательные объекты-коллизии для ограничения движения частиц с помощью плоскости или объема. На рисунке ниже показана работа коллизионного объекта типа «сфера» и гравитационного поля.


Объект «коллизия».

Каждый эффект состоит из одной или нескольких так называемых систем частиц. Похожий принцип можно видеть в программе Maya.

Система частиц включает в себя один или несколько генераторов частиц, и на все частицы внутри системы действуют одни и те же правила — будь то цвет, динамические поля, коллизии и т.п. Все частицы в системе могут быть только одного типа (спрайты, инстансы или трейлы), и все имеют один и тот же материал. В обычном эффекте содержится 3-7 систем частиц, а в сложных может быть более 10 систем. На отрисовку каждой системы нужен свой Draw Call, поэтому, чем меньше систем частиц в эффекте, тем проще видеокарте его изобразить.



Арт

В играх, как и в кино, никому не интересно, насколько правдоподобно и физически корректно происходит взаимодействие объектов и частиц в эффекте. Главное — зрелищность. Но в играх зрелищность эффекта надо поделить на частоту использования.

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

Если же это «спам-способность», которую можно применять хоть каждую секунду, то взрыв будет совсем другим. Это должен быть небольшой, не раздражающий эффект, который нужно будет еще и быстро убирать. Такие эффекты могут жить всего 0,25 секунды.



Игра — это в первую очередь геймплей. Эффекты сами по себе вторичны и являются поддержкой механики. Если максимально точно следовать этому правилу, то в игре совсем не останется места красивостям. Антураж игры будет сухой, как в шашках или дорожных знаках, потому что насколько бы красивой ни была картинка, это неизбежно будет отвлекать внимание от игрового процесса. К счастью, массовая аудитория, на которую мы нацелены, любит и ждет красивостей. Задача художника по эффектам — придумать и реализовать это так, чтобы не противоречило игровой механике, а дополняло ее.



Сама стилистика эффектов в Skyforge отличается от «Аллодов Онлайн». В рендере используются глобальное освещение с HDR-адаптацией и динамические источники света. Все это накладывает определенные требования на визуальные эффекты. Каждый из них должен выглядеть как определенное физическое явление (даже если это магия), а не как абстрактное нечто, иначе эффект будет выбиваться из общей стилистики. Если в «Аллодах» мы делали мультфильм, то в Skyforge мы делаем голливудский блокбастер.



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

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

Другие материалы можно посмотреть на сайте разработчиков Skyforge и в нашем сообществе Вконтакте.
Tags:
Hubs:
Total votes 66: ↑61 and ↓5 +56
Views 32K
Comments Comments 12

Information

Founded
Location
Россия
Website
vk.com
Employees
5,001–10,000 employees
Registered
Representative
Миша Буданов