效果
步骤
1. 首先下载一个螺旋形状的静态网格体并导入UE(地址:https://pan.baidu.com/s/1l9Bn5lQd7tDBu3CMs4c2aA?pwd=7myr )
2. 创建一个Niagara系统
使用Empty模板
这里命名为“NS_LightingAround”
打开“NS_LightingAround”,添加一个“Spawn Rate”模块,SpawnRate设置为100
删除“Sprite渲染器”
添加“网格体渲染器”模块
在“网格体渲染器”模块中,网格体设置为刚下载的静态网格体“SM_Sprial”
为了让网格体粒子更大一点,我们选中“Initial Particle”模块,设置“Mesh Uniform Scale”为5
添加一个“Sample Skeletal Mesh”,预览网格体设置为“SKM_Quinn_Simple”
设置“Mesh Sampling Type”为“Surface(Triangles)”
下面还需要设置粒子位置,将“Position”添加到“粒子生成”中
将粒子位置设置为采样骨骼网格体
为了让网格体粒子随机旋转,这里添加一个“Initial Mesh Orientation”
此时效果如下
将粒子初始大小设置为随机值
3. 复制一份之前文章中创建的材质“M_Lighting”,这里命名为“M_Lighting1”(【UE 材质】闪电材质-CSDN博客)
打开“M_Lighting1”,保留如下节点
由于我们需要不同线条宽度的纹理,因此我们可以通过动态参数节点来控制线条粗细,这里“Width”的默认值设置为1
4. 在网格体渲染器中,勾选“启用材质重载”,显示材质设置为“M_Lighting1”
5. 接下来需要创建一个如下所示的纹理
我们首选创建一个材质,这里命名为“M_Line”
材质图表中添加如下节点
添加一个渲染目标,这里命名为“RT_Line”
创建一个actor蓝图,这里命名为“BP_Line”
在事件图表中添加一个自定义事件
勾选“在编辑器中调用”
将“BP_Line”拖入场景
点击“CreateLine”
可以看到此时渲染目标有了图案
对渲染目标创建静态纹理
这里命名为“T_Line”
回到材质“M_Lighting1”,添加如下节点,来截取水平的一小段
其中纹理采样节点的采样器源设置为“共享:限制”
动态参数节点第二个参数命名为“Mask”,该参数用于控制遮罩的平移位置
6. 回到Niagara系统“NS_LightingAround”中,在粒子更新中添加一个“Dynamic Material Parameters”模块,设置参数“Width”为随机值,参数“Mask”为从(0,1)到(1,-1)的曲线
设置粒子初始颜色
此时效果如下
7. 回到材质“M_Lighting1”,继续添加如下节点,其中动态参数节点第三个参数命名为“WPO”,表示世界位置偏移,通过该值的变化我们可以让粒子随机偏移
在Niagara中对动态参数“WPO”设置为20~50的随机值,“Width”设置为0.04~0.08
粒子生命周期设置为1s
添加一个“Scale Color”模块,然后进行如下设置
添加一个“Scale Mesh Size”模块
SpawnRate改为200
为了让粒子固定在人身上,这里需要勾选“本地空间”
8. 在角色蓝图中添加Niagara
最终运行效果如下