第5章 基础运动图形效果创建

5.1 基础粒子效果创建

5.1.1 创建第一个粒子效果

创建一个基础的粒子效果是学习Niagara的第一步,以下是详细的创建步骤:

步骤1:创建Niagara系统

  1. 在Content Browser中右键点击,选择"FX" > "Niagara System"
  2. 在Niagara系统创建向导中,选择"Empty System"模板
  3. 为系统命名(如"BasicParticleEffect"),然后点击"Finish"

步骤2:添加发射器

  1. 在Niagara编辑器中,点击"Emitter"面板中的"Add Emitter"
  2. 选择"Empty Emitter"模板
  3. 为发射器命名(如"MainEmitter")

步骤3:配置粒子属性

  1. 粒子生成
  2. 点击发射器,添加"Spawn Rate"模块
  3. 设置生成速率(如100粒子/秒)
  4. 添加"Spawn Location"模块,设置粒子生成位置(如0,0,0)

  5. 粒子更新

  6. 添加"Velocity Initial"模块,设置初始速度(如0,0,100)
  7. 添加"Lifetime"模块,设置生命周期(如2秒)
  8. 添加"Gravity"模块,设置重力影响(如-980)

  9. 粒子渲染

  10. 添加"Sprite Renderer"模块
  11. 设置粒子大小(如10)
  12. 设置粒子颜色(如红色)

步骤4:测试粒子效果

  1. 点击Niagara编辑器中的"Play"按钮
  2. 观察粒子效果的表现
  3. 调整参数,优化效果

5.1.2 调整粒子属性与外观

创建基础粒子效果后,可以通过调整粒子属性和外观来优化效果:

调整粒子属性

  1. 位置与分布
  2. 使用"Spawn Location Volume"模块替换"Spawn Location"模块
  3. 设置生成体积(如球体、盒子等)
  4. 调整体积大小和位置

  5. 速度与方向

  6. 使用"Velocity Cone"模块替换"Velocity Initial"模块
  7. 设置速度范围和方向角度
  8. 调整速度分布(如均匀、随机等)

  9. 生命周期

  10. 使用"Lifetime Random"模块替换"Lifetime"模块
  11. 设置生命周期范围(如1-3秒)
  12. 调整生命周期分布

调整粒子外观

  1. 大小与缩放
  2. 添加"Scale by Life"模块
  3. 使用曲线控制粒子大小随生命周期的变化
  4. 设置初始大小和最终大小

  5. 颜色与透明度

  6. 添加"Color by Life"模块
  7. 使用颜色渐变控制粒子颜色随生命周期的变化
  8. 设置初始颜色和最终颜色
  9. 添加"Opacity by Life"模块,控制透明度变化

  10. 旋转与朝向

  11. 添加"Rotation Initial"模块,设置初始旋转
  12. 添加"Rotation Rate"模块,设置旋转速度
  13. 设置旋转方向(如随机、固定等)

5.1.3 应用材质与纹理

为粒子应用材质和纹理可以使粒子效果更加丰富和真实:

创建粒子材质

  1. 在Content Browser中右键点击,选择"Material" > "Material"
  2. 为材质命名(如"ParticleMaterial")
  3. 在Material Editor中,设置材质域为"Particle"
  4. 配置材质属性(如颜色、透明度、自发光等)

应用粒子材质

  1. 在Niagara编辑器中,选择"Sprite Renderer"模块
  2. 在"Material"属性中,选择之前创建的粒子材质
  3. 观察粒子效果的变化

添加纹理

  1. 导入纹理图片到Content Browser中
  2. 在Material Editor中,添加"Texture Sample"节点
  3. 连接纹理节点到材质的颜色或透明度输入
  4. 调整纹理的缩放、偏移等参数

使用序列帧动画

  1. 导入序列帧纹理到Content Browser中
  2. 在Niagara编辑器中,添加"Flipbook"模块
  3. 选择序列帧纹理
  4. 设置动画速度和循环方式

5.1.4 测试与优化基础效果

创建和调整粒子效果后,需要进行测试和优化,确保效果符合预期:

测试效果

  1. 在Niagara编辑器中播放效果,观察表现
  2. 在Level Editor中放置粒子系统,观察在场景中的效果
  3. 调整视角和距离,测试不同角度下的效果

优化性能

  1. 减少粒子数量:降低生成速率或生命周期
  2. 优化渲染设置:使用更简单的材质和纹理
  3. 禁用不必要的功能:如阴影、光照等
  4. 使用LOD:根据距离调整粒子细节

