Компьютерная графика → Система частиц или как сделать крутые эффекты
Привет друзья! В этой статье мы поговорим о таких вещах как:
-Что такое Particle System в Unity
-Текстуры и материалы для эффектов
-Создаем свой эффект
-Где достать бесплатные текстурки
-И немного советов новичкам :)
Немного теории:
Particle System или Система Частиц – это огромный генератор маленьких изображений, которым можно давать траекторию, скорость, настраивать физику или колоритность частиц.
Использовать систему частиц можно для чего угодно! Мы можем сделать огонь или лед, ветер и ураган, все зависит от вашей фантазии и мастерства.
Чтобы создать дефолтный эффект нужно в сцене выбрать: create=>Effects=>Particle System.
Компонент Particle System имеет множество настроек и для удобства, инспектор упорядочивает их в сворачиваемые секции или “модули” описываемые ниже. Каждая секция может быть развёрнута и свёрнута при нажатии на заголовок. С левой стороны расположены чекбоксы, которые можно отмечать для включения или отключения тех или иных настроек.Но об этом позже.
Вуаля! В сцене появился Particle System с которым вы можете работать. Сегодня мы попробуем сделать огонь. Но для начала нужно подготовить текстуры и материалы.
Текстуры и материалы
Текстуры – это любое изображение которое будет использоваться для генерации частиц эффекта. Точнее говоря генерироваться будет материал, а текстура будет верхним слоем этого материала. Для начала нам нужно придумать какую текстуру мы выберем.
Можно поискать в интернете или рисовать самим, используя фотошоп, например.
Эту текстуру я нашел очень давно в одном из бесплатных паков эффектов из Assets Store, в Unity (ctrl+9). Итак, с текстурой разобрались, теперь нам нужно каким-то образом сделать материал для эффекта. Приступим: в любой папке своего проекта кликаем правой кнопкой мыши затем: create=>material.
Создался пустой материал что с ним делать дальше?! Для начала назовем его Fire, мы же будем делать огонь). Затем нажмем на материал и перейдем во вкладку inspector. В поле меню Shader, у вас сейчас стоит Standard, давайте изменим давайте изменим. Кликаем на это поле затем выбираем: Legacy Shaders=>Particles=>Additive.
Как вы могли заметить для эффектов есть несколько видов шейдеров. Я расскажу вам про 2: Additive и Alpha Blended. На просторах интернета вы можете найти много текстур и они будет разными. Если вы выбираете текстуру с прозрачным фоном, то советую вам выбирать шейдер Alpha Blended. Он не будет искажать цветовую гамму вашей текстуры. А если вы, как и я используете текстуру с черным фоном, то вы должны использовать шейдер Additive. Он не учитывает черный цвет в принципе. Для этого шейдера черный цвет это степень прозрачности, поэтому некоторые текстуры могут показаться светлее и прозрачнее чем есть на самом деле.
И так , материал создан, шейдер выбран осталось совсем немного, нужно указать текстуру. Справа в появившемся маленьком окошке выбираем select и в списке выбираем нужную нам текстуру, ну или просто перетаскиваем ее в это окно.
И так! У нас практически все готово. Переходим в сцену, тыкеам на наш эффект, спускаемся в низ во вкладку Renderer, чуть ниже есть меню Material => выбираем наш материал)
Дело практически сделано! Я не буду рассказывать про все кладки эффекта, потому что это затянулось бы на долго. Но я расскажу самые важные и часто используемые. Итак, читаем, запоминаем и повторяем за мной!
Самая первая вкладка – одна из самых важных, приступим:
Duration – это продолжительность эффекта. Оставляем стандартное значение.
Looping – ставим галочку если ее не было. Благодаря этой функции эффект будет продолжаться до тех пор, пока его не отключат в ручную. Если убрать галочку то продолжительно эффекта будет зависеть от Duration.
Prewarm – ставиться только если эффект зациклен. Нужен для того чтобы при старте эффекта он находился уже активном состоянии а не начинался самого начала.
Start Delay – задержка начала эффекта.
Start Lifetime – время жизни каждой частицы. Напротив каждого меню есть черный треугольник, при нажатии на него можно выбрать какой тип значения мы выберем. Нажимаем и выбираем Random between two constant. Теперь у нас два поля для ввода. Ставим 1 и 3. Теперь время жизни каждой частицы варьирует от 1f до 3f.
Start speed – скорость частиц, ставим 2 поля и вводим 1 и 4.
Start size – как не трудно догадаться это начальный размер частицы. Ставим от 0.1 до 3.
Start rotation – начальный поворот изображения. От 0 до 359. Почему не до 360 – потому что 0 это и есть 360)
Start color – цвет нашего эффекта пока его не трогаем.
Simulation speed – модификатор скорости нашего эффекта, ставим 2.
Play on awake – будет ли эффект срабатывать сразу после того как он станет активным.
Остальное пока трогать не будем) переходим дальше
Во вкладке Emission нас интересует только 1 поле Rate over Time – это кол-во частичек генерируемых в определенный отрезок времени. Ставим 50
Вкладка Shape
Shape- форма траектории нашего эффекта выбираем конус.
Angle – верхний радиус.
Radius – нижний радиус.
Color over lifetime
В этой вкладке всего 1 поле- поле с цветом.
Этот параметр отвечает за то как эффект будет менять цвет в течении своей жизни.
Тыкаем на него и открывается редактор. Верхние бегунки отвечают за прозрачность частичек, а нижние отвечают за цвет. Выбирает любой цвет который вам нуже.Я выбрал от оранжевого до желтого.
Вкладка Size over lifetime . Это график изменения размера в течении жизни эффекта
всего один график тыкаем его и изменяем как вам нужно, в моем случае это от большего к меньшему.
Rotation over lifetime
Как не сложно догадаться эта вкладка отвечает за вращение в течении жизни эффекта. Одно поле для ввода меняем на 2 и ставим диапазон он 90 до -90
Вкладка Noise
Это так называемый шум в поведении частиц. Нас интересует только поле Strength, оно отвечает за силу разброса траектории частиц.
Самая последняя вкладка Renderer, с ней мы уже работали выше.
Эта вкладка тоже очень важная. Отвечает за отображение частиц и их порядок в слое. В самом низу есть 2 поля Sorting layer – выбор слоя в котором будет находится Эффект и Order in layer – порядок в этом слое.
Если вы все сделали правильно, то у вас должен получится вот такой примитивный огонь)))
Где достать бесплатно???
Все бесплатные текстуры можно найти как я говорил в интернете или отрисовать самому . Но у меня есть один очень интересный сайт где я частенько нахожу прикольные текстуры :
Так же я бы советовал искать текстуры в бесплатных паках эффектов, с этого можно получить двойную выгоду: Во- первых текстуры, во- вторых можно найти интересные эффекты и изучить их технологию)
Их можно найти на Assets Store.
На англоязычном YouTube очень много обучалок, где люди делятся текстурками)
Советы новичкам
1 и самый важный совет – не удаляйте текстуры!!! НИКОГДА. В любой момент, даже самая странная и не понятная текстура может подойти вам как нельзя лучше.
Используйте текстуры с прозрачным фоном.
Если вы рисуете текстуры сами, не задавайте им цвет. Пусть текстура будет белой, в редакторе вы всегда сможете поменять ей цвет)
По возможности находит эффекты профессионалов и разбирайте их а потом пытайтесь повторить именно так вы сможете научиться делать реально крутые штуки)