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

[复制链接]
查看1528 | 回复6 | 2022-10-20 11:19:54 | 显示全部楼层 |阅读模式
Hello,大家好,今天带来如何在Unreal里制作燃烧动画?

首先先上卖家秀

0.gif

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

1、uv动画

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

1.png

单独预览效果如图

2.gif

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

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

3.png

预览效果和之前差不多

4.gif

2、blend mask

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

5.png

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

6.gif

3、BaseColor

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

7.png

4、Emissive Color

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

8.png

5、控制燃烧范围

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

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

9.png

效果如下

10.png

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

11.png

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

12.png

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

13.png

改一下emissive color

14.png

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

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

这是一个简单的蓝图

15.png

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


点评

好东西,感谢分享  发表于 2023-3-2 13:14
蒹葭苍苍 | 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
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

37

主题

10

回帖

257

积分

初阶编码师

积分
257