Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Веселая аркада с Печенькой для новогоднего настроения. Объезжайте препятствия, а подарки, варежки, конфеты и прочие приятности не объезжайте: они помогут набрать очки и установить новый рекорд.

Сноуборд

Спорт, Аркады, На ловкость

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Gamedev + VFX

С этим тегом используют

Инди Разработка Инди игра Игры Unity Компьютерные игры YouTube Компьютерная графика Спецэффекты Фильмы 3D Cgi VFX Adobe After Effects Все
35 постов сначала свежее
47
ProjectZima
ProjectZima
2 года назад
Инди игры
Серия DevLog мобильной игры на Unreal Engine 4

Мы реализовали нашу собственную интерпретацию "смерти" героя в рогаликах. Как вам?⁠⁠

Одной из проблем во время разработки этого мобильного Roguelite проекта была смерть и возрождение героя. Мы не хотим, чтобы герой при смерти терял накопленные ресурсы, поэтому отправлять его в безопасную зону с голой задницей было нелогичным решением, как и убивать его.
Мы подумали над нарративом и подогнали "смерть" героя к общей логике. От смертельного удара нашего героя спасает Дьявол-помощник. При респавне он расскажет герою, как избежать смерти от противника, который нанёс смертельный удар. Ближайший референс - Hades, где Гипнос оставляет комментарии о причинах смерти героя и дает совет, как эффективнее сражаться против убившего героя врага.

[моё] Инди игра Инди Gamedev Разработка Unreal Engine Unreal Engine 4 Roguelike VFX Niagara Видео YouTube
33
8
Boogernator
Boogernator
3 года назад
Свидетели Godot'овы

Godot путь новичка. Эмиттер для частиц из произвольного спрайта⁠⁠

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

Качество шакалистое, да ещё и на фоне саморезов, на работе делал, а там obs не поставить))
Ну суть понятна, получше качеством в конце поста залью, как будет готово.

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

Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост
Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост
Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост
Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост

Перетаскиваем спрайт на сцену

Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост

То что тут восклицательный знак не страшно, создадим материал.

Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост

А сейчас будет совершенно чудесная фишечка, которой в мануалах или нет, или внимание на ней не акцентировано, но она бомбическая.

Собственно, что тут произошло, по сути мы задали область для эмиттера в виде нашего спрайта, альфа канал учитывается, так что можно и эффекты для текста делать не хуже, чем в афтереффектс. Галочка внизу, он говорит, чтобы цвет для частицы выбирался соответствующий этому месту на спрайте, который мы выбрали в качестве маски. По идее и ноду Icon, я добавил просто для наглядности, она ничего не поменяет.

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

Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост

А затем перейдем к настройкам партиклов.

Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост

Теперь научим нашу всю эту конструкцию ездить за мышкой.

Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост
Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост

В целом вы уже увидите как остаются частицы после движения мышкой, выглядит довольно убого, даже не буду вставлять, сами посмотрите. Очень надеюсь, что хоть пара человек действительно потом пробует самостоятельно делать что-нибудь, после моих постов.


Ну и немножко полирнем, чтобы выглядело поприличнее и помасштабнее.

Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост

И поднастроим движение частиц.

Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост

Ну и собственно результат.

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


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

Ну что получится по итогу, напишу может пост если время будет.
А так завел телеграмм-канал, пишу о ходе разработки, да всякие картиночки видяшечки, маленькие туда пихаю с результатами промежуточными.
Там же можно увидеть трансформацию геймдизайнера в аниматора персонажей)
Подпинываю братана, чтобы он написал пост о скелетной анимации(к слову человечек сейчас перенарезан и это костная анимация, а не секвенциями как была в ассетах бесплатная) Как напишет, так запилю пост об управлении анимациями кодом и про AnimationPlayer заодно.
Диалоги прикрутили, используем Dialogic, суперский плагин. Блин вообще много чего уже сделано и много есть о чем написать. Ну сейчас год трезвости опять начался, так буду вероятнее всего и без всяких зехеров)

За сим спасибо всем за внимание, если интересно почитать о ходе разработки, залетайте.
https://t.me/boogernator

Показать полностью 12 4
[моё] Gamedev Godot Engine Godot Cgi VFX VFX Видео Вертикальное видео Без звука Длиннопост
0
3
Boogernator
Boogernator
3 года назад
Свидетели Godot'овы

Godot путь новичка. Анимируем выделенную область. Ч-1⁠⁠

