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

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

1. Mesh 制作

打开 Blender

新建一个圆环

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第1张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第2张图片

得到一个环
环的内径很小

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第3张图片

选中一个面

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第4张图片

选择光照贴图拼接

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第5张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第6张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第7张图片

全选

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第8张图片

沿活动四边面展开

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第9张图片

同样使用默认设置

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第10张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第11张图片

全选

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第12张图片

缩小移动到框内

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第13张图片

之后尽量摆在中心吧

选择 约束至画布边缘

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第14张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第15张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第16张图片

环切

在这里插入图片描述

在中间切一环

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第17张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第18张图片

向上移动

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第19张图片

内环同理

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第20张图片
[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第21张图片
[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第22张图片
[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第23张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第24张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第25张图片
[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第26张图片
[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第27张图片

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

在这里插入图片描述

2. Mesh 导入

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第28张图片
[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第29张图片
[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第30张图片

Quad 删掉,换成 Mesh

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第31张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第32张图片

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

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第33张图片

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第34张图片

难道是法向的问题

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第35张图片

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

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

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

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第36张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第37张图片

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

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第38张图片

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

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第39张图片

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

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

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

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

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第40张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第41张图片
[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第42张图片

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

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第43张图片

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

设置大小

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第44张图片

8. 贴图制作

打开 ps,新建文件

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第45张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第46张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第47张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第48张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第49张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第50张图片

组合拼接

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第51张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第52张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第53张图片

于是我做的就是这样

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第54张图片
[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第55张图片

9. 贴图导入

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第56张图片

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

在这里插入图片描述

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第57张图片

10. MuzzlePlanes

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第58张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第59张图片

曲线调成先慢后快

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第60张图片

设置颜色,同样也是 multiply

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第61张图片

选一个偏橙的颜色

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第62张图片

然后把强度调成 +2

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第63张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第64张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第65张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第66张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第67张图片

颜色也可以 random

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第68张图片

透明度 multiply

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第69张图片

11. MuzzleCone

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第70张图片

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

在这里插入图片描述

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第71张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第72张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第73张图片

12. 烟

新建一个粒子系统

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第74张图片

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

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第75张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第76张图片

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

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第77张图片
在这里插入图片描述
[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第78张图片

还可以设置旋转

[Unity] 使用 Visual Effect Graph 制作射击枪焰特效_第79张图片

你可能感兴趣的:(unity,TPS,VFX,VisualEffect,Graph)