Zh/NextBot: Difference between revisions
Thunder4ik (talk | contribs) m (→NextBot是怎样工作的?: Unicodifying, replaced: [[Image: → [[File:) |
m (Multipage removal) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{ | {{LanguageBar}} | ||
'''NextBot'''是几个{{source|4}}多人游戏使用的 | |||
'''NextBot'''是几个{{source|4}}多人游戏使用的{{L|AI}}系统。该系统不仅可以用于{{L|bot}},还可以用于不受玩家控制的实体。 | |||
NextBot系统代码不存在于任何公共SDK中,但存在导航网格代码,但默认情况下不包含在任何SDK编译中。这里提供的文档主要是基于某些控制台命令(最突出的是<code>nb_debug</code>)和关于{{l4d|4|}}AI的官方PDF。 | NextBot系统代码不存在于任何公共SDK中,但存在导航网格代码,但默认情况下不包含在任何SDK编译中。这里提供的文档主要是基于某些控制台命令(最突出的是<code>nb_debug</code>)和关于{{l4d|4|}}AI的官方PDF。 | ||
== | == {{L|NPC}} 与 NextBot 的区别 == | ||
尽管Source npc(如{{hl2|4|}}中的npc)和'''NextBots'''都用于AI,但我们必须清楚这两个系统并不相同。以下是这些系统的主要区别: | 尽管Source npc(如{{hl2|4|}}中的npc)和'''NextBots'''都用于AI,但我们必须清楚这两个系统并不相同。以下是这些系统的主要区别: | ||
*'''NextBots使用 | *'''NextBots使用{{L|Nav Mesh|导航网格}}来移动,而不是{{L|nodegraph|节点图}}。''' | ||
Source npc不仅使用节点来确定导航位置,而且还决定到达特定节点时该做什么。NextBots不使用这些节点进行导航;相反,它们使用导航网格来移动,并根据特定区域可能具有的标记执行不同的操作。 | Source npc不仅使用节点来确定导航位置,而且还决定到达特定节点时该做什么。NextBots不使用这些节点进行导航;相反,它们使用导航网格来移动,并根据特定区域可能具有的标记执行不同的操作。 | ||
* '''NextBot系统既可以应用于bot,也可以应用于非可玩实体。''' | * '''NextBot系统既可以应用于bot,也可以应用于非可玩实体。''' | ||
Line 12: | Line 13: | ||
* '''NextBot系统几乎完全建立在地面实体的基础上。''' | * '''NextBot系统几乎完全建立在地面实体的基础上。''' | ||
Source npc可以被定义为在地面上导航或使用 | Source npc可以被定义为在地面上导航或使用{{L|Info_node_air|空中节点}}在开放空间中飞行。两个NextBots ({{L|eyeball_boss|Monoculous}}和{{L|Merasmus}})能够基于飞行进行移动,但这是相当初级的,因为该系统目前没有官方支持“空中导航网格”或任何类似的机制。 | ||
== valve开发的使用NextBot系统的游戏 == | == valve开发的使用NextBot系统的游戏 == | ||
NextBot系统用于以下游戏: | NextBot系统用于以下游戏: | ||
Line 21: | Line 22: | ||
** 红队和蓝队的bot | ** 红队和蓝队的bot | ||
** MVM的机器人和坦克 | ** MVM的机器人和坦克 | ||
** 万圣节npc ( | ** 万圣节npc ({{L|headless_hatman|The Horseless Headless Horsemann}}, {{L|tf_zombie|Skeletons}},等。) | ||
** 毁灭机器人 | ** 毁灭机器人 | ||
** Unused/Test NPCs ( | ** Unused/Test NPCs ({{L|bot_npc_archer|Archer Sniper NPC}}, {{L|bot_npc_decoy|Spy NPC}}) | ||
* {{dota2|4.1}} | * {{dota2|4.1}} | ||
** 英雄bot | ** 英雄bot | ||
:{{todo|dota2中还有其他角色/实体使用NextBot吗?}} | :{{todo|dota2中还有其他角色/实体使用NextBot吗?}} | ||
* 任何内置NextBot系统的游戏 | * 任何内置NextBot系统的游戏 | ||
** | ** {{L|Simple bot}} | ||
虽然{{css|4.1}}和{{csgo|4.1}}都有AI Bot( | 虽然{{css|4.1}}和{{csgo|4.1}}都有AI Bot({{L|cs_bot}}),但它们使用独立于NextBot的独特系统来决定机器人的行为。 | ||
== NextBot是怎样工作的? == | == NextBot是怎样工作的? == | ||
[[File:Nextbot_actor.JPG|thumb|300px|right|一个事件如何影响NextBot的示例图。这张图来自《求生之路》的AI系统PDF。]]NextBot使用一个被称为“Actor”的整体结构来运行更具体的因素。当事件发生时,例如示例图中的“Oninjured”,Actor通过改变这些因素来反映事件。以下是NextBot具备的所有不同因素的总结: | [[File:Nextbot_actor.JPG|thumb|300px|right|一个事件如何影响NextBot的示例图。这张图来自《求生之路》的AI系统PDF。]]NextBot使用一个被称为“Actor”的整体结构来运行更具体的因素。当事件发生时,例如示例图中的“Oninjured”,Actor通过改变这些因素来反映事件。以下是NextBot具备的所有不同因素的总结: | ||
Line 48: | Line 49: | ||
这就是NextBot真正的AI所在。意图因素管理NextBot可能拥有的不同行为,这个因素负责根据事件改变这些行为。 | 这就是NextBot真正的AI所在。意图因素管理NextBot可能拥有的不同行为,这个因素负责根据事件改变这些行为。 | ||
''要了解这个因素在游戏中的作用,请参见 | ''要了解这个因素在游戏中的作用,请参见{{L|Example_of_NextBot_Behaviors|NextBot行为的例子}}。'' | ||
==== 行为 ==== | ==== 行为 ==== | ||
行为包含一系列动作,当意图因素选择它时,它将执行这些动作。 | 行为包含一系列动作,当意图因素选择它时,它将执行这些动作。 | ||
这个函数可以看作是NextBot的 | 这个函数可以看作是NextBot的{{L|Schedule|时间表}},因为它们都是AI需要执行的特定操作的列表。 | ||
==== 动作 ==== | ==== 动作 ==== | ||
这是NextBot的实际AI代码,当它的父行为被意图因素运行时,它将运行。Action可以有一个额外的子Action,它将与父Action同时运行。 | 这是NextBot的实际AI代码,当它的父行为被意图因素运行时,它将运行。Action可以有一个额外的子Action,它将与父Action同时运行。 | ||
这个函数可以看作是NextBot的 | 这个函数可以看作是NextBot的{{L|Task|任务}},因为它们都包含驱动AI本身的核心编程。 | ||
== 参见 == | == 参见 == | ||
{{L|nb_debug}} | |||
{{L|Example_of_NextBot_Behaviors|NextBot行为的例子}} | |||
== 外部链接 == | == 外部链接 == | ||
* [https://steamcdn-a.akamaihd.net/apps/valve/2009/ai_systems_of_l4d_mike_booth.pdf The AI Systems of Left 4 Dead] - An official PDF regarding various mechanics of Left 4 Dead, including NextBots and the AI Director | * [https://steamcdn-a.akamaihd.net/apps/valve/2009/ai_systems_of_l4d_mike_booth.pdf The AI Systems of Left 4 Dead] - An official PDF regarding various mechanics of Left 4 Dead, including NextBots and the AI Director | ||
::{{confirm|Is there a video recording of this presentation?}} | ::{{confirm|Is there a video recording of this presentation?}} | ||
{{ACategory|Source}} | |||
{{ACategory|NextBot}} | |||
{{ACategory|Bots}} |
Latest revision as of 08:31, 12 July 2024
NextBot是几个 起源多人游戏使用的AI 系统。该系统不仅可以用于bot ,还可以用于不受玩家控制的实体。
NextBot系统代码不存在于任何公共SDK中,但存在导航网格代码,但默认情况下不包含在任何SDK编译中。这里提供的文档主要是基于某些控制台命令(最突出的是nb_debug
)和关于 求生之路AI的官方PDF。
NPC 与 NextBot 的区别
尽管Source npc(如 半衰期2中的npc)和NextBots都用于AI,但我们必须清楚这两个系统并不相同。以下是这些系统的主要区别:
Source npc不仅使用节点来确定导航位置,而且还决定到达特定节点时该做什么。NextBots不使用这些节点进行导航;相反,它们使用导航网格来移动,并根据特定区域可能具有的标记执行不同的操作。
- NextBot系统既可以应用于bot,也可以应用于非可玩实体。
Source npc系统的内部机制只适用于非玩家实体。在NextBot系统中,如果需要,可玩和不可玩的角色都可以配备AI。
- NextBot系统几乎完全建立在地面实体的基础上。
Source npc可以被定义为在地面上导航或使用空中节点 在开放空间中飞行。两个NextBots (Monoculous 和Merasmus )能够基于飞行进行移动,但这是相当初级的,因为该系统目前没有官方支持“空中导航网格”或任何类似的机制。
valve开发的使用NextBot系统的游戏
NextBot系统用于以下游戏:
求生之路系列
- 生还者Bot
- 所有感染者
军团要塞2
- 红队和蓝队的bot
- MVM的机器人和坦克
- 万圣节npc (The Horseless Headless Horsemann , Skeletons ,等。)
- 毁灭机器人
- Unused/Test NPCs (Archer Sniper NPC , Spy NPC )
Dota 2
- 英雄bot
- 待完善: dota2中还有其他角色/实体使用NextBot吗?
- 任何内置NextBot系统的游戏
虽然 反恐精英:起源和
反恐精英:全球攻势都有AI Bot(cs_bot ),但它们使用独立于NextBot的独特系统来决定机器人的行为。
NextBot是怎样工作的?
NextBot使用一个被称为“Actor”的整体结构来运行更具体的因素。当事件发生时,例如示例图中的“Oninjured”,Actor通过改变这些因素来反映事件。以下是NextBot具备的所有不同因素的总结:
移动
这个因素决定了NextBot如何在环境中移动。例如,如果一个NextBot被编程为在受伤后逃跑,它就会依靠这个因素移动到地图上的不同位置。
身体
这个因素处理NextBot的动画。在“oninjured”的例子中,NextBot将依靠这个因素来播放退缩动画。
视场
这个因素处理NextBot如何看待其环境中的某些实体。视场和视距功能主要体现在这个因素上。
注意,这个因素不是NextBots工作所必需的。例如,tf2中的骷髅会发现并攻击敌人,而不管它是否看到敌人。
意图
这就是NextBot真正的AI所在。意图因素管理NextBot可能拥有的不同行为,这个因素负责根据事件改变这些行为。
要了解这个因素在游戏中的作用,请参见NextBot行为的例子 。
行为
行为包含一系列动作,当意图因素选择它时,它将执行这些动作。
这个函数可以看作是NextBot的时间表 ,因为它们都是AI需要执行的特定操作的列表。
动作
这是NextBot的实际AI代码,当它的父行为被意图因素运行时,它将运行。Action可以有一个额外的子Action,它将与父Action同时运行。
这个函数可以看作是NextBot的任务 ,因为它们都包含驱动AI本身的核心编程。
参见
外部链接
- The AI Systems of Left 4 Dead - An official PDF regarding various mechanics of Left 4 Dead, including NextBots and the AI Director
证实:Is there a video recording of this presentation?