{"id":3827,"url":"\/distributions\/3827\/click?bit=1&hash=a3421833d15d1c84d64094d7d2023b5ba4157196f84512612cd445af573903a5","title":"\u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043f\u0438\u0448\u0435\u0442 \u043d\u0430 Java \u0438 \u0445\u043e\u0447\u0435\u0442 \u0441\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443","buttonText":"\u042d\u0442\u043e \u043f\u0440\u043e \u043c\u0435\u043d\u044f","imageUuid":"2b70606f-740c-5d85-8a71-8a33c5f66557","isPaidAndBannersEnabled":false}
Gamedev
Pavel Avramenko

Unity VFX: Эффект "Trail"

Небольшой разбор эффекта трейла, созданного с помощью компонента Trail renderer и нодового редактора шейдеров Amplify Shader Editor. В дальнейшем такой трейл можно использовать как часть более комплексного эффекта, например для магических снарядов.

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

Необходимые ресурсы

Главная текстура - бесшовная по оси X, это основное требование. Остальное зависит от вашей идеи.

Пример текстур

Второстепенные текстуры - различные шумы, маски и т.д. В моем варианте шейдера не являются обязательными, так как я использую процедурные ноды из Amplify Shader Editor (но возможность использовать текстуры оставил, просто спрятал за переключателем).

Шейдер

Для удобства понимания, я разбил шейдер на несколько модулей.

UV+Time

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

Mask

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

Flow

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

Dissolve

Модуль, создающий движение с помощью растворения правой части основной текстуры.

Небольшие эксперименты

0
25 комментариев
Написать комментарий...
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
The_Stanley5

Ну можно получить и бесплатно ( ͡° ͜ʖ ͡°)

Ответить
Развернуть ветку
elvis elvisov

А трейл хороший) Пробуй дальше

Ответить
Развернуть ветку
Жидкий супер_стар

А вы не думали что это так медленно едет из-за не возможности сделать быстро и не баговано для всех. Ведь если так по судить, то ase по сути не нативка, и если допустим разраб решит забить на продукт свой. Разработчики останутся у разбитого корыта. И предъявить будет некому, что ваш проект сломался. Это просто мои мысли как разработчика.

Ответить
Развернуть ветку
Евгений Серегин

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

Ответить
Развернуть ветку
Arazect Shepard

Старая версия-то останется для старой юнити. А то, что сами юнитеки вместо развития своих же инструментов создают еще больше недоделанных инструментов - это вас не смущает?)

Ответить
Развернуть ветку
elvis elvisov

Юнитологи просто ленивые жопы. И рукожопы. Что там, уже можно уже в шейдер графе без кастом ноды направление дирекшн лайта взять? Позорище блин

Ответить
Развернуть ветку
Dmitriy Zorin

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

Ответить
Развернуть ветку
кирилл к

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

Ответить
Развернуть ветку
Pavel Avramenko
Автор

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

Ответить
Развернуть ветку
elvis elvisov

Можно) Тут гуляли слитые исходники Гвинта - там вот как раз есть шейдера из Shader Forge. Идеальных проектов нет и не будет

Ответить
Развернуть ветку
elvis elvisov

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

Ответить
Развернуть ветку
кирилл к

Не используют в норм проектах генерацию шума в рантайме практически никогда, за супер редким исключением, всё пребейкнутое 

Ответить
Развернуть ветку
Евгений Серегин

А можно скрин, где понятно, как соединены Flow, Dissolve, Mask в целый шейдер? А то я с шейдерами на вы, но всегда стараюсь разобраться, что и как работает :).

Ответить
Развернуть ветку
Pavel Avramenko
Автор

Все просто перемножается.

Ответить
Развернуть ветку
Евгений Серегин

Т.е. макароны не надо тянуть от RegisterLocalVar? Все  и так работает?

Ответить
Развернуть ветку
Pavel Avramenko
Автор

Да, в этом все удобство. Как минимум, для читаемости.

Ответить
Развернуть ветку
Евгений Серегин

Спасибо! Попробую на досуге поделать трейлы. Давно такую штуку искал.

Ответить
Развернуть ветку
Жидкий супер_стар

Это статья или перевод? К чему это я. Не совсем понимаю почему, при том что уже давно в релизе Shader Graph досих пор используется многими не нативное решение в виде Amplify ? В чем профит? удобство? понятность? 

P.S. я анрильщик, но Unity когда то был основным инструментом.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
3D Workshop

в юнити всегда, все через попу, тут даже нет нормальных хоткеев типа U O 1 2 3 4, и для плейсмента ноду нужно лишних 2 клика минимум, так еще и названия нод тупые: я хочу свои break и append

Ответить
Развернуть ветку
Dmitry Timofeev

Я ase купил за 32$ попал под скидку. Ase ни к чему не привязывается. Он генерит обычный hlsl, а визуализацию нод кодирует в коменте под кодом шейдера. Т.е. по сути выдает обычный шейдер. Сейчас ase может гораздо больше чем стандартный зародыш редактора шейдеров, который с инстансами местами или косячит или не умеет. Причем я нашел в ase багу, не применялись инстансируемые параметры в пиксельном шейдере. Не хватало пары строчек для инициализации обращения к инстанс буферу. Поправили быстро и выкатили обнову. Самые свежие обновы можно забирать у них на сайте, а не в маркете, просто указываешь номер оплаченного заказа из маркета и держи. Меня пока устраивает.

Ответить
Развернуть ветку
Steerpike

Есть канал чувака, который профессионально занимается Unity VFX. Он на английском, но думаю при желании можно понять что к чему.

https://www.youtube.com/channel/UC5c5JgFyiFXKXCVRh2DsRJg

Ответить
Развернуть ветку
Аккаунт заморожен

Комментарий недоступен

Ответить
Развернуть ветку
3D Workshop

все норм кроме реальтаймового Вороного

Ответить
Развернуть ветку
Читать все 25 комментариев
null