Добрый вечер, мои дорогие подписчики. Не самая тривиальная задачка у меня сейчас, сам не знаю, что получится по итогу и получится-ли) Но почему-то подумалось, что это может быть интересно, а кому-то и полезно. Немножко в другом формате попробую, ну а дальше видно будет надо или нет.
Краткий план серии:
1. Собираем нужные координаты и рисуем линию для отладки.
2.Добавляем партиклы капелек из нужной области.
3. Накладываем на область(или спрайты под ней) шейдер, имитирующий воду.
4++ Придумываем варианты и делаем их для 4-х остальных стихий(хз сколько тут частей)
99-- Оптимизируем и полируем.

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

Картиночкой суть проблемы.

Godot путь новичка. Анимируем выделенную область. Ч-1 Gamedev, Программирование, Godot Engine, Godot, VFX, Мат, Неадекват, Алкоголь, Видео, Длиннопост

Кратко ТЗ: Надо чтобы выделенные руны, светились под пальцем, ну типа ты кастуешь какбы: по красным проводишь, чтобы огнем гореть все начинало, по синим, чтобы капли из под пальца капать начинали и тд,  ну как в Arx Fatalis, типа жестом ты кастуешь что-то, а не просто елозишь по одинаковым.
Краткая выжимка из пары десятков сообщений.

*** Да мы пытаемся вести документацию в Miro(Ну я пытаюсь, братан там реально навертел делов, я как "настоящий погроммист" ничего ни читаю) Но все одно приходим к тому, что самая удобная постановка задачи это в чатиках попереписываться и тупых вопросов позадавать. В малых коллективах это на самом деле лучший вариант, нет смысла жиру разворачивать на команду из 2-5человек.
***
Но документация дико важна, хоть и редко захожу, а там бац и ответ на вопрос который задать хотел) Ну и мы разрастемся, документация пригодится всегда, да и самому себе напомнить, соберусь как-нибудь напишу, что сам должен, вжился опять в программиста, документация мне по барабану))

Мозги мне не еби, поясни на пальцах, что конкретно сделать надо)
Godot путь новичка. Анимируем выделенную область. Ч-1 Gamedev, Программирование, Godot Engine, Godot, VFX, Мат, Неадекват, Алкоголь, Видео, Длиннопост

Как видно у него там все структурировано, с пометками, комментариями расписано, у меня как в win7 раньше, налеплю себе заметок цветастых по экрану, а цвет только важность или срочность определяет)) Ну это отвлечение, к теме поста отношение имеет опосредованное.

Врать не буду, почти две недели бошку ломал, как бы мне сделать чтобы из под пальца капало(хах), ушел в дремучие дебри и написал почти 600 строчек кода, хитрожопо рисовал полигон, конвертил его в текстуру, на этапе где мне надо из этого сделать область эмиттера, сломался. Этот красивый желтый квадратик, он для отладки, мне проще когда оно визуально показывается, ну и это заодно как псевдокод, для будущих изменений.

Godot путь новичка. Анимируем выделенную область. Ч-1 Gamedev, Программирование, Godot Engine, Godot, VFX, Мат, Неадекват, Алкоголь, Видео, Длиннопост

Это весь код, чтобы показать желтый квадратик)

Не переживайте,  если вас пугает лишний код, он не важен для текущей задачи, в целом и есть мысль, чтобы скопипастить потом и вынести в отдельный репозиторий и его можно будет использовать чтобы рисовать жесты, как в выше упомянутом Arx Fatalis или Black and White если это вам ближе)) На match механике, оно просто все проще и понятнее, хотя сейчас уже понимаю что вообще разницы нету) главное иметь список точек по которым рисовать и паттерн для соответствий магии(увлекся сорян, постепенно к этому придем)

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

Если есть линия, по ней мы потом можем нарисовать любой полигон или область, линия основа основ в 2D, не столько вам пишу, сколько себе напоминаю, блять 600 строк гавнокода налепил, почему??? Потому что дебил и сам не следую тому что писал ранее. Такого навертел стыдно))
Kiss - делай проще тупица.
Но линия не базовая единица в геометрии, базовая - точка. Линия это всего лишь массив из точек. не цепляйтесь к словам, для игры нам мало интересна прямая палка, нам интересна именно линия, кривая косая это уже как сделаете. Прямоугольник это линия из 4-х точек, круг это просто дохера точек, чем менее угловатый, тем больше точек. Так что приходим к очень полезному типу данных в Godot, а именно к PoolVector2Array.

