目录
效果

步骤
一、安装射击武器
- 在虚幻商城中将"FPS Weapon Bundle"添加到工程中,由于我们使用的是5.1版本,我们可以先将该资产放入UE4工程中,然后迁移到5.1版本的工程

- 打开角色蓝图"BP_ThirdPersonCharacter"

添加一个骨骼网格体组件

这里命名为"Weapon_Gun"

父项套接字选择"hand_r"

我们为该骨骼网格体选择一个骨骼网格体资产,这里选择"SK_AR4"。可以看到武器的位置有点问题

调整一下变换

二、拿武器和收武器
- 打开项目设置,添加一个操作映射

- 在"AnimStarterPack"资源包中找到人物掏出武器的动画"Equip_Rifle_Standing"

使用IK重定向器导出选定动画资源

- 打开角色动画蓝图"ABP_Manny"

添加一个状态,这里命名为"EquipRifle"

添加一个布尔类型变量"IsEquipingRifle",用于表示当前是否正在拿出枪械

添加过渡规则



双击进入"EquipRifle"

添加动画输出姿势为"Equip_Rifle_Standing"

我们可以在动画预览编辑器中勾选"IsEquipingRifle"来预览角色的动画姿势

当角色拿出枪之后应该进入到拿枪的待机状态
在动画图表中添加一个状态,这里命名为"IdleRifle",用于表示角色拿着枪的待机状态

添加一个布尔类型变量,这里命名为"IsEquipedRifle",用于表示角色是否已经拿好枪械

添加过渡规则



接下来我们需要一个角色射击的待机动画。
- 在"AnimStarterPack"资源包中找到动画序列"Idle_Rifle_Hip",该动画就是角色射击状态的待机动画

通过IK重定向器导出适配角色的动画序列

- 回到角色动画蓝图中,将上一步导出的动画序列作为状态"IdleRifle"的输出动画姿势

可以在动画预览编辑器中勾选如下两个变量,来预览此时角色是否处于射击的待机状态

- 打开角色蓝图,添加如下节点

此时我们就能切换角色是否处于射击状态,效果如下

在默认状态下角色应该没有枪,因此我们应该设置枪默认不显示。选中组件"Weapon_Gun",取消勾选可视。

在玩家切换射击状态时切换武器的可视性

此时效果如下
