Unity 3D. Сделать URP шейдер крови смываемой постепенно
1. Описание
В игре можно стирать кровь с вещей разными способами: 1) шваброй, 2) струей воды из аппарата, 3) мочалкой.
Соответственно, кровь стирается с разной интенсивностью и именно в том месте, в котором смываем (то есть не затухание всей текстуры сразу), это подробно будет видно в ассете на сцене, который я приложу к заданию и на видео референса (ссылка в самом низу )
Уже имеется ассет, но он не подходит для стен, потому что там нужно:
a. накладывать карту грязи/ крови
b. накладывать маску, через которую текстура крови будет видна на предметы (на кровать, стол и так далее). А маску надо делают через блендер, например, используя mesh каждого объекта, который запачкан кровью. Для стен и пола это неудобно.
2. Задача
Нужно для крови на стенах и полах сделать проще: на накладывать маску с кровью на объект, а только наложить текстуру крови на стену, напр. плоский 3D объект или по-другому, а уже этот плейн накладывать на стену/ пол отдельно. Текстура становится прозрачной по мере смывания в местах смывания, как уже это реализовано на предметах. Уже есть шейдер в ассете , надо сделать еще один, который смываетеся, становясь прозрачным, но смывается также и от тех же механик что и уже готовый в ассете. Также нужно иметь возможность влиять на интенсивность и форму смывания (швабра/ мочалка/ струя воды). Это есть в скрипте уже, его надо применить к новому шейдеру.
В качестве рефа видео из игры Crime Scene Cleaner
https://youtu.be/TA1uYpGsvK4?si=_EuuzMLm4YSAXyhN&t=6455
Игры