碰撞器的生成方法、装置、设备及介质转让专利

申请号 : CN202210630623.1

文献号 : CN115035261B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李海阳

申请人 : 北京新唐思创教育科技有限公司

摘要 :

本公开提供一种碰撞器的生成方法、装置、设备及介质,该方法包括:获取预先存储的目标模型的轮廓关键点的信息;根据目标模型的轮廓关键点的信息生成目标模型在虚拟三维场景中的俯视轮廓;根据目标模型在虚拟三维场景中的俯视轮廓生成目标模型的碰撞器;目标模型的轮廓关键点的信息是按照如下方式预先存储:获取虚拟三维场景的场景俯视图;基于场景俯视图进行地面区域标识处理;基于标识处理后的场景俯视图,获取目标模型在场景俯视图中的俯视轮廓;根据目标模型在场景俯视图中的俯视轮廓获取目标模型的轮廓关键点的信息。本公开可有效节约生成碰撞器所需的人力成本,提升碰撞器的生成效率,且可以有效保障碰撞器的生成效果。

权利要求 :

1.一种碰撞器的生成方法,包括:

在接收到针对目标模型生成碰撞器的指令时,通过指定文件获取预先存储的目标模型的轮廓关键点的信息;所述目标模型为虚拟三维场景中的三维模型;

根据所述目标模型的轮廓关键点的信息生成所述目标模型在所述虚拟三维场景中的俯视轮廓;

根据所述目标模型在所述虚拟三维场景中的俯视轮廓生成所述目标模型的碰撞器;

其中,所述目标模型的轮廓关键点的信息是按照如下方式预先存储的:获取所述虚拟三维场景的场景俯视图;基于所述场景俯视图进行地面区域标识处理;基于标识处理后的所述场景俯视图,获取所述目标模型在所述场景俯视图中的俯视轮廓;根据所述目标模型在所述场景俯视图中的俯视轮廓获取所述目标模型的轮廓关键点的信息,并将所述目标模型的轮廓关键点的信息存储至所述指定文件;

根据所述目标模型在所述场景俯视图中的俯视轮廓获取所述目标模型的轮廓关键点的信息的步骤,包括:将所述目标模型在所述场景俯视图中的俯视轮廓的转折点作为所述目标模型的候选关键点;根据每个所述候选关键点的位置,从多个所述候选关键点中确定冗余关键点;将所述冗余关键点从多个所述候选关键点中剔除,并将余下的所述候选关键点作为所述目标模型的轮廓关键点;根据每个所述轮廓关键点的位置以及不同所述轮廓关键点之间的位置关系,获取所述目标模型的轮廓关键点的信息。

2.如权利要求1所述的碰撞器的生成方法,其中,所述轮廓关键点的信息包括:所述轮廓关键点的标识信息、所述轮廓关键点的位置信息、所述轮廓关键点的关联关键点的标识信息、所述轮廓关键点与所述关联关键点之间的连接方式。

3.如权利要求1所述的碰撞器的生成方法,其中,所述冗余关键点为与至少一个其它候选关键点之间的距离小于预设第一距离阈值的候选关键点,和/或,所述冗余关键点为与所述俯视轮廓中的任意一条轮廓线之间的垂直距离小于预设第二距离阈值的候选关键点。

4.如权利要求1所述的碰撞器的生成方法,其中,基于所述场景俯视图进行地面区域标识处理的步骤,包括:将所述场景俯视图中的地面区域的alpha通道设置为零值;和/或,将所述地面区域的RGB通道设置为指定值。

5.如权利要求1所述的碰撞器的生成方法,其中,根据所述目标模型的轮廓关键点的信息生成所述目标模型在所述虚拟三维场景中的俯视轮廓的步骤,包括:根据所述目标模型的轮廓关键点的信息还原所述目标模型在所述场景俯视图中的俯视轮廓;

根据所述目标模型在所述场景俯视图中的俯视轮廓,以及所述场景俯视图相对于所述虚拟三维场景的比例,得到所述目标模型在所述虚拟三维场景中的俯视轮廓。

6.如权利要求5所述的碰撞器的生成方法,其中,根据所述目标模型的轮廓关键点的信息还原所述目标模型在所述场景俯视图中的俯视轮廓的步骤,包括:对于所述目标模型中每个轮廓关键点,从所述目标模型的轮廓关键点的信息中获取该轮廓关键点的位置信息、该轮廓关键点的关联关键点的标识信息、以及该轮廓关键点与该轮廓关键点的关联关键点之间的连接方式;

基于该轮廓关键点的关联关键点的标识信息,从所述目标模型的轮廓关键点的信息中获取该轮廓关键点的关联关键点对应的位置信息;

根据该轮廓关键点的位置信息、该轮廓关键点的关联关键点对应的位置信息、以及该轮廓关键点与所述关联关键点之间的连接方式,将该轮廓关键点与该轮廓关键点的关联关键点进行连接;

