本项目同步上传于github和coding上,国内读者可以通过在coding下载项目。也欢迎你加入我的UE4学习交流QQ群:872537977。如果你喜欢我写的文章,也希望你点赞、收藏、转发。谢谢!
github地址:https://github.com/Liweimin0512/uRPG
coding地址:https://git.dev.tencent.com/JeremyBrett/uRPG.git
本来是打算做道具系统的,但是做道具系统的时候发现优先把一些前置条件准备好还是很有必要的。所以这一节我们先做一个简单的敌人AI,目的就是方便做之后的各种测试。首要的,就是做一个死亡后触发掉落的功能。
简单敌人AI
这个敌人目前不会动,存在的价值就是被打,然后被杀,被杀时候产生一个掉落物。
还记得上节中那个发射火球的技能么,我们给它改名为Bp_Master_Bullet
,代表Bullet(子弹)的基类,之后会有许多种不同形式的“子弹”,这个Actor在游戏中会十分常见。我们会在之后再陆续丰富它的功能。现在,它是我们攻击敌人的唯一手段。
我们先创建一个AI,名叫“SimpleAI”。官方的机器人看起来很无辜,我们就用他来作为AI的模型。如下图所示:
AI长相
首先,我们给它添加一个StatManager组件,并且设置如下:
StatManager设置
InfinityBladeEffects
中找的相对合适的(其实一点都不合适),主要目的是有个反馈,让我们知道确实击中了。产生受击特效
Death
的方法:伤害逻辑
死亡
死亡的处理函数,重点做一件事,那就是从可掉落物(保存在drop中)中随机一个掉落。这里做的是完全随机的方式,关于掉落我觉得可以单独写一篇日志,这里就按下不表。产生掉落的位置就是在AIMesh的左脚骨骼位置。death函数
名称LIst
数据表格
ItemData结构体
ItemList测试数据
下期预告
下一期,我们来研究一下掉落物的拾取,背包系统的实现。
PS:有个问题,就是我最近找了一批合适的美术资源,但是用git做版本控制的时候出了问题,有的文件太大了,我尝试使用git-lfs但是依然上传报错,如下:
Uploading LFS objects: 100% (3310/3310), 1.2 GB | 422 KB/s, done
Enumerating objects: 7955, done.
Counting objects: 100% (5866/5866), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3750/3750), done.
Writing objects: 100% (3774/3774), 142.78 MiB | 416.00 KiB/s, done.
Total 3774 (delta 80), reused 3257 (delta 0)
remote: Resolving deltas: 100% (80/80), completed with 42 local objects.
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: Trace: 071140af14b69395f5b273b8daabbc0b
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File Content/PolygonAdventure/Maps/Demonstration.umap is 143.10 MB; this exceeds GitHub's file size limit of 100.00 MB
To https://github.com/Liweimin0512/uRPG.git
! [remote rejected] dev -> dev (pre-receive hook declined)
error: failed to push some refs to 'https://github.com/Liweimin0512/uRPG.git'
有知道原因的小伙伴,欢迎在评论里给我留言,先谢谢啦。