格斗游戏的AI是怎么实现的?

2023-01-15 14:36:14   第一文档网     [ 字体: ] [ 阅读: ] [ 文档下载 ]

#第一文档网# 导语】以下是®第一文档网的小编为您整理的《格斗游戏的AI是怎么实现的?》,欢迎阅读!
格斗,实现,怎么,游戏
格斗游戏AI是怎么实现的?

例如怎么确定是要防御还是攻击?怎么能实现连招?我说的格斗游戏是类似拳皇和街霸那种。

【知乎用户的回答(33):

这个其实挺复杂的,我也不知道一个回答能不能写的完,我就写简单点

格斗游戏基本不存在目标这回事,就是P1P2,所以在AI里面都是直接取的,比如直接取P2state(虽然可以做双人,但是最多也就有一个nearenemy之类的取最近的单位)

底层框架会提供很多接口,用来查询对手与自己的水平、垂直距离,动作状态,state编号,甚至动画播放时间等等

一般所有角色的基础动作都是统一的state编号,比如受击,倒地,站立之类的

然后在这个基础上就可以写AI

首先有几个基本概念:立回,连段,压制,起攻,插动(自行百度)

搞清这几个基本概念你就基本搞清了什么时候进攻,什么时候防御了

具体实现这些基本概念的方式,就要根据程序引擎的实际情况了,每种都是不一样的

相对比较简单的,AI就是一大段从上到下顺序执行的case(如果XXXX,就XXXXX

比如连段就是(如果重拳击中,对方处于地面受击,就出前A之类的

比如防御(如果对方处于下蹲,并且处于动作,并且水平距离小4个像素,就使用下蹲防御)

如果读state编号和动画时间太猛,会导致AI不可战胜

所以一般会写概率动作,或者难度标识,或者控血,这样AI就不会太IMBA


【孟德尔的回答(15):

你说的是格斗游戏,不是那种格斗网游吧?DNF是动作游戏+RPG

格斗游戏AI就是从内存里读取一下对手态势(状态,相对位置,此状态将持续的时间),然后从AI的行动列表中选一个。

其实判断还挺麻烦的,因为格斗游戏里对手是不停变化的几个区块,比如出拳的时候,手臂是一个区块,有攻击判定,然后躯干和腿是另外的区块,有受攻击判定。

AI不会管这么细,它只要知道双方相对位置,对手处于什么状态,持续时间,从对应的策略表里选一套行动就行,区块判定这些应该是设计对应策略表时考虑的。

有的格斗游戏里有学习AI,应该是能从对手现在的状态判断出下一步的状态,然后采取固定的对应策略。

【知乎用户的回答(4):

AI这东西没必要说太细,只需要知道是用行为树组织起来动作节点的就行。

【小郑的回答(1):

我觉得去学习mugen里面的AI会给你巨大的收获。 【知乎用户的回答(1): 其实格斗的AI是相对简单的。 因为格斗AI主要靠作弊。

以街霸II为例, 实际操作者,比如古烈,需要(下上腿)蓄势三秒才能完成动作,但是AI操控时,直接判断P1(操作者)就行。

类似

if P1.Y>0 // (在空中) then P2.脚刀();


本文来源:https://www.dy1993.cn/EjgK.html

相关推荐