Games104现代游戏引擎笔记 基础ai

这篇具有很好参考价值的文章主要介绍了Games104现代游戏引擎笔记 基础ai。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

游戏AI

navigation(导航系统)
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
地图的表达形式, 寻路,路径优化

Map representation:
1.可行走区域(物理碰撞,跳跃距离,攀爬高度)
2.表达形式:waypoint networks(路点网络图),grid(网格),navigation mesh(寻路网格),sparse voxel octree(八叉树)

Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记

Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记

Waypoint Networks:
设置关键点,在关键点之间通过算法插值一些过路点,过路点插值往两边扩散(因为可行走区域并非一条线)。
任务一条路径,从起点开始,寻找路网中最近的点,在走到离终点最近的点(类似地铁)
寻路只能发生在路点和路点之间,在计算机中表示为一张连通图。点的密度可以代表寻路精度
优点:
1.易实现
2.内存和计算机开销低(路点寻路只是使用到了真是可行走区域的一小部分,与格子相比,牺牲了路线的灵活性,换取交第的内存和计算机开销,只要两个点之间是连通的,那么角色就可以按照点所在的位置到达目标点的位置)
缺点:
1.需要手动插值,不灵活
2.并且表现上npc路径相比于较宽的可行走区域往往是走中间

Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Grid
优点:
1.易实现
2.容易动态修改
缺点:
1.内存和计算机开销大
2.不适用3d地图。例如桥上桥下都能行走
3.需要额外的平滑处理,角色行走路线可能出现多个90度的拐角

Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Navigation Mesh
划分必须要凸多边形,不能凹多边形。否则穿过polygon时,可能走到该polyhon之外的区域。并且形成多边形走廊时,穿过的每个凸多边形之间有且只有一条公共边portal

优点:
1.支持3d可行走区域
2.灵活性高
3.可动态修改
4.内存和计算机开销小,一个polygon可能就能全表达一大片可行走区域
5.寻路效率高
缺点:
1.生成非常复杂
2.不支持3d空间(例如空战游戏)

Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记

Sparse Voxel Octree
对空间进行八叉树划分,把所有可通行区域用八叉树结构表示。如果区域是整个联通的,用一个很大的Voxel表达,如果是一个边界,则不断地细分

Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
所有的地图表达形式,连接关系都是形成一个图。最终在图上寻找路径

dfs:时间换空间
bfs:空间换时间
dfs和bfs没有办法计算加权最短路径。并且很多时候会找出许多没必要的路径

Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
迪杰斯特拉算法找的一定是最短路径
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记

a星算法相对迪杰斯特拉算法增加了启发函数。当走到一个点时,不仅考虑过去花费的路径成本,还会猜想从当前位置到目标点所需距离。
在选择explored点时,优先选择现在已走过的距离加上预计要走的距离中最近的点,来优先搜索。
并且只要达到目标点,不需要将目标点explored,就停止搜索。

Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记

Steering
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
根据目标位置确定加速度
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
通过积分反向推导加速度

Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记计算角速度的加速度

Crowd Simulation
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Microscopic Models 微观模型
定义每一个的行为,然后合在一起就行了
Macroscopic Models 宏观模型
宏观定义大的运动趋势,每个个体按照这个运动即可
Mesoscopic Models 中观模型
上面两种的混合,可以定义更加复杂的情况

Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Separation
如果一条鱼离我太近了,我就分开
Cohesion
如果鱼群离我太远了,我就接近
Alignment
和鱼群方向保持一致
微观的结果是不可控的,且不受人影响
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
定义行走的轨迹,然后生成zone graph
主要表达有规则的行为,比如人类人群行为

Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
把群体分成一个个小族群,小族群受到一个大的指向控制,每个小个体自己的行为仍走微观模型的方向。例如rts寻路
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
避免碰撞:
两个物体太近时,产生斥力,太远时,产生吸力
对所有的障碍物加距离场,当物体里离障碍物越来越近时,距离场的值越来越小,产生的反向斥力越来越大,然后给个大致的方向。群体便会模拟真实的行为
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
速度障碍法生成碰撞检测
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
VO:两个物体运动时,一个物体会在另一个物体的速度域上产生一个障碍,如果我在当前速度上会和障碍形成碰撞,则调整速度
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记

RVO:双方都让
ORCA:整体判断

Sensing
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Navigation Data寻路数据
Tactical Map战术地图,也就是战术价值很高的点
Smart Object 指的是AI可以交互的物体, 如可以破坏的墙,梯子等
Cover Point掩护点
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Influence Map 热力图 对于战场态势的感知
Sight Area 指的是AI的可见区域
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
引擎端通常开放:
1.sensing精度的选择
2.sensing结果的共享

Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
FSM (有限状态机)和 BT(行为树) 都是Forward 算法,走一步算一步。
Backward的算法:以目标为驱动的反向算法
Hierarchical Tasks Network HTN 任务层次网络
Goal Oriented Action Planning 基于目标驱动行为规划
Monte Carlo Tress Search 蒙特卡洛搜索树
Deep Learning 深度学
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
当state非常多时,每个state间的设定会非常复杂
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
层级有限状态机
一种缓冲之举,增加了可读性的同时方便管理。但是子state不好添加额外条件或者飞线,所以反应速度比较慢

Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
状态机是对AI逻辑的抽象。整个世界AI的逻辑就是在状态里来回切换

Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
分为条件判断节点和动作执行节点
动作节点会返回成功,失败和运行中
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记

Sequence:顺序执行。当走到该条件时,要依次把子树全部执行一遍。如果有任何一个子树返回running时,sequence节点被访问时也是返回running
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记

