CN115861582B - 基于多智能体的虚拟现实引擎系统及实现方法 - Google Patents
基于多智能体的虚拟现实引擎系统及实现方法 Download PDFInfo
- Publication number
- CN115861582B CN115861582B CN202310148594.XA CN202310148594A CN115861582B CN 115861582 B CN115861582 B CN 115861582B CN 202310148594 A CN202310148594 A CN 202310148594A CN 115861582 B CN115861582 B CN 115861582B
- Authority
- CN
- China
- Prior art keywords
- unit
- agent
- module
- behavior
- graphic element
- 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.)
- Active
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明属于虚拟现实技术领域,公开了一种基于多智能体的虚拟现实引擎系统及实现方法。本发明通过一种虚拟现实引擎系统,对象封装单元用于将外部输入的原始资源或原始资源对应的功能资源封装组合封装得到对象,行为图创建单元用于将控制对象操作的指令按照时序逻辑关系组成行为图,模块生成单元用于根据对象与对象对应的行为图生成模块,智能体生成单元用于根据模块开辟独立数据空间,并在独立数据空间内将模块动态实例化得到智能体,智能体调度单元用于将智能体按照预设间隔时间推进运行,产生或响应离散事件,实现对现实世界的模拟,相对现有技术降低了工程师的使用门槛,无需二次开发即可完成现实模拟。
Description
技术领域
本发明涉及虚拟现实技术领域,尤其涉及一种基于多智能体的虚拟现实引擎系统及实现方法。
背景技术
随着工业生产的不断发展,在工业生产环节中,往往采用的是通过计算机预先模拟生产、装配环节,以及对工业产品的仿真应用,不过目前的方式都是由程序员根据技术员的要求进行开发,工程师无法直接参与到实际场景模拟仿真中,在这个过程中存在会受到沟通表达以及其他因素影响,导致最终结果偏离预期。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种基于多智能体的虚拟现实引擎系统及实现方法,旨在解决现有技术工程师无法直接进行对工业生产仿真的技术问题。
为实现上述目的,本发明提供了一种虚拟现实引擎系统,所述虚拟现实引擎系统包括对象封装单元、行为图创建单元、模块生成单元、智能体生成单元以及智能体调度单元;
所述对象封装单元,用于将外部输入的原始资源或所述原始资源对应的功能资源封装组合封装得到对象;
所述行为图创建单元,用于将控制所述对象操作的指令按照时序逻辑关系组成行为图;
所述模块生成单元,用于根据所述对象与所述对象对应的行为图生成模块;
所述智能体生成单元,用于根据所述模块开辟独立数据空间,并在所述独立数据空间内将所述模块动态实例化得到智能体;
所述智能体调度单元,用于将所述智能体按照预设间隔时间推进运行,产生或响应离散事件,实现对现实世界的模拟。
可选地,所述原始资源至少包括图片、模型、声音、数据库配置表、网络配置表及串口配置表。
可选地,所述对象至少包括基本对象与扩展对象,其中,基本对象至少包括资源对象、交互对象、逻辑对象,所述资源对象至少包括视觉对象、听觉对象及数据对象;
扩展对象至少包括:图片、按钮、热点、旋钮、变量、旋量、文字、按键、部件、体、图表、动画、触发器、粒子系统、程序、通信接口及外部设备接口。
可选地,所述智能体能够被动态创建和销毁,所述智能体内置智能体消息变量,在需要给智能体发送消息时,将所述消息内容赋予所述智能体消息变量,所述智能体能自动从所述智能体消息变量中获取消息并进行处理。
可选地,所述虚拟现实引擎系统还包括组件固化单元,所述组件固化单元,用于将所述模块单独保存,得到组件,并将所述组件加入到组件库,其中,所述组件是对所述模块的永久化,能直接从所述组件库中拖入到项目工程中使用。
可选地,所述对象封装单元,还用于根据所述对象的类型确定对象编辑方式,并根据所述对象编辑方式对所述对象进行编辑,其中,简单的编辑界面为属性表,通过属性名与属性值的方式编辑,对于动画编辑器,通过时间轴的方式编辑,对于粒子系统通过曲线图的方式编辑;
所述对象封装单元,还用于根据所述对象的类型确定对象呈现方式,并根据所述对象呈现方式将所述对象呈现,对一般对象以点、线、面几何元素的方式呈现,对体、部件、动画直接关联三维模型节点的以静态的三角形网格形式呈现,对图表或粒子系统在运行过程中产生动态图形,与实时计算的结果相关的以点、线或三角网格形式动态呈现。
可选地,所述行为图至少包括图元和有向弧,所述图元的类型至少包括启动、触发、定时、过程、程序、终端、分支和集线器,其中触发图元为行为图的开始图元,所述触发图元至少包括模块启动,条件触发和定时触发,所述行为图至少能够实现指令的串行、并行和循环,所述行为图还可以作为子图,嵌套在其他行为图中。
可选地,所述虚拟现实引擎系统还包括扩展单元;
所述扩展单元,用于将新的外部输入的原始数据通过C++语言封装为新的对象;
所述扩展单元,还用于以XML的形式将脚本程序封装为指令,并将所述指令添加到指令列表;
所述扩展单元,还用于将组件存储到组件库,使所述组件能够被调用。
可选地,所述指令至少包括指令类型、操作对象名、操作参数,所述指令类型代表所述指令能够完成的操作功能,所述操作对象名代表被操作的对象的路径名,所述操作参数代表完成该操作需要的参数配置。
此外,为实现上述目的,本发明还提出一种虚拟现实引擎实现方法,所述虚拟现实引擎实现方法应用于虚拟现实引擎系统,所述虚拟现实引擎系统包括对象封装单元、行为图创建单元、模块生成单元、智能体生成单元以及智能体调度单元;
所述对象封装单元将外部输入的原始资源与所述原始资源对应的功能资源封装组合封装得到对象;
所述行为图创建单元将控制所述对象操作的指令按照时序逻辑关系组成行为图;
所述模块生成单元根据所述对象与所述对象对应的行为图生成模块;
所述智能体生成单元根据所述模块开辟独立数据空间,并在所述独立数据空间内将所述模块动态实例化得到智能体;
所述智能体调度单元将所述智能体按照预设间隔时间推进运行,产生或响应离散事件,实现对现实世界的模拟。
本发明通过一种虚拟现实引擎系统,包括对象封装单元、行为图创建单元、模块生成单元、智能体生成单元以及智能体调度单元,其中所述对象封装单元,用于将外部输入的原始资源或所述原始资源对应的功能资源封装组合封装得到对象;所述行为图创建单元,用于将控制所述对象操作的指令按照时序逻辑关系组成行为图;所述模块生成单元,用于根据所述对象与所述对象对应的行为图生成模块;所述智能体生成单元,用于根据所述模块开辟独立数据空间,并在所述独立数据空间内将所述模块动态实例化得到智能体;所述智能体调度单元,用于将所述智能体按照预设间隔时间推进运行,产生或响应离散事件,实现对现实世界的模拟,通过上述功能单元将外部输入的原始数据转变为能够模拟现实世界中物体的属性以及操作,进而使工程师在虚拟引擎系统上是实现对现实世界的模拟。
附图说明
图1是本发明基于多智能体的虚拟现实引擎系统的组成示意图;
图2为本发明基于多智能体的虚拟现实引擎系统的结构示意图;
图3为本发明基于多智能体的虚拟现实引擎系统实现方法一实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明实施例提供了一种基于多智能体的虚拟现实引擎系统,参照图1,图1是本发明虚拟现实引擎系统的结构示意图。
在本实施例中,所述基于多智能体的虚拟现实引擎系统包括对象封装单元10、行为图创建单元20、模块生成单元30、智能体生成单元40以及智能体调度单元50;
所述对象封装单元10,用于将外部输入的原始资源或所述原始资源对应的功能资源封装组合封装得到对象。
需要说明的是,原始资源指的是对外部输入数据的总称,是所述基于多智能体的虚拟现实引擎系统进行二次开发的原始素材,原始资源至少包括图片、模型、声音、数据库配置表、网络配置表及串口配置表等,原始资源可以包括格式为png、jpg、bmp、tga、dds等的图片、格式为fbx、gltf、obj、stl、3ds、3dxml、step等的模型、格式为wav、mp3等的声音、sqlserver、orcale、mysql等数据库的数据库配置表、包括如TCP/IP、UDP的低层通信协议或protobuf的高层协议的网络配置表、包括modbus等协议的串口配置表等其他类型的外部输入资源。
可以理解的是,功能资源指的是与原始资源的对应的功能操作,例如图片的旋转、显示、隐藏等用于对原始资源的用于控制原始资源的功能操作。
应当理解的是,对象指的是对基本功能的封装,是将原始资源以及能够达到的操作打包封装为一个整体,将细节信息如原始素材的大小属性等以及功能实现的具体细节隐藏,形成一个对外一个完整的整体或以接口的形式对外展示,对象至少包括基本对象与扩展对象,其中基本对象至少包括资源对象、交互对象、逻辑对象等其他类型的对象,资源对象至少包括视觉对象、听觉对象及数据对象,视觉对象在底层以集合元素的形式显示出来,如三维模型的渲染、图表的绘制等,扩展对象是基于二次开发插件开发的,面向特定的应用功能,扩展对象至少包括具体可以包括图片、按钮、热点、旋钮、变量、旋量、文字、按键、部件、体、图表、触发器、粒子系统、程序、通信接口及外部设备接口等其他形式。
在具体实现中,对象封装单元10能够将外部输入的原始资源将与原始资源相对于的功能资源进行封装,根据原始资源与功能资源之间的对应关系,在对象封装单元10在接受到来自外部输入的原始资源时,对象封装单元10会根据当前的原始资源的类型,将相应的功能与原始资源一起封装,封装成为一个具备一定功能的,可被进一步利用的对象。
所述行为图创建单元20,用于将控制所述对象操作的指令按照时序逻辑关系组成行为图。
需要说明的是,指令至少包括指令类型、操作对象名、操作参数,所述指令类型代表所述指令能够完成的操作功能,所述操作对象名代表被操作的对象的路径名,所述操作参数代表完成该操作需要的参数配置,指令指的对对像的原子操作,行为图创建单元20预设置了一定的能够满足基本使用的指令,通过指令可以控制对象完成特定的功能应用,例如有一个平移指令平移50像素,将所述平移指令作用在图片对象上,可以使所述图像对象在所述平移指令的作用下向右平移50像素的距离,指令一般是包括指令类型、操作对象名、操作参数等组成。
应当理解的是,为了便于用户的开发,可以为指令提供展示形式,包括但不限于对话框的界面形式,能够让用户选择指令类型,进行配置对象名及指令参数,同时也允许用户自定义地扩展指令,用户可以通过编写XML的方式,将一段脚本程序封装成一个指令类型,在指令对话框中显示出来并供用户调用。
需要理解的是,所述行为图至少包括图元和有向弧,在行为图中,指令以图元的形式呈现,所述图元的类型至少包括启动、触发、定时、过程、程序、终端、分支和集线器,其中触发图元为行为图的开始图元,所述触发图元至少包括模块启动,条件触发和定时触发,所述行为图至少能够实现指令的串行、并行和循环,所述行为图还可以作为子图,嵌套在其他行为图中。
可以理解的是,时序逻辑关系指的时指令之间的逻辑先后顺序,对于一个对象而言,至少存在一个指令作用在对象上,当只有一个指令时,其时序逻辑关系则为先执行该指令,再无其他指令操作,而当一个对象别多条指令所作用,那么需要根据对象最终要完成的功能操作来对多条指令进行时序排序,如对象要达到的效果是按照向前移动50像素后左转再向前移动30像素,那么达到这个效果就需要有向前移动50像素、左转和向前移动30像素三条指令,并且按照如此的时间顺序进行执行,而这个时间顺序即为时序逻辑关系。
应当理解的是,行为图指的是表达指令执行的时序逻辑卷关系的有向图,也可以将行为图看作是指令按照一定的时序逻辑关系而形成的集合,在行为图中,指令以图元的形式呈现,并通过有向弧进行连接,当然行为图中也可由嵌套其他的行为图。
在具体实现中,行为图创建单元20是基于多智能体的虚拟现实引擎系统中的功能单元之一,可以根据实际的需求将指令与对象按照一定的时序逻辑关系连接起来,并且,当生成了行为图时,能够对所生成的行为图进行进一步的编辑、保存等形式的再操作,例如在行为图创建单元20根据实际需求生成了一个行为图,行为图创建单元20可以将生成的行为图进行保存,可以在以后的使用过程中将所述行为图调用;或者是在生成的行为图的基础上再进行添加、编辑或删除等操作。
所述模块生成单元30,用于根据所述对象与所述对象对应的行为图生成模块。
需要说明的是,模块是静态的,模块可以看作是对象与行为图的集合,模块可以单独存在,也可以进行嵌套,即父模块中可以包含至少一个子模块。
在具体实现中,模块生成单元30能够将若干个对象以及若干个行为图组合再一起,作为一个整体来实现特定的功能,例如一个风扇模块,可以包括按钮对象,扇叶对象,电机对象等,也包括其各自对应的行为图,当所述模块开始运行时,可以根据行为图中的指令时序对模块内的各个对象对应控制。
所述智能体生成单元40,用于根据所述模块开辟独立数据空间,并在所述独立数据空间内将所述模块动态实例化得到智能体。
需要说明的是,智能体指的是将模块进行实例化后而得到的,实例可以被创建和销毁,智能体一旦被创建,则该智能体具备了与对应模块一致的所有对象和行为,即具备了和模块一样的功能,但与模块的区别是拥有了智能体自己独立的数据空间。
在具体实现中,智能体拥有父模块下的唯一的名字,可以通过智能体名访问内部的所有对象,智能体之间可以通过变量进行消息通信,在每个智能体内置智能体变量消息,在需要给智能体发送消息时,直接给这个变量进行赋值,实现将发送的消息放入到消息缓冲区,智能体能够自动地从智能体消息变量获取到消息并进行处理,用户能够在行为图中自定义消息如何被处理。
所述智能体调度单元50,用于将所述智能体按照预设间隔时间推进运行,产生或响应离散事件,实现对现实世界的模拟。
需要说明的是,预设间隔时间指的是每个智能体在进行每个动作时中间的时间间隔,具体的间隔时间根据实际情况进行设置,本实施例对此不做限制,当实例化后的智能体按照预设时间进行推进,并通过产生或响应离散事件,能够时间将现实世界中的场景通过所述基于多智能体的虚拟现实引擎系统还原出来。
进一步地,所述基于多智能体的虚拟现实引擎系统还包括组件固化单元60,所述组件固化单元60,用于将所述模块单独保存,得到组件,并将所述组件加入到组件库,其中,所述组件对所述模块的永久化,能直接从所述组件库中拖入到项目工程中使用。
需要说明的时,组件是对模块的重用,组件固化单元60能够将较为通用的模块单独保存成本地文件,所保存下来的文件即为组件,因此,组件时永久化的,组件将被保存在组件库中,其中组件库可以为所述虚拟现实引擎中的本地存储,也可以为云端存储。
在具体实现中,组件固化单元60能够根据使用者的操作指令,获取被选择的模块中的对象以及行为图,将所述对象与行为图进行保存,并储存在组件内,组件库内的组件在基于多智能体的虚拟现实引擎系统工作时,不参与到其中,但是可以将组件库内的组件导入到基于多智能体的虚拟现实引擎系统中,将其导入至当前正在处理的项目工程中即可。
进一步地,所述对象封装单元10,还用于根据所述对象的类型确定对象编辑方式,并根据所述对象编辑方式对所述对象进行编辑,其中,简单的编辑界面为属性表,通过属性名与属性值的方式编辑,对于动画编辑器,通过时间轴的方式编辑,对于粒子系统通曲线图的方式编辑;
所述对象封装单元10,还用于根据所述对象的类型确定对象呈现方式,并根据所述对象呈现方式将所述对象呈现,对一般对象以点、线、面几何元素的方式呈现,对体、部件、动画直接关联三维模型节点的以静态的三角形网格形式呈现,对图表或粒子系统在运行过程中产生动态图形,与实时计算的结果相关的以点、线或三角网格形式动态呈现。
需要说明的是,对于不同类型的对象需要采用不同的对象编辑方式进行编辑,例如较为简单的编辑界面为“属性表”的界面形式,即属性名加属性值的方式,而稍微复杂的编辑界面,如对动画类型的对象进行编辑时,需要使用到动画的帧编辑器,需要使用到时间轴的形式,而对于粒子系统的对象时,基于其生命周期属性,对其进行编辑采用的时曲线图的形式。
应当理解的是,所述对象呈现方式指的是通过何种状态展示在用户面前,呈现方式根据不同的对象对于选取,对于一些逻辑对象,都有对应的图形呈现,例如以点、线、面等几何元素的方式呈现,对于体、动画、部件等由于直接关联三维模型界定,因此呈现的方式是静态的三角形网格的形式,也可以为三角形网格添加材质和纹理,并与场景的光源共同作用,形成带动态阴影、全局光闸的渲染图形,图表、粒子系统则是在运行过程中产生的动态图形,与实时计算的结果相关,以点、线或三角网格的形式动态地呈现。
在具体实现中,对象封装单元10首先会对原始资源进行分类,可以根据原始数据的格式或数据类型,将其分成如静态类、动态类或功能类的原始资源,在将其分类确定完成后,可以根据所述原始数据自身所携带的数据赋予初始的属性,或是对初始数据进行拟实修改。在另一方面,在进行对象呈现时,需要对对象的属性进行判断,通过查找所述对象的属性,确定其类型,并调用对应的呈现方式进行呈现,例如为动画类型的对象,则以静态的三角形网格的形式进行展示呈现。
进一步地,所述基于多智能体的虚拟现实引擎系统还包括扩展单元70;
所述扩展单元70,用于将新的外部输入的原始数据通过C++语言封装为新的对象;
所述扩展单元70,还用于以XML的形式将脚本程序封装为指令,并将所述指令添加到指令列表;
所述扩展单元70,还用于将所述组件存储到组件库,使所述组件能够被调用。
在具体实现中,扩展单元70能够丰富基于多智能体的虚拟现实引擎系统的可操作内容,其中扩展单元70能够为用户提供插件,当存在外部输入的原始数据输入到基于多智能体的虚拟现实引擎系统中,基于多智能体的虚拟现实引擎系统的插件能够通过C++的编译方式将原始数据封装为新的对象,此外,扩展单元70还支持扩展指令,扩展单元70能够将外部输入的XML 格式的脚本文件,转换为本系统中能够处理的数据形式,并将其进行封装,进而得到新的指令形式,同时也能够将新添加的指令存放到指令列表中,当需要进行现实仿真时可以直接从指令列表中调用指令,此外,扩展单元70能够将通用类型的组件存储到组件库中,其中所述通用类型的组件按可以为系统中生成的,也能够时从外部导入进来的,无论组件的来源,都可以将组件存入到组件库中,可以供向其他用户调用使用。
本实施例通过一种基于多智能体的虚拟现实引擎系统,包括对象封装单元10、行为图创建单元20、模块生成单元30、智能体生成单元40以及智能体调度单元50,其中所述对象封装单元10,用于将外部输入的原始资源或所述原始资源对应的功能资源封装组合封装得到对象;所述行为图创建单元20,用于将控制所述对象操作的指令按照时序逻辑关系组成行为图;所述模块生成单元30,用于根据所述对象与所述对象对应的行为图生成模块;所述智能体生成单元40,用于根据所述模块开辟独立数据空间,并在所述独立数据空间内将所述模块动态实例化得到智能体;所述智能体调度单元50,用于将所述智能体按照预设间隔时间推进,实现对现实世界的模拟,通过上述功能单元将外部输入的原始数据转变为能够模拟现实世界中物体的属性以及操作,进而使工程师在虚拟引擎系统上是实现对现实世界的模拟。
本发明实施例提供了一种基于多智能体的虚拟现实引擎系统实现方法,参照图3,图3为本发明一种虚拟现实引擎实现方法的流程示意图。
本实施例中,所述虚拟现实引擎实现方法应用于基于多智能体的虚拟现实引擎系统,所述基于多智能体的虚拟现实引擎系统包括对象封装单元、行为图创建单元、模块生成单元、智能体生成单元以及智能体调度单元,所述虚拟现实引擎实现方法包括以下步骤:
步骤S10:所述对象封装单元将外部输入的原始资源与所述原始资源对应的功能资源封装组合封装得到对象。
需要说明的是,原始资源指的是对外部输入数据的总称,是所述基于多智能体的虚拟现实引擎系统进行二次开发的原始素材,原始资源可以包括格式为png、jpg、bmp、tga、dds等的图片、格式为fbx、gltf、obj、stl、3ds、3dxml、step等的模型、格式为wav、mp3等的声音、sqlserver、orcale、mysql等数据库的数据库配置表、包括如TCP/IP、UDP的低层通信协议或protobuf的高层协议的网络配置表、包括modbus等协议的串口配置表等其他类型的外部输入资源。
可以理解的是,功能资源指的是与原始资源的对应的功能操作,例如图片的旋转、显示、隐藏等用于对原始资源的用于控制原始资源的功能操作。
应当理解的是,对象指的是对基本功能的封装,是将原始资源以及能够达到的操作打包封装为一个整体,将细节信息如原始素材的大小属性等以及功能实现的具体细节隐藏,形成一个对外一个完整的整体或以接口的形式对外展示,按照对象的类别也可以将其分成资源对象、交互对象、逻辑对象等其他类型的对象,具体可以包括图片、按钮、热点、旋钮、变量、旋量、文字、按键、部件、体、图表、触发器、粒子系统、程序、通信接口及外部设备接口等其他形式。
在具体实现中,对象封装单元能够将外部输入的原始资源按照资源类型进行分类,在进行封装时,可以根据具体的实际效果赋予原始资源特定的处理方式,例如在生成图片对象时,是将图片资源进行封装,图片资源的属性可以包括图片路径、中心点、尺寸大小等,而对于图片对象的指令可以包括显示、隐藏、淡入淡出、平移、旋转、缩放等。例如在生成按钮对象时,按钮对象也是对图片资源的封装,相对于图片对象对单个图片的封装,按钮涉及正常、悬浮、按下等三种状态图片的封装,对于按钮对象的指令包括按下、弹起、显示、隐藏、淡入淡出、平移等。按钮对象的事件包括按下、弹起、单击、双击等。
在生成热点对象时,热点对象也称控制点,是对三维模型节点的封装,当用户点击某个三维模型时触发相应的事件响应,热点对象的属性包括模型节点路径,热点对象的事件包括单击、双击等。在生成旋钮对象时,旋钮对象也是对三维模型节点的封装,模拟用户旋转模型到不同位置而触发不同的事件,旋钮对象的属性包括模型节点路径、角度序列等,热点对象的事件包括按下、旋转、弹起等。在生成变量对象时,变量是对数据的一种封装,包含整形、浮点型、字符串等类型,支持一维和多维数组,支持常规的数学运算、数学函数及字符串运算,除了用户自定义的变量之外,还包括内置的变量,包括系统内置变量以及对象内置变量,系统内置变量通常用于记录系统当前的状态值。对象内置变量用以记录对象当前的状态值,例如按钮包含名称为“状态”的内置变量,用以记录按钮当前的按下或弹起状态;旋钮包含“角度”的内置变量,用以记录当前旋转到的角度值。
在生成旋量对象时,旋量通常用于驱动机构的运动,首先需要指向一个模型节点,同时还包含一个基点(X,Y,Z)、一个旋转轴方向和一个旋转角度,其中,旋转轴方向为矢量类型,旋转角度为浮点型,表示物体绕轴旋转的状态。若旋转轴方向为零,则基点坐标表示平移方向,而旋转角度则表示平移的距离。旋量的运算是指旋转角的运算,与浮点型变量一致,即在运算时,旋量就是一个浮点型变量。
在生成文字对象时,文字对象将一个字符串显示在画面上,分为二维文字对象和三维文字对象。二维文字对象显示在屏幕坐标系中,不随相机旋转。而三维文字对象则显示在三维场景中,随相机旋转,文字对象的主要属性包括坐标、字体、颜色和文字内容,文字内容即为一个字符串。在生成按键对象时,按键是对键盘按键触发的功能封装,即当用户按下一个键时将触发某个事件,按键的属性主要是键值。在生成部件对象时,部件是对机械零部件拆装功能的封装,零部件的拆装运动包括平移和旋转,因此需要指定部件的平移方向和旋转轴。同时,零部件的拆装还涉及到拆装工具,因此部件还需要指定工具属性,包括各种型号的扳手以及其他特殊的拆装工具。部件包含一个名为“安装状态”的内置变量,用以自动记录当前是否安装到位。
在生成体对象时,体对象是对刚体运动的封装。刚体运动参数包括位移(X,Y,Z),和姿态,所述姿态至少包括航向角,俯仰角和滚转角,因此体对象首先指向一个模型节点,同时还包含 6 个浮点型变量,用以控制刚体的位置和姿态。在生成图表对象时,图表对象是显示在屏幕空间的二维图形,包括曲线、柱状图、饼状图、仪表盘等。图表对象的类型是可以扩充的。在生成动画对象时,分为帧动画和复合动画。帧动画允许用户在时间轴上一帧一帧地编辑动画内容。复合动画则允许用户将已创建好的动画在时间轴上按照并联和串联的方式组合起来。复合动画可以是帧动画的复合,也可以是复合动画的复合,或者两者的混合。在生成触发器对象时,触发器是指当某个条件满足时触发特定的事件。触发器的主要属性是条件,条件是变量构成的比较运算表达式。在运行时,当某个变量值发生变化,系统会自动计算其相关的条件表达式,若计算结果为 1,则启动相应的触发器。在生成粒子系统对象时,粒子系统是通过大量的粒子物理运行来模拟某种自然现象,如烟雾、爆炸、火焰等。粒子系统的主要属性包括描述粒子运动空间的属性,例如管道、半平面等,描述物理力场的属性,以及粒子本身的属性例如大小、纹理等。在生成程序对象时,程序提供一种编程的形式,让用户来操作其他对象,例如变量的运算、函数的调用等,用户可以通过 C++语法来完成。
步骤S20:所述行为图创建单元将控制所述对象操作的指令按照时序逻辑关系组成行为图。
需要说明的是,指令指的对对像的原子操作,行为图创建单元20预设置了一定的能够满足基本使用的指令,通过指令可以控制对象完成特定的功能应用,例如有一个平移指令平移50像素,将所述平移指令作用在图片对象上,可以使所述图像对象在所述平移指令的作用下向右平移50像素的距离,指令一般是包括指令类型、操作对象名、操作参数等组成。
可以理解的是,时序逻辑关系指的时指令之间的逻辑先后顺序,对于一个对象而言,至少存在一个指令作用在对象上,当只有一个指令时,其时序逻辑关系则为先执行该指令,再无其他指令操作,而当一个对象别多条指令所作用,那么需要根据对象最终要完成的功能操作来对多条指令进行时序排序,如对象要达到的效果是按照向前移动50像素后左转再向前移动30像素,那么达到这个效果就需要有向前移动50像素、左转和向前移动30像素三条指令,并且按照如此的时间顺序进行执行,而这个时间顺序即为时序逻辑关系。
应当理解的是,行为图指的是表达指令执行的时序逻辑卷关系的有向图,也可以将行为图看作是指令按照一定的时序逻辑关系而形成的集合,在行为图中,指令以图元的形式呈现,并通过有向弧进行连接,当然行为图中也可由嵌套其他的行为图。
在具体实现中,指令一般包括指令的类型、操作对象名、操作参数等。指令类型代表了该指令能够完成的操作功能的含义。操作对象名即被操作对象的路径名。操作参数是该操作完成所需要的参数配置。为了便于用户的开发,提供指令对话框的界面形式,让用户选择指令类型,配置对象名及指令参数。行为图是表达指令执行的时序逻辑关系的有向图。行为图可以看作是指令按照一定的时序逻辑关系构成的集合。在行为图中,指令以图元形式呈现,并通过有向弧进行连接。行为图中图元的类型有:启动、触发、定时、过程、程序、中断、分支、集线器等。
步骤S30:所述模块生成单元根据所述对象与所述对象对应的行为图生成模块。
需要说明的是,模块是对象与行为图的集合,是一种静态结构,模块也可以嵌套,父模块包含子模块,子模块有当前父模块下唯一的名字。
步骤S40:所述智能体生成单元根据所述模块开辟独立数据空间,并在所述独立数据空间内将所述模块动态实例化得到智能体。
需要说明的是,智能体是模块动态实例化后得到的,智能体可以被动态创建和销毁。一旦智能体被创建,则该智能体具备了与对应模块一致的所有对象和行为,即具备了和模块一样的功能,但拥有自己独立的数据空间。
在具体实现中,智能体拥有当前父模块下唯一的名字,可以通过智能体名访问其内部所有对象。智能体之间可以通过变量进行消息通信,具体的做法是每个智能体有一个内置的“智能体消息”变量,作为一个消息缓冲区。当需要给智能体发送消息时,直接给这个变量赋值,则“智能体消息”变量自动将当前消息放入消息缓冲区。智能体会自动从“智能体消息”数组中取出消息进行处理。用户在行为图中自定义消息如何被处理。
步骤S50:所述智能体调度单元将所述智能体按照预设间隔时间推进运行,产生或响应离散事件,实现对现实世界的模拟。
本实施例通过资源、对象、指令、行为、模块、组件、智能体、调度等技术要素实现对现实世界的模拟,其中,资源是指外部原始数据,如图片、声音、模型、视频、数据源等。对象是对资源和基本功能的封装,包括特定的属性表、事件表和指令集。指令是对对象的操作。行为是指令按照一定时序逻辑关系组织起来的集合,表现为行为图的形式。模块是对象和行为的集合,以行为驱动对象从而表现出特定的功能。组件是模块的永久化,以实现重用。智能体是模块的实例化,可以被动态创建和销毁,可以相互通信,智能体通过嵌套、聚合即构成了虚拟现实系统。调度是指虚拟现实系统按照一定时间间隔同步推进智能体行为的运行。实现将外部的原始数据变成基于多智能体的虚拟现实引擎系统中的一部分,将外部事物通过基于多智能体的虚拟现实引擎系统进行现实仿真,在使用上操作人员不需要通过程序编写的方式操作,而是通过将预先处理好的对象、模块、组件进行组合复用,提高技术人员的开发效率。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种基于多智能体的虚拟现实引擎系统,其特征在于,所述虚拟现实引擎系统包括对象封装单元、行为图创建单元、模块生成单元、智能体生成单元以及智能体调度单元;
所述对象封装单元,用于将外部输入的原始资源或所述原始资源对应的功能资源封装组合封装得到对象;
所述行为图创建单元,用于将控制所述对象操作的指令按照时序逻辑关系组成行为图;
所述模块生成单元,用于根据所述对象与所述对象对应的行为图生成模块;
所述智能体生成单元,用于根据所述模块开辟独立数据空间,并在所述独立数据空间内将所述模块动态实例化得到智能体;
所述智能体调度单元,用于将所述智能体按照预设间隔时间推进运行,产生或响应离散事件,实现对现实世界的模拟;
其中,所述智能体能够被动态创建和销毁,所述智能体内置智能体消息变量,在需要给智能体发送消息时,将所述消息内容赋予所述智能体消息变量,所述智能体能自动从所述智能体消息变量中获取消息并进行处理;
所述行为图至少包括图元和有向弧,所述图元的类型至少包括启动、触发、定时、过程、程序、终端、分支和集线器,其中触发图元为行为图的开始图元,所述触发图元至少包括模块启动,条件触发和定时触发,所述行为图至少能够实现指令的串行、并行和循环,所述行为图还可以作为子图,嵌套在其他行为图中。
2.如权利要求1所述的基于多智能体的虚拟现实引擎系统,其特征在于,所述原始资源至少包括图片、模型、声音、数据库配置表、网络配置表及串口配置表。
3.如权利要求1所述的基于多智能体的虚拟现实引擎系统,其特征在于,所述对象至少包括基本对象与扩展对象,其中,基本对象至少包括资源对象、交互对象、逻辑对象,所述资源对象至少包括视觉对象、听觉对象及数据对象;
扩展对象至少包括:图片、按钮、热点、旋钮、变量、旋量、文字、按键、部件、体、图表、动画、触发器、粒子系统、程序、通信接口及外部设备接口。
4.如权利要求1所述的基于多智能体的虚拟现实引擎系统,其特征在于,所述虚拟现实引擎系统还包括组件固化单元,所述组件固化单元,用于将所述模块单独保存,得到组件,并将所述组件加入到组件库,其中,所述组件是对所述模块的永久化,能直接从所述组件库中拖入到项目工程中使用。
5.如权利要求1所述的基于多智能体的虚拟现实引擎系统,其特征在于,所述对象封装单元,还用于根据所述对象的类型确定对象编辑方式,并根据所述对象编辑方式对所述对象进行编辑,其中,简单的编辑界面为属性表,通过属性名与属性值的方式编辑,对于动画编辑器,通过时间轴的方式编辑,对于粒子系统通过曲线图的方式编辑;
所述对象封装单元,还用于根据所述对象的类型确定对象呈现方式,并根据所述对象呈现方式将所述对象呈现,对一般对象以点、线、面几何元素的方式呈现,对体、部件、动画直接关联三维模型节点的以静态的三角形网格形式呈现,对图表或粒子系统在运行过程中产生动态图形,与实时计算的结果相关的以点、线或三角网格形式动态呈现。
6.如权利要求1所述的基于多智能体的虚拟现实引擎系统,其特征在于,所述虚拟现实引擎系统还包括扩展单元;
所述扩展单元,用于将新的外部输入的原始数据通过C++语言封装为新的对象;
所述扩展单元,还用于以XML的形式将脚本程序封装为指令,并将所述指令添加到指令列表;
所述扩展单元,还用于将组件存储到组件库,使所述组件能够被调用。
7.如权利要求1所述的基于多智能体的虚拟现实引擎系统,其特征在于,所述指令至少包括指令类型、操作对象名、操作参数,所述指令类型代表所述指令能够完成的操作功能,所述操作对象名代表被操作的对象的路径名,所述操作参数代表完成该操作需要的参数配置。
8.一种基于多智能体的虚拟现实引擎系统实现方法,其特征在于,所述虚拟现实引擎实现方法应用于如权利要求1-7中任一项所述的虚拟现实引擎系统,所述虚拟现实引擎系统包括对象封装单元、行为图创建单元、模块生成单元、智能体生成单元以及智能体调度单元;
所述对象封装单元将外部输入的原始资源与所述原始资源对应的功能资源封装组合封装得到对象;
所述行为图创建单元将控制所述对象操作的指令按照时序逻辑关系组成行为图;
所述模块生成单元根据所述对象与所述对象对应的行为图生成模块;
所述智能体生成单元根据所述模块开辟独立数据空间,并在所述独立数据空间内将所述模块动态实例化得到智能体;
所述智能体调度单元将所述智能体按照预设间隔时间推进运行,产生或响应离散事件,实现对现实世界的模拟;
其中,所述智能体能够被动态创建和销毁,所述智能体内置智能体消息变量,在需要给智能体发送消息时,将所述消息内容赋予所述智能体消息变量,所述智能体能自动从所述智能体消息变量中获取消息并进行处理;
所述行为图至少包括图元和有向弧,所述图元的类型至少包括启动、触发、定时、过程、程序、终端、分支和集线器,其中触发图元为行为图的开始图元,所述触发图元至少包括模块启动,条件触发和定时触发,所述行为图至少能够实现指令的串行、并行和循环,所述行为图还可以作为子图,嵌套在其他行为图中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310148594.XA CN115861582B (zh) | 2023-02-22 | 2023-02-22 | 基于多智能体的虚拟现实引擎系统及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310148594.XA CN115861582B (zh) | 2023-02-22 | 2023-02-22 | 基于多智能体的虚拟现实引擎系统及实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115861582A CN115861582A (zh) | 2023-03-28 |
CN115861582B true CN115861582B (zh) | 2023-05-12 |
Family
ID=85658671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310148594.XA Active CN115861582B (zh) | 2023-02-22 | 2023-02-22 | 基于多智能体的虚拟现实引擎系统及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115861582B (zh) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810741B (zh) * | 2014-02-19 | 2016-11-09 | 重庆邮电大学 | 一种基于多智能体的井下应急撤离虚拟人群仿真方法 |
US11055451B2 (en) * | 2015-10-28 | 2021-07-06 | Qomplx, Inc. | System and methods for multi-language abstract model creation for digital environment simulations |
JP6793905B2 (ja) * | 2016-03-25 | 2020-12-02 | 株式会社国際電気通信基礎技術研究所 | ロボットの行動シミュレーション装置 |
IL250605B (en) * | 2017-02-14 | 2021-02-28 | Brillianetor Ltd | System and method for operating an artificial social network |
CN112446603A (zh) * | 2020-11-20 | 2021-03-05 | 北京航空航天大学 | 基于服务智能体的云制造系统仿真方法 |
CN112987937A (zh) * | 2021-05-20 | 2021-06-18 | 中国科学院空天信息创新研究院 | 一种基于环境模拟和眼动交互的洪水灾害感知系统及方法 |
JP7494802B2 (ja) * | 2021-06-08 | 2024-06-04 | トヨタ自動車株式会社 | マルチエージェントシミュレーションシステム及びマルチエージェントシミュレーション方法 |
US20220398427A1 (en) * | 2021-06-10 | 2022-12-15 | Disney Enterprises, Inc. | Context-Based Social Agent Interaction |
CN113721905A (zh) * | 2021-08-30 | 2021-11-30 | 武汉真蓝三维科技有限公司 | 一种三维数字化软件开发的无码化编程系统及编程方法 |
CN114091251B (zh) * | 2021-11-19 | 2024-07-09 | 中国人民解放军国防科技大学 | 面向多智能体群体行为的仿真系统及方法 |
CN113987842B (zh) * | 2021-12-24 | 2022-04-08 | 湖南高至科技有限公司 | 基于知识图谱的bdi建模方法、装置、设备和介质 |
-
2023
- 2023-02-22 CN CN202310148594.XA patent/CN115861582B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115861582A (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5261041A (en) | Computer controlled animation system based on definitional animated objects and methods of manipulating same | |
JP4312249B2 (ja) | アニメーションデータから3dアニメーションを作成する方法 | |
Gomez | Twixt: A 3d animation system | |
CN111079244B (zh) | 一种基于行为树的分布式仿真平台 | |
CN112365597A (zh) | 基于Modelica的三维模型创建与可视化仿真方法及装置 | |
CN113721905A (zh) | 一种三维数字化软件开发的无码化编程系统及编程方法 | |
CN115098100A (zh) | 基于云原生面向工业应用场景的数字孪生体组件驱动方法 | |
US11625900B2 (en) | Broker for instancing | |
CN115861582B (zh) | 基于多智能体的虚拟现实引擎系统及实现方法 | |
CN111897530B (zh) | 基于ue4平台的ui系统及方法 | |
Quick | Monitoring and control of systems by interactive virtual environments | |
Salmela et al. | Smart virtual prototypes: distributed 3D product simulations for Web based environments | |
Zheng et al. | FEView: An interactive visualization tool for finite elements | |
CN115170707B (zh) | 基于应用程序框架的3d图像实现系统及方法 | |
Whyte et al. | Visualization and information: a building design perspective | |
Kiss | Web based VRML modeling | |
CN113805532B (zh) | 一种制作实体机器人动作的方法及终端 | |
JP2002092639A (ja) | パーティクルの挙動を表示するアニメーション生成方法および装置 | |
Geiger et al. | Authoring communicating agents in virtual environments | |
CN117008894A (zh) | 一种基于混合现实技术的拆装信息快速配置方法 | |
CN115205430A (zh) | 针对3d文件的导入导出方法及装置 | |
Erkan et al. | Object‐oriented motion abstraction | |
Noser | Lworld: an animation system based on rewriting | |
CN117611763A (zh) | 一种建筑群模型的生成方法、装置、介质及设备 | |
Zhong | A Virtual Environment for Visualization of Electronics Assembly Processes |
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 |