Эффект бабочки на частицах Unity

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

Для пример я взял одного из персонажей в проекте, над которым я работаю сейчас.

Итак, приступим.
Для начала нам нужно нарисовать крылья бабочки.
Открываем любой графический редактор и рисуем нечто похожее на это:

По сути нам нужна только одна половинка крыла.
По сути нам нужна только одна половинка крыла.

А в общем текстурном атласе, который я использую для других элементов эффектов этого персонажа это будет выглядеть вот так:

Направляющими в фотошопе очень удобно кадрировать элементы и располагать их правильно, без сдвигов за границы своего кадра.<br />
Направляющими в фотошопе очень удобно кадрировать элементы и располагать их правильно, без сдвигов за границы своего кадра.

Сразу определимся какой по счёту кадр будет попадать на эти крылья. Здесь я рассчитал сетку 8х8 кадров для этого атласа и 33й кадр для крыльев.
Для каждого текстурного элемента в настройках системы частиц задаются свои уникальные параметры кол-ва кадров и нужного кадра для использования. Выглядит это так:

Эффект бабочки на частицах Unity

Следующий шаг - создание материала. В данном случае используем обычный блендовый шейдер из арсенала Юнити.

В слот текстуры помещаем нашу текстуру с половинкой крыла или же полностью атлас.<br />
В слот текстуры помещаем нашу текстуру с половинкой крыла или же полностью атлас.

Материал готов. Назначаем его в слот Material в свитке Renderer и выставляем указанные настройки:

Офсет 0.5 по Y призван сдвинуть pivot билборда, чтобы точка вращения крыла была в нужном месте.<br />
Офсет 0.5 по Y призван сдвинуть pivot билборда, чтобы точка вращения крыла была в нужном месте.

Далее делаем следующие настройки системы частиц:

Эффект бабочки на частицах Unity

И еще настроим другие параметры:

Эффект бабочки на частицах Unity

Настройка одной половинки завершена. Должно получится примерно вот такое:

Теперь нам нужно лишь скопировать настроенную систему частиц (Ctrl+D), Создать из них иерархию, перетащим одну в другую:

Эффект бабочки на частицах Unity

Теперь остаётся лишь развернуть изначальную ориентацию второго крыла, чтобы это стало похоже на бабочку с двумя крыльями. Для этого нужно вместо -90 градусов по Х выставить во второй системе частиц 90 градусов по Х.

Эффект бабочки на частицах Unity

И самое важное! Сняв в обоих системах галочку Auto Random Seed и выставив одинаковое значение в обоих системах (в нашем случае 10), мы заставляем частицы обоих систем полностью повторять все события другой. Таким образом крылья одной бабочки не летят в разные стороны, а машут синхронно, перемещаются в пространстве, появляются и пропадают тоже синхронно.

Если захотите добавив бабочек другого цвета, то сделайте еще такую же "спаренную" конструкцию из партикл систем с другим цветом.
Скорость взмаха крыльями регулируется параметром вращения по Х:

1500 в данном случае. Параметр больше - скорость выше. Вращение по Y и Z призвано добавить бабочкам небольшой разворот в пространстве, чтобы они не выглядели всегда в одинаковом положении.<br />
1500 в данном случае. Параметр больше - скорость выше. Вращение по Y и Z призвано добавить бабочкам небольшой разворот в пространстве, чтобы они не выглядели всегда в одинаковом положении.

Так же нужно помнить, что в подобных парных системах должны совпадать все параметры, чтобы они работали корректно.

Спасибо за внимание и удачи с эффектами :)

1515 показов
4K4K открытий
22 репоста
29 комментариев

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

Ответить

Процедурный BioShock Infinite который мы заслужили.

Ответить

Неплохо, но почему дед синий?

Ответить

Бабочек на мух поменять и картина сложится

Ответить

Много колдовал... или колдырил...

Ответить

ночной эльф, не?!

Ответить

Он синий или просто пьяный? 

Ответить