[Unity] 使用 Visual Effect Graph 制作射击枪焰特效

家电修理 2023-07-16 19:17www.caominkang.com电器维修

全程照抄油管视频
https://.youtube./atch?v=sgBbnF3r60U&ab_channel=GabrielAguiarProd.

1. Mesh 制作

打开 Blender

新建一个圆环

进入编辑模式,全选,沿法向挤出,向内挤出

得到一个环
环的内径很小

选中一个面

选择光照贴图拼接

使用默认设置
主要是我也不知道有啥意义

就可以在 UV 编辑器里面看到,一个扇形投影成了一个正方形

全选

沿活动四边面展开

同样使用默认设置

在 UV 编辑器中可以看到所有扇形都变成了顺序排列的四边形
如果是普通的 UV 展开,会展开呈扇形的

全选

缩小移动到框内

之后尽量摆在中心吧

选择 约束至画布边缘

这样在缩放的时候,无脑拖动缩放,他会自己展到画布边界停下

上下边界距离画布边缘差了一点也无所谓,可以全选一边的顶点拉到边缘

环切

在中间切一环

按住 alt 鼠标左键单击外环,选中外环

向上移动

内环同理




移动 按 Y 限定 Y 方向移动
按 1 限定移动一个单位
按负号往负方向移动

设置这个平面的原点到 3D 游标,方便缩放



这两个平面可以合并成一个物体
命名为 MuzzlePlane
之前那个圆可以命名为 MuzzleCircle

2. Mesh 导入



Quad 删掉,换成 Mesh

导入刚刚创建好的 Mesh,搜索
发现有两个 Mesh
这两个就是 Blender 中做的两个物体
神奇

3. 导入之后会发现的问题

不知道为什么,只有在特定的角度下才能看到两个交叉面

难道是法向的问题

而且我还把 Convert Units 关了才恢复到正常大小

有点不对啊,这样做的话,实际模型放到世界中会很大

感觉第一个问题是双面材质的问题,第二个是导出设置的问题
问了别人之后才知道怎么解决

4. 导入问题解决方法粒子生成位置

特效原点和特效实际原点的位置不一样

随便乱点之后,发现初始化这里有一个 bounds 改 center 为 0 0 0 就好了

5. 导入问题解决方法Mesh 双面材质

点击 Output Particle Mesh ,然后在监视器中选择 Cull Mode - Off

这样可以解决只能在特定视角下看到特效的问题

6. 导入问题解决方法Blender 导出设置

导出的时候要勾选应用变换!!!

这样可以解决两个插面放到 unity 中只显示一个的问题
也可以解决勾选模型在世界中和VFX中大小不一的问题

7. 导入问题解决方法Blender UV 调整

导入了之后才发现我十字面的 UV 还是错的……
那就只好一个顶点一个顶点的看了

打开 UV 选区同步,这样的话就可以一直让 UV 显示在 UV 编辑器里

然后选择平面上靠近穹顶的两个点


发现它们是在 UV 的上边,我的枪焰是从下边到上边的,所以我的 UV 的下边应该对应我的平面与穹顶相交的那条边,现在我要将 UV 顺时针旋转 180 度

枪焰只用发射一次,所以选单独发射
枪焰是朝着前方的,默认是 Mesh 朝上的,所以旋转 90 度

由于我们使用了应用变换,所以是不用旋转的,已经是朝着前方了

设置大小

8. 贴图制作

打开 ps,新建文件

拿钢笔工具,左键单击,按住 shift,再左键单击,画出一条线

右键这条路径,选择描边路径

选择画笔,画笔的预设要配好,勾选模拟压力

具体画笔的预设要配什么呢……一开始我也不知道,视频里也没讲
我做的时候发现没有视频中那样前后端尖锐

找了一会才看到是在笔刷预设里面选 形状动态-大小抖动-钢笔压力

组合拼接

好吧,后来才发现要想让枪焰自然,其实贴图应该贴着图片的底部
这样的话,两个 mesh 组合起来的贴图之间才不会有间隙

而且如果枪焰贴图太细的话也不好看,给人感觉很窄

于是我做的就是这样


9. 贴图导入

要勾选 Alpha Is Transparency 才能正常显示

如果没有正常显示的话还可以点 VFX 图的 save 键,这样它的特效就会刷新

接下来没有意外的话,应该会显示成类似这样

10. MuzzlePlanes

设置更短的生命周期,以达到急促的效果

设置粒子的大小随生命周期变化,计算方法改成 multiply

曲线调成先慢后快

设置颜色,同样也是 multiply

选一个偏橙的颜色

然后把强度调成 +2

点击 Set Size,在监视器中遭到 Random 一栏,选择 Uniform

可以看到现在有一个值的区间可以调

同理,加一个 set scale,调成区间

由于我在 blender 导出的时候使用了应用变换,所以我的长轴试验出来是 z

颜色也可以 random

透明度 multiply

11. MuzzleCone

把之前做得 MuzzlePlanes 的部分做成一个 group 然后直接点击 group 框,就可以复制粘贴框内的内容

复制过来之后把 mesh 换成穹顶,可以看到运行起来,穹顶的贴图就是贴着曲面的一个方向走

不知道为啥我并没有遇到跟视频中一样的旋转错误,应该还是应用变换的关系?

改 Output Mesh 的 UV Mode 为 Scale And Bias
设置 UV Scale 为 5 1,可以看到枪焰分成了五瓣

将其中的 X 连接一个 random,这样枪焰瓣数就是随机的了

12. 烟

新建一个粒子系统

设置 single burst
设置速度
设置大小
设置生命周期
设置颜色
都选 multiply

设置 Output 模式为 flipbook blend,加入素材

设置贴图分块序号随着生命周期变化
设置为线性变化

总共有 36 个分块,对于数组来说一个分块的序号是 35
所以终点值设为 35



还可以设置旋转

Copyright © 2016-2025 www.caominkang.com 曹敏电脑维修网 版权所有 Power by