CN117032895A - 一种基于虚幻引擎的仿真运行控制方法及系统 - Google Patents

一种基于虚幻引擎的仿真运行控制方法及系统 Download PDF

Info

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
Application number
CN202311043278.2A
Other languages
English (en)
Inventor
潘正宵
王松
陈功
任斯远
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Fluid Power Innovation Center
Original Assignee
Chengdu Fluid Power Innovation Center
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Fluid Power Innovation Center filed Critical Chengdu Fluid Power Innovation Center
Priority to CN202311043278.2A priority Critical patent/CN117032895A/zh
Publication of CN117032895A publication Critical patent/CN117032895A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44589Program code verification, e.g. Java bytecode verification, proof-carrying code
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total 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所述的基于虚幻引擎的仿真运行控制系统,其特征在于,所述仿真平台工程单元通过编译为动态链接库集成至所述虚幻引擎工程单元中。
CN202311043278.2A 2023-08-18 2023-08-18 一种基于虚幻引擎的仿真运行控制方法及系统 Pending CN117032895A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117742540A (zh) * 2024-02-20 2024-03-22 成都流体动力创新中心 一种基于虚幻引擎与半实物仿真的虚实交互系统

Cited By (2)

* Cited by examiner, † Cited by third party
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