Nathan Huang рассказал о своём подходе к созданию красивых визуальных эффектов.
Вступление
Привет, меня зовут Nathan Huang. Я вырос в Новой Зеландии и недавно переехал в Лос-Анджелес, чтобы учиться в школе визуальных эффектов Gnomon. Я сперва изучал традиционное искусство, прежде чем узнал о визуальных эффектах. На протяжении всего моего детства я много рисовал, начал использовать Photoshop в свои школьные годы. Во время моего пребывания в Gnomon я изначально хотел просто научиться VFX'у для кино и рекламы, но потом познакомился с потрясающим миром реалтайм VFX благодаря моему инструктору Keith Guerrette. В настоящее время я работаю VFX художником в Survios, а в моем портфолио числятся такие игры, как: VR: Raw Data и Sprint Vector.
Процесс создания
Перед началом работы с эффектами я нахожу несколько референсов, просматриваю видео референсов на другом экране, а также делаю зарисовки различных этапов эффекта, это дает мне лучшее представление о том, какие различные элементы мне придётся создать. Все это делается для того, чтобы у меня был базовый чеклист тех элементов, которые мне нужны. Список будет постоянно обновляться по мере усложнения эффекта.
Мне нравится сначала распределять тайминг, а потом уже браться за текстуры. Поэтому я использую заполняющие текстуры, чтобы правильно настроить начальный тайминг, а уже позже заменяю их на настоящие текстуры. Если ваш движок позволяет просмотр в Slow Motion, то было бы неплохо просмотреть эффект в медленном режиме. Старайтесь создавать случайность во всем: в размере, в количестве частиц, во времени существования частиц. Таким образом, каждый раз, когда эффект активируется, он не будет выглядеть одинаковым при каждом воспроизведении.
Шаги, которые я предпринимаю при создании любого эффекта: пытаюсь перейти к первоначальным формам и действиям, например, для коктейля Молотова, создав сначала первый взрыв с огнем, затем перейти к второстепенным формам и действиям (дым и огненные лужи), а затем к деталям (искры, обломки и тепловые искажения).
Visual Effects в играх
Игровые эффекты по своей сути - это все, что движется, без анимирования персонажей. Они могут быть разделены между эффектами геймплея и эффектами окружающей среды. Эффекты геймплея должны передавать четкую обратную связь с игровым дизайном и информацию игрокам (это заклинание исцеления или это взрывной болт)? Должен ли он нанести вам урон или замедлить вас? Был ли это небольшой удар или критический урон? С помощью цвета, формы и времени они должны передать одно и то же сообщение. Для игроков всё должно быть понятно, не пытайтесь изобрести колесо.
Эффекты окружающей среды приносят жизнь и движение в статическую среду и заставляют ее быть более захватывающей. Они также используются для навигации игроком по всему миру: это могут быть световые лучи, ведущие к месту назначения, или дым, находящийся на расстоянии от игрока, чтобы показать важную область.
Мое личное мнение об использовании флипбуков - это использовать максимум 2 при каждом эффекте и попытаться максимально использовать пространство текстуры (я знаю, что некоторые игровые движки могут вырезать из текстуры шестиугольник так, что пространство текстуры будет заполнено. В Unreal Engine это называется Particle Cutouts).
Совершенно не важно, какое программное обеспечение вы будете использовать. Работайте там, где вам удобно. Для моего Reel’а я использовал несколько различных программ, включая Maya Fluids, FumeFx, Phoenix FD, Krakota, Houdini и After Effects.
Шейдеры Unreal Engine 4
В первую очередь я стараюсь делать большинство моих эффектов, используя шейдеры, прежде чем я увижу, нужна ли симуляция. Есть три способа, которые я постоянно использую в своих материалах, чтобы подделать какую-то анимацию без необходимости использования флипбуков.
Один из них - это использование текстуры для начальной маски, а другие - это пэнинг тайлированных текстур с различной скоростью и разными размерами UV. После объединения их друг с другом, их можно стакать до бесконечности, но помните, что чем больше у вас слоёв, тем меньше будет прозрачность.
Alpha Threshold - это иллюзия плавного рассеивания текстуры. Это дает более интересный способ рассеивания эффекта по сравнению с простым угасанием. Я обычно подключаю параметр, который управляет анимацией через непрозрачность, или использую динамический параметр, который устанавливает значение от 0 до 1.
И напоследок искажение UV, используя пэннинг текстур, который добавляется на UV. Это можно использовать для создания некоторого движения в текстуре, которая может быть слишком статичной и использоваться для создания большей случайности.
Оптимизация
Наконец, оптимизация, не самая забавная часть, но самая необходимая, так как именно визуальные эффекты обычно винят в снижении производительности, особенно при работе с VR 90 FPS. Это связано с тем, что большинство эффектов - это полупрозрачные материалы. С каждой частицей, перекрывающей другую, затраты на рендер каждый раз увеличиваются.
Вот несколько вариантов оптимизации ваших эффектов:
Создавайте меньше частиц и LOD'ов.
Используйте Particle Cutouts.
Преобразуйте частицы из режима Lit в режим Unlit.
Используйте альфа маскинг вместо полупрозрачного режима наложения.
Заполняйте все возможное место на текстуре.
Загляните в шейдеры, чтобы упростить их.
Ресурсы для обучения
Лучшими материалами для обучения реалтайм VFX являются два сайта: Real Time VFX и GDC Vault. Также могут помочь некоторые полезные YouTube каналы для начинающих и не только. Imbuefx, Jason Keyser, DucVu FX, Yoeri Luos Vleer, Sirhaian Arts.
Nathan Huang, VFX Artist
Переведено с сайта 80.lv.