掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及UE4引擎技术领域,特别是涉及一种工业模型中配件拆装方法、装置、计算机设备和存储介质。

背景技术

以UE4引擎为应用背景,在现有的工业模型拆装过程中,拆卸模型配件的实现方式较为简单,只需要利用虚拟手柄的射线对目标配件进行抓取、移动与释放这一系列常规操作即可,然而针对组装模型配件的实现方式,目前技术人员的研究方向集中在于利用工业模型的当前位置与初始位置之间的比较结果来判断虚拟手柄所释放的目标配件是否重新放置到拆卸前的初始位置上,却忽略了工业模型的当前位置有可能偏离模型中心点较远这一关键信息,无法保证目标配件的准确组装。

发明内容

本发明的目的在于克服现有技术的不足,提供了一种工业模型中配件拆装方法、装置、计算机设备和存储介质,使得被拆卸出来的目标配件可通过简单的模型碰撞响应来实现准确组装。

为了解决上述中至少一个技术问题,本发明实施例提供了一种工业模型中配件拆装方法,所述方法包括:

创建一个模型拆装逻辑的管理蓝图,并在所述管理蓝图下添加一个Scene组件,所述Scene组件用于处理配件模型的位置调整指令;

声明一个静态模型类型的数组,将工业模型中所包含的若干个配件模型存储至所述数组中,再通过遍历数组的方式生成所述若干个配件模型所对应的若干个模型配件蓝图,同时以所述数组为模板,生成所述若干个配件模型所对应的若干个模型配件组装位置蓝图;

将每一个模型配件蓝图的跟组件与每一个模型配件组装位置蓝图的跟组件附加到所述Scene组件上,并设定每一个模型配件蓝图为模型显示状态且保持每一个模型配件组装位置蓝图为模型隐藏状态;

当用户通过操控虚拟手柄将所述若干个模型配件蓝图进行抓取并移动至空置地方时,完成对所述若干个配件模型的拆卸工作;

当用户通过操控所述虚拟手柄将其中一个待组装模型配件蓝图进行抓取并移动至与相匹配的一个模型配件组装位置蓝图发生碰撞事件时,触发所述待组装模型配件蓝图高亮,且在所述待组装模型配件蓝图被所述虚拟手柄释放之后重新附加到所述Scene组件上,完成对所述待组装模型配件蓝图的组装工作。

优选地,在将工业模型中所包含的若干个配件模型存储至所述数组中之前,还包括:对所述若干个配件模型进行拆装交互预处理。

优选地,所述对所述若干个配件模型进行拆装交互预处理包括:

基于所述工业模型中包含有N个配件模型,从所述N个配件模型中筛选出形状规则的M个配件模型,并根据配件形状对所述M个配件模型中的每一个配件模型添加碰撞效果;

利用盒体简化碰撞算法对剩下的N-M个配件模型中的每一个配件模型添加一个立体碰撞框,再利用自动凸包碰撞算法将每一个配件模型所对应的立体碰撞框转化为贴合自身形状的不规则碰撞框。

优选地,所述通过遍历数组的方式生成所述若干个配件模型所对应的若干个模型配件蓝图包括:

从所述数组中获取第一个配件模型,创建用于继承所述第一个配件模型及其拆装交互特征的模型配件蓝图,且所述模型配件蓝图的编号为0;

设置所述模型配件蓝图的跟组件为静态模型组件,并将所述跟组件的对象类型设置为WorldDynamic及其碰撞响应设置为重叠模式;

依次循环执行上述两个步骤N次,直至创建出第N个配件模型所对应的编号为N-1的模型配件蓝图。

优选地,所述以所述数组为模板,生成所述若干个配件模型所对应的若干个模型配件组装位置蓝图包括:

从所述数组中获取第一个配件模型,创建用于记录所述第一个配件模型及其初始安装位置的模型配件组装位置蓝图,且所述模型配件组装位置蓝图的编号为0;

设置所述模型配件组装位置蓝图的跟组件为静态模型组件,并将所述跟组件的对象类型设置为WorldDynamic及其碰撞响应设置为重叠模式;

依次循环执行上述两个步骤N次,直至创建出第N个配件模型所对应的编号为N-1的模型配件组装位置蓝图。

优选地,所述用户通过操控所述虚拟手柄将其中一个待组装模型配件蓝图进行抓取并移动至与相匹配的一个模型配件组装位置蓝图发生碰撞事件包括:

当用户通过操控所述虚拟手柄将所述待组装模型配件蓝图移动至与任意一个模型配件组装位置蓝图发生碰撞事件时,调用所述模型配件组装位置蓝图的OnComponentBeginOverlap事件来验证自身所属编号是否与所述待组装模型配件蓝图的编号相同;