PoolVector2Array - строго типизированный массив.
https://docs.godotengine.org/ru/stable/classes/class_poolvec...
Мне в комментариях написал как-то умный человек я прислушался, сам же когда ещё на флешике кодил максимально старался использовать Vector(Там так назывались типизированные массивы) По факту к этому надо придти, динамическая типизация, она очень удобна когда ты что-то пробуешь, гавнокодишь, прототипируешь, изучаешь. Потом ты перестаешь плавать и уже начинаешь изучать нюансы, прототипы становятся сложнее, начинают порой безумно тормозить, кода становится больше - читать написанное пару месяцев назад уже сложнее, в голове все не держится и на помощь приходит она))

Статическая типизация.

Есть один простой плюс, держите его в уме, разработчики языка сами писали что с версии 3.1 будет улучшаться оптимизация компилятора, компилятор всегда лучше работает со Статической типизаций, нежели с динамической. Автодополнение всегда работает лучше со статической типизацией, надеюсь появятся массивы и из пользовательских классов или может это пропустил, но они должны быть, мне важнее чтобы автодополнение работало.

Как это касается линий и прочего, все очень просто. Базовая нода для отрисовки линий Line2D в качестве входного параметра имеет именно PoolVector2Array. Список точек если по простому.
Научитесь перфектно работать со списками, с алгоритмами и тд, в ваших списках начнут появляться не только точки и данные, а начнет расти список сочных телочек(девочки любят умных и ITшников)

Godot путь новичка. Анимируем выделенную область. Ч-1 Gamedev, Программирование, Godot Engine, Godot, VFX, Мат, Неадекват, Алкоголь, Видео, Длиннопост

Вот просто пример для наглядности.

Godot путь новичка. Анимируем выделенную область. Ч-1 Gamedev, Программирование, Godot Engine, Godot, VFX, Мат, Неадекват, Алкоголь, Видео, Длиннопост

Напишите этот код и сцена Line2D у вас и отрисуется.

Godot путь новичка. Анимируем выделенную область. Ч-1 Gamedev, Программирование, Godot Engine, Godot, VFX, Мат, Неадекват, Алкоголь, Видео, Длиннопост

Ну у меня толстая линия просто, ширина для неё 128 стоит, но суть отражает.

Godot путь новичка. Анимируем выделенную область. Ч-1 Gamedev, Программирование, Godot Engine, Godot, VFX, Мат, Неадекват, Алкоголь, Видео, Длиннопост

Для наглядности, как сделано у нас в проекте пока. Вот список точек, по которым отрисовалась сочная линия, за худыми линиями не ко мне. Я за отмену "отмены" Джины Карано:"Толстый, худой, лишь бы сочная". Это Сочная линия!!! Хоть и бледная, но этом кому как - даешь средний RGB не ниже среднего IQ!!!!

Ну и выложу тогда весь скрипт, что важное для отрисовки линии помечу комментариями.

Godot путь новичка. Анимируем выделенную область. Ч-1 Gamedev, Программирование, Godot Engine, Godot, VFX, Мат, Неадекват, Алкоголь, Видео, Длиннопост
Godot путь новичка. Анимируем выделенную область. Ч-1 Gamedev, Программирование, Godot Engine, Godot, VFX, Мат, Неадекват, Алкоголь, Видео, Длиннопост

Ну вот вам детектив для разбора, все просто, меньше 250 строк кода пока в новой версии проекта, но работает, на флеше я точно знаю что подобная реализация меньше 3-4к строчек у меня бы не вышла, Godot очень многое упрощает))
Вот видосик с телефона, билд работает и с телефона и с компа и с браузера, огонь) минимум кода, а полная кроссплатформа с ресайзом, пока упрощенно, но все корректно выглядит на любом телефоне, хоть растянутом, хоть обычном. На маленькие разрешение ресайзится тоже ок, у меня бюджетный норм все выглядит.

Спасибо за внимание.
Если что-то не понятно пишите в комментариях, если вы раньше не читали моих постов, то можете попросить, запилю отдельным постом, с голого проекта как рисовать линию мышкой и тачем или по координатам. Ориентируюсь пока на тех 5-7 человек, которые читают регулярно, а они и так понимают уже, как добавить новую ноду, потому совсем элементарные вещи опускаю иначе это растянется на хз сколько времени, сконцентрировался на важном, где у меня были затыки)

