Помните, парни, никогда не играйте с огнём
Кроме как в Unity, разумеется
В этом видео мы создадим эффекты огня и дыма, используя VFX Graph
И в конце у вас должно получится что-то вроде этого:
И лучшая вещь в работе с VFX Graph - это чрезвычайно простая настройка под внешний вид вашей игры
А также то
Что вы можете спалить свой дом
А также особая благодарность: Francois Arbour, Андрею Калиненко, artArmin, John Shannon, Александру Blair и InfinityPBR
за их поддержку на Patreon
Также это видео спонсировано Unity
А теперь, давайте создадим огонь
Как вы заметили, я создал новый Unity проект
Теперь, если мы хотим работать с VFX Graph, мы должны убедиться, что мы используем Unity 2018.3 или выше
также, что наш проект настроен с HDR P
и что мы имеем пакет VFX, установленный в менеджере пакетов
Если вам нужна помощь с установкой всего этого, я рекомендую вам посмотреть наше предыдущее видео, по началу работы с VFX Graph
сылка на это видео в описании
Теперь, мы готовы к созданию каких-нибудь частиц
Я готов начать и отключаю стартовые ассеты
Я перехожу на окно "Project", нажимаю "Create", выбираю пункт "Visual Effects", а затем "Visual Effect Graph"
Назовём это "Smoke Effect"
Теперь, мы можем увидеть превью эффекта здесь снизу
Чтобы увидеть его в нашей сцене, мы просто перетаскиваем его в окно "Hierarchy"
Класс!
Теперь, чтобы отредактировать эффект, мы просто два раза нажимаем на него в окне "Project"
После этого открывается отдельное окно
Мы можем взять это окно и переставить, куда нам нравится
Сейчас, я просто поставлю его возле окна "Scene View", вот здесь
Сейчас, всё что мы видим на нём - это стандартная система, что не очень впечатляет
Итак, перейдём дальше и покрутим какие-нибудь настройки
Вверху у нас есть "Темп появления частиц", оставим его на десяти, что отлично подойдёт для дыма
Однако, я хочу немного увеличить "Capacity", благодаря чему у нас будет больше частиц одновременно на экране
Я поставлю на 64
Для задания случайной скорости частиц, я перехожу сюда и меняю минимальный Y на 0.8
Я так же хочу задать случайное "время жизни частиц" и ставлю его между 5 и 9
Благодаря этому наши частицы будут существовать дольше, что типично для эффектов вроде дыма
когда вы хотите, чтобы ваши частицы как бы летали в воздухе, прежде чем исчезнуть
Сейчас вы также можете увидеть, что все наши частицы направлены в одну сторону
Я думаю будет хорошей идеей сделать их поворот случайным, что даст нашему эффекту более натуральный вид
И так, я перехожу в модуль "Initialize" и нажимаю пробел для вызова контекстного меню
И мы хотим изменить угол наших частиц, поэтому я ищу "Set Angle" и выбираю первый результат
Освободим под это немного пространства, я просто перетащу всё остальное чуть ниже
В качестве канала я выберу Z
Теперь, мы можем отрегулировать угол по Z просто изменяя параметр вот здесь
И вы можете увидеть новые частицы, которые повёрнуты на 67 градусов
Но, конечно, я не хочу определять это значение, я хочу сделать его случайным
Перейдём дальше и выделим этот блок, и в инспекторе мы можем выбрать пункт "Random", в котором стоит "Off" по-умолчанию
Вместо этого выберем "Per Component"
Тем самым мы изменили этот блок, и теперь мы можем выбрать минимальное и максимальное значение
Я установлю его между 0 и 360
И теперь вы можете увидеть что каждая отдельная частица обладает своим случайным поворотом
Классно!
Далее, мы спукаемся к блоку "Output"
И первая вещь, которую мы сейчас сделаем, это избавимся от него
Потому что сейчас это "Quad Output", при котором наши частицы не будут взаимодействовать со светом