本文是主讲怪物方向的AI
一、简介
1)大怪物的AI主要涉及两个类:BossAI和WorldBossAI
①继承顺序
BossAI
和WorldBossAI
都继承来自ScriptedAI类
ScriptedAI
类继承来自CreatureAI类,
Creature
类继承来自UnitAI类
②个例举例(继承BossAI)
<1>科林·狄尔布鲁(Coren Direbrew)
struct boss_coren_direbrew : public BossAI
<2>烟网女王(Mother Smolderweb)
struct boss_mother_smolderweb : public BossAI
<3>巨龙之王维姆萨拉克(Overlord Wyrmthalak)
struct boss_overlord_wyrmthalak : public BossAI
③WorldBossAI继承举例
1)Azuregos(艾索雷葛斯)
struct boss_azuregos : public WorldBossAI
2)翡翠龙(emerald_dragon)
struct emerald_dragonAI : public WorldBossAI
2)普通小怪的AI,基本继承类:ScriptedAI
①分别举例说明:
1)暮光志愿者AI
struct npc_twilight_volunteer : public ScriptedAI
2)Millhouse Manastorm(米尔豪斯·法力风暴)
struct npc_millhouse_manastorm : public ScriptedAI
3)传奇怪物的AI,继承CreatureAI类
①the lich king巫妖王的全部AI
②Valithria Dreamwalker (瓦莉瑟瑞娅·梦行者) 的全部AI
③Algalon the Observer(奥尔加隆,观察者之眼)
④Sister Svalna(斯瓦尔娜修女)
4)人物AI,PlayerAI类
5)PassiveAI(被动AI):
- 说明
PassiveAI类通常用于实现无攻击性的NPC或生物的行为。这些NPC通常不会主动攻击玩家或其他生物,而是表现出一种被动的行为,如漫游、站立、交谈等。PassiveAI类的目的是为了让这些NPC在游戏中营造出更真实、更丰富的环境。
6)PossessedAI(被占据AI):
- 说明
PossessedAI类用于实现被玩家控制的角色的行为。这些角色可以是玩家角色的宠物、召唤物或其他受玩家操控的单位。PossessedAI类的作用是让这些角色能够响应玩家的指令,并执行相应的行动和技能。
7)NullCreatureAI(空生物AI):
- 说明
NullCreatureAI类通常用于实现没有具体行为和功能的生物。这些生物可能只是作为环境装饰或背景元素存在,没有实际的交互或行为逻辑。NullCreatureAI类的作用是为这些生物提供一个空的AI实现,使其在游戏中存在但不参与实际的游戏机制。
8)CritterAI(小动物AI):
- 说明
CritterAI类用于实现小动物(Critter)的行为。小动物通常是一些无害的生物,如松鼠、兔子等。CritterAI类的目的是为这些小动物提供一些随机动作和行为,增加游戏世界的真实感和活力。
9)TriggerAI(触发器AI)
- 说明
监测游戏中的触发器或事件,并在满足特定条件时执行相应的行为。触发器可以是游戏中的特定区域、玩家的行动、特定时间点等。当触发器被激活时,TriggerAI会根据预设的条件和行为定义来决定角色或NPC的反应。
10)AggressorAI(攻击者AI):
- 说明
AggressorAI用于定义攻击性NPC的行为逻辑。这些NPC通常是敌对的角色,会主动寻找并攻击玩家或其他目标。AggressorAI负责定义NPC的攻击目标选择、攻击方式、技能使用等行为。它使NPC能够主动发起攻击并进行战斗。
11)CombatAI(战斗AI):
- 说明
CombatAI用于实现战斗相关的NPC行为逻辑。它与AggressorAI类似,但更广泛地适用于各种类型的战斗角色。CombatAI负责定义NPC在战斗中的行为,包括攻击、防御、移动、技能使用等。它使NPC能够在战斗中表现出合理的战术和行动。
12)CasterAI(施法者AI):
- 说明
CasterAI用于实现施法型NPC的行为逻辑。这些NPC通常使用法术或技能进行攻击。CasterAI负责定义NPC施法的选择和顺序,以及如何应对不同的战斗情况。它使NPC能够根据具体情况选择合适的法术或技能,并在战斗中以施法者的身份进行攻击。
13)ArcherAI(弓箭手AI):
- 说明
ArcherAI用于实现弓箭手类型的NPC的行为逻辑。这些NPC使用远程武器(如弓箭)进行攻击。ArcherAI负责定义NPC在战斗中的射击策略、目标选择和攻击方式。它使NPC能够以弓箭手的身份进行远程攻击,并采取合适的战术进行射击。
14)TurretAI(炮塔AI):
- 说明
TurretAI用于实现炮塔或防御设施的行为逻辑。这些炮塔通常是固定在特定位置上的防御装置,用于攻击敌人。TurretAI负责定义炮塔的目标选择、攻击方式和射击频率等行为。它使炮塔能够自动识别并攻击敌人,提供防御和控制区域的能力。
15)VehicleAI(载具AI):
- 说明
VehicleAI用于实现游戏中的载具(如飞机、坦克、船只等)的行为逻辑。VehicleAI负责定义载具的移动、攻击、防御等行为。它使载具能够根据玩家的操控或AI指令进行移动和战斗,并提供特定类型载具的独特功能和能力。
16)TotemAI (图腾AI)
- 说明
在游戏中,图腾通常代表着特殊的力量或能力,可能具有各种不同的效果,如增益效果、伤害效果、治疗效果等
17)GuardAI(守卫AI)
- 说明
管理和控制守卫角色在游戏中的行为和动作,确保它们有效地执行守卫任务。守卫角色通常被安排在特定位置或区域,负责保护该区域免受敌对角色或其他威胁的侵犯。
18)NullGameObjectAI(空游戏对象AI):
- 说明
NullGameObjectAI是一个在游戏中代表空或无效游戏对象的AI类。它通常用于处理游戏中可能出现的空对象或无效对象的情况。NullGameObjectAI的作用是提供一种处理这些情况的机制,以避免潜在的错误或异常情况。
19)GameObjectAI(游戏对象AI):
- 说明
GameObjectAI是一个通用的游戏对象AI类,用于管理和控制游戏中的普通游戏对象的行为和交互。它可以处理游戏对象的移动、碰撞、状态变化等方面的逻辑,并根据游戏规则和设计来控制游戏对象的行为。
20)SmartGameObjectAI(智能游戏对象AI):
- 说明
SmartGameObjectAI是一个更高级的游戏对象AI类,具有更复杂和智能化的行为和决策能力。它可以根据游戏环境和条件进行推理和决策,并采取相应的行动。智能游戏对象AI通常用于实现游戏中的敌对角色、队友角色或其他具有复杂行为的角色。