CN117032895A - 一种基于虚幻引擎的仿真运行控制方法及系统 - Google Patents
一种基于虚幻引擎的仿真运行控制方法及系统 Download PDFInfo
- Publication number
- CN117032895A CN117032895A CN202311043278.2A CN202311043278A CN117032895A CN 117032895 A CN117032895 A CN 117032895A CN 202311043278 A CN202311043278 A CN 202311043278A CN 117032895 A CN117032895 A CN 117032895A
- Authority
- CN
- China
- Prior art keywords
- simulation
- function
- engine
- platform
- creating
- 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
- 238000004088 simulation Methods 0.000 title claims abstract description 107
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000008569 process Effects 0.000 claims abstract description 16
- 238000004806 packaging method and process Methods 0.000 claims abstract description 4
- 230000000007 visual effect Effects 0.000 claims description 7
- 238000003825 pressing Methods 0.000 claims description 4
- 230000001133 acceleration Effects 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 3
- 238000005094 computer simulation Methods 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44589—Program code verification, e.g. Java bytecode verification, proof-carrying code
-
- 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
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于虚幻引擎的仿真运行控制方法及系统,包括创建虚拟引擎项目,并创建线程;构建仿真平台工程单元并进行封装,获得动态链接库文件;将动态链接库文件引入虚拟引擎项目中;在虚幻引擎编辑器中导入平台模型资源,并在编辑器中创建新列表,构建平台模型索引;在虚幻引擎项目中创建蓝图函数库;在虚幻引擎编辑器中新建用户控件,将用户控件与蓝图函数库中的控制函数关联调用;运行仿真平台线程,执行仿真进程。本发明将仿真平台以动态链接库的方式接入虚幻引擎框架,并在虚幻引擎工程中以线程的方式运行仿真程序,解决了基于虚幻引擎控制外部仿真系统运行,并实时展现仿真平台所传输的仿真数据的问题,更好的实现了仿真效果。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种基于虚幻引擎的仿真运行控制方法及系统。
背景技术
虚幻引擎(Unreal Engine,简称UE)是一款开源的工业级开发引擎,因其强大的实时渲染能力、高真实感的画质效果及开源社区上丰富的辅助开发工具,使其成为当下最流行的游戏引擎之一。除了游戏,虚幻引擎被广泛应用于高精度仿真、电影制作、虚拟现实等诸多领域。
在计算机仿真领域,利用虚幻引擎强大的物理引擎、场景渲染和交互展现能力,可以开展实体细粒度建模、自然环境模拟和交互界面开发等工作。但虚幻引擎是一个通用的游戏开发平台,运行机制等方面并不能完全满足特定领域计算机仿真的需求。主流的计算机仿真系统提供了领域仿真所需的成熟、系统的解决方案,但往往在仿真场景渲染、结果展现、人机交互等方面并不擅长。
发明内容
为解决上述问题,本发明提供了一种基于虚幻引擎的仿真运行控制方法,具体技术方案如下:
S1:创建虚拟引擎项目,并创建线程;
S2:构建仿真平台工程单元并进行封装,获得动态链接库文件;
S3:将所述动态链接库文件引入所述虚拟引擎项目中;
S4:在虚幻引擎编辑器中导入平台模型资源,并在编辑器中创建新列表,构建平台模型索引;
S5:在虚幻引擎项目中创建蓝图函数库;
S6:在虚幻引擎编辑器中新建用户控件,将所述用户控件与所述蓝图函数库中的控制函数关联调用;
S7:运行仿真平台线程,执行仿真进程。
进一步的,步骤S2中,封装仿真平台工程单元,具体如下:
创建控制器类和回调类;
在所述控制器类中创建控制函数,所述控制函数至少包括启动、暂停、停止、加速、减速的控制函数;
在所述回调类中创建消息更新函数,获取仿真数据,并通过调用回调函数进行更新。
进一步的,步骤S5中,创建蓝图函数库,具体如下:
S501:在虚幻引擎编辑器中新建类,继承BlueprintFunctionLibrary类,在新建类中,创建模型相关函数;
S502:在虚幻引擎项目中导入所述控制器类的头文件,创建控制相关函数,调用所述仿真平台工程单元中的控制函数。
进一步的,步骤S7中,运行仿真平台线程,具体过程如下:
S701:初始化仿真平台线程,绑定回调函数;
S702:通过所述用户控件调用创建仿真平台线程的函数,运行仿真平台线程;
S703:调用仿真平台中的启动控制函数,根据虚幻引擎端提供的文件路径,读取仿真输入文件,将模型平台数据压入队列,执行仿真进程。
进一步的,步骤S3中,通过在Visual Studio中设置项目的工程属性引入动态链接库文件所在路径。
进一步的,还包括在虚幻引擎编辑器中新建类,继承AActor类,重写Tick事件,在Tick事件中调用模型生成函数以及模型数据更新函数。
进一步的,所述模型生成函数,执行逻辑如下:
检查模型平台队列中是否有模型,如果有,则根据输入的参数,查询所述平台模型索引,找到指定的模型,并添加到游戏场景中。
进一步的,所述模型数据更新函数,执行逻辑如下:
读取仿真平台线程中返回的数据,并改变模型的位置、姿态和状态。
本发明还公开了一种基于虚幻引擎的仿真运行控制系统,包括仿真平台工程单元和虚幻引擎工程单元,所述仿真平台工程单元集成在所述虚幻引擎工程单元中;
所述虚幻引擎工程单元还包括线程类、平台模型资源、蓝图函数库以及用户控件;
所述仿真平台工程单元包括控制模块和回调模块;
所述控制模块用于提供控制接口,包括对仿真平台的暂停、开始、快进、停止的功能控制接口;
所述回调模块包括若干回调函数。
进一步的,所述仿真平台工程单元通过编译为动态链接库集成至所述虚幻引擎工程单元中。
本发明的有益效果如下:
本发明将仿真平台以动态链接库的方式接入虚幻引擎框架,并在虚幻引擎工程中以线程的方式运行仿真程序,虚幻引擎主程序利用线程通讯方法实现虚幻引擎与仿真平台的控制指令与仿真信息的交互,解决了基于虚幻引擎控制外部仿真系统运行,并实时展现仿真平台所传输的仿真数据的问题;本发明通过将主流仿真平台集成到虚幻引擎框架下,发挥虚幻引擎与仿真系统各自的优势,更好的实现了仿真效果。
附图说明
图1是方法流程示意图。
图2是仿真平台动态链接库中具体实现流程图。
图3是虚幻引擎项目中具体实现流程图。
具体实施方式
在下面的描述中对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例的描述中,需要说明的是,指示方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,或者是本领域技术人员惯常理解的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本发明实施例的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是直接连接,也可以通过中间媒介间接连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
实施例1
本发明的实施例1公开了一种基于虚幻引擎的仿真运行控制方法,该方法基于Visual Studio进行开发;
如图1所示,具体如下:
S1:创建虚拟引擎项目,并创建线程;
具体的,在虚幻引擎项目中创建C++类,继承FRunnable类,重写初始化(Init)、启动(Run)、暂停(Stop)、停止(Exit)函数,实现创建线程功能;
在此说明,虚幻引擎Runnable是一个可以在另一个线程中运行的接口,可用于异步操作和多线程编程。
本实施例中,还包括编写数据更新函数,包括平台和链路的增加、删除等功能逻辑,并在线程初始化时将数据更新函数进行回调函数绑定。
函数的实现为本领域技术人员熟知的现有方式,编写方式不做具体限定。
S2:构建仿真平台工程单元并进行封装,获得动态链接库文件;
本实施例中,封装仿真平台工程单元,具体如下:
新建项目创建控制器类和回调类;
在所述控制器类中创建控制函数,所述控制函数至少包括启动、暂停、停止、加速、减速的控制函数;
其中启动控制函数中执行回调绑定,并持续订阅仿真数据,调用消息更新函数。
在所述回调类中创建消息更新函数,获取仿真数据,并通过调用回调函数进行更新。
将该项目进行编译,获得动态链接库(*.dll)文件;
具体为,在通过Visual Studio创建空C++项目后,在项目属性“配置类型”中选择输出成动态链接库形式,在“C/C++”和“链接器”属性中,分别包含项目所需头文件和静态链接库。
S3:将所述动态链接库(*.dll)文件引入所述虚拟引擎项目的工程文件中,在Visual Studio中设置项目的工程属性,在“链接器”中引入动态链接库文件所在路径。
S4:在虚幻引擎编辑器中导入平台模型资源,并在编辑器中创建新列表,构建平台模型索引;
S5:在虚幻引擎项目中创建蓝图函数库;
本实施例中,创建蓝图函数库,具体如下:
S501:在虚幻引擎编辑器中新建类,继承BlueprintFunctionLibrary类,用于扩展蓝图中可实现的功能;
在新建类中,创建模型相关函数,包括平台模型生成函数和模型数据更新函数;
S502:在虚幻引擎项目中导入所述控制器类的头文件,创建控制相关函数,调用所述仿真平台工程单元中的控制函数。
本实施例中,还包括在虚幻引擎编辑器中新建类,继承AActor类,重写Tick事件,在Tick事件中调用模型生成函数以及模型数据更新函数;
所述模型生成函数,执行逻辑如下:
检查模型平台队列中是否有模型,如果有,则根据输入的参数,查询所述平台模型索引,找到指定的模型,并添加到游戏场景中。
所述模型数据更新函数,执行逻辑如下:
读取仿真平台线程中返回的数据,并改变模型的位置、姿态和状态,实现在仿真过程中的可视化展示。
S6:在虚幻引擎编辑器中新建用户控件,将所述用户控件与所述蓝图函数库中的控制函数关联调用;在虚幻引擎项目运行过程中,通过按钮实现对仿真平台的控制。
S7:运行仿真平台线程,执行仿真进程。
本实施例中,运行仿真平台线程,具体过程如下:
S701:在虚幻引擎游戏线程执行过程中,通过步骤S6创建的所述用户控件,调用函数,初始化仿真平台线程,绑定回调函数;
S702:线程运行时,通过所述用户控件调用创建仿真平台线程的函数,运行仿真平台线程;
S703:调用仿真平台中的启动控制函数,根据虚幻引擎端提供的文件路径,读取仿真输入文件,将模型平台数据压入队列,执行仿真进程,直至仿真结束,或被手动停止。
实施例2
本发明的实施例2基于上述实施例1公开了一种基于虚幻引擎的仿真运行控制系统,如图2和图3所示,具体如下:
系统包括仿真平台工程单元和虚幻引擎工程单元,所述仿真平台工程单元集成在所述虚幻引擎工程单元中;
本实施例中,所述仿真平台工程单元通过编译为动态链接库集成至所述虚幻引擎工程单元中。
所述虚幻引擎工程单元还包括线程类、平台模型资源、蓝图函数库以及用户控件;
结合图3所示,基于虚拟引擎的仿真运行控制工程如下:
通过用户控件启动仿真平台线程,初始化线程,线程初始化时将数据更新函数进行回调函数绑定;执行线程,调用仿真平台工程单元中的启动控制函数,根据虚幻引擎端提供的文件路径,读取仿真输入文件,将模型平台数据压入队列,执行仿真进程,直至仿真结束,或被手动停止。
在游戏运行中,通过控件调用控制函数,本实施例中,在虚拟引擎编辑器中,还也包括继承AActor类的C++类,在其中重写Tick事件,调用模型生成函数以及模型数据更新函数;
检查获取模型平台队列中是否有模型,如果有,则根据输入的参数,查询所述平台模型索引,找到指定的模型,并添加到游戏场景中;若没有,则调用模型生成函数;通过调用模型数据更新函数读取仿真平台线程中返回的数据,并改变模型的位置、姿态和状态,实现在仿真过程中的可视化展示。
所述仿真平台工程单元包括控制模块和回调模块;
所述控制模块用于提供控制接口,包括对仿真平台的暂停、开始、快进、停止的功能控制接口;
所述回调模块包括若干回调函数;
结合图2所示,仿真平台工程单元,运行逻辑如下:
控制函数被调用时,根据对应控件的调用执行相应函数逻辑,当调用启动控制函数时,读取仿真输入文件,将模型平台数据压入队列,绑定回调函数,执行线程时,根据订阅消息,调用消息更新函数;
回调函数被调用时,通过消息更新函数,获取仿真平台线程中返回的数据,基于回调函数,实现数据传递更新。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
Claims (10)
1.一种基于虚幻引擎的仿真运行控制方法,其特征在于,包括:
S1:创建虚拟引擎项目,并创建线程;
S2:构建仿真平台工程单元并进行封装,获得动态链接库文件;
S3:将所述动态链接库文件引入所述虚拟引擎项目中;
S4:在虚幻引擎编辑器中导入平台模型资源,并在编辑器中创建新列表,构建平台模型索引;
S5:在虚幻引擎项目中创建蓝图函数库;
S6:在虚幻引擎编辑器中新建用户控件,将所述用户控件与所述蓝图函数库中的控制函数关联调用;
S7:运行仿真平台线程,执行仿真进程。
2.根据权利要求1所述的基于虚幻引擎的仿真运行控制方法,其特征在于,步骤S2中,封装仿真平台工程单元,具体如下:
创建控制器类和回调类;
在所述控制器类中创建控制函数,所述控制函数至少包括启动、暂停、停止、加速、减速的控制函数;
在所述回调类中创建消息更新函数,获取仿真数据,并通过调用回调函数进行更新。
3.根据权利要求2所述的基于虚幻引擎的仿真运行控制方法,其特征在于,步骤S5中,创建蓝图函数库,具体如下:
S501:在虚幻引擎编辑器中新建类,继承BlueprintFunctionLibrary类,在新建类中,创建模型相关函数;
S502:在虚幻引擎项目中导入所述控制器类的头文件,创建控制相关函数,调用所述仿真平台工程单元中的控制函数。
4.根据权利要求3所述的基于虚幻引擎的仿真运行控制方法,其特征在于,步骤S7中,运行仿真平台线程,具体过程如下:
S701:初始化仿真平台线程,绑定回调函数;
S702:通过所述用户控件调用创建仿真平台线程的函数,运行仿真平台线程;
S703:调用仿真平台中的启动控制函数,根据虚幻引擎端提供的文件路径,读取仿真输入文件,将模型平台数据压入队列,执行仿真进程。
5.根据权利要求1所述的基于虚幻引擎的仿真运行控制方法,其特征在于,步骤S3中,通过在Visual Studio中设置项目的工程属性引入动态链接库文件所在路径。
6.根据权利要求1-5任一所述的基于虚幻引擎的仿真运行控制方法,其特征在于,还包括在虚幻引擎编辑器中新建类,继承AActor类,重写Tick事件,在Tick事件中调用模型生成函数以及模型数据更新函数。
7.根据权利要求6所述的基于虚幻引擎的仿真运行控制方法,其特征在于,所述模型生成函数,执行逻辑如下:
检查模型平台队列中是否有模型,如果有,则根据输入的参数,查询所述平台模型索引,找到指定的模型,并添加到游戏场景中。
8.根据权利要求6所述的基于虚幻引擎的仿真运行控制方法,其特征在于,所述模型数据更新函数,执行逻辑如下:
读取仿真平台线程中返回的数据,并改变模型的位置、姿态和状态。
9.一种基于虚幻引擎的仿真运行控制系统,其特征在于,仿真平台工程单元和虚幻引擎工程单元,所述仿真平台工程单元集成在所述虚幻引擎工程单元中;
所述虚幻引擎工程单元还包括线程类、平台模型资源、蓝图函数库以及用户控件;
所述仿真平台工程单元包括控制模块和回调模块;
所述控制模块用于提供控制接口,包括对仿真平台的暂停、开始、快进、停止的功能控制接口;
所述回调模块包括若干回调函数。
10.根据权利要求9所述的基于虚幻引擎的仿真运行控制系统,其特征在于,所述仿真平台工程单元通过编译为动态链接库集成至所述虚幻引擎工程单元中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311043278.2A CN117032895A (zh) | 2023-08-18 | 2023-08-18 | 一种基于虚幻引擎的仿真运行控制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311043278.2A CN117032895A (zh) | 2023-08-18 | 2023-08-18 | 一种基于虚幻引擎的仿真运行控制方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117032895A true CN117032895A (zh) | 2023-11-10 |
Family
ID=88638873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311043278.2A Pending CN117032895A (zh) | 2023-08-18 | 2023-08-18 | 一种基于虚幻引擎的仿真运行控制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117032895A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117742540A (zh) * | 2024-02-20 | 2024-03-22 | 成都流体动力创新中心 | 一种基于虚幻引擎与半实物仿真的虚实交互系统 |
-
2023
- 2023-08-18 CN CN202311043278.2A patent/CN117032895A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117742540A (zh) * | 2024-02-20 | 2024-03-22 | 成都流体动力创新中心 | 一种基于虚幻引擎与半实物仿真的虚实交互系统 |
CN117742540B (zh) * | 2024-02-20 | 2024-05-10 | 成都流体动力创新中心 | 一种基于虚幻引擎与半实物仿真的虚实交互系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10599405B2 (en) | Application system having an LLVM compiler | |
US7477254B2 (en) | Smooth transitions between animations | |
US7336280B2 (en) | Coordinating animations and media in computer display output | |
US10846816B2 (en) | Multi-user application system environment engine | |
ZA200404107B (en) | Creating and executing animation behaviour for GUI. | |
CN117032895A (zh) | 一种基于虚幻引擎的仿真运行控制方法及系统 | |
US20230290032A1 (en) | Physical special effect rendering method and apparatus, computer device, and storage medium | |
Schwab et al. | Scalable scalable vector graphics: Automatic translation of interactive svgs to a multithread vdom for fast rendering | |
US20070085853A1 (en) | Inheritance context for graphics primitives | |
JP2001006001A (ja) | 三次元表現制御システムと方法およびその処理プログラムを記録した記録媒体 | |
Soininen | Jetpack Compose vs React Native–Differences in UI Development | |
Chen et al. | jGL and its Applications as a Web3D Platform | |
WO2007041901A1 (en) | System and method for formal verification of statecharts | |
CN219980888U (zh) | 一种可二次开发的嵌入式安防监控设备 | |
EP1410183A2 (en) | Multi-platform interactive applications | |
CN111813400B (zh) | 动作事件处理方法、装置、电子设备及计算机存储介质 | |
Kammer et al. | A component-oriented framework for experimental computer graphics | |
CN115964039A (zh) | 一种TDu配置表三维引擎框架及其运行方法 | |
Topchii | Responsive Scrollable Dynamic User Interface on iOS | |
Brendel et al. | Exploring the immediate mode GUI concept for graphical user interfaces in mixed reality applications | |
CN114168125A (zh) | 一种模块化开发的系统 | |
CN117369805A (zh) | 基于vapsxt与qt的显示画面模型验证方法、存储介质及终端 | |
CN116192897A (zh) | 物联网组件的开发方法及装置 | |
Gobbetti et al. | Building an interactive 3D animation system | |
CN117274471A (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 |