优化视觉效果

  1. 添加随机变化:为粒子属性添加随机值
  2. 使用曲线控制:使用曲线平滑过渡粒子属性
  3. 调整颜色和透明度:增强视觉层次感
  4. 添加环境交互:如碰撞、灯光影响等

5.2 运动图形基础效果

5.2.1 基础旋转效果

旋转效果是运动图形中最基本的效果之一,可以通过以下步骤创建:

创建旋转效果

  1. 创建新的Niagara系统,命名为"RotationEffect"
  2. 添加发射器,命名为"RotationEmitter"
  3. 配置粒子生成:
  4. 设置生成位置为一个圆的周围
  5. 使用"Spawn Location Circle"模块
  6. 设置圆的半径和中心位置

  7. 配置旋转属性:

  8. 添加"Rotation Rate"模块
  9. 设置旋转速度(如360度/秒)
  10. 设置旋转轴(如Z轴)

  11. 配置渲染属性:

  12. 设置粒子大小(如5)
  13. 设置粒子颜色(如蓝色)

优化旋转效果

  1. 添加随机旋转:为旋转速度添加随机值
  2. 使用不同的旋转轴:尝试X轴、Y轴或自定义轴
  3. 添加缩放效果:使用"Scale by Life"模块,使粒子大小随时间变化
  4. 添加颜色变化:使用"Color by Life"模块,使粒子颜色随时间变化

5.2.2 基础缩放效果

缩放效果可以使粒子在空间中扩大或缩小,创建动态的视觉效果:

创建缩放效果

  1. 创建新的Niagara系统,命名为"ScaleEffect"
  2. 添加发射器,命名为"ScaleEmitter"
  3. 配置粒子生成:
  4. 设置生成位置(如0,0,0)
  5. 设置生成速率(如10粒子/秒)

  6. 配置缩放属性:

  7. 添加"Scale Initial"模块,设置初始大小(如1)
  8. 添加"Scale by Life"模块,使用曲线控制缩放
  9. 设置最终大小(如5)

  10. 配置渲染属性:

  11. 设置粒子颜色(如绿色)
  12. 设置粒子透明度(如0.5)

优化缩放效果

  1. 添加随机缩放:为初始大小和最终大小添加随机值
  2. 使用不同的缩放曲线:尝试线性、指数、正弦等曲线
  3. 添加旋转效果:同时应用旋转和缩放效果
  4. 添加速度效果:使粒子在缩放的同时移动

5.2.3 基础移动效果

移动效果是粒子系统中最常见的效果之一,可以创建各种动态的运动轨迹:

创建移动效果

  1. 创建新的Niagara系统,命名为"MoveEffect"
  2. 添加发射器,命名为"MoveEmitter"
  3. 配置粒子生成:
  4. 设置生成位置(如-100,0,0)
  5. 设置生成速率(如50粒子/秒)

  6. 配置移动属性:

  7. 添加"Velocity Initial"模块,设置初始速度(如200,0,0)
  8. 添加"Lifetime"模块,设置生命周期(如2秒)

  9. 配置渲染属性:

  10. 设置粒子大小(如5)
  11. 设置粒子颜色(如黄色)

优化移动效果

  1. 添加随机速度:为初始速度添加随机值
  2. 使用不同的速度曲线:尝试加速、减速等效果
  3. 添加重力影响:使粒子受到重力作用
  4. 添加方向变化:使用"Velocity Direction Cone"模块,使粒子沿不同方向移动

5.2.4 基础颜色与透明度变化

颜色和透明度变化可以增强粒子效果的视觉层次感和动态性:

创建颜色与透明度变化效果

  1. 创建新的Niagara系统,命名为"ColorOpacityEffect"
  2. 添加发射器,命名为"ColorOpacityEmitter"
  3. 配置粒子生成:
  4. 设置生成位置(如0,0,0)
  5. 设置生成速率(如50粒子/秒)

  6. 配置颜色属性:

  7. 添加"Color by Life"模块
  8. 点击颜色渐变编辑器
  9. 设置起始颜色(如红色)和结束颜色(如蓝色)

  10. 配置透明度属性:

  11. 添加"Opacity by Life"模块
  12. 点击透明度曲线编辑器
  13. 设置起始透明度(如1)和结束透明度(如0)

  14. 配置移动属性:

  15. 添加"Velocity Initial"模块,设置初始速度(如0,0,50)

优化颜色与透明度效果

  1. 使用更复杂的渐变:添加多个颜色关键点
  2. 添加随机颜色:为颜色添加随机变化
  3. 同步颜色和大小变化:使颜色和大小随生命周期同步变化
  4. 添加自发光效果:在材质中启用自发光