基于每个所述轮廓关键点与每个所述轮廓关键点的关联关键点的连接结果,得到所述目标模型在所述场景俯视图中的俯视轮廓。

7.如权利要求1所述的碰撞器的生成方法,其中,根据所述目标模型在所述虚拟三维场景中的俯视轮廓生成所述目标模型的碰撞器的步骤,包括:根据所述目标模型在所述虚拟三维场景中的俯视轮廓生成基础控件;

生成与所述基础控件匹配的碰撞器;

将所述碰撞器挂载在所述基础控件上并去除所述基础控件的材质,得到所述目标模型的碰撞器。

8.如权利要求7所述的碰撞器的生成方法,其中,根据所述目标模型在所述虚拟三维场景中的俯视轮廓生成基础控件的步骤,包括:根据所述目标模型在所述虚拟三维场景中的俯视轮廓以及预设的控件高度,生成基础控件;其中,所述控件高度高于所述虚拟三维场景中虚拟摄像机的高度。

9.如权利要求1至8任一项所述的碰撞器的生成方法,其中,所述碰撞器的生成方法应用于Unity内容开发平台。

10.一种碰撞器的生成装置,包括:

点信息获取模块,用于在接收到针对目标模型生成碰撞器的指令时,通过指定文件获取预先存储的目标模型的轮廓关键点的信息;所述目标模型为虚拟三维场景中的三维模型;

俯视轮廓获取模块,用于根据所述目标模型的轮廓关键点的信息生成所述目标模型在所述虚拟三维场景中的俯视轮廓;

碰撞器生成模块,用于根据所述目标模型在所述虚拟三维场景中的俯视轮廓生成所述目标模型的碰撞器;

其中,所述目标模型的轮廓关键点的信息是按照如下方式预先存储的:获取所述虚拟三维场景的场景俯视图;基于所述场景俯视图进行地面区域标识处理;基于标识处理后的所述场景俯视图,获取所述目标模型在所述场景俯视图中的俯视轮廓;根据所述目标模型在所述场景俯视图中的俯视轮廓获取所述目标模型的轮廓关键点的信息,并将所述目标模型的轮廓关键点的信息存储至所述指定文件;

根据所述目标模型在所述场景俯视图中的俯视轮廓获取所述目标模型的轮廓关键点的信息,包括:将所述目标模型在所述场景俯视图中的俯视轮廓的转折点作为所述目标模型的候选关键点;根据每个所述候选关键点的位置,从多个所述候选关键点中确定冗余关键点;将所述冗余关键点从多个所述候选关键点中剔除,并将余下的所述候选关键点作为所述目标模型的轮廓关键点;根据每个所述轮廓关键点的位置以及不同所述轮廓关键点之间的位置关系,获取所述目标模型的轮廓关键点的信息。

11.一种电子设备,包括:

处理器;以及

存储程序的存储器,

其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据权利要求1‑9中任一项所述的碰撞器的生成方法。

12.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1‑9中任一项所述的碰撞器的生成方法。

说明书 :

碰撞器的生成方法、装置、设备及介质

技术领域

[0001] 本公开涉及计算机技术领域,尤其涉及碰撞器的生成方法、装置、设备及介质。

背景技术

[0002] 碰撞器又可称为地图碰撞器,是一种物理引擎,可进行碰撞检测。通过生成与虚拟三维物体的轮廓匹配的碰撞器,可以有效防止其它虚拟对象(诸如游戏人物)穿越虚拟三维物体。在诸如Unity内容开发平台等场景中,通常需要人工手动逐一标注虚拟三维场景中三维物体的关键点(也即坐标点),以此绘制三维物体的外轮廓,从而生成碰撞器。
[0003] 但是上述方式不仅费时费力,效率低下,所需人力成本极高,而且因为人工视觉偏差、标注操作误差等原因都容易导致关键点标注错误,致使无法生成与虚拟三维物体的实际轮廓匹配的碰撞器,碰撞检测的可靠性较差,容易出现诸如虚拟人物能够嵌入至虚拟三维物体的现象,或者虚拟人物还未触碰虚拟三维物体就不可继续向前行进等问题,用户体验不佳。

发明内容