В следующем части серии, будем использовать эту линию для создания области эмиттера, чтобы капало с конца, у лихого молодца. Деталей не будет, пойду сразу по сложностям. Основы партиклов в своем понимании уже излагал, все будет по сложности как и в том посте, немножко поменяются нюансы и заложимся(возможно под следующие стихии).
Для ознакомления Godot Путь новичка. Particles2D стремный снегопад

Godot Тащит, Тащит и Прёт.

p.s. Если соберу -20, а у меня выходит частенько, тогда не буду продолжать, усредненное побеждает. Но если лично вам захочется следующей части, то пишите коммент, что вам нужно. Я старичок, я скучаю по концепции VOD'ов(Video on Demand), лучшие у меня получались только по просьбе. А лайки и подписки мне допизды, комментами подправлю, рейтинга вон наросло пздц, 400+ за сутки, посты бы так писать)) Спасибо за внимание, удачи бро!

Показать полностью 9 1
[моё] Gamedev Программирование Godot Engine Godot VFX Мат Неадекват Алкоголь Видео Длиннопост
1
10
twinkly
twinkly
3 года назад

Динамическая симуляция воды в UE⁠⁠

Радостная новость для разработчиков в UE - появилась надежда на красивую динамическую воду в движке.

В течение последнего года Krystian Komisarek (он же ImaginaryBlend) разрабатывает плагин Fluid Flux, который реализует динамическую симуляцию воды с адекватным перформансом (работает в UE4 и UE5):

Новые возможности:

- безусловно стабильное моделирование с сохранением массы

- плавучесть рэгдолла и плавучесть объектов

- детальное моделирование ряби на поверхности

- динамическая каустика и влажность

- улучшенный подводный материал и плавная ватерлиния

- смешение цветов разных типов воды

- новая текстура пены

- детализация волнового рассеяния

- обнаружение звука под водой

- динамический режим редактирования

- интерактивные растения

- брызги и звуки

- предварительный просмотр симуляции в редакторе

- сохранение/загрузка состояния жидкости

По словам автора релиз состоится уже в скором времени в UE Marketplace. Ждем)


Автор: Vitali Bondar

Источник: https://dtf.ru/gamedev/1050705-dinamicheskaya-simulyaciya-vo...

Показать полностью
Разработка Gamedev VFX Визуальные эффекты Unreal Engine Видео
4
3
Boogernator
Boogernator
3 года назад
Свидетели Godot'овы

Godot Путь новичка. Particles2D стремный снегопад⁠⁠

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

Дисклеймер:
Никого ничему не учу, сам учусь и публикую посты о том, в чем худо-бедно разобрался и использую в своих разработках. А то выводят тут некоторые, что чуть ли не я виноват в том что индусы используют camelCase на питоне.


Ладно пох, пускай пишут что хотят, собака лает караван идет)
Создаем сцены, наследуемся от Particles2D

Godot Путь новичка. Particles2D стремный снегопад Godot Engine, Godot, Gamedev, VFX, Видео, Длиннопост

Без текстуры базовой частицей будет белый пиксель.

Godot Путь новичка. Particles2D стремный снегопад Godot Engine, Godot, Gamedev, VFX, Видео, Длиннопост

выставляем область спавна частиц.

Godot Путь новичка. Particles2D стремный снегопад Godot Engine, Godot, Gamedev, VFX, Видео, Длиннопост

Увеличиваем количество и размер для наглядности, на этом этапе уже все будет начинать выглядеть довольно прикольно, меня вообще радует, когда что-то начинает двигаться падать и шевелиться без моего участия)

Godot Путь новичка. Particles2D стремный снегопад Godot Engine, Godot, Gamedev, VFX, Видео, Длиннопост

Меняем разные параметры

Godot Путь новичка. Particles2D стремный снегопад Godot Engine, Godot, Gamedev, VFX, Видео, Длиннопост
Godot Путь новичка. Particles2D стремный снегопад Godot Engine, Godot, Gamedev, VFX, Видео, Длиннопост