5.3 常用基础效果案例

5.3.1 烟雾效果

烟雾效果是游戏中常见的效果之一,以下是创建基础烟雾效果的步骤:

创建烟雾效果

  1. 创建新的Niagara系统,命名为"SmokeEffect"
  2. 添加发射器,命名为"SmokeEmitter"

  3. 粒子生成

  4. 添加"Spawn Rate"模块,设置生成速率(如50粒子/秒)
  5. 添加"Spawn Location Volume"模块,设置生成体积(如100x100x100的盒子)
  6. 添加"Initial Velocity Cone"模块,设置速度方向(如向上,角度30度)

  7. 粒子更新

  8. 添加"Lifetime"模块,设置生命周期(如5秒)
  9. 添加"Gravity"模块,设置重力(如-200,较弱的重力效果)
  10. 添加"Drag"模块,设置阻力(如0.5)
  11. 添加"Turbulence"模块,设置湍流效果(如强度100,频率0.5)

  12. 粒子渲染

  13. 添加"Sprite Renderer"模块
  14. 设置初始大小(如50)
  15. 添加"Scale by Life"模块,设置大小随生命周期变化(如从50到200)
  16. 添加"Color by Life"模块,设置颜色渐变(如从灰色到白色)
  17. 添加"Opacity by Life"模块,设置透明度渐变(如从0.5到0)

  18. 应用烟雾材质

  19. 创建半透明材质,启用自发光
  20. 应用到粒子系统

优化烟雾效果

  1. 添加更多细节:添加子发射器,创建烟雾的细微粒子
  2. 调整湍流参数:增强烟雾的自然流动感
  3. 使用纹理:应用烟雾纹理,增强真实感
  4. 调整光照影响:使烟雾受到场景光照的影响

5.3.2 火焰效果

火焰效果是另一种常见的粒子效果,以下是创建基础火焰效果的步骤:

创建火焰效果

  1. 创建新的Niagara系统,命名为"FlameEffect"
  2. 添加发射器,命名为"FlameEmitter"

  3. 粒子生成

  4. 添加"Spawn Rate"模块,设置生成速率(如100粒子/秒)
  5. 添加"Spawn Location Point"模块,设置生成位置(如0,0,0)
  6. 添加"Initial Velocity Cone"模块,设置速度方向(如向上,角度20度)

  7. 粒子更新

  8. 添加"Lifetime"模块,设置生命周期(如1.5秒)
  9. 添加"Gravity"模块,设置重力(如-500)
  10. 添加"Drag"模块,设置阻力(如0.3)
  11. 添加"Turbulence"模块,设置湍流效果(如强度50,频率1.0)

  12. 粒子渲染

  13. 添加"Sprite Renderer"模块
  14. 设置初始大小(如20)
  15. 添加"Scale by Life"模块,设置大小随生命周期变化(如从20到40)
  16. 添加"Color by Life"模块,设置颜色渐变(如从黄色到橙色到红色)
  17. 添加"Opacity by Life"模块,设置透明度渐变(如从1到0)

  18. 应用火焰材质

  19. 创建自发光材质,启用半透明
  20. 应用到粒子系统

优化火焰效果

  1. 添加热量扭曲效果:使用后处理材质创建热量扭曲
  2. 添加火花效果:添加子发射器,创建火星
  3. 调整颜色和亮度:增强火焰的视觉冲击力
  4. 添加阴影:启用粒子阴影,增强真实感

5.3.3 火花效果

火花效果通常用于爆炸、碰撞等场景,以下是创建基础火花效果的步骤:

创建火花效果

  1. 创建新的Niagara系统,命名为"SparkEffect"
  2. 添加发射器,命名为"SparkEmitter"

  3. 粒子生成

  4. 添加"Spawn Rate"模块,设置生成速率(如200粒子/秒)
  5. 添加"Spawn Location Point"模块,设置生成位置(如0,0,0)
  6. 添加"Initial Velocity Cone"模块,设置速度方向(如随机方向,角度180度)
  7. 设置初始速度(如1000)

  8. 粒子更新

  9. 添加"Lifetime"模块,设置生命周期(如0.5秒)
  10. 添加"Gravity"模块,设置重力(如-980)
  11. 添加"Drag"模块,设置阻力(如0.1)
  12. 添加"Rotation Rate"模块,设置旋转速度(如1000度/秒)

  13. 粒子渲染

  14. 添加"Sprite Renderer"模块
  15. 设置初始大小(如5)
  16. 添加"Scale by Life"模块,设置大小随生命周期变化(如从5到0)
  17. 添加"Color by Life"模块,设置颜色渐变(如从白色到黄色到红色)
  18. 添加"Opacity by Life"模块,设置透明度渐变(如从1到0)

  19. 应用火花材质

  20. 创建自发光材质,启用半透明
  21. 应用到粒子系统