[0004] 为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种碰撞器的生成方法、装置、设备及介质。
[0005] 根据本公开的一方面,提供了一种碰撞器的生成方法,包括:在接收到针对目标模型生成碰撞器的指令时,通过指定文件获取预先存储的目标模型的轮廓关键点的信息;所述目标模型为虚拟三维场景中的三维模型;根据所述目标模型的轮廓关键点的信息生成所述目标模型在所述虚拟三维场景中的俯视轮廓;根据所述目标模型在所述虚拟三维场景中的俯视轮廓生成所述目标模型的碰撞器;其中,所述目标模型的轮廓关键点的信息是按照如下方式预先存储的:获取所述虚拟三维场景的场景俯视图;基于所述场景俯视图进行地面区域标识处理;基于标识处理后的所述场景俯视图,获取所述目标模型在所述场景俯视图中的俯视轮廓;根据所述目标模型在所述场景俯视图中的俯视轮廓获取所述目标模型的轮廓关键点的信息,并将所述目标模型的轮廓关键点的信息存储至所述指定文件。
[0006] 根据本公开的另一方面,提供了一种碰撞器的生成装置,包括:点信息获取模块,用于在接收到针对目标模型生成碰撞器的指令时,通过指定文件获取预先存储的目标模型的轮廓关键点的信息;所述目标模型为虚拟三维场景中的三维模型;俯视轮廓获取模块,用于根据所述目标模型的轮廓关键点的信息生成所述目标模型在所述虚拟三维场景中的俯视轮廓;碰撞器生成模块,用于根据所述目标模型在所述虚拟三维场景中的俯视轮廓生成所述目标模型的碰撞器;其中,所述目标模型的轮廓关键点的信息是按照如下方式预先存储的:获取所述虚拟三维场景的场景俯视图;基于所述场景俯视图进行地面区域标识处理;基于标识处理后的所述场景俯视图,获取所述目标模型在所述场景俯视图中的俯视轮廓;
根据所述目标模型在所述场景俯视图中的俯视轮廓获取所述目标模型的轮廓关键点的信息,并将所述目标模型的轮廓关键点的信息存储至所述指定文件。
[0007] 根据本公开的另一方面,提供了一种电子设备,包括:处理器;以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行上述碰撞器的生成方法。
[0008] 根据本公开的另一方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述碰撞器的生成方法。
[0009] 本公开实施例中提供的上述技术方案,给出了可自动获取轮廓关键点的信息的方式,且通过对场景俯视图进行地面区域标识处理,可以便捷且准确可靠地获取到目标模型在场景俯视图中的俯视轮廓,进而得到目标模型的轮廓关键点的信息并存储于指定文件中,在需要生成目标模型的碰撞器时,则可以直接调用指定文件获取轮廓关键点的信息,并基于该信息还原生成目标模型在虚拟三维场景中的俯视轮廓,进而生成与目标模型的轮廓匹配的碰撞器。上述方式无需人工标注关键点,不仅节约了巨大的人力成本,而且可以有效避免人工标注错误导致碰撞器与模型实际轮廓不匹配等问题;并且上述方式能够便捷可靠地取到目标模型在场景俯视图中的俯视轮廓,有效保障了轮廓关键点的信息的准确性,提升了碰撞器与模型实际轮廓之间的匹配率,也即可生成更为准确可靠的碰撞器。综上,本公开实施例可以极大节约生成碰撞器所需的人力成本,提升碰撞器的生成效率,且可以有效保障碰撞器的生成效果,提升用户体验。
[0010] 应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

[0011] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0012] 为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0013] 图1为本公开实施例提供的一种碰撞器的生成方法的流程示意图;
[0014] 图2为本公开实施例提供的一种获取及存储轮廓关键点的信息的方法流程示意图;
[0015] 图3为本公开实施例提供的一种碰撞器的生成装置的结构示意图;
[0016] 图4为本公开实施例提供的一种电子设备的结构示意图。

具体实施方式

