Статьи: Эксклюзив

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

Меня зовут Дмитрий Никифоров, я художник по эффектам в студии 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 раз, хоть и с картинками. Такая возможность появится и у вас, на закрытых бета-тестированиях игры.

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

Дмитрий Никифоров, cтудия Allods Team

8101 Автор:
Актуальность: 675
Качество: 705
Суммарный балл: 1380
Голосов: 12 оценки

Отзывы посетителей:

аватар
 
Никита Коренев 4 0
Цитирую veirdo:
На данном этапе развития общий доступ и коммерческое использование редактора не планируется
Понял, ок)
аватар
 
veirdo 6 0
На данном этапе развития общий доступ и коммерческое использование редактора не планируется. Редактор интегрирован в проект и связан с ресурсной системой. Тем более данные сохраняются в проприетарном формате и будут бесполезны вне редактора или проекта Skyforge.
lazycow Статья писалась для непрофессионалов на доступном языке, и я всего лишь описал возможности редактора. Насчет недопонимания профессии, Вам скорее просто попадались проекты, не нацеленные на зрелищность эффектов. Если эффекты должны "продавать" продукт, нуждам художника по эффектам будут уделять внимание, поверьте )
аватар
 
Никита Коренев 4 0
Выглядит круто и полезно,планируеться ли общий доступ в может быть и платном виде, как и у многих прежде внутри студийных разработок...

Цитирую lazycow:
По поводу вашего крутого редактора могу сказать, что таким должен быть стандартный редактор эффектов на проекте высокого качества.
Есть какойто редактор в свободном доступе для создания такова рода эффектов? мне нужно очень)кроме партикл илюжен никаких не встречал, ито он для 2д скорее
аватар
 
lazycow 178 0
Работал неоднократно над эффектами в разных проектах от мобил, до PC шутеров. В отечественной индустрии есть недопонимание профессии художника по эффектам. Большинство студий думает, что это просто и быстро. И отводит на это 1го человека, который занимается еще чем-то, а эффекты должен делать, "когда нечего делать". Но на самом деле это огромный труд, где задействованы и 2д художники и аниматоры и программисты и 3дшники. А частенько неплохо бы еще привлекать и сценаристов. И основная работа уходит на подготовку текстур, шейдеров, атласов анимированых текстур. Сотни проб и переделок. А просто подвигать ползунки, чтоб огонь горел, как огонь - это не долго :). Хотя и здесь надо понимать физику взаимодействия тел.
По поводу вашего крутого редактора могу сказать, что таким должен быть стандартный редактор эффектов на проекте высокого качества. Мне же показалось вы выдаете его за какой то божественный труд :). Ну и в любом случае был бы рад пообщаться на эту тему в той или иной плоскости :)
аватар
 
veirdo 6 0
Могу ответить только цитатой одной известной Калифорнийской компании: "When it's done" :)
Сроки, разумеется, есть, но я не вправе их озвучивать.
аватар
  vip
Wasteland 351 0
Спасибо!)
Долго еще пилить проект будете-то?)
Зарегистрируйтесь, чтобы добавить комментарий.
Эту страницу просмотрели: * уникальных посетителей