决定如何跟敌人作战,(“嘿,他们在那儿,那么只要移动这个,还有这个。。。。”)但是计算机人工智能却没有数亿年的生物进化的优势,解决这个问题还需要经过一个相对困难的时期。此外人工智能体必须“聪明地”接近敌人,而不是像我们在有些游戏中看到的那样,随意地向敌人的位置慢慢移动。

这就是所谓战略部署的方法,这些方法有助于那些刚起步的设计回合制(turn-based)或即时战略(realtime)战略游戏的开发,建立战略级别上表现良好的人工智能,以影响力地图(influencemap)为基础的方法,然后增加各种技巧增强人工智能,做出更好的战略移动决定

影响力地图

他是基于一个棋盘格子的数据结构,里面是数值用于表示可以移动的权重,格子可以感应战场上的敌人和障碍物,这些都影响权重值,ai可以根据棋盘格子上的位置读取周围的情况从而实现战略移动决定。如上图权重表示了敌对危险系数,友军影响力为-5,敌军为5,每远离一个格子就将每个个体影响力折半一次。

Ue4系统里提供了像影响力地图一样的系统,他可以根据地形,和周围敌人做出数据采集,

权重判断的系统,这个系统就是eqs,那么我们来看看eqs是什么样的

浏览ue4中的eqs

1.新建一个ue4蓝图项目基于ThirdPerson

2.打开ThirdPesonExampleMap,在Modes面板里点击↓

搜索nav,选中↓

拖入一个navmesh到场景中,修改navmesh大小,在Worldoutliner选中↓

navMeshBoundsVolurNavMeshBoundsVolume,在Details面板下Transform修改大小,按键盘p建可以预览navmesh大小。

3.建立一个charater蓝图类,命名为TestEQS.双击打开蓝图,添加一个↓

控件,为其赋予Sk_Mannequin↓

在资源浏览栏里,右键鼠标,选择ai,在弹出的下拉菜单里选择EnvironmentQuery,新建一个eqs,命名为FindNextWaypoint↓

双击打开FindNextWaypoint,在root根节点上右键选中↓

加入SimpleGrid:generatearoundquerier.

4.现在去场景编辑器里找到我们刚才新建TestEqsCharater,选中,在详细Detalis面板里搜索eqs,在queryTemplate里选择我们建立的eqsFindNextWaypoint,此时可以发现场景里多了些蓝色的小球,

5.双击打开FindNextWaypointeqs,点击SimpleGrid:generatearoundQuerier,修改其属性如下↓

我们可以调节大小(GridhafSize)可以调节采集数据的间距(SpaceBetween),在SimpleGride:generatearoundQuerier上单击鼠标右键addTest,在弹出的菜单下选中↓

为其添加pathExist:fromQuerier节点如下所示,此时点击TestEqscharater应该可以看到采样点和数据↓

6.再次回到SimpleGird:generatearoundQuerier节点,右键弹出菜单选择AddTest,然后再选择Trace,添加Trace:toQuerieronvisibility节点↓

7.选中pathExits:fromQuerier修改TestPurpose为ScoreOnly↓

8.选中Trace:toQuerieronVisibilty修改TestPurpose为ScoreOnly

预览如下:

由于篇幅有限,今天先给大家分享第一部分内容,工程链接在明天文章内分享给大家~

让天下没有难学的技术

虚幻学堂

腾讯课堂:丁树凯ue4

翰者学堂:







































招聘新媒体
得白癜风的原因



转载请注明地址:http://www.yingxianglia.com/yxlrw/2588.html