[0017] 下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
[0018] 应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
[0019] 本公开使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
[0020] 需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
[0021] 为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
[0022] 在相关技术中在生成碰撞器时,首先需要人为手动逐一标注虚拟三维场景中三维物体的关键点,费事费力效率低下,尤其在虚拟三维场景较大,所需生成碰撞器的三维模型较多的情况下,人工标注成本巨大。另外,上述方式也非常容易出现标注错误的问题,致使无法生成与三维物体匹配的碰撞器。虽然相关技术在很多情况下会采用人工进一步比对复核,但仍旧会耗费较大人力成本,而且倘若未完全找到标注错误的关键点,依然会导致最终生成的碰撞器与三维物体不匹配,从而无法实现准确的碰撞检测,进而影响用户体验。为至少部分地改善上述问题,本公开实施例提供了碰撞器的生成方法、装置、设备及介质,以下进行详细阐述说明。
[0023] 图1为本公开实施例提供的一种碰撞器的生成方法的流程示意图,该方法可以由碰撞器的生成装置执行,其中该装置可以采用软件和/或硬件实现,一般可集成在电子设备中,该电子设备包括但不限于手机、电脑、服务器、便携式穿戴设备、机器人等具有数据处理能力的设备,如图1所示,该方法主要包括如下步骤S102~步骤S106:
[0024] 步骤S102,在接收到针对目标模型生成碰撞器的指令时,通过指定文件获取预先存储的目标模型的轮廓关键点的信息。
[0025] 目标模型为虚拟三维场景中的三维模型,该虚拟三维场景诸如可以为虚拟游戏场景、虚拟课堂场景、虚拟购物场景等任何基于3D构建的虚拟场景,在此不进行限制,而目标模型则为虚拟三维场景中的模型,目标模型诸如可以为建筑物、道具等物品,本公开实施例对目标模型的类型不进行限定,任意需要生成碰撞器的模型均可作为目标模型,且目标模型的数量可以为一个或多个,诸如可以是虚拟三维场景中全部的三维模型,也可以是部分指定的三维模型。
[0026] 在实际应用中,指定文件中存储有预先获取的目标模型的轮廓关键点的信息,在实际应用中,指定文件可以是用于执行碰撞器的生成方法的电子设备自生成的,也可以是该电子设备通过指定平台下载所得,还可以是其它外部设备传输给该电子设备,本公开实施例对指定文件的来源不进行限制。在本公开实施例中将用于存储目标模型的轮廓关键点的信息的文件作为指定文件,且本公开实施例对存储形式(或文件形式)不进行限制,诸如可以Json语法规则存储目标模型的轮廓关键点的信息,所得的指定文件即为Json文件。
[0027] 另外,可以预先获取并保存指定文件,并在接收到针对目标模型生成碰撞器的指令时,直接调用指定文件获取目标模型的轮廓关键点的信息;或者,也可以在接收到针对目标模型生成碰撞器的指令时,再获取指定文件,然后再通过指定文件获取目标模型的轮廓关键点的信息,本公开实施例对此不进行限定。
[0028] 通过将预先获取的目标模型的轮廓关键点的信息存储在指定文件中,便于后续直接应用,在需要对目标模型生成碰撞器时,直接获取该指定文件并从中调取所需的目标模型的轮廓关键点的信息即可,非常方便快捷,此时无需人工再针对模型进行逐点标注,在节约人工成本的基础上,也有助于提升后续生成碰撞器的效率。另外,直接采用存储轮廓关键点的信息的方式,不仅方便灵活,而且可以充分节约存储空间,且指定文件也便于传输或者便于反复多次使用,诸如只需生成一次指定文件,并将该指定文件挂载在指定平台,也便于其他需要的人下载使用,从而方便快捷地基于该指定文件获取目标模型的俯视轮廓,并基于俯视轮廓执行相应任务,诸如生成碰撞器。
[0029] 步骤S104,根据目标模型的轮廓关键点的信息生成目标模型在虚拟三维场景中的俯视轮廓。也即,在目标模型的轮廓关键点的信息已知的情况下,则能够还原目标模型在虚拟三维场景中的俯视轮廓。
[0030] 目标模型的轮廓关键点的信息诸如可以包含各轮廓关键点的位置信息、关联关系等,在一些具体的实施方式中,轮廓关键点的信息包括但不限于:轮廓关键点的标识信息、轮廓关键点的位置信息、轮廓关键点的关联关键点的标识信息、轮廓关键点与关联关键点之间的连接方式。也即,对于每个轮廓关键点,该轮廓关键点的信息包括:该轮廓关键点的标识信息、该轮廓关键点的位置信息、与该轮廓关键点相关联的关联关键点的标识信息、该轮廓关键点和关联关键点之间的连接方式。通过生成上述目标模型的轮廓关键点的信息,不仅可以有效表征目标模型的整体俯视轮廓,而且便于记录和存储。
[0031] 其中,轮廓关键点的标识信息诸如可以是ID标识等,每个轮廓关键点的标识唯一,可基于标识进行关键点之间的区分。轮廓关键点的位置信息可以采用坐标的形式表征轮廓关键点的位置,示例性地,轮廓关键点的位置信息可以为轮廓关键点在虚拟三维场景的场景俯视图中的坐标,轮廓关键点的关联关键点也即与轮廓关键点有关联的点,诸如,对于某个轮廓关键点而言,可以将模型轮廓中与该轮廓关键点相邻且有连接关系的轮廓关键点作为该轮廓关键点的关联关键点,诸如,可以按照指定的顺序而统一设定与该轮廓关键点相连接的下个轮廓关键点作为该轮廓关键点的关联关键点。轮廓关键点与关联关键点之间的连接方式诸如可以指示直线、曲线等连接线的形式,该曲线诸如可以为贝塞尔曲线。此外,连接方式还可以进一步指示连接方向,诸如长方体建筑物的俯视轮廓包含有ABCD四个轮廓关键点,A轮廓关键点的信息包括:A标识、A坐标、与A关联的B标识、A与B之间直线连接,且可以进一步记录是由A开始连接至B,之后依次类推,B连接C,C连接D,D连接A,便可以完全还原长方体建筑物的俯视轮廓。
[0032] 由于每个轮廓关键点的位置和标识都已知,对于某个轮廓关键点而言,通过其记录的关联关键点的标识即可查找到关联关键点的位置,然后再基于连接方式即可将该轮廓关键点与关联关键点进行连接。通过这种方式,可以便捷且可靠地生成目标模型在虚拟三维场景中的俯视轮廓。
[0033] 步骤S106,根据目标模型在虚拟三维场景中的俯视轮廓生成目标模型的碰撞器。
[0034] 在通过上述步骤准确获取到目标模型在虚拟三维场景中的俯视轮廓的情况下,可以进一步基于目标模型在虚拟三维场景中的俯视轮廓以及预设的高度生成能够与目标模型的轮廓匹配的碰撞器,该碰撞器可以较好包围目标模型,实现准确可靠地碰撞检测。
[0035] 进一步,本公开实施例详细给出了如何预先获取轮廓关键点的信息的具体实施方式,换言之,给出了如何得到指定文件的方式,示例性地,可参见如图2所示的获取及存储轮廓关键点的信息的方法流程示意图,该示意图也可理解为生成指定文件的具体流程,目标模型的轮廓关键点的信息可按照如下步骤S202~步骤S208实现:
[0036] 步骤S202,获取虚拟三维场景的场景俯视图。
[0037] 步骤S204,基于场景俯视图进行地面区域标识处理。在一些实施方式中,可以将场景俯视图中的地面区域的alpha通道设置为零值;和/或,将地面区域的RGB通道设置为指定值,该指定值可以为三维模型通常不常用的特殊值。
[0038] 上述方式通过将场景俯视图中的地面区域的alpha通道设置为零值,可以使场景俯视图中的地面区域变透明,或者将地面区域的RGB通道设置为指定的特殊值,均可直观地区分目标模型与地面区域,以此能够直接显示并获取到目标模型在场景俯视图中的俯视轮廓。
[0039] 步骤S206,基于标识处理后的场景俯视图,获取目标模型在场景俯视图中的俯视轮廓。由于场景俯视图对地面区域进行了特殊的标识处理,因此可以直接凸显出不属于地面的目标模型在场景俯视图中的俯视区域,基于此,俯视轮廓也易于直接获取,这种方式不仅便捷,而且也保证了俯视轮廓的准确性。
[0040] 步骤S208,根据目标模型在场景俯视图中的俯视轮廓获取目标模型的轮廓关键点的信息,并将目标模型的轮廓关键点的信息存储至指定文件。诸如,可以基于俯视轮廓识别在俯视轮廓中的关键点,该关键点可以为轮廓拐点或轮廓转折点等,然后将轮廓关键点的信息(诸如轮廓关键点的标识、位置、关联关键点的标识、连接方式等)直接存储在指定文件中,便于后续直接应用。
[0041] 在一些具体的实施示例中,将目标模型的轮廓关键点的信息存储至空文件中,得到指定文件。或者,也可以将目标模型的轮廓关键点的信息存储至预设的文件(该文件也可以包含其它内容),在此不进行限制。在本公开实施示例中,存储有目标模型的轮廓关键点的信息的文件即为指定文件。应当说明的是,执行图2所示方法的设备与执行图1所示方法的设备可以相同,也可以不同,在此不进行限制。
[0042] 如图1和图2所示的方法,本公开实施例中提供的上述方式无需人工标注关键点,不仅节约了巨大的人力成本,而且可以有效避免人工标注错误导致碰撞器与模型实际轮廓不匹配等问题;并且上述方式能够便捷可靠地取到目标模型在场景俯视图中的俯视轮廓,有效保障了轮廓关键点的信息的准确性,提升了碰撞器与模型实际轮廓之间的匹配率,也即可生成更为准确可靠的碰撞器。综上,本公开实施例可以极大节约生成碰撞器所需的人力成本,提升碰撞器的生成效率,且可以有效保障碰撞器的生成效果。
[0043] 在一些实施方式中,本公开实施例给出了根据目标模型在场景俯视图中的俯视轮廓获取目标模型的轮廓关键点的信息的具体实施示例,可以参照如下步骤A~步骤D实现:
[0044] 步骤A,将目标模型在场景俯视图中的俯视轮廓的转折点作为目标模型的候选关键点。该转折点也可称为拐点。
[0045] 步骤B,根据每个候选关键点的位置,从多个候选关键点中确定冗余关键点。在一些实施示例中,冗余关键点为与至少一个其它候选关键点之间的距离小于预设第一距离阈值的候选关键点,和/或,冗余关键点为与俯视轮廓中的任意一条轮廓线之间的垂直距离小于预设第二距离阈值的候选关键点。
[0046] 诸如,在某建筑物的屋檐处有多个参差不齐的瓦楞,这些瓦楞在俯视图上会被作为候选关键点,且与屋檐的整体轮廓线之间的垂直距离通常很小,因此可以将这些候选关键点作为冗余关键点。又诸如,在某个墙壁处有个小缺口,该小缺口在俯视图上也会对应为一个候选关键点,同样可以将其作为冗余关键点。再次以屋檐为例,屋檐角处会设置有诸如翘角装饰等物品,这些装饰在俯视图上对应的候选关键点也较为相近,因此可以作为冗余关键点,最后只保留屋檐角对应的一个点即可,从而在不影响模型轮廓的准确性的基础上,可以使模型外轮廓尽可能简洁。
[0047] 步骤C,将冗余关键点从多个候选关键点中剔除,并将余下的候选关键点作为目标模型的轮廓关键点。通过将冗余关键点从多个候选关键点中剔除,可以对轮廓外围进行简化,而且不影响轮廓的整体准确性。
[0048] 步骤D,根据每个轮廓关键点的位置以及不同轮廓关键点之间的位置关系,获取目标模型的轮廓关键点的信息。
[0049] 可以为每个轮廓关键点分配各自对应的标识,且对于每个轮廓关键点而言,根据不同轮廓关键点之间的位置关系,可以确定与该轮廓关键点相关联的关联关键点,以及该轮廓关键点和关联关键点之间的连接方式。通过上述方式,便可有效地得到目标模型的轮廓关键点的信息,且这些信息有助于后续对准确还原目标模型在场景俯视图中的俯视轮廓。
[0050] 在通过指定文件获取到预先存储的目标模型的轮廓关键点的信息之后,便可以根据目标模型的轮廓关键点的信息生成目标模型在虚拟三维场景中的俯视轮廓,具体包括如下步骤a~步骤b:
[0051] 步骤a,根据目标模型的轮廓关键点的信息还原目标模型在场景俯视图中的俯视轮廓。在一些实施示例中,可以参照如下步骤(1)~(4)实现:
[0052] (1)对于目标模型中每个轮廓关键点,从目标模型的轮廓关键点的信息中获取该轮廓关键点的位置信息、该轮廓关键点的关联关键点的标识信息、以及该轮廓关键点与该轮廓关键点的关联关键点之间的连接方式;
[0053] (2)基于该轮廓关键点的关联关键点的标识信息,从目标模型的轮廓关键点的信息中获取该轮廓关键点的关联关键点对应的位置信息;
[0054] (3)根据该轮廓关键点的位置信息、该轮廓关键点的关联关键点对应的位置信息、以及该轮廓关键点与关联关键点之间的连接方式,将该轮廓关键点与该轮廓关键点的关联关键点进行连接;其中,连接方式包括但不限于直线连接、曲线连接等,如果是曲线连接,还可以具体指明曲线形式,诸如基于贝塞尔曲线进行连接。
[0055] (4)基于每个轮廓关键点与每个轮廓关键点的关联关键点的连接结果,得到目标模型在场景俯视图中的俯视轮廓。诸如,对于一个长方体建筑物而言,俯视轮廓中一共有ABCD四个轮廓关键点,通过上述方式,便可以基于四个轮廓关键点的信息,再次将ABCD四个轮廓关键点按序连接,还原为长方形,也即可以将长方体建筑物在场景俯视图中的俯视轮廓进行准确还原。
[0056] 步骤b,根据目标模型在场景俯视图中的俯视轮廓,以及场景俯视图相对于虚拟三维场景的比例,得到目标模型在虚拟三维场景中的俯视轮廓。
[0057] 由于场景俯视图针对虚拟三维场景而言通常是按照一定比例进行缩放的,因此在目标模型在场景俯视图中的俯视轮廓得以还原之后,再结合场景俯视图相对于虚拟三维场景的比例,便可以准确地得到目标模型在虚拟三维场景中的俯视轮廓。
[0058] 另外,在一些实施方式中,还可以根据目标模型在虚拟三维场景中的俯视轮廓判断是否要给目标模型生成碰撞器,诸如假设目标模型在虚拟三维场景中的俯视轮廓为一条线(诸如目标模型为一张悬挂的公告纸),则无需为该目标模型生成碰撞器,此时可为用户发起提示。
[0059] 在根据目标模型的轮廓关键点的信息生成目标模型在虚拟三维场景中的俯视轮廓之后,便可根据目标模型在虚拟三维场景中的俯视轮廓生成目标模型的碰撞器,具体而言,可参见如下步骤1~步骤3实现:
[0060] 步骤1,根据目标模型在虚拟三维场景中的俯视轮廓生成基础控件。该基础控件诸如可以为cube控件等,在此不进行限制。
[0061] 在一些实施示例中,可以根据目标模型在虚拟三维场景中的俯视轮廓以及预设的控件高度,生成基础控件;其中,控件高度高于虚拟三维场景中虚拟摄像机的高度。由于虚拟三维场景中都会设置可移动的虚拟摄像机,通过虚拟摄像机为用户提供视角,诸如在虚拟人物在虚拟三维场景中移动时,虚拟摄像机也会随之移动,从而改变画面视角。通常而言,虚拟摄像机的高度高于虚拟人物的高度,本公开实施例还进一步设置控件高度高于虚拟摄像机的高度,以便在后续生成更为合理的碰撞器,从而避免虚拟摄像机穿过目标模型。
[0062] 通过预设控件高度并结合已有的俯视轮廓,生成所得的基础控件的形状轮廓可以有效与目标模型的外轮廓进行匹配,换言之,可以有效包围目标模型的外轮廓。
[0063] 步骤2,生成与基础控件匹配的碰撞器。具体的,可以生成与基础控件的轮廓匹配的碰撞器。也即,可以理解为将基础空间的形状进行复制,然后生成对应的碰撞体控件(碰撞器),由于基础控件的形状轮廓可以有效与目标模型的外轮廓进行匹配,相应的,碰撞器也可以有效与目标模型的外轮廓进行匹配。
[0064] 步骤3,将碰撞器挂载在基础控件上并去除基础控件的材质,得到目标模型的碰撞器。通常而言,生成的基础控件都带有材质,为了使碰撞器不可见,因此需要去除基础控件的材质,也即采用去除材质的基础控件承载目标模型,
[0065] 通过上述方式,可以准确可靠地得到目标模型的碰撞器,该碰撞器能够与目标模型的实际轮廓进行较好匹配,也即能够较好地包围目标模型,从而实现准确的碰撞检测。
[0066] 本公开实施例对碰撞器的生成方法的应用场景/应用平台不进行限制,任何需要生成碰撞器的场景均可,诸如可以为虚拟现实场景,虚拟现实场景可用于实现游戏、在线教育、在线购物等,在此不进行限制。在一些具体的实施示例中,可将碰撞器的生成方法应用于Unity内容开发平台。Unity内容开发平台可广泛应用于诸如游戏、汽车、建筑工程、影视动画等多种领域,可用于创作、运营和变现任何实时互动的3D内容,在Unity内容开发平台中通常会涉及到各种虚拟三维场景,且存在需要为虚拟三维场景中的三维模型生成碰撞器的大量需求,因此尤其适用于本公开实施例提供的上述碰撞器的生成方法。
[0067] 综上,通过本公开实施例提供的上述碰撞器的生成方法,无需人工标注关键点,且无需人工对标注的点进行审核,或者无需人工反复修改,不仅节约了巨大的人力成本,而且可以有效避免人工标注错误或遗漏导致碰撞器与模型实际轮廓不匹配等问题;并且上述方法能够便捷可靠地取到目标模型在场景俯视图中的俯视轮廓,有效保障了轮廓关键点的信息的准确性,提升了碰撞器与模型实际轮廓之间的匹配率,也即可生成更为准确可靠的碰撞器。综上,本公开实施例可以极大节约生成碰撞器所需的人力成本,提升碰撞器的生成效率,且可以有效保障碰撞器的生成效果。
[0068] 对应于前述碰撞器的生成方法,本公开实施例还提供了一种碰撞器的生成装置,图3为本公开实施例提供的一种碰撞器的生成装置的结构示意图,该装置可由软件和/或硬件实现,一般可集成在电子设备中。如图3所示,碰撞器的生成装置300包括:
[0069] 点信息获取模块302,用于在接收到针对目标模型生成碰撞器的指令时,通过指定文件获取预先存储的目标模型的轮廓关键点的信息;目标模型为虚拟三维场景中的三维模型;
[0070] 俯视轮廓获取模块304,用于根据目标模型的轮廓关键点的信息生成目标模型在虚拟三维场景中的俯视轮廓;
[0071] 碰撞器生成模块306,用于根据目标模型在虚拟三维场景中的俯视轮廓生成目标模型的碰撞器;
[0072] 目标模型的轮廓关键点的信息是按照如下方式预先存储的:获取虚拟三维场景的场景俯视图;基于场景俯视图进行地面区域标识处理;基于标识处理后的场景俯视图,获取目标模型在场景俯视图中的俯视轮廓;根据目标模型在场景俯视图中的俯视轮廓获取目标模型的轮廓关键点的信息,并将目标模型的轮廓关键点的信息存储至指定文件。
[0073] 综上,本公开实施例中提供的上述装置无需人工标注关键点,不仅节约了巨大的人力成本,而且可以有效避免人工标注错误导致碰撞器与模型实际轮廓不匹配等问题;并且上述方式能够便捷可靠地取到目标模型在场景俯视图中的俯视轮廓,有效保障了轮廓关键点的信息的准确性,提升了碰撞器与模型实际轮廓之间的匹配率,也即可生成更为准确可靠的碰撞器。综上,本公开实施例可以极大节约生成碰撞器所需的人力成本,提升碰撞器的生成效率,且可以有效保障碰撞器的生成效果。
[0074] 在一些实施方式中,所述轮廓关键点的信息包括:所述轮廓关键点的标识信息、所述轮廓关键点的位置信息、所述轮廓关键点的关联关键点的标识信息、所述轮廓关键点与所述关联关键点之间的连接方式。
[0075] 在一些实施方式中,上述装置还可以进一步包括预存储模块,用于按照上述方式预先存储目标模型的轮廓关键点的信息;在此基础上,预存储模块具体用于将所述目标模型在所述场景俯视图中的俯视轮廓的转折点作为所述目标模型的候选关键点;根据每个所述候选关键点的位置,从多个所述候选关键点中确定冗余关键点;将所述冗余关键点从多个所述候选关键点中剔除,并将余下的所述候选关键点作为所述目标模型的轮廓关键点;根据每个所述轮廓关键点的位置以及不同所述轮廓关键点之间的位置关系,获取所述目标模型的轮廓关键点的信息。
[0076] 在一些实施方式中,所述冗余关键点为与至少一个其它候选关键点之间的距离小于预设第一距离阈值的候选关键点,和/或,所述冗余关键点为与所述俯视轮廓中的任意一条轮廓线之间的垂直距离小于预设第二距离阈值的候选关键点。
[0077] 在一些实施方式中,预存储模块具体用于将所述场景俯视图中的地面区域的alpha通道设置为零值;和/或,将所述地面区域的RGB通道设置为指定值。
[0078] 在一些实施方式中,俯视轮廓获取模块304具体用于:根据所述目标模型的轮廓关键点的信息还原所述目标模型在所述场景俯视图中的俯视轮廓;根据所述目标模型在所述场景俯视图中的俯视轮廓,以及所述场景俯视图相对于所述虚拟三维场景的比例,得到所述目标模型在所述虚拟三维场景中的俯视轮廓。
[0079] 在一些实施方式中,俯视轮廓获取模块304具体用于:对于所述目标模型中每个轮廓关键点,从所述目标模型的轮廓关键点的信息中获取该轮廓关键点的位置信息、该轮廓关键点的关联关键点的标识信息、以及该轮廓关键点与该轮廓关键点的关联关键点之间的连接方式;基于该轮廓关键点的关联关键点的标识信息,获取该轮廓关键点的关联关键点对应的位置信息;根据该轮廓关键点的位置信息、该轮廓关键点的关联关键点对应的位置信息、以及该轮廓关键点与所述关联关键点之间的连接方式,将该轮廓关键点与该轮廓关键点的关联关键点进行连接;基于每个所述轮廓关键点与每个所述轮廓关键点的关联关键点的连接结果,得到所述目标模型在所述场景俯视图中的俯视轮廓。
[0080] 在一些实施方式中,碰撞器生成模块306具体用于:根据所述目标模型在所述虚拟三维场景中的俯视轮廓生成基础控件;生成与所述基础控件匹配的碰撞器;将所述碰撞器挂载在所述基础控件上并去除所述基础控件的材质,得到所述目标模型的碰撞器。
[0081] 在一些实施方式中,碰撞器生成模块306具体用于:根据所述目标模型在所述虚拟三维场景中的俯视轮廓以及预设的控件高度,生成基础控件;其中,所述控件高度高于所述虚拟三维场景中虚拟摄像机的高度。
[0082] 在一些实施方式中,所述碰撞器的生成方法应用于Unity内容开发平台。
[0083] 本公开实施例所提供的碰撞器的生成装置可执行本公开任意实施例所提供的碰撞器的生成方法,具备执行方法相应的功能模块和有益效果。
[0084] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置实施例的具体工作过程,可以参考方法实施例中的对应过程,在此不再赘述。
[0085] 本公开示例性实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。所述存储器存储有能够被所述至少一个处理器执行的计算机程序,所述计算机程序在被所述至少一个处理器执行时用于使所述电子设备执行根据本公开实施例的方法。
[0086] 本公开示例性实施例还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本公开实施例的方法。
[0087] 本公开示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本公开实施例的方法。
[0088] 所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
[0089] 此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的碰撞器的生成方法。所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0090] 参考图4,现将描述可以作为本公开的服务器或客户端的电子设备400的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0091] 如图4所示,电子设备400包括计算单元401,其可以根据存储在只读存储器(ROM)402中的计算机程序或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序,来执行各种适当的动作和处理。在RAM 403中,还可存储设备400操作所需的各种程序和数据。计算单元401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
[0092] 电子设备400中的多个部件连接至I/O接口405,包括:输入单元406、输出单元407、存储单元408以及通信单元409。输入单元406可以是能向电子设备400输入信息的任何类型的设备,输入单元406可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元407可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元408可以包括但不限于磁盘、光盘。通信单元409允许电子设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙TM设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
[0093] 计算单元401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元401的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元401执行上文所描述的各个方法和处理。例如,在一些实施例中,碰撞器的生成方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM 402和/或通信单元409而被载入和/或安装到电子设备400上。在一些实施例中,计算单元401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行碰撞器的生成方法。
[0094] 用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0095] 在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD‑ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0096] 如本公开使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
[0097] 为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0098] 可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
[0099] 计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端‑服务器关系的计算机程序来产生客户端和服务器的关系。
[0100] 需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0101] 以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。