Теперь ставим текстурку, не стал искать снежинку, тут натурально просто для фантазии открывается, можете голову зомби поставить, много веселых вещей может получиться, аудитория скорее всего не оценит, но свои фантазии можно реализовать) У меня унылая звездочка просто(

Godot Путь новичка. Particles2D стремный снегопад Godot Engine, Godot, Gamedev, VFX, Видео, Длиннопост

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

Godot Путь новичка. Particles2D стремный снегопад Godot Engine, Godot, Gamedev, VFX, Видео, Длиннопост

Ну и остается выбрать цвет для снежинок, вообще это работа артдиректора подбирать цветовую гамму и hue крутить, так что я не заморачивался, выбрал красный - потому что красный это быстрый и красивый))

Godot Путь новичка. Particles2D стремный снегопад Godot Engine, Godot, Gamedev, VFX, Видео, Длиннопост

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

Спасибо за внимание и на всякий случай с наступающим Новым Годом. Есть вероятность, что в это году уже не будет возможности что-то написать трезвым))

Показать полностью 9 1
Godot Engine Godot Gamedev VFX Видео Длиннопост
2
12
EdokPechenek
EdokPechenek
3 года назад
Инди игры

Как вам провода?⁠⁠

Сколько км провода в игре TReload... Несколько сотен?

Здесь некоторые тесты проводов-шлангов из игры : IK + работа со сплайнами + физика + блендинг.


Финальный провод:

Здесь представлена одна из ранних версий провода-шланга (ленивый провод, эксперименты):

Что думаете о физике?


VK // Twitter // IG // DTF // Habr

Показать полностью 1
[моё] Провод Анимация Физика Процедурная анимация VFX Cgi VFX Компьютерная графика Gamedev Игры Компьютерные игры Арт Программирование Компьютерная симуляция Симуляция Инди Инди игра Игровая механика Механика Имитация Компьютерное моделирование Видео
3
41
MrMSE
4 года назад
Лига Разработчиков Видеоигр

Эффект силового поля (шейдер)⁠⁠

Небольшая практика в эффектиках и шейдерах под Unity. Хотелось мне сделать эффект силового поля, в которое попадают что-либо и провоцирует световое пятно, растекающееся по поверхности. Сказано - сделано :)

Эффект силового поля (шейдер) Шейдеры, Unity3D, VFX, Gamedev, Гифка, Длиннопост, Силовое поле

Немношко матана для любителей: сфера - это обычный меш, эффектом френеля симулируем "энергетическое" поле, с прозрачностью в зависимости от взаимного направления нормали вертекса и направления зрения камеры.

Эффект силового поля (шейдер) Шейдеры, Unity3D, VFX, Gamedev, Гифка, Длиннопост, Силовое поле

