Войти
Unreal EngineФорумArt

Нод Time в материале.

#0
(Правка: 10:29) 10:28, 2 сен. 2021

Нод Time  в материале позволяет изменять окраску в зависимости от времени. Но проблема в том, что это один материал на все объекты, где он применён и поэтому цвета меняются на всех объектах синхронно (одинаково по времени). Как обойти это ограничение и заставить разные объекты с одинаковым материалом менять цвет по своему графику, а не одинаково со всеми?


#1
10:42, 2 сен. 2021

самый простой способ без лишнего кода - сделать N количество инстансов со смещение на Time: Time + TimeOffset. Чуть посложнее - автоматизировать - гененрировать DynamicMaterialInstance и устанавливать TimeOffset через Random.

#2
13:30, 2 сен. 2021

тут я не совсем правильно  написал вопрос. Я леплю декали от выстрелов на мэш и они одновременно тускнеют, а должны по очереди. Я генерирую DynamicMaterialInstance, и обновляю в нём параметр Time перед каждым спавном декали крови. Но всё-равно все декали тускнеют одновременно и обновлять параметр Time не хотят.
1234 | Нод Time в материале.

#3
13:43, 2 сен. 2021

Unreal же сам выключает декаль спустя время, указанное как его жизнь. Но если так хочется вручную, то напиши логику в принте и обновляй время в Tick().

#4
13:52, 2 сен. 2021

да. Декаль выключается сама, но мне надо, чтобы она сначала тускнела уменьшаясь альфой( я это делаю по времени в материале) и выкючалась только тогда, когда уже выключать будет нечего. После обеда попробую сохранять каждую декаль  в переменную и гасить альфу как ты советуешь.

#5
14:48, 2 сен. 2021

Оптимизация - передавай стартовое время в материал, будешь значть начало жизни.

#6
20:57, 3 сен. 2021

На каждый декаль свой материал, но исходник материала один и тот же. Как и сказали, плюс свой таймер

#7
21:37, 3 сен. 2021

всем спасибо. Вчера ещё сделал.
34 | Нод Time в материале.

#8
5:31, 4 сен. 2021

Блин, не то посоветовал. Это делается частицами без всяких таймеров и материалов.

Unreal EngineФорумArt