六一的部落格


关关难过关关过,前路漫漫亦灿灿。




说明

AI Character / Controller / Navmesh


创建类

  • NPC游戏角色
    -
    基类 STUBaseCharacter
    Public
    路径 AI/
    STUAICharacter
  • 相应控制器
    -
    基类 AIController
    Public
    路径 AI/
    STUAIController
  • 添加到头文件搜索路径

    ShootThemUp: ShootThemUp.Build.cs
     1PublicIncludePaths.AddRange(new string[]
     2{
     3    "ShootThemUp/Public/Player",
     4    "ShootThemUp/Public/Components",
     5    "ShootThemUp/Public/Dev",
     6    "ShootThemUp/Public/Weapon",
     7    "ShootThemUp/Public/UI",
     8    "ShootThemUp/Public/Animations",
     9    "ShootThemUp/Public/Pickups",
    10    "ShootThemUp/Public/Weapon/Components",
    11    "ShootThemUp/Public/AI"
    12});
  • 创建文件夹 Content/AI
  • 创建基于STUAICharacter和STUAIController的蓝图类, 添加前缀BP_

配置BP_STUAICharacter

参照BP_STUBaseCharacter

  • 显示修改过的属性


  • 设置属性时善用复制粘贴

  • 对BP_AIBaseCharacter进行修改

    生命值文本


    网格体


    设置动画蓝图类


    健康组件


    武器组件



为NPC使能AI

BP_STUAICharacter

  • 允许该游戏角色直接添加到场景中或动态生成; 设置控制器类型


  • 移除添加到场景中的BP_STUBaseCharacter, 添加BP_AIBaseCharacter

  • 运行游戏, 正常生成NPC和AI控制器



让NPC移动到指定位置

  • 设置地板大小


  • 添加Actor到场景一角: 获取目的位置座标

    Place Actors > Basic > Actor


  • 双击打开BP_STUAIController

    添加节点AIMoveTo, 在BeginPlay之后执行: 将控制器当前控制的游戏角色移动到目的地, 通过给出目的地座标或指示Actor


  • 添加NavMeshBoundsVolume: 覆盖NPC移动区域

    Place Actors > Volumes > NavMeshBoundsVolume

  • 设置NavMeshBoundsVolume大小: 高度管控层级; 与场景中的其他网格体有交互

    Details > Brush Settings


  • 绿色高亮显示导航网格体的覆盖区域, 按下 P 显示 / 隐藏

    Unreal Editor > Preference > General > Keyboard Shortcuts



优化榴弹爆炸特效

Content/VFX/Projectile

烟雾和火球无法扩散, 将烟雾效果扩大, 火球效果缩小

  • NE_Burst
  • NE_Fireball
  • NE_Flash
  • NE_Smoke

Properties使能Local Space



NE_Fireball


分布半径



NE_Smoke


粒子数


分布半径



NS_ProjectileExplosion



优化步枪击中特效


NE_CoreFast



NE_ShortBurst1



NE_ShortBurst2


让NPC移动到指定位置



说明

AI Character / Controller / Navmesh


创建类

  • NPC游戏角色
    -
    基类 STUBaseCharacter
    Public
    路径 AI/
    STUAICharacter
  • 相应控制器
    -
    基类 AIController
    Public
    路径 AI/
    STUAIController
  • 添加到头文件搜索路径

    ShootThemUp: ShootThemUp.Build.cs
     1PublicIncludePaths.AddRange(new string[]
     2{
     3    "ShootThemUp/Public/Player",
     4    "ShootThemUp/Public/Components",
     5    "ShootThemUp/Public/Dev",
     6    "ShootThemUp/Public/Weapon",
     7    "ShootThemUp/Public/UI",
     8    "ShootThemUp/Public/Animations",
     9    "ShootThemUp/Public/Pickups",
    10    "ShootThemUp/Public/Weapon/Components",
    11    "ShootThemUp/Public/AI"
    12});
  • 创建文件夹 Content/AI
  • 创建基于STUAICharacter和STUAIController的蓝图类, 添加前缀BP_

配置BP_STUAICharacter

参照BP_STUBaseCharacter

  • 显示修改过的属性


  • 设置属性时善用复制粘贴

  • 对BP_AIBaseCharacter进行修改

    生命值文本


    网格体


    设置动画蓝图类


    健康组件


    武器组件



为NPC使能AI

BP_STUAICharacter

  • 允许该游戏角色直接添加到场景中或动态生成; 设置控制器类型


  • 移除添加到场景中的BP_STUBaseCharacter, 添加BP_AIBaseCharacter

  • 运行游戏, 正常生成NPC和AI控制器



让NPC移动到指定位置

  • 设置地板大小


  • 添加Actor到场景一角: 获取目的位置座标

    Place Actors > Basic > Actor


  • 双击打开BP_STUAIController

    添加节点AIMoveTo, 在BeginPlay之后执行: 将控制器当前控制的游戏角色移动到目的地, 通过给出目的地座标或指示Actor


  • 添加NavMeshBoundsVolume: 覆盖NPC移动区域

    Place Actors > Volumes > NavMeshBoundsVolume

  • 设置NavMeshBoundsVolume大小: 高度管控层级; 与场景中的其他网格体有交互

    Details > Brush Settings


  • 绿色高亮显示导航网格体的覆盖区域, 按下 P 显示 / 隐藏

    Unreal Editor > Preference > General > Keyboard Shortcuts



优化榴弹爆炸特效

Content/VFX/Projectile

烟雾和火球无法扩散, 将烟雾效果扩大, 火球效果缩小

  • NE_Burst
  • NE_Fireball
  • NE_Flash
  • NE_Smoke

Properties使能Local Space



NE_Fireball


分布半径



NE_Smoke


粒子数


分布半径



NS_ProjectileExplosion



优化步枪击中特效


NE_CoreFast



NE_ShortBurst1



NE_ShortBurst2