第5章 基础运动图形效果创建
5.1 基础粒子效果创建
5.1.1 创建第一个粒子效果
创建一个基础的粒子效果是学习Niagara的第一步,以下是详细的创建步骤:
步骤1:创建Niagara系统
- 在Content Browser中右键点击,选择"FX" > "Niagara System"
- 在Niagara系统创建向导中,选择"Empty System"模板
- 为系统命名(如"BasicParticleEffect"),然后点击"Finish"
步骤2:添加发射器
- 在Niagara编辑器中,点击"Emitter"面板中的"Add Emitter"
- 选择"Empty Emitter"模板
- 为发射器命名(如"MainEmitter")
步骤3:配置粒子属性
- 粒子生成:
- 点击发射器,添加"Spawn Rate"模块
- 设置生成速率(如100粒子/秒)
-
添加"Spawn Location"模块,设置粒子生成位置(如0,0,0)
-
粒子更新:
- 添加"Velocity Initial"模块,设置初始速度(如0,0,100)
- 添加"Lifetime"模块,设置生命周期(如2秒)
-
添加"Gravity"模块,设置重力影响(如-980)
-
粒子渲染:
- 添加"Sprite Renderer"模块
- 设置粒子大小(如10)
- 设置粒子颜色(如红色)
步骤4:测试粒子效果
- 点击Niagara编辑器中的"Play"按钮
- 观察粒子效果的表现
- 调整参数,优化效果
5.1.2 调整粒子属性与外观
创建基础粒子效果后,可以通过调整粒子属性和外观来优化效果:
调整粒子属性
- 位置与分布:
- 使用"Spawn Location Volume"模块替换"Spawn Location"模块
- 设置生成体积(如球体、盒子等)
-
调整体积大小和位置
-
速度与方向:
- 使用"Velocity Cone"模块替换"Velocity Initial"模块
- 设置速度范围和方向角度
-
调整速度分布(如均匀、随机等)
-
生命周期:
- 使用"Lifetime Random"模块替换"Lifetime"模块
- 设置生命周期范围(如1-3秒)
- 调整生命周期分布
调整粒子外观
- 大小与缩放:
- 添加"Scale by Life"模块
- 使用曲线控制粒子大小随生命周期的变化
-
设置初始大小和最终大小
-
颜色与透明度:
- 添加"Color by Life"模块
- 使用颜色渐变控制粒子颜色随生命周期的变化
- 设置初始颜色和最终颜色
-
添加"Opacity by Life"模块,控制透明度变化
-
旋转与朝向:
- 添加"Rotation Initial"模块,设置初始旋转
- 添加"Rotation Rate"模块,设置旋转速度
- 设置旋转方向(如随机、固定等)
5.1.3 应用材质与纹理
为粒子应用材质和纹理可以使粒子效果更加丰富和真实:
创建粒子材质
- 在Content Browser中右键点击,选择"Material" > "Material"
- 为材质命名(如"ParticleMaterial")
- 在Material Editor中,设置材质域为"Particle"
- 配置材质属性(如颜色、透明度、自发光等)
应用粒子材质
- 在Niagara编辑器中,选择"Sprite Renderer"模块
- 在"Material"属性中,选择之前创建的粒子材质
- 观察粒子效果的变化
添加纹理
- 导入纹理图片到Content Browser中
- 在Material Editor中,添加"Texture Sample"节点
- 连接纹理节点到材质的颜色或透明度输入
- 调整纹理的缩放、偏移等参数
使用序列帧动画
- 导入序列帧纹理到Content Browser中
- 在Niagara编辑器中,添加"Flipbook"模块
- 选择序列帧纹理
- 设置动画速度和循环方式
5.1.4 测试与优化基础效果
创建和调整粒子效果后,需要进行测试和优化,确保效果符合预期:
测试效果
- 在Niagara编辑器中播放效果,观察表现
- 在Level Editor中放置粒子系统,观察在场景中的效果
- 调整视角和距离,测试不同角度下的效果
优化性能
- 减少粒子数量:降低生成速率或生命周期
- 优化渲染设置:使用更简单的材质和纹理
- 禁用不必要的功能:如阴影、光照等
- 使用LOD:根据距离调整粒子细节
优化视觉效果
- 添加随机变化:为粒子属性添加随机值
- 使用曲线控制:使用曲线平滑过渡粒子属性
- 调整颜色和透明度:增强视觉层次感
- 添加环境交互:如碰撞、灯光影响等
5.2 运动图形基础效果
5.2.1 基础旋转效果
旋转效果是运动图形中最基本的效果之一,可以通过以下步骤创建:
创建旋转效果
- 创建新的Niagara系统,命名为"RotationEffect"
- 添加发射器,命名为"RotationEmitter"
- 配置粒子生成:
- 设置生成位置为一个圆的周围
- 使用"Spawn Location Circle"模块
-
设置圆的半径和中心位置
-
配置旋转属性:
- 添加"Rotation Rate"模块
- 设置旋转速度(如360度/秒)
-
设置旋转轴(如Z轴)
-
配置渲染属性:
- 设置粒子大小(如5)
- 设置粒子颜色(如蓝色)
优化旋转效果
- 添加随机旋转:为旋转速度添加随机值
- 使用不同的旋转轴:尝试X轴、Y轴或自定义轴
- 添加缩放效果:使用"Scale by Life"模块,使粒子大小随时间变化
- 添加颜色变化:使用"Color by Life"模块,使粒子颜色随时间变化
5.2.2 基础缩放效果
缩放效果可以使粒子在空间中扩大或缩小,创建动态的视觉效果:
创建缩放效果
- 创建新的Niagara系统,命名为"ScaleEffect"
- 添加发射器,命名为"ScaleEmitter"
- 配置粒子生成:
- 设置生成位置(如0,0,0)
-
设置生成速率(如10粒子/秒)
-
配置缩放属性:
- 添加"Scale Initial"模块,设置初始大小(如1)
- 添加"Scale by Life"模块,使用曲线控制缩放
-
设置最终大小(如5)
-
配置渲染属性:
- 设置粒子颜色(如绿色)
- 设置粒子透明度(如0.5)
优化缩放效果
- 添加随机缩放:为初始大小和最终大小添加随机值
- 使用不同的缩放曲线:尝试线性、指数、正弦等曲线
- 添加旋转效果:同时应用旋转和缩放效果
- 添加速度效果:使粒子在缩放的同时移动
5.2.3 基础移动效果
移动效果是粒子系统中最常见的效果之一,可以创建各种动态的运动轨迹:
创建移动效果
- 创建新的Niagara系统,命名为"MoveEffect"
- 添加发射器,命名为"MoveEmitter"
- 配置粒子生成:
- 设置生成位置(如-100,0,0)
-
设置生成速率(如50粒子/秒)
-
配置移动属性:
- 添加"Velocity Initial"模块,设置初始速度(如200,0,0)
-
添加"Lifetime"模块,设置生命周期(如2秒)
-
配置渲染属性:
- 设置粒子大小(如5)
- 设置粒子颜色(如黄色)
优化移动效果
- 添加随机速度:为初始速度添加随机值
- 使用不同的速度曲线:尝试加速、减速等效果
- 添加重力影响:使粒子受到重力作用
- 添加方向变化:使用"Velocity Direction Cone"模块,使粒子沿不同方向移动
5.2.4 基础颜色与透明度变化
颜色和透明度变化可以增强粒子效果的视觉层次感和动态性:
创建颜色与透明度变化效果
- 创建新的Niagara系统,命名为"ColorOpacityEffect"
- 添加发射器,命名为"ColorOpacityEmitter"
- 配置粒子生成:
- 设置生成位置(如0,0,0)
-
设置生成速率(如50粒子/秒)
-
配置颜色属性:
- 添加"Color by Life"模块
- 点击颜色渐变编辑器
-
设置起始颜色(如红色)和结束颜色(如蓝色)
-
配置透明度属性:
- 添加"Opacity by Life"模块
- 点击透明度曲线编辑器
-
设置起始透明度(如1)和结束透明度(如0)
-
配置移动属性:
- 添加"Velocity Initial"模块,设置初始速度(如0,0,50)
优化颜色与透明度效果
- 使用更复杂的渐变:添加多个颜色关键点
- 添加随机颜色:为颜色添加随机变化
- 同步颜色和大小变化:使颜色和大小随生命周期同步变化
- 添加自发光效果:在材质中启用自发光
5.3 常用基础效果案例
5.3.1 烟雾效果
烟雾效果是游戏中常见的效果之一,以下是创建基础烟雾效果的步骤:
创建烟雾效果
- 创建新的Niagara系统,命名为"SmokeEffect"
-
添加发射器,命名为"SmokeEmitter"
-
粒子生成:
- 添加"Spawn Rate"模块,设置生成速率(如50粒子/秒)
- 添加"Spawn Location Volume"模块,设置生成体积(如100x100x100的盒子)
-
添加"Initial Velocity Cone"模块,设置速度方向(如向上,角度30度)
-
粒子更新:
- 添加"Lifetime"模块,设置生命周期(如5秒)
- 添加"Gravity"模块,设置重力(如-200,较弱的重力效果)
- 添加"Drag"模块,设置阻力(如0.5)
-
添加"Turbulence"模块,设置湍流效果(如强度100,频率0.5)
-
粒子渲染:
- 添加"Sprite Renderer"模块
- 设置初始大小(如50)
- 添加"Scale by Life"模块,设置大小随生命周期变化(如从50到200)
- 添加"Color by Life"模块,设置颜色渐变(如从灰色到白色)
-
添加"Opacity by Life"模块,设置透明度渐变(如从0.5到0)
-
应用烟雾材质:
- 创建半透明材质,启用自发光
- 应用到粒子系统
优化烟雾效果
- 添加更多细节:添加子发射器,创建烟雾的细微粒子
- 调整湍流参数:增强烟雾的自然流动感
- 使用纹理:应用烟雾纹理,增强真实感
- 调整光照影响:使烟雾受到场景光照的影响
5.3.2 火焰效果
火焰效果是另一种常见的粒子效果,以下是创建基础火焰效果的步骤:
创建火焰效果
- 创建新的Niagara系统,命名为"FlameEffect"
-
添加发射器,命名为"FlameEmitter"
-
粒子生成:
- 添加"Spawn Rate"模块,设置生成速率(如100粒子/秒)
- 添加"Spawn Location Point"模块,设置生成位置(如0,0,0)
-
添加"Initial Velocity Cone"模块,设置速度方向(如向上,角度20度)
-
粒子更新:
- 添加"Lifetime"模块,设置生命周期(如1.5秒)
- 添加"Gravity"模块,设置重力(如-500)
- 添加"Drag"模块,设置阻力(如0.3)
-
添加"Turbulence"模块,设置湍流效果(如强度50,频率1.0)
-
粒子渲染:
- 添加"Sprite Renderer"模块
- 设置初始大小(如20)
- 添加"Scale by Life"模块,设置大小随生命周期变化(如从20到40)
- 添加"Color by Life"模块,设置颜色渐变(如从黄色到橙色到红色)
-
添加"Opacity by Life"模块,设置透明度渐变(如从1到0)
-
应用火焰材质:
- 创建自发光材质,启用半透明
- 应用到粒子系统
优化火焰效果
- 添加热量扭曲效果:使用后处理材质创建热量扭曲
- 添加火花效果:添加子发射器,创建火星
- 调整颜色和亮度:增强火焰的视觉冲击力
- 添加阴影:启用粒子阴影,增强真实感
5.3.3 火花效果
火花效果通常用于爆炸、碰撞等场景,以下是创建基础火花效果的步骤:
创建火花效果
- 创建新的Niagara系统,命名为"SparkEffect"
-
添加发射器,命名为"SparkEmitter"
-
粒子生成:
- 添加"Spawn Rate"模块,设置生成速率(如200粒子/秒)
- 添加"Spawn Location Point"模块,设置生成位置(如0,0,0)
- 添加"Initial Velocity Cone"模块,设置速度方向(如随机方向,角度180度)
-
设置初始速度(如1000)
-
粒子更新:
- 添加"Lifetime"模块,设置生命周期(如0.5秒)
- 添加"Gravity"模块,设置重力(如-980)
- 添加"Drag"模块,设置阻力(如0.1)
-
添加"Rotation Rate"模块,设置旋转速度(如1000度/秒)
-
粒子渲染:
- 添加"Sprite Renderer"模块
- 设置初始大小(如5)
- 添加"Scale by Life"模块,设置大小随生命周期变化(如从5到0)
- 添加"Color by Life"模块,设置颜色渐变(如从白色到黄色到红色)
-
添加"Opacity by Life"模块,设置透明度渐变(如从1到0)
-
应用火花材质:
- 创建自发光材质,启用半透明
- 应用到粒子系统
优化火花效果
- 添加随机变化:为速度、大小、颜色等添加随机值
- 添加碰撞效果:使火花与场景碰撞后反弹
- 调整生命周期:使火花快速消失
- 添加发光效果:增强火花的亮度
5.3.4 雨滴效果
雨滴效果是环境效果中常见的一种,以下是创建基础雨滴效果的步骤:
创建雨滴效果
- 创建新的Niagara系统,命名为"RainEffect"
-
添加发射器,命名为"RainEmitter"
-
粒子生成:
- 添加"Spawn Rate"模块,设置生成速率(如1000粒子/秒)
- 添加"Spawn Location Volume"模块,设置生成体积(如1000x1000x100的盒子,位置在玩家上方)
-
添加"Initial Velocity"模块,设置初始速度(如0,0,-1000)
-
粒子更新:
- 添加"Lifetime"模块,设置生命周期(如2秒)
- 添加"Gravity"模块,设置重力(如-2000,较强的重力效果)
-
添加"Drag"模块,设置阻力(如0.05)
-
粒子渲染:
- 添加"Sprite Renderer"模块
- 设置初始大小(如5x50,细长的形状)
- 设置粒子颜色(如深蓝色)
- 设置透明度(如0.3)
-
添加"Rotation Rate"模块,设置旋转速度(如100度/秒)
-
应用雨滴材质:
- 创建半透明材质,启用折射
- 应用到粒子系统
优化雨滴效果
- 添加碰撞效果:使雨滴与地面碰撞后溅起水花
- 添加随机变化:为速度、大小、角度等添加随机值
- 调整密度:根据雨的强度调整粒子数量
- 添加音效:为雨滴添加落地音效
5.4 效果导出与应用
5.4.1 导出粒子效果
创建并优化粒子效果后,可以将其导出用于其他项目或分享:
导出Niagara系统
- 在Content Browser中选中要导出的Niagara系统
- 点击"File" > "Export"
- 选择导出路径和文件名
- 点击"Save"
导出材质和纹理
- 选中粒子效果使用的材质和纹理
- 点击"File" > "Export"
- 选择导出路径和文件名
- 点击"Save"
5.4.2 在场景中应用粒子效果
创建好的粒子效果可以应用到游戏场景中:
方法1:直接放置
- 在Content Browser中选中Niagara系统
- 将其拖拽到Level Editor中的目标位置
- 调整位置、旋转和缩放
方法2:通过蓝图应用
- 创建一个新的蓝图类(如Actor)
- 添加Niagara Component组件
- 在组件属性中选择创建的Niagara系统
- 通过蓝图控制粒子系统的播放、暂停、重置等
方法3:通过C++代码应用
- 在C++类中添加UNiagaraComponent指针
- 在构造函数或BeginPlay中创建并初始化Niagara组件
- 调用组件的函数控制粒子效果
5.4.3 效果的参数化控制
为了使粒子效果更加灵活,可以将其参数化,通过外部控制调整效果:
在Niagara中设置参数
- 在Niagara编辑器中,点击"User Parameters"面板
- 点击"Add Parameter",选择参数类型(如Float、Vector、Color等)
- 为参数命名(如"SpawnRate"、"ParticleSize"等)
- 将参数绑定到对应的模块属性
通过蓝图控制参数
- 在蓝图中获取Niagara组件
- 使用"Set Niagara Variable"节点
- 选择参数类型和名称
- 设置参数值
通过C++代码控制参数
- 使用UNiagaraComponent的SetVariable函数
- 传递参数名称和值
- 可以在运行时动态调整参数
本章小结
本章介绍了Niagara粒子系统基础效果的创建方法,包括基础粒子效果的创建、属性调整、材质应用以及常用基础效果的案例。通过本章的学习,读者应该能够创建各种基础的运动图形效果,并应用到游戏场景中。
下一章将进入进阶篇,学习更复杂的粒子效果和运动图形技术。