006_MyMOBA_AIPawnMove
2016-09-09 15:31
169 查看
---------------2015.8.17--------2015.8.--------李明阳--------------------
UDNMOBAGame的Hero寻路是玩家鼠标点击的位置传到HeroAIController::StartMoveCommand(VectorWorldMoveLocation),这个过程中一直在传递参数WorldMoveLocation。在这里省掉那些逻辑,“可拾取物”位置直接作为WorldMoveLocation,HeroAIController直接进入StartMoveCommand()。
在这个过程中同步完成MiniMap来“监控”场景内容和AI的动向。
取消Findspot确认函数,取消场景管理生成的TempletPickup(TempletPickup,,AIPawn永远无法拾取到)
在场景中加入PathNode和Poly后,通过MiniMap和Log看到AI找不到路的时候会经常卡住,而且MoBaCreep自带的刚体布娃娃在AI卡住时好像工作起来不好,代码方面参考假装倒地做了适当改动,AI以胡萝卜作为目标点,寻路过程由于场景路况复杂,Path容易找不到路径,经常卡住,在原基础上做了点优化(当找不到路径时,随机选择一个PathNode作为新的目标点)
这里改用一个Trigger(Trigger_PawnsOnly.uc),
Components.Remove(Sprite)保留UTPickupFactory_SuperHealth的粒子特效,设为bNoDelete=false //Spawnable,设置可拾取物的Rotation
场景管理缓存所有的PathNode在数组中,随机选择路点,生成可拾取物。可拾取物的位置作为AIpawn需要移动的目标点,进入移动状态,同时过一段时间后检查可拾取物是否还在,如果不在了重新进入Idle,同时30秒内没有获得拾取物,重新进入Idle,如果状态“挂了”,重新进入Idle。
角色可以移动了,移动过程中更像是在滑步(去掉AnimTree中的BlendbySpeed)
主要逻辑:
这个HeroAIPawn自动寻路,会和玩家抢“可拾取物”,首先在场景中放入可拾取物,然后AIPawn就走到“可拾取物”的位置。UDNMOBAGame的Hero寻路是玩家鼠标点击的位置传到HeroAIController::StartMoveCommand(VectorWorldMoveLocation),这个过程中一直在传递参数WorldMoveLocation。在这里省掉那些逻辑,“可拾取物”位置直接作为WorldMoveLocation,HeroAIController直接进入StartMoveCommand()。
在这个过程中同步完成MiniMap来“监控”场景内容和AI的动向。
取消Findspot确认函数,取消场景管理生成的TempletPickup(TempletPickup,,AIPawn永远无法拾取到)
在场景中加入PathNode和Poly后,通过MiniMap和Log看到AI找不到路的时候会经常卡住,而且MoBaCreep自带的刚体布娃娃在AI卡住时好像工作起来不好,代码方面参考假装倒地做了适当改动,AI以胡萝卜作为目标点,寻路过程由于场景路况复杂,Path容易找不到路径,经常卡住,在原基础上做了点优化(当找不到路径时,随机选择一个PathNode作为新的目标点)
PostBeginPlay()
AIPawn生成的时候,PostBeginPlay最终在Pawn::PostBeginPlay中生成HeroAIController,并最终在(父类)Controller中占有那个AIPawn。可拾取物:
本打算用UTGame的可拾取物UTPickupFactory_SuperHealth,但是在SimpleGameInfo中UTGameInfo的东西,总感觉不太兼容。用UTPickupFactory,加入EventTouch和Bump都没有反应。(UTGame好像VS没法调试)这里改用一个Trigger(Trigger_PawnsOnly.uc),
Components.Remove(Sprite)保留UTPickupFactory_SuperHealth的粒子特效,设为bNoDelete=false //Spawnable,设置可拾取物的Rotation
生成可拾取物:
functionSearchPickup()场景管理缓存所有的PathNode在数组中,随机选择路点,生成可拾取物。可拾取物的位置作为AIpawn需要移动的目标点,进入移动状态,同时过一段时间后检查可拾取物是否还在,如果不在了重新进入Idle,同时30秒内没有获得拾取物,重新进入Idle,如果状态“挂了”,重新进入Idle。
角色可以移动了,移动过程中更像是在滑步(去掉AnimTree中的BlendbySpeed)
Event Touch
当这个Pickup被Touch后“告诉”场景管理器可拾取物数量变化,同时触碰者Pawn拥有的胡萝卜数量加1。相关文章推荐
- 第1087期AI100_机器学习日报(2017-09-09)
- 第1108期AI100_机器学习日报(2017-09-30)
- 第1112期AI100_机器学习日报(2017-10-04)
- “技术崇拜”与“技术恐惧”都会阻碍 AI 创新,“技术节制”才是正道
- ACM----三角形(有n根棍子,棍子i的长度为ai。)
- Coursera 深度学习 deep learning.ai 吴恩达 第三课 结构化机器学习项目 第二周 测试题目 Autonomous driving
- 本博客迁移到 blog.ailinux.net
- Andrew Deeplearning.ai 第三周作业记录
- 吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(3-2)-- 机器学习策略(2)
- [DeeplearningAI笔记]改善深层神经网络_优化算法2.1_2.2_mini-batch梯度下降法
- 天池大数据竞赛第一名,上海交通大学人工智能实验室如何用AI定位肺结节
- [DeeplearningAI笔记]改善深层神经网络_优化算法2.6_2.9Momentum/RMSprop/Adam优化算法
- AI创业成功公式:数据×数据+机器学习能力+算法
- 专访Misa:Rokid选择了最难的路也是唯一的路 | AI英雄
- 让AI达到人类水平?首先需要翻越这“五座大山” | 讨论
- 首推机器人视觉解决方案 百度AI开发者实战营成都站揭秘
- [DeeplearningAI笔记]Batch NormalizationBN算法Batch归一化_02_3.4-3.7
- 【文字识别】百度AI之运行IOS示例(Demo)工程总结
- Gartner公布2018十大技术发展趋势 2025年AI重塑商业模式
- 程序员,30岁,如何趁 AI 浪潮突破年薪天花板?