若是,则触发所述待组装模型配件蓝图高亮;

若否,则返回将所述待组装模型配件蓝图移动至与下一个模型配件组装位置蓝图进行碰撞验证。

优选地,在所述待组装模型配件蓝图被所述虚拟手柄释放的过程中,通过调用IsOverlappingActor函数来控制所述待组装模型配件蓝图与所述相匹配的一个模型配件组装位置蓝图保持触碰状态。

另外,本发明实施例还提供了一种工业模型中配件拆装装置,所述装置包括:

第一创建模块,用于创建一个模型拆装逻辑的管理蓝图,并在所述管理蓝图下添加一个Scene组件,所述Scene组件用于处理配件模型的位置调整指令;

第二创建模块,用于声明一个静态模型类型的数组,将工业模型中所包含的若干个配件模型存储至所述数组中,再通过遍历数组的方式生成所述若干个配件模型所对应的若干个模型配件蓝图,同时以所述数组为模板,生成所述若干个配件模型所对应的若干个模型配件组装位置蓝图;

添加模块,用于将每一个模型配件蓝图的跟组件与每一个模型配件组装位置蓝图的跟组件附加到所述Scene组件上,并设定每一个模型配件蓝图为模型显示状态且保持每一个模型配件组装位置蓝图为模型隐藏状态;

拆卸模块,用于当用户通过操控虚拟手柄将所述若干个模型配件蓝图进行抓取并移动至空置地方时,完成对所述若干个配件模型的拆卸工作;

组装模块,用于当用户通过操控所述虚拟手柄将其中一个待组装模型配件蓝图进行抓取并移动至与相匹配的一个模型配件组装位置蓝图发生碰撞事件时,触发所述待组装模型配件蓝图高亮,且在所述待组装模型配件蓝图被所述虚拟手柄释放之后重新附加到所述Scene组件上,完成对所述待组装模型配件蓝图的组装工作。

另外,本发明实施例还提供了一种计算机设备,其包括:存储器、处理器及存储在存储器上并可在处理器上运行的应用程序,处理器执行应用程序时实现上述任一实施例方法的步骤。

另外,本发明实施例还提供了一种计算机可读存储介质,其上存储有应用程序,应用程序被处理器执行时实现上述任一实施例方法的步骤。

在本发明实施例中,通过实施上述方法,用户对任意一个可拆卸的目标配件同时建立一个用于交互操作的模型配件蓝图以及一个用于记录初始位置的模型配件组装位置蓝图,且在用户利用虚拟手柄移动目标配件直至其所关联的模型配件蓝图和模型配件组装位置蓝图发生简单碰撞响应之后,方可验证目标配件已回到被拆卸前的初始位置处,以此实现目标配件的准确组装,克服现有技术所存在的基准点偏移造成组装效果不佳的问题。

附图说明

图1是本发明实施例中的工业模型中配件拆装方法的流程示意图;

图2是本发明实施例中的工业模型中配件拆装装置的结构示意图;

图3是本发明实施例中的计算机设备的结构组成示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明实施例提供了一种工业模型中配件拆装方法,如图1所示,该工业模型中配件拆装方法包括以下步骤:

S101、创建一个模型拆装逻辑的管理蓝图,并在所述管理蓝图下添加一个Scene组件,所述Scene组件用于处理配件模型的位置调整指令;

其中,所述位置调整指令包括:对虚拟手柄所选中的配件模型进行平移操作、或者旋转操作、或者缩放操作。

S102、声明一个静态模型类型的数组,将工业模型中所包含的若干个配件模型存储至所述数组中,再通过遍历数组的方式生成所述若干个配件模型所对应的若干个模型配件蓝图,同时以所述数组为模板,生成所述若干个配件模型所对应的若干个模型配件组装位置蓝图;

在一实施例中,S102之前还包括:对工业模型中所包含的若干个配件模型进行拆装交互预处理,相应的实现过程包括:首先,基于所述工业模型中包含有N个配件模型,从所述N个配件模型中筛选出形状规则的M个配件模型,并根据配件形状对所述M个配件模型中的每一个配件模型添加碰撞效果,其中所述M个配件模型中的每一个配件模型形状应当属于立方体、圆柱体、球体、胶囊体中的一种;其次,利用盒体简化碰撞算法对剩下的N-M个配件模型中的每一个配件模型添加一个立体碰撞框,再利用自动凸包碰撞算法将每一个配件模型所对应的立体碰撞框转化为贴合自身形状的不规则碰撞框,其中针对所述N-M个配件模型中的每一个配件模型所设定的凸包分解参数值由用户根据配件模型复杂度自行定义。

