Ганплей
Во время стрельбы важно не только попадание и то, как работают снаряды, но и ощущение от оружия.
Анимации, звуки, эффекты — все это создает фан от стрельбы и делает использование оружия прикольным!
Ниагара
Niagara System — это система частиц, на которые влияют установленные правила поведения.
Ниагара состоит из модулей-нод, представляющих набор программируемых правил поведения частиц.
Что такое частицы?
Частица — это просто плейн (plane) из одного полигона с картинкой, который всегда направлен в сторону камеры, если не установлено иначе.
Открываем Анрил
Создаем папку, называем VFX. Это не обязательно, но хранить эффекты отдельно удобно.
Теперь создаем Niagara System, выбирая Fontain.
Sprite Renderer
Модуль, отвечающий за настройку базовых частиц. Тут можно поменять их материал, alignment.
Initialize Particle
Основной модуль для почти каждой ниагары. Тут можно настроить время жизни, базовый цвет и базовый размер частиц (а также их разброс по размеру).
Mesh Renderer
Модуль, который вместо частиц создает меши-модельки. Тут можно заменить модельку, которая будет спавниться, сменить материал модельки.
Прервемся на материалы
Потому что в ниагаре они нам тоже понадобятся.
Материалы — это тоже код из нод и в первую очередь математика. Почти все в материалах работает на более или менее простой математике чисел в основном от 0 до 1, но, конечно же, с исключениями.
Какие есть приколы?
- Картинки (текстуры) и работа с текстурами
- Создание масок с помощью нод и текстур
- Разные режимы материала под разные нужды
- Двигающиеся материалы
Texture Sample
Основа основ
В базовой библиотеке есть много текстур, которые можно использовать, например разные Noise.
Add и Multiply
Позволяет накладывать на текстуры цвет и другие текстуры или делать текстуры прозрачнее.
World Position Offset
Материал начинает влиять на геометрию объекта, на который наложен (делает это по развертке) и зависит от полигонажа самой модели.
Режимы материала
Blend Mode
Обычно используется Opaque и Masked. Для эффектов, особенно если они прозрачные, используется Additive Translusent используется только для декалей. На остальные не обращайте внимания.
Two Sided Material
Иногда бывает полезным, особенно если вы делаете прозрачные материалы или материалы с дырками.
Lerp
С этой нодой вы уже знакомы. Она берет значение между одним и другим значением, но в материалах работает чуть более широко — потому что может работать с картинками и масками.
Мигающий материал
Чтобы подходил для Niagara
В идеале — материал должен быть белым, если вы хотите менять его цвет.
Возвращаемся в Ниагару
Модули Ниагары
Spawn Rate
Спавнит каждую секунду N частиц, пока длится.
Spawn Burst
Спавнит частицы одновременно всего один раз за луп.
Emitter State
Можно настроить цикл спавна частиц: сколько раз появятся частицы или же они будут появляться бесконечно, а также длину лупа.
Add Velocity
Добавляет скорость частицам! Может быть linear, from point и in cone.
Shape Location
По умолчанию, все частицы появляются в точке 0,0,0. Этот модуль изменяет это правило и ставит границы в виде фигуры, внутри которой появляются частицы.
Initial Mesh Orientation
Все частицы и меши по умолчанию повернуты одинаково. Этот модуль в связке со следующим позволяет изменить rotation частиц.
Align Sprite to Mesh Orientation
Этот модуль зависит от предыдущего и без него не будет работать. Он выравнивает частицы в соответствии с настройками предыдущего модуля.
Rotate Around Point
Этот модуль привязывает все частицы к невидимой окружности и с переменной Time в Phase заставляет частицы появляться по кругу.
Практика: делаем взрыв из разлетающихся частиц
Это наш будущий простой эффект выстрела из оружия
Настройте:
- количество
- длину и ширину частиц
- цвет частиц
- разлетание в разные стороны с какой-то скоростью
- скорость пропадания
- выравнивание частиц по скорости
Что пригодится в создании взрыва?
Scale Sprite Size
Позволяет менять размер частиц И привязывать этот размер к времени жизни (делать больше или меньше в течением времени).
Scale Sprite Size by Speed
Позволяет менять размер частиц и привязывать этот размер к скорости, с которой двигается частица.
Scale Color
Позволяет менять цвет частиц и привязывать его к времени, которое частица живет (менять цвет с течением времени).
Scale Color by Speed
Позволяет менять цвет частиц и привязывать его к скорости, с которой частица двигается.
Wind Force
На частицы начинает воздействовать сила ветра. Обычно заметно на всяких болтающихся в воздухе частицах.
Gravity Force
Гравитация! Причем — с настраиваемой силой.
Curl Noise Force
Позволяет делать завихрения частиц.
Collision
Добавляет частицам коллизию — они начинают отскакивать друг от друга и от коллизий окружения.
Particle State
Позволяет отменить удаление партиклов.
Добавляем взрыву деталей
Усложняем эффект
Теперь используем новые модули, чтобы сделать эффект сложнее:
- меняем цвет частиц за время жизни
- меняем размер частиц
- добавляем другие новые модули
Больше Эмиттеров
Эмиттеров может быть несколько — один эффект может сочетать в себе и искры, и дым, и еще какие-то эффекты.
Spawn From Other Emitter
Более того, из одних частиц можно спавнить другие — при помощи специального модуля.
Ribbon Renderer
Также подходит для спавна из одних частиц можно других.
Как спавнить эффекты
Первый способ
Spawn System at Location — создает ниагару в точке, которую вы ей назначите. Лучше взять трансформы shooting point (стрелочка).
Создаем Custom Event, а потом подключаем его в функции Shooting.
Второй способ (attach)
Обратите внимание, что тут используется другая нода!
Создаем Custom Event, а потом подключаем его в функции Shooting. Также как и в первом способе.
Почему не видно?
Иногда без галочки Local Space ниагара появляется не там где надо.
Кое-что еще про материалы
Материалы можно анимировать в Ниагаре!
Значительная часть эффектов работает на изменении параметров материалов. Ниагара имеет для этого специальный модуль.
Создадим простой Dissolve
Подключаем Dynamic Parameter
Меняем в Ниагаре
Практика: делаем круглые края и добавляем движения
Делаем взрыв для попадания
Сейчас у эффекта квадратные края. Надо это исправить.
Вспомните, какая нода позволяет сделать круг в материале. Настройте её.
А еще сделайте материал подвижным!
Опционально: сделать вместо спрайтов сферы!
Об оптимизации
Золотое правило
Чем меньше эмиттеров и частиц, тем меньше ресурсов на ниагару тратит компьютер.
Количество модулей в каждой ниагаре также имеет значение потому что это все = код, который обрабатывает в расчетах движок.
Есть более и менее тяжелые модули, при желании можно обратиться к документации самого движка или форумам.
GPU и CPU
CPU просчитывает каждую частицу по отдельности, что съедает тем больше ресурсов компьютера, чем больше частиц.
GPU рендерит частицы одной пачкой, все разом, и потребляет заметно меньше ресурсов компьютера, и более того — ему становится почти что все равно, много частиц или мало.
Как сделать классный эффект?
Комбо партиклы + материалы
Эффекты очень-очень редко состоят из только материалов или только частиц. Обычно это комбо — но научиться этому не так уж и просто.
Как научиться делать крутые эффекты
Туториалы на ютубе — обычно англоязычные. Смотрите, какие модули с какими настройками и в какой комбинации используют мастера, как делают материалы, и повторяете за ними.
Сейчас у вас есть базовые знания, чтобы разобраться в том, что и как они делают, чтобы из их туторов сделать то, что хотите именно вы.
Домашнее задание
Сделать самим, по туториалам или найти готовые эффекты для оружия и подключить для одного из оружий: — эффект выстрела из дула — эффект попадания
И принести показать на следующее занятие!

