让NPC移动到指定位置
2023年10月19日 2024年1月11日
说明
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