CN106959850A - 自动生成行为树代码的方法及系统 - Google Patents
自动生成行为树代码的方法及系统 Download PDFInfo
- Publication number
- CN106959850A CN106959850A CN201710121714.1A CN201710121714A CN106959850A CN 106959850 A CN106959850 A CN 106959850A CN 201710121714 A CN201710121714 A CN 201710121714A CN 106959850 A CN106959850 A CN 106959850A
- Authority
- CN
- China
- Prior art keywords
- node
- behavior tree
- code
- behavior
- artificial intelligence
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
Abstract
本发明提供了一种自动生成行为树代码的方法及系统,包括:步骤1:定义需要用到的行为树节点;步骤2:配置人工智能数据,具体地,根据步骤1中定义的行为树节点组成人工智能的行为树;步骤3:加载人工智能配置文件,按照数据文本描述的各种节点以及节点之间的关系依次组建可运行的行为树代码;步骤4:重复步骤3进行编译,遍历结束后,返回创建的整套行为树代码。本发明根据lua数据文本自动生成lua代码,减少了大量代码的编写工作,让行为树的生成过程更加简单易懂。从而能够更加有效地实现游戏中的人工智能行为,加快游戏开发进度,便于代码的升级和维护。
Description
技术领域
本发明涉及游戏技术领域,具体地,涉及自动生成行为树代码的方法及系统。
背景技术
为了便于实现游戏中的人工智能行为,很多游戏里面采用行为树作为人工智能的解决方案。如何描述行为树有很多种方法,例如直接编写代码去描述行为树。直接编写行为树代码的方式不方便进行维护,且不能清晰的显示人工智能的逻辑。
经检索,申请号为:201480033537.6,名称为:自动源代码生成,提出了从包括变量代码元素和方法的简档中自动生成源代码语句。简档从具有已标识的变量代码元素的现有代码基构建,已标识的变量代码元素在被用于源代码语句的不同版本中时不同。开发者可定义变量代码元素的值,其接着被简档中的方法用于自动生成对应的源代码语句。
申请号为:201110391484.3,名称为:代码自动生成方法及装置,提出了一种代码自动生成方法及装置,该方法包括:获取通过用户界面输入的待生成代码的代码配置信息,根据获取的所述代码配置信息得到表结构信息;根据确定的代码类型和选择的操作类型,提取相应的代码模板;将所述表结构信息以及用户配置的配置信息填充到提取的所述代码模板中,得到所述待生成代码。可以自动生成各种不同类型的代码,具有普遍适用性。
上述专利申请针对源代码的自动生成,但是不能用来描述游戏中的人工智能行为,目前还未检索到关于行为树代码的自动生成技术。
为此,本发现提供了一种用数据和文本描述行为树的方法和系统,可以根据数据文本自动生成行为树代码。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种自动生成行为树代码的方法及系统。
根据本发明提供的自动生成行为树代码的方法,包括如下步骤:
步骤1:定义需要用到的行为树节点;
步骤2:配置人工智能数据,具体地,利用步骤1中定义的行为树节点组装成具有人工智能的行为树;
步骤3:加载步骤2的人工智能配置数据,按照数据描述的各种节点以及节点之间的组装关系组建成能够运行的行为树代码;
步骤4:重复步骤3,依次遍历配置数据中的所有节点以及节点之间的组装关系,直到遍历完所有配置数据,遍历完所有配置数据后,返回创建的整套行为树代码;其中,遍历是指按照配置数据的顺序依次读取配置数据。
优选地,所述步骤1包括:由于每个行为树节点都有一个列表用于存储孩子节点,每个行为树节点都有一个位置描述,所述位置描述表示在兄弟节点里面该行为树节点所处的顺序;其中,行为树节点是指能够按照特定逻辑运行的一套代码;行为树节点能够相互嵌套,即一个行为树节点能够嵌套若干个不同的行为树节点,形成层级关系;
孩子节点是指:嵌套在行为树节点上的下一层级的行为树节点,相对于上层行为树节点,下一层的行为树节点被称为孩子节点;
兄弟节点是指:属于同一层级的行为树节点,该同一层级的行为树节点互为兄弟节点;
具体地,所述行为树节点包括:顺序节点、选择节点、条件节点、动作节点;
所述顺序节点是指:按照顺序依次执行,一旦某一个节点执行失败则返回结果;
所述选择节点是指:按照顺序依次执行,一旦某一个节点执行成功则返回;
所述条件节点是指:用来判断条件是否符合的节点;
所述动作节点是指:执行具体业务逻辑的节点。
优选地,所述步骤2中配置人工智能数据是指用不同的行为树节点进行组合的文本描述,其中的人工智能数据由多个行为树节点组成,组成方式包括嵌套和顺序组合。
根据本发明提供的自动生成行为树代码的系统,包括如下模块:
定义模块:用于定义需要用到的行为树节点;
配置模块:用于配置人工智能数据,具体地,根据定义的行为树节点组成人工智能的行为树;
行为树代码组建模块:用于加载人工智能配置文件,按照数据文本描述的各种节点以及节点之间的关系依次组建可运行的行为树代码;
遍历模块:用于对所有配置数据进行遍历,遍历结束后,返回创建的整套行为树代码。
优选地,所述定义模块中由于每个行为树节点都有一个列表用于存储孩子节点,每个行为树节点都有一个位置描述,所述位置描述表示在兄弟节点里面该行为树节点所处的顺序;其中,行为树节点是指能够按照特定逻辑运行的一套代码;行为树节点能够相互嵌套,即一个行为树节点能够嵌套若干个不同的行为树节点,形成层级关系;
孩子节点是指:嵌套在行为树节点上的下一层级的行为树节点,相对于上层行为树节点,下一层的行为树节点被称为孩子节点;
兄弟节点是指:属于同一层级的行为树节点,该同一层级的行为树节点互为兄弟节点;
具体地,所述行为树节点包括:顺序节点、选择节点、条件节点、动作节点;
所述顺序节点是指:按照顺序依次执行,一旦某一个节点执行失败则返回结果;
所述选择节点是指:按照顺序依次执行,一旦某一个节点执行成功则返回;
所述条件节点是指:用来判断条件是否符合的节点;
所述动作节点是指:执行具体业务逻辑的节点。
优选地,所述配置模块中配置人工智能数据是指用不同的行为树节点进行组合的文本描述,其中的人工智能数据由多个行为树节点组成,组成方式包括嵌套和顺序组合。
与现有技术相比,本发明具有如下的有益效果:
本发明提供的自动生成行为树代码的方法及系统,根据lua数据文本自动生成lua代码,减少了大量代码的编写工作,让行为树的生成过程更加简单易懂。从而能够更加有效地实现游戏中的人工智能行为,加快游戏开发进度,便于代码的升级和维护。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明提供的自动生成行为树代码的方法的流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的自动生成行为树代码的方法,包括如下步骤:
步骤1:定义需要用到的行为树节点;每个行为树节点都有一个列表存储孩子节点,每个行为树节点都有一个位置描述,所述位置描述表示在兄弟节点里面该行为树节点所处的顺序;其中,行为树节点是指可以按照特定逻辑运行的一套代码,行为树节点可以嵌套,即一个行为树节点可以嵌套若干个其他节点,运行若干个其他节点代码,形成层级关系;
孩子节点是指:嵌套在其他节点的行为树节点,相对于上层节点,下面一层的节点称为孩子节点。
兄弟节点是指:相对于同一层级的节点,互相称为兄弟节点。
所述行为树节点包括:顺序节点(按照子节点顺序依次执行,一旦某一个节点执行失败则返回结果);选择节点(按照子节点顺序依次执行,一旦某一个节点执行成功则返回),条件节点(专门用来判断条件是否符合的节点),动作节点(执行具体业务逻辑的节点)
步骤2:配置人工智能数据用步骤1中定义的几种行为树节点组成人工智能的行为树。其中配置是指用不同的行为树节点进行组合的文本描述。其中的数据由多个行为树节点组成,组成方式包括嵌套和顺序组合。
步骤3:加载人工智能配置文件,按照数据文本描述的各种节点以及节点之间的关系依次组建可运行的行为树代码,重复这个步骤进行编译,遍历结束后,返回创建的整套代码。
任何应用行为树技术的方案,都可以采用这种方法进行自动代码的生成技术。所以任何应用行为树技术的实例都可以用到。
本发明还提供了一种自动生成行为树代码的系统,包括如下模块:
定义模块:用于定义需要用到的行为树节点;
配置模块:用于配置人工智能数据,具体地,根据定义的行为树节点组成人工智能的行为树;
行为树代码组建模块:用于加载人工智能配置文件,按照数据文本描述的各种节点以及节点之间的关系依次组建可运行的行为树代码;
遍历模块:用于对所有配置数据进行遍历,遍历结束后,返回创建的整套行为树代码。
所述定义模块中由于每个行为树节点都有一个列表用于存储孩子节点,每个行为树节点都有一个位置描述,所述位置描述表示在兄弟节点里面该行为树节点所处的顺序;其中,行为树节点是指能够按照特定逻辑运行的一套代码;行为树节点能够相互嵌套,即一个行为树节点能够嵌套若干个不同的行为树节点,形成层级关系;
孩子节点是指:嵌套在行为树节点上的下一层级的行为树节点,相对于上层行为树节点,下一层的行为树节点被称为孩子节点;
兄弟节点是指:属于同一层级的行为树节点,该同一层级的行为树节点互为兄弟节点;
具体地,所述行为树节点包括:顺序节点、选择节点、条件节点、动作节点;
所述顺序节点是指:按照顺序依次执行,一旦某一个节点执行失败则返回结果;
所述选择节点是指:按照顺序依次执行,一旦某一个节点执行成功则返回;
所述条件节点是指:用来判断条件是否符合的节点;
所述动作节点是指:执行具体业务逻辑的节点。
所述配置模块中配置人工智能数据是指用不同的行为树节点进行组合的文本描述,其中的人工智能数据由多个行为树节点组成,组成方式包括嵌套和顺序组合。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (6)
1.一种自动生成行为树代码的方法,其特征在于,包括如下步骤:
步骤1:定义需要用到的行为树节点;
步骤2:配置人工智能数据,具体地,利用步骤1中定义的行为树节点组装成具有人工智能的行为树;
步骤3:加载步骤2的人工智能配置数据,按照数据描述的各种节点以及节点之间的组装关系组建成能够运行的行为树代码;
步骤4:重复步骤3,依次遍历配置数据中的所有节点以及节点之间的组装关系,直到遍历完所有配置数据,遍历完所有配置数据后,返回创建的整套行为树代码;其中,遍历是指按照配置数据的顺序依次读取配置数据。
2.根据权利要求1所述的自动生成行为树代码的方法,其特征在于,所述步骤1包括:由于每个行为树节点都有一个列表用于存储孩子节点,每个行为树节点都有一个位置描述,所述位置描述表示在兄弟节点里面该行为树节点所处的顺序;其中,行为树节点是指能够按照特定逻辑运行的一套代码;行为树节点能够相互嵌套,即一个行为树节点能够嵌套若干个不同的行为树节点,形成层级关系;
孩子节点是指:嵌套在行为树节点上的下一层级的行为树节点,相对于上层行为树节点,下一层的行为树节点被称为孩子节点;
兄弟节点是指:属于同一层级的行为树节点,该同一层级的行为树节点互为兄弟节点;
具体地,所述行为树节点包括:顺序节点、选择节点、条件节点、动作节点;
所述顺序节点是指:按照顺序依次执行,一旦某一个节点执行失败则返回结果;
所述选择节点是指:按照顺序依次执行,一旦某一个节点执行成功则返回;
所述条件节点是指:用来判断条件是否符合的节点;
所述动作节点是指:执行具体业务逻辑的节点。
3.根据权利要求1所述的自动生成行为树代码的方法,其特征在于,所述步骤2中配置人工智能数据是指用不同的行为树节点进行组合的文本描述,其中的人工智能数据由多个行为树节点组成,组成方式包括嵌套和顺序组合。
4.一种自动生成行为树代码的系统,其特征在于,包括如下模块:
定义模块:用于定义需要用到的行为树节点;
配置模块:用于配置人工智能数据,具体地,根据定义的行为树节点组成人工智能的行为树;
行为树代码组建模块:用于加载人工智能配置文件,按照数据文本描述的各种节点以及节点之间的关系依次组建可运行的行为树代码;
遍历模块:用于对所有配置数据进行遍历,遍历结束后,返回创建的整套行为树代码。
5.根据权利要求4所述的自动生成行为树代码的系统,其特征在于,所述定义模块中由于每个行为树节点都有一个列表用于存储孩子节点,每个行为树节点都有一个位置描述,所述位置描述表示在兄弟节点里面该行为树节点所处的顺序;其中,行为树节点是指能够按照特定逻辑运行的一套代码;行为树节点能够相互嵌套,即一个行为树节点能够嵌套若干个不同的行为树节点,形成层级关系;
孩子节点是指:嵌套在行为树节点上的下一层级的行为树节点,相对于上层行为树节点,下一层的行为树节点被称为孩子节点;
兄弟节点是指:属于同一层级的行为树节点,该同一层级的行为树节点互为兄弟节点;
具体地,所述行为树节点包括:顺序节点、选择节点、条件节点、动作节点;
所述顺序节点是指:按照顺序依次执行,一旦某一个节点执行失败则返回结果;
所述选择节点是指:按照顺序依次执行,一旦某一个节点执行成功则返回;
所述条件节点是指:用来判断条件是否符合的节点;
所述动作节点是指:执行具体业务逻辑的节点。
6.根据权利要求4所述的自动生成行为树代码的系统,其特征在于,所述配置模块中配置人工智能数据是指用不同的行为树节点进行组合的文本描述,其中的人工智能数据由多个行为树节点组成,组成方式包括嵌套和顺序组合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710121714.1A CN106959850A (zh) | 2017-03-02 | 2017-03-02 | 自动生成行为树代码的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710121714.1A CN106959850A (zh) | 2017-03-02 | 2017-03-02 | 自动生成行为树代码的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106959850A true CN106959850A (zh) | 2017-07-18 |
Family
ID=59470046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710121714.1A Pending CN106959850A (zh) | 2017-03-02 | 2017-03-02 | 自动生成行为树代码的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106959850A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107526682A (zh) * | 2017-08-16 | 2017-12-29 | 网易(杭州)网络有限公司 | 测试机器人的ai行为树的生成方法、装置及设备 |
CN109189504A (zh) * | 2018-09-20 | 2019-01-11 | 腾讯科技(深圳)有限公司 | 行为执行方法、行为树生成方法、装置和计算机设备 |
CN111111202A (zh) * | 2019-12-26 | 2020-05-08 | 北京像素软件科技股份有限公司 | 游戏ai行为逻辑控制方法和系统 |
CN113687821A (zh) * | 2021-10-27 | 2021-11-23 | 北京麟卓信息科技有限公司 | 一种基于图形可视化的智能代码拼接方法 |
WO2023142075A1 (zh) * | 2022-01-29 | 2023-08-03 | 西门子股份公司 | 工作流创建方法、装置、平台和计算机可读介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761108A (zh) * | 2014-02-14 | 2014-04-30 | 杭州朗和科技有限公司 | 一种实现行为树的方法及装置 |
CN103838563A (zh) * | 2012-11-27 | 2014-06-04 | 台博机器人股份有限公司 | 自动装置的程序开发方法 |
CN105068929A (zh) * | 2015-08-06 | 2015-11-18 | 网易(杭州)网络有限公司 | 测试脚本生成方法和装置、测试方法、测试装置以及测试系统 |
CN106155658A (zh) * | 2015-04-08 | 2016-11-23 | 广州四三九九信息科技有限公司 | 基于u3d插件机制实现的行为树编辑器 |
-
2017
- 2017-03-02 CN CN201710121714.1A patent/CN106959850A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838563A (zh) * | 2012-11-27 | 2014-06-04 | 台博机器人股份有限公司 | 自动装置的程序开发方法 |
CN103761108A (zh) * | 2014-02-14 | 2014-04-30 | 杭州朗和科技有限公司 | 一种实现行为树的方法及装置 |
CN106155658A (zh) * | 2015-04-08 | 2016-11-23 | 广州四三九九信息科技有限公司 | 基于u3d插件机制实现的行为树编辑器 |
CN105068929A (zh) * | 2015-08-06 | 2015-11-18 | 网易(杭州)网络有限公司 | 测试脚本生成方法和装置、测试方法、测试装置以及测试系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107526682A (zh) * | 2017-08-16 | 2017-12-29 | 网易(杭州)网络有限公司 | 测试机器人的ai行为树的生成方法、装置及设备 |
CN107526682B (zh) * | 2017-08-16 | 2020-08-04 | 网易(杭州)网络有限公司 | 测试机器人的ai行为树的生成方法、装置及设备 |
CN109189504A (zh) * | 2018-09-20 | 2019-01-11 | 腾讯科技(深圳)有限公司 | 行为执行方法、行为树生成方法、装置和计算机设备 |
CN109189504B (zh) * | 2018-09-20 | 2020-04-28 | 腾讯科技(深圳)有限公司 | 行为执行方法、行为树生成方法、装置和计算机设备 |
CN111111202A (zh) * | 2019-12-26 | 2020-05-08 | 北京像素软件科技股份有限公司 | 游戏ai行为逻辑控制方法和系统 |
CN111111202B (zh) * | 2019-12-26 | 2023-08-29 | 北京像素软件科技股份有限公司 | 游戏ai行为逻辑控制方法和系统 |
CN113687821A (zh) * | 2021-10-27 | 2021-11-23 | 北京麟卓信息科技有限公司 | 一种基于图形可视化的智能代码拼接方法 |
WO2023142075A1 (zh) * | 2022-01-29 | 2023-08-03 | 西门子股份公司 | 工作流创建方法、装置、平台和计算机可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106959850A (zh) | 自动生成行为树代码的方法及系统 | |
CN107957989B9 (zh) | 基于集群的词向量处理方法、装置以及设备 | |
JP6267711B2 (ja) | モデル化された依存関係に基づく、レガシーソフトウェアシステムのモダニゼーション | |
CN106709704A (zh) | 一种基于许可链的智能合约升级方法 | |
CN109146081B (zh) | 一种用于机器学习平台中创建模型项目的方法及装置 | |
CN103914385B (zh) | 面向安全苛刻系统并行测试的测试细则可视化动态构建方法 | |
CN102696026A (zh) | 带有增量改变的高效不可变句法表示 | |
CN108170435A (zh) | 一种源代码转换方法、装置及设备 | |
Lamela Seijas et al. | Towards property-based testing of RESTful web services | |
CN112860260A (zh) | 一种在高校场景下基于web的跨平台应用构建工具及方法 | |
CN109681165B (zh) | 用于油田采油中的注水策略优化方法及装置 | |
CN105630489B (zh) | 数据处理方法和数据处理装置 | |
Buchmann et al. | Handcrafting a Triple Graph Transformation System to Realize Round-trip Engineering Between UML Class Models and Java Source Code. | |
CN110362792A (zh) | 将rn文件转换为小程序文件的方法、装置及转换设备 | |
CN102193802A (zh) | 具有同基类结构模型子集的模型转换方法 | |
CN102707947B (zh) | 一种高效的动态类型转换的实现方法 | |
CN101650689B (zh) | 一种非易失性数据的存储和检索方法及装置 | |
CN105446788B (zh) | 一种信息处理方法及电子设备 | |
CN103164230B (zh) | 一种基于新特征模型的需求建模及模型转换方法 | |
CN107729011B (zh) | 一种基于模型转换的从iOS到Android的跨平台页面转化方法 | |
CN108399068A (zh) | 函数程序持久化的方法、电子设备及存储介质 | |
CN107728785A (zh) | 机器人交互方法及其系统 | |
CN108043029A (zh) | 逻辑控制方法及装置 | |
US7685582B2 (en) | Looping constructs in object model software | |
CN106610860A (zh) | 半导体装置的操作方法和半导体系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170718 |
|
RJ01 | Rejection of invention patent application after publication |