具体地,所述若干个配件模型所对应的若干个模型配件蓝图的生成过程包括:首先从所述数组中获取第一个配件模型,创建用于继承所述第一个配件模型及其拆装交互特征的模型配件蓝图,使得所述模型配件蓝图可被虚拟手柄所发出的射线检测到,且所述模型配件蓝图的编号为0;其次设置所述模型配件蓝图的跟组件为静态模型组件(即所述模型配件蓝图不具备骨骼动画特征),并将所述跟组件的对象类型设置为WorldDynamic及其碰撞响应设置为重叠模式;依次循环执行上述两个步骤N次,直至创建出第N个配件模型所对应的编号为N-1的模型配件蓝图。

具体地,所述若干个配件模型所对应的若干个模型配件组装位置蓝图的生成过程包括:首先从所述数组中获取第一个配件模型,创建用于记录所述第一个配件模型及其初始安装位置的模型配件组装位置蓝图,且所述模型配件组装位置蓝图的编号为0;其次,为使得所述模型配件组装位置蓝图可与相对应的一个模型配件蓝图发生碰撞响应,设置所述模型配件组装位置蓝图的跟组件为静态模型组件,并将所述跟组件的对象类型设置为WorldDynamic及其碰撞响应设置为重叠模式;依次循环执行上述两个步骤N次,直至创建出第N个配件模型所对应的编号为N-1的模型配件组装位置蓝图。

S103、将每一个模型配件蓝图的跟组件与每一个模型配件组装位置蓝图的跟组件附加到所述Scene组件上,并设定每一个模型配件蓝图为模型显示状态且保持每一个模型配件组装位置蓝图为模型隐藏状态;

具体地,当N个模型配件蓝图的跟组件与N个模型配件组装位置蓝图的跟组件均附加到所述Scene组件上时,优先通过设定每一个模型配件蓝图的相对位移为默认值,使得用户可通过虚拟手柄对显示状态下的一个或者多个模型配件蓝图进行交互操控,直至其与隐藏状态下的一个或者多个模型配件组装位置蓝图进行碰撞验证,或者使得用户可通过虚拟手柄直接选中所述Scene组件进行整体位置调整。

S104、当用户通过操控虚拟手柄将所述若干个模型配件蓝图进行抓取并移动至空置地方时,完成对所述若干个配件模型的拆卸工作;

具体地,基于所述若干个模型配件蓝图均继承对应配件模型的拆装交互特征,说明虚拟手柄的射线可在当前应用场景下捕捉到每一个模型配件蓝图,此时用户可根据个人拆装需求,依次通过操控所述虚拟手柄选中其中的一个模型配件蓝图,在按下所述虚拟手柄的扳机键时对选中的模型配件蓝图进行抓取并继续对所述虚拟手柄进行位置平移,当用户松开所述虚拟手柄的扳机键时对选中的模型配件蓝图进行释放,以此实现将选中的模型配件蓝图移动至空置地方的拆卸工作。

S105、当用户通过操控所述虚拟手柄将其中一个待组装模型配件蓝图进行抓取并移动至与相匹配的一个模型配件组装位置蓝图发生碰撞事件时,触发所述待组装模型配件蓝图高亮,且在所述待组装模型配件蓝图被所述虚拟手柄释放之后重新附加到所述Scene组件上,完成对所述待组装模型配件蓝图的组装工作。

在一实施例中,所述用户通过操控所述虚拟手柄将其中一个待组装模型配件蓝图进行抓取并移动至与相匹配的一个模型配件组装位置蓝图发生碰撞事件包括:当用户通过操控所述虚拟手柄将所述待组装模型配件蓝图移动至与任意一个模型配件组装位置蓝图发生碰撞事件时,调用所述模型配件组装位置蓝图的OnComponentBeginOverlap事件来验证自身所属编号是否与所述待组装模型配件蓝图的编号相同,相应的验证结果为:若上述两个蓝图的编号相同,则说明所述待组装模型配件蓝图已回归到拆卸前的初始位置处,此时触发所述待组装模型配件蓝图高亮;若上述两个蓝图的编号不相同,则说明所述待组装模型配件蓝图仍不满足组装匹配条件,此时返回将所述待组装模型配件蓝图移动至与下一个模型配件组装位置蓝图进行碰撞验证。

具体地,在所述待组装模型配件蓝图被所述虚拟手柄释放的过程中,通过调用IsOverlappingActor函数来控制所述待组装模型配件蓝图与所述相匹配的一个模型配件组装位置蓝图保持触碰状态,防止此释放过程受到用户不当操作影响而出现偏差。