优化火花效果

  1. 添加随机变化:为速度、大小、颜色等添加随机值
  2. 添加碰撞效果:使火花与场景碰撞后反弹
  3. 调整生命周期:使火花快速消失
  4. 添加发光效果:增强火花的亮度

5.3.4 雨滴效果

雨滴效果是环境效果中常见的一种,以下是创建基础雨滴效果的步骤:

创建雨滴效果

  1. 创建新的Niagara系统,命名为"RainEffect"
  2. 添加发射器,命名为"RainEmitter"

  3. 粒子生成

  4. 添加"Spawn Rate"模块,设置生成速率(如1000粒子/秒)
  5. 添加"Spawn Location Volume"模块,设置生成体积(如1000x1000x100的盒子,位置在玩家上方)
  6. 添加"Initial Velocity"模块,设置初始速度(如0,0,-1000)

  7. 粒子更新

  8. 添加"Lifetime"模块,设置生命周期(如2秒)
  9. 添加"Gravity"模块,设置重力(如-2000,较强的重力效果)
  10. 添加"Drag"模块,设置阻力(如0.05)

  11. 粒子渲染

  12. 添加"Sprite Renderer"模块
  13. 设置初始大小(如5x50,细长的形状)
  14. 设置粒子颜色(如深蓝色)
  15. 设置透明度(如0.3)
  16. 添加"Rotation Rate"模块,设置旋转速度(如100度/秒)

  17. 应用雨滴材质

  18. 创建半透明材质,启用折射
  19. 应用到粒子系统

优化雨滴效果

  1. 添加碰撞效果:使雨滴与地面碰撞后溅起水花
  2. 添加随机变化:为速度、大小、角度等添加随机值
  3. 调整密度:根据雨的强度调整粒子数量
  4. 添加音效:为雨滴添加落地音效

5.4 效果导出与应用

5.4.1 导出粒子效果

创建并优化粒子效果后,可以将其导出用于其他项目或分享:

导出Niagara系统

  1. 在Content Browser中选中要导出的Niagara系统
  2. 点击"File" > "Export"
  3. 选择导出路径和文件名
  4. 点击"Save"

导出材质和纹理

  1. 选中粒子效果使用的材质和纹理
  2. 点击"File" > "Export"
  3. 选择导出路径和文件名
  4. 点击"Save"

5.4.2 在场景中应用粒子效果

创建好的粒子效果可以应用到游戏场景中:

方法1:直接放置

  1. 在Content Browser中选中Niagara系统
  2. 将其拖拽到Level Editor中的目标位置
  3. 调整位置、旋转和缩放

方法2:通过蓝图应用

  1. 创建一个新的蓝图类(如Actor)
  2. 添加Niagara Component组件
  3. 在组件属性中选择创建的Niagara系统
  4. 通过蓝图控制粒子系统的播放、暂停、重置等

方法3:通过C++代码应用

  1. 在C++类中添加UNiagaraComponent指针
  2. 在构造函数或BeginPlay中创建并初始化Niagara组件
  3. 调用组件的函数控制粒子效果

5.4.3 效果的参数化控制

为了使粒子效果更加灵活,可以将其参数化,通过外部控制调整效果:

在Niagara中设置参数

  1. 在Niagara编辑器中,点击"User Parameters"面板
  2. 点击"Add Parameter",选择参数类型(如Float、Vector、Color等)
  3. 为参数命名(如"SpawnRate"、"ParticleSize"等)
  4. 将参数绑定到对应的模块属性

通过蓝图控制参数

  1. 在蓝图中获取Niagara组件
  2. 使用"Set Niagara Variable"节点
  3. 选择参数类型和名称
  4. 设置参数值

通过C++代码控制参数

  1. 使用UNiagaraComponent的SetVariable函数
  2. 传递参数名称和值
  3. 可以在运行时动态调整参数

本章小结

本章介绍了Niagara粒子系统基础效果的创建方法,包括基础粒子效果的创建、属性调整、材质应用以及常用基础效果的案例。通过本章的学习,读者应该能够创建各种基础的运动图形效果,并应用到游戏场景中。

下一章将进入进阶篇,学习更复杂的粒子效果和运动图形技术。