星仔亮晶晶 发表于 2022-10-20 11:19:54

如何在Unreal里制作燃烧动画?

Hello,大家好,今天带来如何在Unreal里制作燃烧动画?

首先先上卖家秀



燃烧动画是通过贴图的uv偏移来产生的,在uv的偏移上再加一个noise扰动就可以模拟燃烧的效果。

1、uv动画

首先做第一层燃烧效果,让noise(designer里面拉一个)动起来去采样一张normal贴图



单独预览效果如图



我们再给前面半秒加一个动画,和前半部分进行融合,让动画连贯起来。

还是用原来的noise贴图,但是把时间错开0.5秒



预览效果和之前差不多



2、blend mask

Mask也给一个动态的,直接用原来frac后的时间,这个时间范围是在,我们用把兰伯特思想把范围映射到[-1,1],再取绝对值,就可以得到一段全黑的mask,用这段mask去blend上面的两个uv动画



混合出来效果大致如下,暴露multiply的值,还可以控制混合的效果。最后的结果输入到opacity mask可以让物体燃烧没掉。



3、BaseColor

我们在最后的混合结果上做一些限制,增加对比度等来增加白色的区域,然后给一个颜色作为底色物体的颜色。



4、Emissive Color

同样调整混合效果,作为边缘燃烧的颜色mask



5、控制燃烧范围

目前的效果是整个物件都会燃烧没掉,所以我们只做一个mask来控制这个燃烧范围

首先做一个平面的mask,用sphere做出的mask减去之前的混合mask



效果如下



但是由于我们材质给到场景中以后,是三维的,所以需要使用Absolute world position,不然就会是下面的效果。



注意,sphere的A输入float3以后,B也要输入一个flaot3



为了看到效果,此时的position最好给到物体本身的坐标值



改一下emissive color



6、增加蓝图控制燃烧范围

由于燃烧的范围是可以根据position和radius来控制的,所以我们可以将position和radius直接在蓝图里面控制或者做成一个全局的mpc来用蓝图控制范围

这是一个简单的蓝图



然后在MPC里面控制mask的半径就可以燃烧起来(买家秀)。


蒹葭苍苍 发表于 2022-10-21 11:11:41

学习了 ~ 感谢大佬

yuhui0305 发表于 2022-12-21 13:44:00

6666666666666666666

yuhui0305 发表于 2022-12-25 12:50:41

666666666666666666

simon 发表于 2023-1-16 13:58:52

66666666666666666666666666666666666666666

simon 发表于 2023-12-9 19:33:30

666666666666666666
页: [1]
查看完整版本: 如何在Unreal里制作燃烧动画?