отдаем всё это добро в пиксельный шейдер, где считаем возвращаемый цвет пикселя (на всякий случай добавил ещё и текстуру для поля, какие-нить флуктуации там добавить о.О

Эффект силового поля (шейдер) Шейдеры, Unity3D, VFX, Gamedev, Гифка, Длиннопост, Силовое поле

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

Ну и сам эффект растекающейся энергетической вспышки

Эффект силового поля (шейдер) Шейдеры, Unity3D, VFX, Gamedev, Гифка, Длиннопост, Силовое поле

_InpactPoint - это вектор направления попадания (для отрисовки пятна в нужной стороне, передавать его придётся с помощью скрипта(конечное, минус начальное, ну и привести к единичке). Подсказочка:

Эффект силового поля (шейдер) Шейдеры, Unity3D, VFX, Gamedev, Гифка, Длиннопост, Силовое поле

Нормаль берём из вертекса.

_HitOverlayArea - регулирует величину пятна (плавность пятна зависит от полигонажа сферы, потому что работаем с нормалями вертексов. Тут немношко экономии - нормали берём в вертексном шейдере. Но если экономить не надо - можно нормаль посчитать и во фрагменте, тогда никаких проблем с размерами пятна не будет).

_HitOverlayValue - сила пятна.

_HitColor - собственно цвет для пятна.

Цвет самого поля задается через _TintColor и сохраняется в переменную col (код был выше).

Собственно сам инспектор всего этого добра, для тех, кто не хочет математики, а подёргать ползунки:

Эффект силового поля (шейдер) Шейдеры, Unity3D, VFX, Gamedev, Гифка, Длиннопост, Силовое поле

Надеюсь, что подписульки понятны лучше, чем названия переменных :)


Гитхаб: https://github.com/MrMouseSE/EnergyShieldShader

Показать полностью 5
[моё] Шейдеры Unity3D VFX Gamedev Гифка Длиннопост Силовое поле
17
Партнёрский материал Реклама
specials
specials

Сколько нужно времени, чтобы уложить теплый пол?⁠⁠

Точно не скажем, но в нашем проекте с этим можно справиться буквально за минуту одной левой!

Попробовать

Ремонт Теплый пол Текст
22
CGAleksey
CGAleksey
4 года назад
Лига Геймеров
Серия TOTAL RELOAD

Как артист делал оптимальные лазерные лучи⁠⁠

Как артист делал оптимальные лазерные лучи Арт, Художник, VFX, Cgi VFX, Программист, Инди, Gamedev, Прототип, Прототипирование, Лазер, 3D моделирование, Скетч, Инди игра, Игры, Видеоигра, Видео, Длиннопост

Настало время оптимизации нашей иры-головоломки от первого лица. В посте будет много картинок, видео и НЕ БУДЕТ математики / программирования. Вся "математика" будет описана на пальцах, показаны только общие идеи. Итак, под оптимизацию попали лазерные лучи.
До этого в grayBox мы использовали юнитевский LineRendere.

Достоинства:

- берется из коробки

- гибкий, хорошо подходит для создания прототипа лазерного луча ну или чего вам заблагорассудится


Недостатки:

- работает неоптимально.


Неоптимальность незаметна на одном, 2-х и даже на десяти лучах. Но вот если у вас в игре лазер, который отражается от зеркал, делится на несколько лучей при прохождении через призму, имеет несколько цветов... то тут уже стоит прикинуть сколько +drawCalls накинут сверху только лучи. Ну, у нас могло набегать 4, 8 и даже 30 drawCalls.


Этот пост будет интересен, пожалуй, не программистам/разработчикам игр. Их этим не удивишь, а вот обычынм людям будет интересно посмотреть отдаленно на то, сколько усилий вбивается лишь для того, чтобы в игре были лазерные лучи.


До того как браться за луч, сделал наброски источника лазера и приемника. Свел их по дизайну между собой, ну и с другими элементами. Скетки источника лазера, надеюсь что-то будет понятно.


3/4, сбоку, вразрезе, чтобы моделлер лучше понял конструкцию:

Как артист делал оптимальные лазерные лучи Арт, Художник, VFX, Cgi VFX, Программист, Инди, Gamedev, Прототип, Прототипирование, Лазер, 3D моделирование, Скетч, Инди игра, Игры, Видеоигра, Видео, Длиннопост

Первые наброски:

Как артист делал оптимальные лазерные лучи Арт, Художник, VFX, Cgi VFX, Программист, Инди, Gamedev, Прототип, Прототипирование, Лазер, 3D моделирование, Скетч, Инди игра, Игры, Видеоигра, Видео, Длиннопост

Наброски приемника луча:

Как артист делал оптимальные лазерные лучи Арт, Художник, VFX, Cgi VFX, Программист, Инди, Gamedev, Прототип, Прототипирование, Лазер, 3D моделирование, Скетч, Инди игра, Игры, Видеоигра, Видео, Длиннопост
Как артист делал оптимальные лазерные лучи Арт, Художник, VFX, Cgi VFX, Программист, Инди, Gamedev, Прототип, Прототипирование, Лазер, 3D моделирование, Скетч, Инди игра, Игры, Видеоигра, Видео, Длиннопост
Как артист делал оптимальные лазерные лучи Арт, Художник, VFX, Cgi VFX, Программист, Инди, Gamedev, Прототип, Прототипирование, Лазер, 3D моделирование, Скетч, Инди игра, Игры, Видеоигра, Видео, Длиннопост
Как артист делал оптимальные лазерные лучи Арт, Художник, VFX, Cgi VFX, Программист, Инди, Gamedev, Прототип, Прототипирование, Лазер, 3D моделирование, Скетч, Инди игра, Игры, Видеоигра, Видео, Длиннопост
Как артист делал оптимальные лазерные лучи Арт, Художник, VFX, Cgi VFX, Программист, Инди, Gamedev, Прототип, Прототипирование, Лазер, 3D моделирование, Скетч, Инди игра, Игры, Видеоигра, Видео, Длиннопост

Работает в целом так: луч попадает в приемник и применик передает сигнал о том, что в него попали. На основе этого разворачивается одна из игровых механик.


Больше скетчей, если интересно, выкладываю сюда:

https://twitter.com/CGAleksey

https://www.instagram.com/cgaleksey/

На https://vk.com/dronesgame пока ничего не выкладываю, но если добавятся больше 1.5 человека XD, то и туда начну скидывать.


По коду.

Почему не взял какой-то готовый плагин. Взял, результат не понравился. Пробовал Vectosity. Вот я, пишу несамый читабельный код. Но код мой и пишу так, что я могу его понять так как проект делаю для себя. А вот создатель Vectosity я бы сказал накрутил каких-то неральных сложностей. В его коде я так и не смог разобраться чтобы устранить баг, который мне мешал. Вот баг, тектсура как-то деформируется или хз что с ней:

Написал разработчику Vectosity чтобы узнать в чем проблема, когда исправит. С его слов это неисправимый косяк GPU. Короче нафиг-нафиг-нафиг... потом буду заикаться от него из-за того что будут вспоминать добрым словом.


Итак поехали. Что нужно:

- система рисования всех лучей на GPU за 1drawCall;

- возможность задавать разные текстуры и прочие параметры лучам.


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

Этот набор параметров (array) мы подаем в шейдер при генерации меша на GPU.

Так же мы подаем на GPU набор параметров (тоже array): цвет, индек текстуры, толщина луча и всего чего вам еще вздумается.


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


Сам лазерный луч будем рисовать так:

1) на концах луч должен быть светлее так как это выглядит естественно. Используем grayscale-маск текстуру для этого;