通过实施上述方法,用户对任意一个可拆卸的目标配件同时建立一个用于交互操作的模型配件蓝图以及一个用于记录初始位置的模型配件组装位置蓝图,且在用户利用虚拟手柄移动目标配件直至其所关联的模型配件蓝图和模型配件组装位置蓝图发生简单碰撞响应之后,方可验证目标配件已回到被拆卸前的初始位置处,以此实现目标配件的准确组装,克服现有技术所存在的基准点偏移造成组装效果不佳的问题。

在一实施例中,本发明还提供一种工业模型中配件拆装装置。如图2所示,该装置包括:

第一创建模块201,用于创建一个模型拆装逻辑的管理蓝图,并在所述管理蓝图下添加一个Scene组件,所述Scene组件用于处理配件模型的位置调整指令;

第二创建模块202,用于声明一个静态模型类型的数组,将工业模型中所包含的若干个配件模型存储至所述数组中,再通过遍历数组的方式生成所述若干个配件模型所对应的若干个模型配件蓝图,同时以所述数组为模板,生成所述若干个配件模型所对应的若干个模型配件组装位置蓝图;

添加模块203,用于将每一个模型配件蓝图的跟组件与每一个模型配件组装位置蓝图的跟组件附加到所述Scene组件上,并设定每一个模型配件蓝图为模型显示状态且保持每一个模型配件组装位置蓝图为模型隐藏状态;

拆卸模块204,用于当用户通过操控虚拟手柄将所述若干个模型配件蓝图进行抓取并移动至空置地方时,完成对所述若干个配件模型的拆卸工作;

组装模块205,用于当用户通过操控所述虚拟手柄将其中一个待组装模型配件蓝图进行抓取并移动至与相匹配的一个模型配件组装位置蓝图发生碰撞事件时,触发所述待组装模型配件蓝图高亮,且在所述待组装模型配件蓝图被所述虚拟手柄释放之后重新附加到所述Scene组件上,完成对所述待组装模型配件蓝图的组装工作。

关于一种工业模型中配件拆装装置的具体限定可以参见上文中对于一种工业模型中配件拆装方法的限定,在此不再赘述。上述一种工业模型中配件拆装装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

本发明实施例提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有应用程序,该程序被处理器执行时实现上述实施例中任意一个实施例的一种工业模型中配件拆装方法。其中,所述计算机可读存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random AcceSSMemory,随即存储器)、EPROM(EraSable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically EraSable ProgrammableRead-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储设备包括由设备(例如,计算机、手机)以能够读的形式存储或传输信息的任何介质,可以是只读存储器,磁盘或光盘等。

本发明实施例还提供了一种计算机应用程序,其运行在计算机上,该计算机应用程序用于执行上述中任意一个实施例的一种工业模型中配件拆装方法。

此外,图3是本发明实施例中的计算机设备的结构组成示意图。

本发明实施例还提供了一种计算机设备,如图3所示。所述计算机设备包括处理器302、存储器303、输入单元304以及显示单元305等器件。本领域技术人员可以理解,图3示出的设备结构器件并不构成对所有设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件。存储器303可用于存储应用程序301以及各功能模块,处理器302运行存储在存储器303的应用程序301,从而执行设备的各种功能应用以及数据处理。存储器可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、ZIP盘、U盘、磁带等。本发明所公开的存储器包括但不限于这些类型的存储器。本发明所公开的存储器只作为例子而非作为限定。

输入单元304用于接收信号的输入,以及接收用户输入的关键字。输入单元304可包括触控面板以及其它输入设备。触控面板可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元305可用于显示用户输入的信息或提供给用户的信息以及终端设备的各种菜单。显示单元305可采用液晶显示器、有机发光二极管等形式。处理器302是终端设备的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器303内的软件程序和/或模块,以及调用存储在存储器内的数据,执行各种功能和处理数据。

作为一个实施例,所述计算机设备包括:一个或多个处理器302,存储器303,一个或多个应用程序301,其中所述一个或多个应用程序301被存储在存储器303中并被配置为由所述一个或多个处理器302执行,所述一个或多个应用程序301配置用于执行上述实施例中的任意一实施例中的一种工业模型中配件拆装方法。

另外,以上对本发明实施例所提供的一种工业模型中配件拆装方法、装置、计算机设备和存储介质进行了详细介绍,本文中应采用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

相关技术
  • 工业模型中配件拆装方法、装置、计算机设备和存储介质
  • 模型开发中的模板处理方法、装置、计算机设备和存储介质
技术分类

06120113006474