CN107145948A - 一种基于多智能体技术的npc控制方法 - Google Patents
一种基于多智能体技术的npc控制方法 Download PDFInfo
- Publication number
- CN107145948A CN107145948A CN201710237082.5A CN201710237082A CN107145948A CN 107145948 A CN107145948 A CN 107145948A CN 201710237082 A CN201710237082 A CN 201710237082A CN 107145948 A CN107145948 A CN 107145948A
- Authority
- CN
- China
- Prior art keywords
- mrow
- msubsup
- npc
- msup
- player
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/822—Strategy games; Role-playing games
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Operations Research (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于多智能体技术的NPC控制方法,涉及人工智能、计算机游戏等技术领域,解决现有技术中的NPC不具有自动推理、自动调整行为,需要根据游戏开发人员的经验来频繁的修改NPC脚本,造成人力成本开支等问题。本发明包括为每个NPC定义一个自动推理模型——交互式动态影响图,根据NPC自身的特点与场景的特点定义交互式动态影响图的参数;根据定义了参数的交互式动态影响图,构造NPC的行为脚本;NPC在与玩家交互过程中执行NPC的行为脚本,并记录每一动作的执行结果;根据记录的每一动作的执行结果,更新交互式动态影响图的参数,重新构造NPC的行为脚本应用于新的玩家交互中。本发明将人工智能方法用于多人在线角色扮演游戏中自动控制非玩家角色的行为。
Description
技术领域
一种基于多智能体技术的NPC控制方法,将人工智能方法用于多人在线角色扮演游戏中自动控制非玩家角色的行为,涉及人工智能、计算机游戏等技术领域。
背景技术
多人在线角色扮演游戏,是一种大型网络游戏,其中玩家扮演一个虚构角色,并控制该角色的各项活动,并与游戏中大量其他玩家扮演的角色交流互动,协作打败怪物,完成任务。不同于单机游戏模式中的人机单独对抗,在线游戏可以让多个玩家实时协作与对抗,游戏内容与趣味性得到大幅提高。一款优秀的多人在线角色扮演游戏可以吸引大量玩家,通过提供高质量的游戏服务,丰富玩家的精神生活,让人们生活得更快乐。这也催生了一个新兴的产业,已产生了巨大的经济效益。
除了玩家角色,游戏中还存在大量非玩家角色,即NPC(Non-player characters)。除了一类提供游戏功能的NPC外,例如物品买卖,任务引导人物外,游戏中存在大量的怪物NPC,这类NPC是各项游戏任务的核心,玩家需要战胜大量各类怪物从而完成任务。通过使NPC的行为更加智能,来合理地调整游戏的难度,兼顾公平性、挑战性与趣味性,是提供优秀在线游戏服务的重要内容。各大游戏厂商在每款游戏中均投入大量人力物力来试图实现这一目标。
现有的NPC行为大多是通过预先编制好的脚本进行控制。由于人力与时间等开发资源的限制,游戏开发人员无法为每个场景下的每个NPC编制应对每个可能遇到情况的方法。为了逐步增加游戏挑战性,开发人员会通过大幅强化NPC的物理属性(比如攻击力、防御力等)来提高游戏玩家的难度。所以NPC常显得行为呆板但异常强大,且有损游戏的公平性。预编制脚本的一个重要缺陷是NPC只具有被动应对玩家的能力,而没有主动推理能力。也就是说,玩家可以通过多次试探,推断出其固定的行为模式,从而寻找到战胜看似强大的NPC的策略。更重要的是,这一策略还会在玩家间快速传播,使得游戏的挑战性与趣味性大幅降低。为此,游戏开发人员会根据游戏日志来频繁修改NPC脚本,从而保证游戏的趣味性,因频繁修改NPC脚本受限于人力成本,所以只会针对重要的怪物进行NPC脚本修改。如何针对游戏玩家的策略,有效地定量地调整脚本也非常依赖于游戏开发人员的经验。
发明内容
本发明针对上述不足之处提供了一种基于多智能体技术的NPC控制方法,解决现有技术中的NPC不具有自动推理、自动调整行为,需要根据游戏开发人员的经验来频繁的修改NPC脚本,造成人力成本的浪费等问题。
为了实现上述目的,本发明采用的技术方案如下:
一种基于多智能体技术的NPC控制方法,其特征在于,包括以下步骤:
步骤(1)、为每个NPC定义一个自动推理模型——交互式动态影响图,根据NPC自身的特点与场景的特点定义交互式动态影响图的参数;
步骤(2)、根据交互式动态影响图的参数,构造NPC的行为脚本;
步骤(3)、NPC在与玩家交互过程中执行NPC的行为脚本,并记录每一动作的执行结果,其中动作即指行为脚本;
步骤(4)、根据步骤(3)中记录的每一动作的执行结果,更新交互式动态影响图的参数,重新构造NPC的行为脚本应用于新的玩家交互中。
进一步,所述步骤(1)中,根据NPC自身的特点与场景的特点定义交互式动态影响图的参数的具体步骤如下:
步骤(11)、在交互式动态影响图中,根据NPC的可执行动作定义动作集合根据玩家角色的可执行动作定义动作集合
步骤(12)、根据NPC所处场景的性质、NPC与玩家角色的位置与属性定义状态集合S*;
步骤(13)、根据步骤(11)和步骤(12)定义从时间t到时间t+1,状态st∈St通过NPC动作和玩家角色动作转移到状态st+1∈St+1的可能性的条件概率函数,即状态转移函数
步骤(14)、根据NPC角色的行为风格与偏好,定义在时间t,NPC通过动作和玩家角色动作从状态st∈St转移到状态st+1∈St+1的效用函数
步骤(15)、根据现有的经验知识,初始化状态转移函数与效用函数的参数;
步骤(16)、根据先验在NPC的交互式动态影响图中包含有若干个刻画玩家角色行为的策略描述每个策略描述表示玩家角色在不同状态下将执行不同动作的条件概率即玩家角色在状态st时执行动作的概率将N个策略描述存储于玩家行为模式的集合具体如下:
进一步,所述步骤(2)的具体步骤如下:
步骤(21)、根据步骤(1)中所构造的交互式动态影响图和所需NPC行为脚本长度,将交互式动态影响图扩展成包含T步推理的交互式动态影响图;
步骤(22)、采用经典的动态规划求解算法求解步骤(21)得到的包含了T步推理的交互式动态影响图,最大化NPC的即时期望效用与远期期望效用的加权和,寻找到能够最大化NPC角色期望效用的策略,即寻找到能够最大化NPC在每一时刻针对各种情形所应采取的动作的条件概率最大化NPC的即时期望效用与远期期望效用的加权和的公式如下:
其中,是即时期望效用,是远期期望效用,λ是折扣因子,用来减弱远期效用对当前动作的影响,ERi是总效用值,即NPC的即时期望效用与远期期望效用的加权和;
步骤(23)、将步骤(22)得到的最大化NPC期望效用的策略转换成兼容当前游戏的行为脚本格式。
进一步,所述步骤(3)的具体步骤如下:
步骤(31)、NPC在与玩家角色交互过程中,针对不同玩家角色的不同动作采用NPC动作即采用步骤(23)中得到的行为脚本;
步骤(32)、记录每次NPC动作执行的结果:在每个时刻,包括玩家角色执行的动作NPC执行的动作对状态的改变,即从状态st迁移到状态st+1和状态st迁移到状态st+1下动作对应的效用值
进一步,所述步骤(4)的具体步骤如下:
步骤(41)、根据步骤(3)记录每次动作执行的结果,统计出NPC在每个状态st∈St时,玩家角色执行的各个动作的频率,将频率归一化处理,得到在各个状态下的行为频率的条件概率即可以看作是NPC基于当前玩家的行为对NPC构造的策略描述 通过与玩家行为模式的集合比较,寻找到最相似的玩家策略描述即的与的是最相似的:
根据统计得到的玩家行为策略描述更新交互式动态影响图中最相似的玩家策略描述在各种情况下采取各种行为的条件概率得到更新后的策略描述的具体公式如下:
其中,是现有交互式动态影响图中玩家行为的策略描述,是从交互数据中得到的策略描述,α是策略更新率,表示当前策略描述被更新的速度;
步骤(42)、根据步骤(3)记录的每次动作执行的结果,统计当NPC执行动作与玩家执行动作时、当前状态从st转移到状态st+1的频率的条件概率和动作对应的期望效用值更新NPC交互式动态影响图的状态转移函数和效用函数更新的具体公式如下:
其中,是现有交互式动态影响图中的条件概率,是现有交互式动态影响图中的效用函数;
步骤(43)、将步骤(41)和步骤(42)得到的结果更新交互式动态影响图,用于步骤(2)-步骤(4)。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1、本发明中的交互式动态影响图是人工智能最新研究成果之一,拥有强大的针对个体建模能力,能够准确的刻画玩家的行为,并且基于模型的脚本生成算法运行效率与脚本质量都满足实际应用的要求;
2、本发明可以通过预先为怪物NPC定义的交互式动态影响图,实现行为脚本的自动在线更新与生成,大幅降低游戏开发人员的工作负担;
3、在本发明中,怪物NPC所包含的交互式动态影响图的更新基于真实在线数据,所以NPC脚本的更新对玩家更有针对性,更进一步地,通过每种怪物NPC在多个副本之间共享数据与玩家策略描述,生成的NPC行为脚本具有良好的通用性。
附图说明
图1是本发明包含2步推理的交互式动态影响图;
图2是本发明策略描述示意图;
图3是本发明执行记录数据示例。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
步骤(1)、为每个NPC定义一个自动推理模型——交互式动态影响图(以下简称影响图),根据NPC自身的特点与场景的特点定义影响图的参数。
步骤(2)、根据影响图的参数,构造NPC的行为脚本。
步骤(3)、NPC在与玩家交互过程中执行行为脚本,并记录每一动作,其中动作即指行为脚本。
步骤(4)、根据步骤(3)中记录的每一动作的执行结果,更新影响图参数,并重新产生NPC的行为脚本应用于新的玩家交互中。
所述步骤(1)中,根据NPC自身的特点与场景的特点定义影响图的参数具体如下:
在影响图中,根据NPC的可执行动作定义动作集合(例如,NPC的可执行动作如攻击、防御、逃跑、追击动作等),根据玩家角色的可执行动作定义动作集合玩家角色的可执行动作如轻拳、重拳、逃跑等;根据所处场景性质、NPC与玩家角色的位置与属性定义状态集合S*;从时间t到时间t+1的状态转移函数根据NPC的行为风格与偏好(例如凶悍型NPC攻击得到的效用会被设置的较高以鼓励攻击,而保守型角色采取防守的时候得到的效用相对较高),定义NPC的效用函数其中,状态集合S*中的状态包含了NPC和玩家角色的基本信息:如NPC与玩家位置和属性值等。状态转移函数是一种条件概率函数,具体的说,状态转移函数量化地表达了从时间t到时间t+1,状态st∈St,通过NPC动作和玩家角色动作转移到状态st+1∈St+1的可能性,即概率;效用函数量化地表示NPC每次动作执行的结果,具体的说,效用函数表示了在时间t,NPC通过动作和玩家角色动作从状态st∈St转移到状态st+1∈St+1所得到的效用值。当NPC执行动作后,玩家角色受到的伤害是NPC的正效用;NPC自身受到的伤害是NPC的负效用,该动作的总效用为这两部分之和。NPC动作的效用还同时依赖于初始状态st、目标状态st+1和玩家角色的动作图1中是包含2步推理(t和t+1)动态影响图,当需要第3步推理时,第t+2步的模型可以通过复制t+1时间片(即所有以t+1为上标的节点)和节点之间的链接来构造,重复此过程,可以构造出包含T步推理的动态影响图。根据现有的经验知识,初始化状态转移函数与效用函数的参数。
根据先验知识,NPC的影响图中包含有若干个刻画玩家角色行为的策略描述每个策略描述表示玩家角色在不同状态下将执行不同动作的条件概率具体的说,定义了玩家角色在状态st时执行动作的概率。将N个策略描述存储于玩家行为模式的集合公式如下:
所述步骤(2)的具体步骤如下:
步骤(21),针对步骤(1)中所构造的影响图,根据所需脚本长度,扩展成包含T步推理的影响图。因为在t时刻,NPC执行的动作会产生效用值这里的效用值也同时依赖于当前状态St、目标状态St+1和玩家角色的动作这里的效用值量化地刻画了NPC在一个特定情形下(包括当前状态、新状态和玩家的动作)执行动作的结果。此外,NPC所执行的动作还会随机地导致对战态势的变化,即状态迁移的变化,继而影响未来可能得到的效用值。所以,求解这个包含T步推理的影像图的目标是最大化NPC的即时期望效用与远期期望效用的加权和,加权是为了降低未来效用对现在效用的影响。
步骤(22)、采用经典的动态规划求解算法求解步骤(21)得到的包含了T步推理的交互式动态影响图,最大化NPC的即时期望效用与远期期望效用的加权和,寻找到能够最大化NPC角色期望效用的策略,这里的策略指定了NPC在每一时刻针对各种情形(包括自身的状态、玩家的状态、位置等)所应采取的动作每一次采取的动作同时取决于当前的状态,这里策略采用条件概率函数进行描述。当前的状态取决于之前的状态与玩家和NPC之前采取的动作的概率玩家和NPC之前采取的动作又被称为观测信息;其中,最大化NPC的即时期望效用与远期期望效用的加权和的公式如下:
其中,是即时期望效用,是远期期望效用,λ是折扣因子,用来减弱远期效用对当前动作的影响,ERi是总效用值,即NPC的即时期望效用与远期期望效用的加权和。期望效用值是各种特定情形下效用值与各种情形出现的可能性,即当前状态为st,NPC执行动作目标状态st+1,且玩家角色执行动作时得到的具体效用值与出现这一情形的概率的加权和,式中需要考虑每种可能的组合。
步骤(23)、将步骤(22)得到的最大化NPC期望效用的策略转换成兼容当前游戏的行为脚本格式。即将得到的由条件概率函数表达的策略,转换成兼容当前游戏的基于条件判断的行为脚本格式。
所述步骤(3)的具体步骤如下:
(31)NPC在与玩家角色交互过程中,执行步骤(22)中针对不同玩家不同动作定义的行为脚本。每一次采取的动作同时取决于当前状态St,这里St也可以看作NPC在不同时刻观测到的信息。
(32)记录每次动作执行的结果:在每个时刻,包括玩家角色执行的动作NPC执行的动作对状态的改变,即从状态st迁移到状态st+1和从状态st迁移到状态st+1下动作对应的效用值数据格式如图3所示。
所述步骤(4)的具体步骤如下:
(41)从步骤(32)记录的每次动作执行的结果,统计出NPC在每个状态st∈St时,玩家角色执行的各个动作的频率,将频率通过归一化,继而得到在各个状态下的行为频率的条件概率即NPC基于当前玩家的行为对玩家构造的策略描述 通过与玩家行为模式的集合比较,寻找到最相似的一个玩家策略即的与的是最相似的:
根据统计得到的玩家行为策略描述更新交互式动态影响图中最相似的玩家策略描述在各种情况下(即不同的当前状态st,不同的玩家角色动作)采取各种行为的条件概率得到更新后的策略描述的具体公式如下:
其中,是现有交互式动态影响图中玩家行为的策略描述,是从交互数据中得到的策略描述,α是策略更新率,表示当前策略描述被更新的速度;
通过基于交互数据更新现有交互式动态影响图中玩家角度的策略描述,能够更加准确地在行为脚本生成中预测玩家的行为,使得NPC的行为在之后的对战中更加智能。
(42)根据步骤(32)记录的每次动作执行的结果,统计当NPC角色执行动作与玩家执行的动作当前状态从st转移到状态st+1的频率的概率和动作对应的期望效用值这里的期望效用值是各种特定情形下效用值与各种情形出现频率的加权和。更新怪物NPC影响图的状态转移函数和效用函数更新的方法与步骤(41)类似:
通过基于交互数据更新现有影响图中的状态转移函数与效用函数,能够更加准确刻画NPC所处游戏场景,使得生成的NPC行为在之后的对战中更加智能。
(43)将步骤(41)和步骤(42)得到的结果更新交互式动态影响图,用于步骤(2)-步骤(4)。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种基于多智能体技术的NPC控制方法,其特征在于,包括以下步骤:
步骤(1)、为每个NPC定义一个自动推理模型——交互式动态影响图,根据NPC自身的特点与场景的特点定义交互式动态影响图的参数;
步骤(2)、根据交互式动态影响图的参数,构造NPC的行为脚本;
步骤(3)、NPC在与玩家交互过程中执行NPC的行为脚本,并记录每一动作的执行结果,其中动作即指行为脚本;
步骤(4)、根据步骤(3)中记录的每一动作的执行结果,更新交互式动态影响图的参数,重新构造NPC的行为脚本应用于新的玩家交互中。
2.根据权利要求1所述的一种基于多智能体技术的NPC控制方法,其特征在于,所述步骤(1)中,根据NPC自身的特点与场景的特点定义交互式动态影响图的参数的具体步骤如下:
步骤(11)、在交互式动态影响图中,根据NPC的可执行动作定义动作集合根据玩家角色的可执行动作定义动作集合
步骤(12)、根据NPC所处场景的性质、NPC与玩家角色的位置与属性定义状态集合S*;
步骤(13)、根据步骤(11)和步骤(12)定义从时间t到时间t+1,状态st∈St通过NPC动作和玩家角色动作转移到状态st+1∈St+1的可能性的条件概率函数,即状态转移函数
步骤(14)、根据NPC角色的行为风格与偏好,定义在时间t,NPC通过动作和玩家角色动作从状态st∈St转移到状态st+1∈St+1的效用函数
步骤(15)、根据现有的经验知识,初始化状态转移函数与效用函数的参数;
步骤(16)、根据先验在NPC的交互式动态影响图中包含有若干个刻画玩家角色行为的策略描述每个策略描述表示玩家角色在不同状态下将执行不同动作的条件概率即玩家角色在状态st时执行动作的概率将N个策略描述存储于玩家行为模式的集合具体如下:
<mrow>
<msubsup>
<mi>M</mi>
<mi>j</mi>
<mi>t</mi>
</msubsup>
<mo>=</mo>
<mo>{</mo>
<msubsup>
<mi>m</mi>
<mrow>
<mi>j</mi>
<mo>,</mo>
<mn>1</mn>
</mrow>
<mi>t</mi>
</msubsup>
<mo>,</mo>
<msubsup>
<mi>m</mi>
<mrow>
<mi>j</mi>
<mo>,</mo>
<mn>2</mn>
</mrow>
<mi>t</mi>
</msubsup>
<mo>...</mo>
<mo>,</mo>
<msubsup>
<mi>m</mi>
<mrow>
<mi>j</mi>
<mo>,</mo>
<mi>N</mi>
</mrow>
<mi>t</mi>
</msubsup>
<mo>}</mo>
<mo>;</mo>
</mrow>
<mrow>
<msubsup>
<mi>m</mi>
<mrow>
<mi>j</mi>
<mo>,</mo>
<mi>k</mi>
</mrow>
<mi>t</mi>
</msubsup>
<mo>=</mo>
<mi>P</mi>
<mrow>
<mo>(</mo>
<msubsup>
<mi>A</mi>
<mi>j</mi>
<mi>t</mi>
</msubsup>
<mo>|</mo>
<msup>
<mi>S</mi>
<mi>t</mi>
</msup>
<mo>)</mo>
</mrow>
<mo>,</mo>
<mn>1</mn>
<mo>&le;</mo>
<mi>k</mi>
<mo>&le;</mo>
<mi>N</mi>
<mo>.</mo>
</mrow>
3.根据权利要求1所述的一种基于多智能体技术的NPC控制方法,其特征在于:所述步骤(2)的具体步骤如下:
步骤(21)、根据步骤(1)中所构造的交互式动态影响图和所需NPC行为脚本长度,将交互式动态影响图扩展成包含T步推理的交互式动态影响图;
步骤(22)、采用经典的动态规划求解算法求解步骤(21)得到的包含了T步推理的交互式动态影响图,最大化NPC的即时期望效用与远期期望效用的加权和,寻找到能够最大化NPC角色期望效用的策略,即寻找到能够最大化NPC在每一时刻针对各种情形所应采取的动作的条件概率最大化NPC的即时期望效用与远期期望效用的加权和的公式如下:
<mrow>
<msub>
<mi>ER</mi>
<mi>i</mi>
</msub>
<mo>=</mo>
<mi>E</mi>
<mo>&lsqb;</mo>
<msubsup>
<mi>R</mi>
<mi>i</mi>
<mn>1</mn>
</msubsup>
<mo>&rsqb;</mo>
<mo>+</mo>
<mi>&lambda;</mi>
<mi>E</mi>
<mo>&lsqb;</mo>
<msubsup>
<mi>R</mi>
<mi>i</mi>
<mn>2</mn>
</msubsup>
<mo>&rsqb;</mo>
<mo>+</mo>
<msup>
<mi>&lambda;</mi>
<mn>2</mn>
</msup>
<mi>E</mi>
<mo>&lsqb;</mo>
<msubsup>
<mi>R</mi>
<mi>i</mi>
<mn>3</mn>
</msubsup>
<mo>&rsqb;</mo>
<mo>+</mo>
<mo>...</mo>
<mo>+</mo>
<msup>
<mi>&lambda;</mi>
<mrow>
<mi>T</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msup>
<mi>E</mi>
<mo>&lsqb;</mo>
<msubsup>
<mi>R</mi>
<mi>i</mi>
<mi>T</mi>
</msubsup>
<mo>&rsqb;</mo>
<mo>,</mo>
</mrow>
<mrow>
<mi>E</mi>
<mo>&lsqb;</mo>
<msubsup>
<mi>R</mi>
<mi>i</mi>
<mi>t</mi>
</msubsup>
<mo>&rsqb;</mo>
<mo>=</mo>
<msub>
<mo>&Sigma;</mo>
<mrow>
<msup>
<mi>S</mi>
<mi>t</mi>
</msup>
<mo>,</mo>
<msubsup>
<mi>A</mi>
<mi>i</mi>
<mi>t</mi>
</msubsup>
<mo>,</mo>
<msubsup>
<mi>A</mi>
<mrow>
<mi>j</mi>
<mo>,</mo>
</mrow>
<mi>t</mi>
</msubsup>
<msup>
<mi>S</mi>
<mrow>
<mi>t</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msup>
</mrow>
</msub>
<msub>
<mi>R</mi>
<mi>i</mi>
</msub>
<mrow>
<mo>(</mo>
<msup>
<mi>s</mi>
<mrow>
<mi>t</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msup>
<mo>,</mo>
<msup>
<mi>s</mi>
<mi>t</mi>
</msup>
<mo>,</mo>
<msubsup>
<mi>a</mi>
<mi>i</mi>
<mi>t</mi>
</msubsup>
<mo>,</mo>
<msubsup>
<mi>a</mi>
<mi>j</mi>
<mi>t</mi>
</msubsup>
<mo>)</mo>
</mrow>
<mo>*</mo>
<mi>P</mi>
<mrow>
<mo>(</mo>
<msup>
<mi>s</mi>
<mrow>
<mi>t</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msup>
<mo>,</mo>
<msup>
<mi>s</mi>
<mi>t</mi>
</msup>
<mo>,</mo>
<msubsup>
<mi>a</mi>
<mi>i</mi>
<mi>t</mi>
</msubsup>
<mo>,</mo>
<msubsup>
<mi>a</mi>
<mi>j</mi>
<mi>t</mi>
</msubsup>
<mo>)</mo>
</mrow>
<mo>,</mo>
<mn>1</mn>
<mo>&le;</mo>
<mi>t</mi>
<mo>&le;</mo>
<mi>T</mi>
<mo>,</mo>
</mrow>
其中,是即时期望效用,是远期期望效用,λ是折扣因子,用来减弱远期效用对当前动作的影响,ERi是总效用值,即NPC的即时期望效用与远期期望效用的加权和;
步骤(23)、将步骤(22)得到的最大化NPC期望效用的策略转换成兼容当前游戏的行为脚本格式。
4.根据权利要求3所述的一种基于多智能体技术的NPC控制方法,其特征在于,所述步骤(3)的具体步骤如下:
步骤(31)、NPC在与玩家角色交互过程中,针对不同玩家角色的不同动作采用NPC动作即采用步骤(23)中得到的行为脚本;
步骤(32)、记录每次NPC动作执行的结果:在每个时刻,包括玩家角色执行的动作NPC执行的动作对状态的改变,即从状态st迁移到状态st+1和状态st迁移到状态st+1下动作对应的效用值
5.根据权利要求4所述的一种基于多智能体技术的NPC控制方法,其特征在于,所述步骤(4)的具体步骤如下:
步骤(41)、根据步骤(3)记录每次动作执行的结果,统计出NPC在每个状态st∈St时,玩家角色执行的各个动作的频率,将频率归一化处理,得到在各个状态下的行为频率的条件概率即可以看作是NPC基于当前玩家的行为对NPC构造的策略描述 通过与玩家行为模式的集合比较,寻找到最相似的玩家策略描述即的与的是最相似的:
<mrow>
<msubsup>
<mi>m</mi>
<mrow>
<mi>j</mi>
<mo>,</mo>
<mi>k</mi>
</mrow>
<mi>t</mi>
</msubsup>
<mo>=</mo>
<mi>arg</mi>
<mi> </mi>
<msub>
<mi>min</mi>
<mi>m</mi>
</msub>
<msub>
<mo>&Sigma;</mo>
<msup>
<mi>S</mi>
<mi>t</mi>
</msup>
</msub>
<msup>
<mrow>
<mo>&lsqb;</mo>
<mi>P</mi>
<mrow>
<mo>(</mo>
<msubsup>
<mi>A</mi>
<mi>j</mi>
<mi>t</mi>
</msubsup>
<mo>|</mo>
<msup>
<mi>S</mi>
<mi>t</mi>
</msup>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mover>
<mi>P</mi>
<mo>~</mo>
</mover>
<mrow>
<mo>(</mo>
<msubsup>
<mi>A</mi>
<mi>j</mi>
<mi>t</mi>
</msubsup>
<mo>|</mo>
<msup>
<mi>S</mi>
<mi>t</mi>
</msup>
<mo>)</mo>
</mrow>
<mo>&rsqb;</mo>
</mrow>
<mn>2</mn>
</msup>
<mo>,</mo>
<mi>m</mi>
<mo>&Element;</mo>
<msubsup>
<mi>M</mi>
<mi>j</mi>
<mi>t</mi>
</msubsup>
<mo>,</mo>
</mrow>
根据统计得到的玩家行为策略描述更新交互式动态影响图中最相似的玩家策略描述在各种情况下采取各种行为的条件概率得到更新后的策略描述的具体公式如下:
<mrow>
<msub>
<mover>
<mi>P</mi>
<mo>&CenterDot;</mo>
</mover>
<mrow>
<mi>n</mi>
<mi>e</mi>
<mi>w</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<msubsup>
<mi>A</mi>
<mi>j</mi>
<mi>t</mi>
</msubsup>
<mo>|</mo>
<msup>
<mi>S</mi>
<mi>t</mi>
</msup>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>-</mo>
<mi>&alpha;</mi>
<mo>)</mo>
</mrow>
<mo>*</mo>
<mi>P</mi>
<mrow>
<mo>(</mo>
<msubsup>
<mi>A</mi>
<mi>j</mi>
<mi>t</mi>
</msubsup>
<mo>|</mo>
<msup>
<mi>S</mi>
<mi>t</mi>
</msup>
<mo>)</mo>
</mrow>
<mo>+</mo>
<mi>&alpha;</mi>
<mo>*</mo>
<mover>
<mi>P</mi>
<mo>~</mo>
</mover>
<mrow>
<mo>(</mo>
<msubsup>
<mi>A</mi>
<mi>j</mi>
<mi>t</mi>
</msubsup>
<mo>|</mo>
<msup>
<mi>S</mi>
<mi>t</mi>
</msup>
<mo>)</mo>
</mrow>
<mo>,</mo>
</mrow>
其中,是现有交互式动态影响图中玩家行为的策略描述,是从交互数据中得到的策略描述,α是策略更新率,表示当前策略描述被更新的速度;
步骤(42)、根据步骤(3)记录的每次动作执行的结果,统计当NPC执行动作与玩家执行动作时、当前状态从st转移到状态st+1的频率的条件概率和动作对应的期望效用值更新NPC交互式动态影响图的状态转移函数和效用函数更新的具体公式如下:
<mrow>
<msub>
<mi>P</mi>
<mrow>
<mi>n</mi>
<mi>e</mi>
<mi>w</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<msup>
<mi>S</mi>
<mrow>
<mi>t</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msup>
<mo>|</mo>
<msup>
<mi>S</mi>
<mi>t</mi>
</msup>
<mo>,</mo>
<msubsup>
<mi>A</mi>
<mi>i</mi>
<mi>t</mi>
</msubsup>
<mo>,</mo>
<msubsup>
<mi>A</mi>
<mi>j</mi>
<mi>t</mi>
</msubsup>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>-</mo>
<mi>&alpha;</mi>
<mo>)</mo>
</mrow>
<mo>*</mo>
<mi>P</mi>
<mrow>
<mo>(</mo>
<msup>
<mi>S</mi>
<mrow>
<mi>t</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msup>
<mo>|</mo>
<msup>
<mi>S</mi>
<mi>t</mi>
</msup>
<mo>,</mo>
<msubsup>
<mi>A</mi>
<mi>i</mi>
<mi>t</mi>
</msubsup>
<mo>,</mo>
<msubsup>
<mi>A</mi>
<mi>j</mi>
<mi>t</mi>
</msubsup>
<mo>)</mo>
</mrow>
<mo>+</mo>
<mi>&alpha;</mi>
<mo>*</mo>
<mover>
<mi>P</mi>
<mo>~</mo>
</mover>
<mrow>
<mo>(</mo>
<msup>
<mi>S</mi>
<mrow>
<mi>t</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msup>
<mo>|</mo>
<msup>
<mi>S</mi>
<mi>t</mi>
</msup>
<mo>,</mo>
<msubsup>
<mi>A</mi>
<mi>i</mi>
<mi>t</mi>
</msubsup>
<mo>,</mo>
<msubsup>
<mi>A</mi>
<mi>j</mi>
<mi>t</mi>
</msubsup>
<mo>)</mo>
</mrow>
<mo>,</mo>
</mrow>
2
<mrow>
<msub>
<mi>R</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>n</mi>
<mi>e</mi>
<mi>w</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<msup>
<mi>S</mi>
<mi>t</mi>
</msup>
<mo>,</mo>
<msubsup>
<mi>A</mi>
<mi>i</mi>
<mi>t</mi>
</msubsup>
<mo>,</mo>
<msubsup>
<mi>A</mi>
<mi>j</mi>
<mi>t</mi>
</msubsup>
<mo>,</mo>
<msup>
<mi>S</mi>
<mrow>
<mi>t</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msup>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>-</mo>
<mi>&alpha;</mi>
<mo>)</mo>
</mrow>
<mo>*</mo>
<msub>
<mi>R</mi>
<mi>i</mi>
</msub>
<mrow>
<mo>(</mo>
<msup>
<mi>S</mi>
<mi>t</mi>
</msup>
<mo>,</mo>
<msubsup>
<mi>A</mi>
<mi>i</mi>
<mi>t</mi>
</msubsup>
<mo>,</mo>
<msubsup>
<mi>A</mi>
<mi>j</mi>
<mi>t</mi>
</msubsup>
<mo>,</mo>
<msup>
<mi>S</mi>
<mrow>
<mi>t</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msup>
<mo>)</mo>
</mrow>
<mo>+</mo>
<mi>&alpha;</mi>
<mo>*</mo>
<msub>
<mover>
<mi>R</mi>
<mo>~</mo>
</mover>
<mi>i</mi>
</msub>
<mrow>
<mo>(</mo>
<msup>
<mi>S</mi>
<mi>t</mi>
</msup>
<mo>,</mo>
<msubsup>
<mi>A</mi>
<mi>i</mi>
<mi>t</mi>
</msubsup>
<mo>,</mo>
<msubsup>
<mi>A</mi>
<mi>j</mi>
<mi>t</mi>
</msubsup>
<mo>,</mo>
<msup>
<mi>S</mi>
<mrow>
<mi>t</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msup>
<mo>)</mo>
</mrow>
<mo>,</mo>
</mrow>
其中,是现有交互式动态影响图中的条件概率,是现有交互式动态影响图中的效用函数;
步骤(43)、将步骤(41)和步骤(42)得到的结果更新交互式动态影响图,用于步骤(2)-步骤(4)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710237082.5A CN107145948B (zh) | 2017-04-12 | 2017-04-12 | 一种基于多智能体技术的npc控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710237082.5A CN107145948B (zh) | 2017-04-12 | 2017-04-12 | 一种基于多智能体技术的npc控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107145948A true CN107145948A (zh) | 2017-09-08 |
CN107145948B CN107145948B (zh) | 2021-05-18 |
Family
ID=59773612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710237082.5A Expired - Fee Related CN107145948B (zh) | 2017-04-12 | 2017-04-12 | 一种基于多智能体技术的npc控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107145948B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107890674A (zh) * | 2017-11-13 | 2018-04-10 | 杭州电魂网络科技股份有限公司 | Ai行为调用方法和装置 |
CN108920221A (zh) * | 2018-06-29 | 2018-11-30 | 网易(杭州)网络有限公司 | 游戏难度调整的方法及装置、电子设备、存储介质 |
CN110141867A (zh) * | 2019-04-23 | 2019-08-20 | 广州多益网络股份有限公司 | 一种游戏智能体训练方法及装置 |
CN113144609A (zh) * | 2021-04-25 | 2021-07-23 | 上海雷鸣文化传播有限公司 | 一种基于遗传算法的游戏角色行为算法 |
CN114681919A (zh) * | 2022-03-29 | 2022-07-01 | 米哈游科技(上海)有限公司 | 一种基于npc相互行为影响npc表现方法、装置、介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158897A (zh) * | 2007-10-09 | 2008-04-09 | 南京大学 | 交互式游戏中智能非玩家角色的实现方法及*** |
US20100022301A1 (en) * | 2008-07-22 | 2010-01-28 | Sony Online Entertainment Llc | System and method for progressing character abilities in a simulation |
CN102930338A (zh) * | 2012-11-13 | 2013-02-13 | 沈阳信达信息科技有限公司 | 基于神经网络的游戏Npc行为 |
CN105561578A (zh) * | 2015-12-11 | 2016-05-11 | 北京像素软件科技股份有限公司 | 一种非玩家控制角色npc的行为决策方法 |
-
2017
- 2017-04-12 CN CN201710237082.5A patent/CN107145948B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158897A (zh) * | 2007-10-09 | 2008-04-09 | 南京大学 | 交互式游戏中智能非玩家角色的实现方法及*** |
US20100022301A1 (en) * | 2008-07-22 | 2010-01-28 | Sony Online Entertainment Llc | System and method for progressing character abilities in a simulation |
CN102930338A (zh) * | 2012-11-13 | 2013-02-13 | 沈阳信达信息科技有限公司 | 基于神经网络的游戏Npc行为 |
CN105561578A (zh) * | 2015-12-11 | 2016-05-11 | 北京像素软件科技股份有限公司 | 一种非玩家控制角色npc的行为决策方法 |
Non-Patent Citations (3)
Title |
---|
JOSEPH A. TATMAN等: "Dynamic Programming and Influence Diagrams", 《IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS》 * |
ROSS CONROY等: "A Value Equivalence Approach for Solving Interactive Dynamic Influence Diagrams", 《PROCEEDINGS OF THE 15TH INTERNATIONAL CONFERENCE ON AUTONOMOUS AGENTS AND MULTIAGENT SYSTEMS》 * |
罗键等: "基于多Agent的交互式动态影响图研究、应用与展望", 《厦门大学学报(自然科学版)》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107890674A (zh) * | 2017-11-13 | 2018-04-10 | 杭州电魂网络科技股份有限公司 | Ai行为调用方法和装置 |
CN108920221A (zh) * | 2018-06-29 | 2018-11-30 | 网易(杭州)网络有限公司 | 游戏难度调整的方法及装置、电子设备、存储介质 |
CN110141867A (zh) * | 2019-04-23 | 2019-08-20 | 广州多益网络股份有限公司 | 一种游戏智能体训练方法及装置 |
CN113144609A (zh) * | 2021-04-25 | 2021-07-23 | 上海雷鸣文化传播有限公司 | 一种基于遗传算法的游戏角色行为算法 |
CN114681919A (zh) * | 2022-03-29 | 2022-07-01 | 米哈游科技(上海)有限公司 | 一种基于npc相互行为影响npc表现方法、装置、介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107145948B (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Perez-Liebana et al. | The 2014 general video game playing competition | |
CN107145948A (zh) | 一种基于多智能体技术的npc控制方法 | |
Hausknecht et al. | A neuroevolution approach to general atari game playing | |
García-Sánchez et al. | Evolutionary deckbuilding in hearthstone | |
WO2023071854A1 (zh) | 游戏中虚拟角色的控制方法、装置、计算机设备、存储介质及程序 | |
Garćıa-Sánchez et al. | Towards automatic StarCraft strategy generation using genetic programming | |
Cerny et al. | Rogue-like games as a playground for artificial intelligence–evolutionary approach | |
Smith et al. | Evolving Dota 2 shadow fiend bots using genetic programming with external memory | |
Uriarte et al. | Improving Monte Carlo tree search policies in StarCraft via probabilistic models learned from replay data | |
Fukushima et al. | Mimicking an expert team through the learning of evaluation functions from action sequences | |
Czempin et al. | Reducing exploitability with population based training | |
Wang et al. | Large scale deep reinforcement learning in war-games | |
CN113509726A (zh) | 交互模型训练方法、装置、计算机设备和存储介质 | |
Traish et al. | Towards adaptive online RTS AI with NEAT | |
Liaw et al. | Evolving a team in a first-person shooter game by using a genetic algorithm | |
Yang et al. | Stackelberg games for learning emergent behaviors during competitive autocurricula | |
Yang et al. | Stackelberg MADDPG: Learning emergent behaviors via information asymmetry in competitive games | |
Mora et al. | Dealing with noisy fitness in the design of a RTS game bot | |
Ross | General video game playing with goal orientation | |
Green et al. | Automatic critical mechanic discovery using playtraces in video games | |
Leece et al. | Opponent state modeling in RTS games with limited information using Markov random fields | |
Patel et al. | Improving behavior of computer game bots using fictitious play | |
Mohan et al. | Learning to play Mario | |
Khalid et al. | An assortment of evolutionary computation techniques (AECT) in gaming | |
Lin et al. | AI Reinforcement Study of Gank Behavior in MOBA Games |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210518 |