2) переход от центра луча к перифирии (цвет и прозрачность) задаются grayscale-маской;

3) ну и добавим какой-нибудь шум, типа cloud и будем анимировать его, чтобы имитировать туман или движение воздуха.


И да, желательно склеить маски и все на свете в одну текстуру, не цари чтобы баиндами разбрасыватья.


Как по точкам на GPU нарисовать линию. Идея такая:

- в шейдере линия имеет вектор направления (начало-конец)

- есть доступ к позиции камеры.


Ну и все, делаем в шейдере сross(lineDir, camDir) и получаем направление вектора толщины линии. Передаем в шейдер параметром толщины и им можем регулировать толщину линии.

На словах все просто, на деле ушло много времени. Вот рисую линии на GPU по координатам:

Как видно, все ровненько и красиво и текстуру не колбасит как на предыдущем видео. И что там за проблемы с GPU у него были... Так можно отрисовать хз как много линий, зависит от того сколько вершин Unity разрешает использовать (если не ошибаюсь). Вроде 65к в последний раз было максималкой, а это куча линий, мне хватит :)



Версия сырого луча и приемника луча:

Как артист делал оптимальные лазерные лучи Арт, Художник, VFX, Cgi VFX, Программист, Инди, Gamedev, Прототип, Прототипирование, Лазер, 3D моделирование, Скетч, Инди игра, Игры, Видеоигра, Видео, Длиннопост



Это видео с грейбокс-тестов. Ну, бокс как видно, совсем не gray XD Еще здесь нет нормальной градиентной маски на луче. Луч сильно упрощен: (нет тумана, градиент подобран на скорую руку, концы луча не засветлены... короче, артист не занимался тогда еще этим)

Качество графики у нас не такое, на видосе часть прототипа с минимальной графикой и моделями, которые используются только в процессе разработки:

В итоге линия (лазерный луч) выглядит так. Здесь уже все:

- градиенты настроены

- туман пост-процессом наложен поверх полупрозрачного луча

- концы засветлены

- есть немного анимации тумана

- вся отрисовка на стороне GPU за 1 drawCall, красота :)

Как артист делал оптимальные лазерные лучи Арт, Художник, VFX, Cgi VFX, Программист, Инди, Gamedev, Прототип, Прототипирование, Лазер, 3D моделирование, Скетч, Инди игра, Игры, Видеоигра, Видео, Длиннопост
Как артист делал оптимальные лазерные лучи Арт, Художник, VFX, Cgi VFX, Программист, Инди, Gamedev, Прототип, Прототипирование, Лазер, 3D моделирование, Скетч, Инди игра, Игры, Видеоигра, Видео, Длиннопост

Надеюсь кому-то пост понравился и кто-то нашел что-то полезное для себя.

Еще раз ссылки на материалы по игре:
https://twitter.com/CGAleksey

https://www.instagram.com/cgaleksey/

На https://vk.com/dronesgame


Спасибо за внимание :)
Показать полностью 10 3
[моё] Арт Художник VFX Cgi VFX Программист Инди Gamedev Прототип Прототипирование Лазер 3D моделирование Скетч Инди игра Игры Видеоигра Видео Длиннопост
5
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии