Базовые FX на GMS2

Натолкнул меня очередной пост в лиге на мысль, что никто ничего подобного не делал, а, судя по опыту, в целом тема востребована. И решил я накидать простые, распространённые эффекты для движка, вдруг кому-то надо, а руки не доходят посмотреть, ну и для совсем уж начинающих для ковыряния.

Базовые FX на GMS2 Gms2, Gamemaker Studio 2, VFX, Gamedev, Гифка, Длиннопост
Базовые FX на GMS2 Gms2, Gamemaker Studio 2, VFX, Gamedev, Гифка, Длиннопост
Базовые FX на GMS2 Gms2, Gamemaker Studio 2, VFX, Gamedev, Гифка, Длиннопост
Базовые FX на GMS2 Gms2, Gamemaker Studio 2, VFX, Gamedev, Гифка, Длиннопост
Базовые FX на GMS2 Gms2, Gamemaker Studio 2, VFX, Gamedev, Гифка, Длиннопост
Базовые FX на GMS2 Gms2, Gamemaker Studio 2, VFX, Gamedev, Гифка, Длиннопост

И небольшой тутор для самых юных с парой фишек:

Базовые FX на GMS2 Gms2, Gamemaker Studio 2, VFX, Gamedev, Гифка, Длиннопост

это коТ системы частиц. Параметры эммитера, которые задействованы - область применения и принцип рождения. Тут конкретно - разово рождается 12 штук частиц по имени flame_part.

Сама система должна быть создана (первая строчка), иначе чуда не будет.

Самое интересное, конечно же, настройки частиц. По порядку:

- shape - картинка, которая будет использоваться как частица

- color_rgb - цвет партиклов в ргб диапазоне... ни добавить, ни отнять.

- life - время жизни

- apha3 - какой-то местный кастрат альфа/пер тайм. Т.е. отрезок жизни частицы делится на трое и катает альфу от первого ко второму, а затем к третьему значению. (У меня 0.0 и 0 оба варианта допустимы, но через точку писать не стоит, конечно же, дабы не захламлять, не пишите так)

- size - размер частицы

- speed - скорость

- direction - направление, по которому будет применяться параметр скорости

- blend - режим смешивания аддитив (может быть включен и нет)

- orientation - поворот частицы во время жизни.

Настройки есть ещё, но общий принцип работы всё равно для всех примерно один.

И фишечки: если хочется создать эффект, который будет выглядеть "натурально" - надо вносить хаос. Это основной принцип. Чем больше непохожесть партиклов тем больше деталей будет в эффекте.

Например:

Время жизни частицы это не только время пока её видно, он влияет на всё: если ты задашь время жизни меньше - частица раньше поменяет цвет/альфу/скейл/разовьет меньшую(большую) скорость. Поэтому - время жизни - влияет сразу на дофига параметров.

Альфа - так или иначе все частицы рождаются в какой-то момент и в какой-то исчезают. Чем плавнее частицы переходят в ноль - тем более незаметно это исчезновение. Поэтому на какие-то плавные эффекты, типа взрывов, огня - альфа должна уходить в ноль. Не стоит недооценивать третью точку в альфа3. Эффект, альфа3(1,1,0) - будет дольше виден, чем альфа2(1,0) и наоборот. А если ваш эффект рождается из точки - то альфа3(0,1,0) - как раз то, что нужно.

Размер - практически 90% случаев - частицы будут разных размеров, более того, во всех естественных эффектах (ну кроме молнии), эволюция частиц связана с размерами. Тот же огонь, например, если превращается в дым, то размер частиц растёт, а скорость падает. Если в дым частицы не эволюционируют - то размер наоборот сходит на нет. Поэтому не скупитесь на хаос в размерах, а так же не забывайте про их эволюции.

Скорость - скорость зависит от многих факторов (трения всякие, соседние объекты, соударения и пр.), поэтому она также всегда будет хаотична. В зависимости от общего типа явления - это либо сонаправленный поток (огнемёт), в котором все друг друга подталкивают, а "отстающие" выпихиваются за пределы общей струи, либо какое-то хаотичное явление, типа взрыва, в котором скорость отдельно взятой частицы может быть любой. В зависимости от общей концепции и надо определять диапазон скоростей, но разница должна быть всегда... хотя бы на пару процентов.

Поворот - поворот добавит естественности, но может и наоборот сделать всё говном. Крайне важно не переборщить, иногда для хорошего эффекта хватает пол градуса в секунду, а иногда и бешенное вращение будет збс!

И ещё пару слов про параметры. Почти во всех параметрах частицы есть значение эволюции (incr) и хаотичности (wiggle). Эволюция более менее понятна - чем больше плюс - тем быстрее приращение, в минус - тоже, но с обратным знаком. А вот wiggle - вещь более специальная и не везде подойдёт. Например для реактивной струи огнемёта нелохо завиглить размер - это придаст потоку хаотичной турбулетности (на самом деле нет, но выглядеть будет похоже). Или вам нужны взлетающие мыльные пузыри (тут виглом можно создать эффект лопающихся, во время подъема шариков). А в скорости, например, wiggle позволит создать эффект пробегающих по скоплению эффекта огоньков. Применений полно, всё не перечислить. Главное общая концепция - чем больше хаоса - тем вероятнее вигл надо использовать.

Ну и не расчитывайте "сесть и сделать". Более менее внятные картинки получаются всегда раза с 50ого. Настроил, посмотрел... посмотрел и настроил... Главное, во время отладки, не менять все параметры враз, а вычленять какие-то конкретные и подправлять их, потом брать следующий, и т.д. и т.п.

Ещё совет: не бойтесь переборщить с "тяжестью" эффекта. Сперва надо определиться с концепцией. И только когда будет какой-то внешний вид - следует приниматься за оптимизацию. Частенько также бывает, что лишнее кол-во частиц только портит картинку и тут придётся искать, перебирать...

З.ы. конкретные листинги выкладывать не буду, чтоб не захламлять, если кому надо - обращайтесь в комментах.

Лига Разработчиков Видеоигр

6.6K постов22.1K подписчиков

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"