今日科技快讯
ChatGPT自问世以来,迅速火爆全球,好似没有它处理不了的事情。那么,ChatGPT能设计机器人吗?或者说AI能设计自己的身体吗?这激发了一些科学家的兴趣。近日,来自荷兰代尔夫特理工大学和瑞士洛桑联邦理工学院的科学家团队完全遵循ChatGPT的设计,创建出一台西红柿采摘机器人。相关成果已发表在近期的《自然-机器智能》杂志上。
Hello 大家好,上篇文章中我们完成了 NPC 的 AI 部分,今天我们要完成俩个功能,分别是给 NPC 加上血条以及触动 NPC 攻击,好了废话不多说咱们这就开始吧!
在 Enemy 文件夹下创建一个 UI 文件夹,右键选择 User Interface -> Widget Blueprint, 命名为 enemyHP_WB,双击打开。
image
构建 UI 如图,尺寸选择 Custom, 宽高分别为 150 和 40,然后在画布中拖入 Progress Bar, 命名为 EnemyHPBar,Anchors 居中, 并设置如图所示的参数, 颜色为红色:
image
image
image
打开 NPC 的蓝图 Knight_BP, Add Component 选择 Widget,如图:
image
调整一下位置,将 Widget 提高到头顶。
image
设置 Widget 的 Space 为 Screen, Widget Class 选择我们上面创建的 EnemyHP_WB, Draw Size 设置为 150 和 40:
image
最后保存一下工程,运行游戏你会发现 NPC 头顶上有了血条:
image
接下来给 NPC 加上一个触发机制,当角色靠近 NPC 时, NPC 会过来追玩家并攻击玩家。
首先,打开 NPC 的蓝图 Knight_BP,在 View Port 视图中添加 PawnSensing 组件然后编译,不编译的话不会出来效果图,并完成如下设置:
image
随后找到 PawnSensing 的事件 On See Pawn 添加该事件:
给 Knight_BP 添加一个自定义事件 HunterPlayer:
image
定义一个变量 IsActive,用于表示 NPC 是否被激活。
回到我们的 On See Pawn 事件中,构建蓝图逻辑如下:
image
当触发到该事件的时候,给 IsActive 变量赋值为 true, 并去调用 HunterPlayer 事件。
接下来,构建 HunterPlayer 事件的蓝图逻辑如下:
image
让其一直移动都在角色所在的位置,效果如下:
image
既然 NPC 已经都追上来了,那不打你一下吗?接下来,咱们就来实现 NPC 攻击的角色的效果,需要用到动画蒙太奇。
首先,找到动画 Standing_Melee_Attack_Downward 右键 Create AnimMontage, 然后双击打开它。
image
在 Notifies 轨道上右键添加俩个 Notify,分别是 OnAttack 以及 OffAttack, 如图:
image
回到 NPC 的 Knight_BP 蓝图中,为其添加俩个自定义事件,EmenyOnAttack 和 EnemyOffAttack,以及一个 bool 变量 UnderAttack, 如图:
image
回到 NPC 的动画蓝图 KnightAnim_BP 中,去响应动画蒙太奇中的 OnAttack 和 OffAttack 俩个事件,如图:
image
并在 AnimGraph 中加入 Slot 'DefaultSlot', 如图:
image
在 Knight_BP 蓝图中再去自定义一个事件 AttackPlayer,并构建蓝图逻辑如下:
image
调用 Play Anim Montage 节点去播放攻击动画,等待播放完毕后继续去 Hunter 玩家。
然后在 HunterPlayer 事件中去加入 AttackPlayer,修改如下:
image
运行游戏,当你靠近敌人时,敌人就会过来追赶你并攻击你。
最后,给我们的 NPC 加上一把武器吧!
打开 NPC 骨骼 Mesh,然后在它的右手节点 RightHand 上 Add Socket 并取名 Weapon,然后右键 Add Preview Asset, 选择一把武器,如图所示:
image
为了能够更好的将武器位置摆放正确,在右侧的 Preview Controller 中选取 Use Specific Animation, 然后选 好攻击的动画,然后暂停动画播放并调整武器的位置,如图:
image
回到 Knight_BP 蓝图中,添加一个 Static Mesh Component,并依附于 Mesh, 命名为 Sword,如图:
image
然后将它的 Parent Socket 设置为 Weapon,这样它就会随着身体的动画一起动起来,最后将武器的位置调整一下,如图:
image
保存运行一下游戏,NPC 就会拿着武器来追你拉!
image
本文分享自 HelloWorld杰少 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!