Selector:根据条件去尝试所有的子节点,优先执行在前面的子节点。前面的子节点成功了,Selector节点也执行成功。
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记

Paraller:并行执行
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
每次需要从根节点开始Tick,是BT效率低的地方,同时Running的节点会不止一个。
并且Running的节点需要有被打断的能力。
BT每次Tick的成本很高,所以有些引擎通过添加Event来激活部分或者整个Tree达到效率优化的效果,缺点是设计师必须要非常清楚自己在做什么,否则非常容易出Bug
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记

Decorator,优化行为树
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Precondition 装饰器,对BT优化
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Blackboard:用于不同分支交换信息
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记
Games104现代游戏引擎笔记 基础ai,Games104游戏引擎,游戏引擎,笔记文章来源地址https://www.toymoban.com/news/detail-716603.html

到了这里,关于Games104现代游戏引擎笔记 基础ai的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总

    GAMES104-现代游戏引擎:从入门到实践_课程视频_bilibili GAMES104官方账号 - 知乎 课程主页 课程小引擎Piccolo 课件: GAMES104_Lecture10_Physics System_Basic Concepts.pdf GAMES104_Lecture11_Physics System_Applications.pdf 物理引擎的用途: 碰撞检测 解决碰撞、其它约束限制 更新所有物体的世界坐标(w

    2024年01月17日
    浏览(37)
  • Games104现代游戏引擎笔记 面向数据编程与任务系统

    核达到了上限,无法越做越快,只能通过更多的核来解决问题 Process 进程 有独立的存储单元,系统去管理,需要通过特殊机制去交换信息 Thread 线程 在进程之内,共享了内存。线程之间会分享很多内存,这些内存就是数据交换的通道。 管理Tasking的方法 Preemptive Multitasking 抢占

    2024年02月04日
    浏览(49)
  • 【GAMES-104现代游戏引擎】4、引擎渲染基础(渲染基础数据、全局光照、PBR、阴影)

    游戏渲染的挑战 一个场景包含成千上万的GO需要的材质、shader、效果都不尽相同,因此 复杂度极高 当代各种硬件的适配难度高,硬件架构一直在变化 高帧率、高分辨率的要求下,使得绘制算法绘制一帧的时间越来越短, 算法效率要求高 绘制系统可以100%的使用显卡,但CPU只

    2023年04月09日
    浏览(40)
  • GAMES104-现代游戏引擎 1

    主要学习重点还是面向就业,重点复习八股和算法 每天早上八点到九点用来学习这个课程 持续更新中... 引擎是分层架构的 编辑器 功能层 资源层 核心层 平台层 越底层的代码越稳定越坚固,越上层的代码越灵活越开放 --越适应不同地开发需求制作不同地游戏 Virtual world is

    2024年03月22日
    浏览(52)
  • Games104 现代游戏引擎3

    Sprite Animation  序列帧动画 自由度(degrees of freedom,DoF) 对于刚体而言描述它的运动需要3个位移3个旋转,一共6个自由度 顶点动画(per-vertex animation) 利用网格的顶点来控制运动。此时网格上的每个顶点有具有3个平移自由度,通过对网格顶点坐标的变换就可以实现模型的运

    2024年04月23日
    浏览(27)
  • GAMES104实录 | 游戏引擎导论(上)

    本期为GAMES104《现代游戏引擎:从入门到实践》视频公开课文字实录第1期 。 本课程由GAMES(图形学与混合现实研讨会)发起,游戏引擎技术专家王希携手游戏引擎一线开发者共同研发。 课程共计22个课时,将介绍现代游戏引擎所涉及的系统架构,技术点,引擎系统相关的知识

    2023年04月16日
    浏览(28)
  • GAMS104 现代游戏引擎 2

    渲染的难点可以分为一下三部分:如何计算入射光线、如何考虑材质以及如何实现全局光照。 渲染的难点之一在于阴影,或者说是光的可见性。如何做出合适的阴影效果远比想象中要难得多,在实践中往往需要通过大量的技巧才能实现符合人认知的阴影效果。 其次,场景中

    2024年04月16日
    浏览(28)
  • [Games104笔记] 游戏中的渲染管线,后处理

    环境光遮蔽算法及效果 ★Ambient Occlusion: An Extensive Guide on Its Algorithms and Use in VR — ARVI VR (arvilab.com) 翻译: 什么是环境光遮蔽?都有哪些算法?又为何对AR/VR非常重要? The Dark Side Of Ray-Traced Ambient Occlusion (RTAO) | TheGamedev.Guru AO 环境遮挡 Precomputed AO 预计算环境遮挡 SSAO Screen Space

    2024年02月02日
    浏览(38)
  • 如何使用现代C++特性构建游戏引擎

    游戏引擎是用来设计、开发和构建计算机游戏的软件框架。它们由一些基本的工具和程序构成,可帮助游戏设计师和开发者轻松地创建、管理和优化游戏。基本上,游戏引擎是实现游戏的所有技术的一个集合。 现代C++(指C++11、C++14和C++17)为游戏引擎的开发提供了强大的功能

    2024年02月05日
    浏览(37)
  • GAMES104 作业2-ColorGrading

    ColorGrading网上资料很就多就不介绍了,简单来说就是将ps中一个像素的r-g-b值转换成x-y-z坐标映射到一个三维的颜色的颜色表(LUT)得到新的颜色,从而使场景更具电影感和好看。 以104中的色链LUT为例(ps中导出的LUT为矩形,但原理相同) 对色链LUT简单图解就如上图所示,以颜

    2023年04月08日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包