欢迎光临小豌豆知识网!
当前位置:首页 > 生活技术 > 运动娱乐> 基于虚幻引擎的绳索连接优化方法和相关设备独创技术40346字

基于虚幻引擎的绳索连接优化方法和相关设备

2021-03-07 06:50:24

基于虚幻引擎的绳索连接优化方法和相关设备

  技术领域

  本发明涉及计算机视觉技术领域,尤其涉及一种基于虚幻引擎的绳索连接优化方法和相关设备。

  背景技术

  虚幻引擎(Unreal Engine,UE)是一款代码开源的游戏引擎,支持手机、PC、掌机等各种平台。它具有强大的渲染效果,还有虚拟位移、HDR光照等技术,能够制作出贴近真实的游戏场景。在UE中有一个名为缆绳组件(Cable Component)的插件,它能够创建缆绳,并且生动展示缆绳晃荡、滑动、风吹过链条等效果,具有较好的仿真效果。

  目前UE的Cable组件主要优化的是组成绳索的粒子之间的约束,以生动展现绳索的动态变化,但是在绳索与物品之间需要连接的时候,Cable组件无法灵活地与物品连接,因此存在连接处展现生硬的情形,尤其是在绳索方位与连接的物品方向不一致的情况时,绳索与物品的连接会存在类似于“折断”的情形,仿真效果不佳。

  发明内容

  本发明的主要目的在于解决基于虚幻引擎的绳索与物品连接处不自然,影响视觉感受的问题。

  本发明第一方面提供了一种基于虚幻引擎的绳索连接优化方法,包括:

  分别获取待相连的物品的第一截面大小和绳索的第二截面大小,并根据所述第一截面大小和所述第二截面大小,创建骨骼模型并将所述骨骼模型设置于所述物品和所述绳索之间;

  实时获取骨骼模型的骨骼中点坐标、与物品连接的骨骼模型的骨骼起点坐标、靠近绳索的骨骼模型的骨骼终点坐标以及远离骨骼模型的绳索的绳索终点坐标;

  根据所述骨骼起点坐标、所述骨骼终点坐标和所述绳索终点坐标,确定所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转角,并控制所述骨骼模型按所述旋转角旋转;

  根据所述骨骼起点坐标、所述骨骼中点坐标和所述绳索终点坐标,计算所述骨骼模型与所述绳索之间角度,并以所述骨骼起点坐标为原点,控制所述骨骼模型按所述角度弯曲,以平滑连接所述物品和所述绳索。

  可选地,在本发明第一方面的第一种实现方式中,在所述根据所述骨骼起点坐标、所述骨骼终点坐标和所述绳索终点坐标,确定所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转角,并控制所述骨骼模型按所述旋转角旋转之前,还包括:

  基于所述物品,创建用于指示所述物品延伸方向的箭头组件;

  基于所述箭头组件的指示方向,生成相同方向的指标向量。

  可选地,在本发明第一方面的第二种实现方式中,所述根据所述骨骼起点坐标、所述骨骼终点坐标和所述绳索终点坐标,确定所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转角,并控制所述骨骼模型按所述旋转角旋转包括:

  以所述骨骼起点坐标为顶点、所述骨骼终点坐标和所述绳索终点坐标为端点,计算所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转角度;

  根据预置方向判断规则,确定所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转方向,其中,所述旋转角包括旋转方向和旋转角度;

  根据所述旋转方向,以所述指标向量为旋转轴、所述骨骼起点坐标为原点,控制所述骨骼模型旋转所述旋转角度,以使所述骨骼模型旋转至所述物品和所述绳索所在的平面。

  可选地,在本发明第一方面的第三种实现方式中,所述以所述骨骼起点坐标为顶点、所述骨骼终点坐标和所述绳索终点坐标为端点,计算所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转角度包括:

  参照所述指示方向,分别创建经过所述骨骼终点坐标的第一辅助线和所述绳索终点坐标的第二辅助线,其中,所述第一辅助线和所述第二辅助线与所述指标向量平行;

  以所述骨骼起点坐标为原点,分别向所述第一辅助线和所述第二辅助线作垂线,对应得到第一向量和第二向量;

  计算所述第一向量和所述第二向量的第一点积值;

  根据所述第一点积值和预置反余弦函数,计算所述第一向量和所述第二向量对应的夹角并将所述夹角作为所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转角度。

  可选地,在本发明第一方面的第四种实现方式中,所述根据预置方向判断规则,确定所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转方向包括:

  计算所述第一向量和所述第二向量的向量积,并将所述向量积作为所述第一向量和所述第二向量所在平面的法向量;

  计算所述法向量和所述指标向量之间的第二点积值;

  根据所述第二点积值,确定所述第一向量与所述第二向量之间的方向,并将所述方向作为所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转方向。

  可选地,在本发明第一方面的第五种实现方式中,所述根据所述骨骼起点坐标、所述骨骼中点坐标和所述绳索终点坐标,计算所述骨骼模型与所述绳索之间角度,并以所述骨骼起点坐标为原点,控制所述骨骼模型按所述角度弯曲,以平滑连接所述物品和所述绳索包括:

  以所述骨骼中点坐标为原点、以所述骨骼起点坐标和所述绳索终点坐标为端点,对应构建第三向量和第四向量;

  计算所述第三向量和所述第四向量的第三点积值;

  根据预置反余弦函数,计算所述第三点积值对应的角度;

  以所述骨骼起点坐标为原点,控制所述骨骼模型按所述角度弯曲,以平滑连接所述物品和所述绳索。

  本发明第二方面提供了一种基于虚幻引擎的绳索连接优化装置,包括:

  创建模块,用于分别获取待相连的物品的第一截面大小和绳索的第二截面大小,并根据所述第一截面大小和所述第二截面大小,创建骨骼模型并将所述骨骼模型设置于所述物品和所述绳索之间;

  获取模块,用于实时获取骨骼模型的骨骼中点坐标、与物品连接的骨骼模型的骨骼起点坐标、靠近绳索的骨骼模型的骨骼终点坐标以及远离骨骼模型的绳索的绳索终点坐标;

  旋转模块,用于根据所述骨骼起点坐标、所述骨骼终点坐标和所述绳索终点坐标,确定所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转角,并控制所述骨骼模型按所述旋转角旋转;

  弯曲模块,用于根据所述骨骼起点坐标、所述骨骼中点坐标和所述绳索终点坐标,计算所述骨骼模型与所述绳索之间角度,并以所述骨骼起点坐标为原点,控制所述骨骼模型按所述角度弯曲,以平滑连接所述物品和所述绳索。

  可选地,在本发明第二方面的第一种实现方式中,所述基于虚幻引擎的绳索连接优化装置还包括指标模块,所述指标模块用于:

  基于所述物品,创建用于指示所述物品延伸方向的箭头组件;

  基于所述箭头组件的指示方向,生成相同方向的指标向量。

  可选地,在本发明第二方面的第二种实现方式中,所述旋转模块包括:

  旋转角度单元,用于以所述骨骼起点坐标为顶点、所述骨骼终点坐标和所述绳索终点坐标为端点,计算所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转角度;

  旋转方向单元,用于根据预置方向判断规则,确定所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转方向,其中,所述旋转角包括旋转方向和旋转角度;

  旋转单元,用于根据所述旋转方向,以所述指标向量为旋转轴、所述骨骼起点坐标为原点,控制所述骨骼模型旋转所述旋转角度,以使所述骨骼模型旋转至所述物品和所述绳索所在的平面。

  可选地,在本发明第二方面的第三种实现方式中,所述旋转角度单元具体用于:

  参照所述指示方向,分别创建经过所述骨骼终点坐标的第一辅助线和所述绳索终点坐标的第二辅助线,其中,所述第一辅助线和所述第二辅助线与所述指标向量平行;

  以所述骨骼起点坐标为原点,分别向所述第一辅助线和所述第二辅助线作垂线,对应得到第一向量和第二向量;

  计算所述第一向量和所述第二向量的第一点积值;

  根据所述第一点积值和预置反余弦函数,计算所述第一向量和所述第二向量对应的夹角并将所述夹角作为所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转角度。

  可选地,在本发明第二方面的第四种实现方式中,所述旋转方向单元具体用于:

  计算所述第一向量和所述第二向量的向量积,并将所述向量积作为所述第一向量和所述第二向量所在平面的法向量;

  计算所述法向量和所述指标向量之间的第二点积值;

  根据所述第二点积值,确定所述第一向量与所述第二向量之间的方向,并将所述方向作为所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转方向。

  可选地,在本发明第二方面的第五种实现方式中,所述弯曲模块具体用于:

  以所述骨骼中点坐标为原点、以所述骨骼起点坐标和所述绳索终点坐标为端点,对应构建第三向量和第四向量;

  计算所述第三向量和所述第四向量的第三点积值;

  根据预置反余弦函数,计算所述第三点积值对应的角度;

  以所述骨骼起点坐标为原点,控制所述骨骼模型按所述角度弯曲,以平滑连接所述物品和所述绳索。

  本发明第三方面提供了一种基于虚幻引擎的绳索连接优化设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述基于虚幻引擎的绳索连接优化设备执行上述的基于虚幻引擎的绳索连接优化方法。

  本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的基于虚幻引擎的绳索连接优化方法。

  本发明提供的技术方案中,在物品和绳索之间设置一个可弯曲旋转的骨骼模型,其中,骨骼模型的两个截面分别与绳索截面、物品截面相同。再获取骨骼模型的骨骼起点坐标、骨骼中点坐标和骨骼终点坐标以及绳索终点坐标,然后通过这些坐标,计算骨骼模型的旋转角,并根据其旋转角旋转骨骼模型,使骨骼模型、物品和绳索位于同一平面,再计算骨骼模型与绳索之间角度,并根据该角度,弯曲骨骼模型,以使其两个截面与物品和绳索的截面相契合,平滑连接物品和绳索。为简单且高效地将骨骼模型与绳索、物品连接,将骨骼模型的调整分为旋转和弯曲两个步骤进行,也就是将三维问题转换为两个简单的二维问题,从而将物品、骨骼模型和绳索的平滑连接,实现绳索与物品连接处显示得更为自然逼真。

  附图说明

  图1为目前基于虚拟引擎的绳索与物品连接处显示效果图;

  图2为本发明实施例中实施基于虚拟引擎的绳索连接优化方法后的连接处显示效果图;

  图3为本发明实施例中基于虚拟引擎的绳索连接优化方法的第一个实施例示意图;

  图4为本发明实施例中基于虚幻引擎的绳索连接优化方法中确定旋转角的示意图;

  图5为本发明实施例中基于虚幻引擎的绳索连接优化方法的第二个实施例;

  图6为本发明实施例中基于虚幻引擎的绳索连接优化方法的第三个实施例示意图;

  图7为本发明实施例中基于虚幻引擎的绳索连接优化装置的第一个实施例示意图;

  图8为本发明实施例中基于虚幻引擎的绳索连接优化装置的第二个实施例示意图;

  图9为本发明实施例中基于虚幻引擎的绳索连接优化设备的一个实施例示意图。

  具体实施方式

  本发明实施例提供了一种基于虚幻引擎的绳索连接优化方法和相关设备,本发明提供的技术方案中,在物品和绳索之间设置一个可弯曲旋转的骨骼模型,其中,骨骼模型的两个截面分别与绳索截面、物品截面相同。再获取骨骼模型的骨骼起点坐标、骨骼中点坐标和骨骼终点坐标以及绳索终点坐标,然后通过这些坐标,计算骨骼模型的旋转角,并根据其旋转角旋转骨骼模型,使骨骼模型、物品和绳索位于同一平面,再计算骨骼模型与绳索之间角度,并根据该角度,弯曲骨骼模型,以使其两个截面与物品和绳索的截面相契合,平滑连接物品和绳索。为简单且高效地将骨骼模型与绳索、物品连接,将骨骼模型的调整分为旋转和弯曲两个步骤进行,也就是将三维问题转换为两个简单的二维问题,从而将物品、骨骼模型和绳索的平滑连接,实现绳索与物品连接处显示得更为自然逼真。

  本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

  为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1、2和3,其中,图1为目前基于虚拟引擎的绳索与物品连接处显示效果图,图1中的101为物品,102为绳索;

  图2为本发明实施例中实施基于虚拟引擎的绳索连接优化方法后的连接处显示效果图,图2中的201为物品,202为绳索,203为骨骼模型;

  图3为本发明实施例中基于虚拟引擎的绳索连接优化方法的第一个实施例示意图,具体包括:

  S101、分别获取待相连的物品的第一截面大小和绳索的第二截面大小,并根据所述第一截面大小和所述第二截面大小,创建骨骼模型并将所述骨骼模型设置于所述物品和所述绳索之间;

  可以理解的是,本发明的执行主体可以为基于虚拟引擎的绳索连接优化装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。

  值得注意的是,本方案中的绳索并非是指现实生活大家所使用的绳索,而是指在虚拟引擎中,通过绳索组件创建的绳索,后续显示上可能是绳子,可能是锁链,也可能是其他类绳索物体。UE目前有多个版本,本实施例优选的版本为4.0版本,在某部分技术文献中,也简称为UE4。

  先获取物品的第一截面大小和绳索的第二截面大小。并根据第一截面大小和第二界面大小,创建一个骨骼模型。该骨骼模型靠近物品的那一截面与第一界面大小相同,靠近绳索的那一截面与第二截面大小相同。然后将骨骼模型放于物品和绳索之间,且该骨骼模型中与第一截面大小相同的那一截面与该物品连接,即两截面重合。

  可以理解的是,本发明的执行主体可以为基于虚幻引擎的绳索连接优化装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。

  S102、实时获取骨骼模型的骨骼中点坐标、与物品连接的骨骼模型的骨骼起点坐标、靠近绳索的骨骼模型的骨骼终点坐标以及远离骨骼模型的绳索的绳索终点坐标;

  通过UE4的函数GetSocketLocation()可获取骨骼模型和绳索的坐标信息。在本发明中,所需用到的坐标信息有:

  (1)该骨骼模型中,与物品相连的那一截面的坐标,命名为骨骼起点坐标;

  (2)该骨骼模型中,靠近绳索的截面的坐标,命名为骨骼终点坐标;

  (3)骨骼模型中,骨骼起点坐标和骨骼终点坐标的中间坐标,命名为骨骼中点坐标;

  (4)绳索中远离骨骼的那一端的坐标,命名为绳索终点坐标。

  S103、根据所述骨骼起点坐标、所述骨骼终点坐标和所述绳索终点坐标,确定所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转角,并控制所述骨骼模型按所述旋转角旋转;

  在本方案,将调整骨骼分为旋转和弯曲两部分。在本实施例中,优选以物品所延伸方向为旋转轴进行旋转。首先创建一个与物品延伸方向相同的箭头组件,并基于该箭头组件,创建一个指标向量。

  然后将骨骼终点坐标、骨骼起点坐标和绳索终点坐标映射到同一个垂直于指标向量的平面上。该平面向量可是经过骨骼起点坐标的平面、也可以是经过骨骼终点坐标的平面,亦可以是不经过这三个点的任一平面。然后以骨骼起点坐标的映射点为原点(如果映射的平面经过骨骼起点,则骨骼起点坐标的映射点为自己),分别向骨骼终点坐标的映射点和绳索终点坐标的映射点做向量,得到第一向量和第二向量。再计算第一向量和第二向量的点积值,并根据反余弦函数,计算两者之间的旋转角度。

  而旋转角除旋转角度外,还包括旋转方向。本实施例优选根据第一向量和第二向量的法向量与指标向量是否同向,确定旋转方向。若两者同向,则说明以箭头组件为旋转轴,第一向量逆时针旋转才可与第二向量重合,即物品、骨骼模型和绳索组件位于同一平面。

  得到旋转角度和旋转方向后,以骨骼模型的骨骼起点坐标为中心,箭头组件为旋转轴,控制该骨骼模型旋转上述旋转角度,最终使物品、骨骼模型和绳索组件位于同一平面。

  S104、根据所述骨骼起点坐标、所述骨骼中点坐标和所述绳索终点坐标,计算所述骨骼模型与所述绳索之间角度,并以所述骨骼起点坐标为原点,控制所述骨骼模型按所述角度弯曲,以平滑连接所述物品和所述绳索。

  三者位于同一平面后,骨骼模型虽然与物品连接,但是并未与绳索连接。例如骨骼模型朝上,而绳索保持水平状态,因此需要将该骨骼模型弯曲。因为三者已经位于同一平面,因此只需要通过计算以骨骼中点坐标为原点,骨骼起点坐标和绳索终点坐标为端点的角的度数即可。在本实施例中,优选的计算弯曲角的方案是,以骨骼中点坐标为原点,创建指向骨骼起点坐标的第三向量和以绳索终点坐标为原点,创建指向骨骼中点坐标的第四向量。然后通过计算第三向量和第四向量的点积值,并根据反余弦函数,得到两个向量之间的夹角,即待弯曲的弯曲角。

  得到骨骼模型的弯曲角后,以所述骨骼起点坐标为原点,控制该骨骼模型弯曲该弯曲角。如骨骼模型为水平状态,绳索竖直于骨骼模型的中点坐标的上方,可简单判断第三向量与第四向量的夹角为90°。然后固定骨骼起点坐标,控制骨骼模型的末端开始弯曲,直至弯曲角度为90°。故骨骼模型终点坐标所在截面朝向所述绳索终点坐标,因此骨骼模型的另一截面可与绳索的截面重合连接,且过渡自然。

  本发明实施例中,先设置骨骼模型,为简单且高效地将骨骼模型与绳索、物品连接,将骨骼模型的调整分为旋转和弯曲两个步骤进行,也就是将三维问题转换为两个简单的二维问题。最终通过旋转和弯曲骨骼模型,将物品、骨骼模型和绳索的平滑连接,实现绳索与物品连接处显示得更为自然逼真。

  请参阅图4和图5,其中,图4为本发明实施例中基于虚幻引擎的绳索连接优化方法中确定旋转角的示意图,图4中301为物品,302为绳索,303为骨骼模型,304为骨骼起点坐标,305为骨骼终点坐标,306为绳索终点坐标,307为指标向量,308和309分别为第一辅助线和第二辅助线,310和311分别为第一向量和第二向量,312为旋转角度;

  图5为本发明实施例中基于虚幻引擎的绳索连接优化方法的第二个实施例包括:

  S201、分别获取待相连的物品的第一截面大小和绳索的第二截面大小,并根据所述第一截面大小和所述第二截面大小,创建骨骼模型并将所述骨骼模型设置于所述物品和所述绳索之间;

  S202、实时获取骨骼模型的骨骼中点坐标、与物品连接的骨骼模型的骨骼起点坐标、靠近绳索的骨骼模型的骨骼终点坐标以及远离骨骼模型的绳索的绳索终点坐标;

  S203、基于所述物品,创建用于指示所述物品延伸方向的箭头组件;

  箭头组件(Arrow Component,AC)是一个用直线渲染的简单箭头,用于指示对象应当遵循的朝向。在UE4中,该组建可以被用作脚本“标记”。基于该物品,创建一个箭头的指示方向与物品延伸方向相同的箭头组件。

  S204、基于所述箭头组件的指示方向,生成相同方向的指标向量;

  根据该箭头组件的方向,生成一个方向相同的指标向量。为便于计算,可默认指标向量的大小为1。

  S205、参照所述指示方向,分别创建经过所述骨骼终点坐标的第一辅助线和所述绳索终点坐标的第二辅助线,其中,所述第一辅助线和所述第二辅助线与所述指标向量平行;

  S206、以所述骨骼起点坐标为原点,分别向所述第一辅助线和所述第二辅助线作垂线,对应得到第一向量和第二向量;

  然后以骨骼起点坐标为向量的原点,分别向第一辅助线和第二辅助线作垂线,得到指向第一辅助线的第一向量和指向第二辅助线的第二向量。通过此方式,将骨骼终点坐标、绳索终点坐标以及骨骼起点坐标三个点映射在同一平面上。

  假设当前的骨骼起点坐标为(x0,y0,z0),绳索终点坐标为(x1,y1,z1)和骨骼终点坐标(x2,y2,z2),则第一向量和第二向量的原点坐标,可用(x0,y0)表示,第一向量的终点坐标为(x1,y1),第二向量的终点坐标为(x2,y2),故第一向量为(x1-x0,y1-y0),第二向量为(x2-x0,y2-y0)。

  S207、计算所述第一向量和所述第二向量的第一点积值;

  点积是指两个向量的数量积,在代数上,两个向量的点积可表示为其中表示第一向量,表示第二向量。通过公式,计算得第一向量和第二向量的第一点积值。

  S208、根据所述第一点积值和预置反余弦函数,计算所述第一向量和所述第二向量对应的夹角并将所述夹角作为所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转角度;

  由于两个向量点积的几何意义上表示为表示第一向量的长度,表示第二向量的长度,θ表示第一向量和第二向量的夹角。根据勾股定理,可计算第一向量和第二向量的长度。因此,通过反余弦函数可得到第一向量和第二向量的夹角,即旋转角度。

  S209、计算所述第一向量和所述第二向量的向量积,并将所述向量积作为所述第一向量和所述第二向量所在平面的法向量;

  向量积是通过第一向量和第二向量叉乘得到,在几何上表示的是同时垂直于第一向量和第二向量的向量。将第一向量与第二向量叉乘,计算两者的向量积的数值,并根据右手螺旋定理,去顶该向量积的方向。将该向量积作为第一向量和第二向量的平面的法向量。

  S210、计算所述法向量和所述指标向量之间的第二点积值;

  S211、根据所述第二点积值,确定所述第一向量与所述第二向量之间的方向,并将所述方向作为所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转方向;

  由余弦函数可知,当角的大小在区间[-90°,90°]之间,余弦值为正数;当角的大小在区间[-180°,-90°]和区间[90°,180°]之间为负数。

  假设得到的法向量的数值为1。由于法向量不仅存在数值,也存在方向。因此当法向量和指标向量同向时,即两者的角度为0,因此数值为正数1,故旋转方向为以指示方向为旋转轴的顺时针方向为旋转方向;两者反向,即两者的角度为180°,因此数值为-1,故旋转方向为以指示方向为旋转轴的逆时针方向为旋转方向。

  S212、根据所述旋转方向,以所述指标向量为旋转轴、所述骨骼起点坐标为原点,控制所述骨骼模型旋转所述旋转角度,以使所述骨骼模型旋转至所述物品和所述绳索所在的平面;

  在初始创建骨骼模型时,虽然骨骼模型在物品和绳索之间且与物品连接,但是骨骼模型的另一个截面不一定与绳索的截面连接着,可能存在位置的偏移。所以需要将骨骼模型旋转,以使其于绳索位于同一平面,便于后续的弯曲。

  一般采用绳索中靠近骨骼模型的绳索起点坐标和骨骼终点坐标,计算旋转角度,但这种方法,忽略了绳索本身的长度和弯曲方向,因此仍然会存在明显的不自然。因此本方案采用了根据绳索终点坐标和骨骼终点坐标来计算旋转角度,从而提高连接处的自然感,尤其是当绳索本身较为硬时。

  计算得到旋转角度后,以骨骼起点坐标为原点,以指标向量为旋转轴,控制骨骼模型旋转该旋转角度,从而使骨骼模型与物品、绳索位于同一平面,便于后续骨骼模型的弯曲。

  S213、根据所述骨骼起点坐标、所述骨骼中点坐标和所述绳索终点坐标,计算所述骨骼模型与所述绳索之间角度,并以所述骨骼起点坐标为原点,控制所述骨骼模型按所述角度弯曲,以平滑连接所述物品和所述绳索。

  本发明实施例中,提供了计算旋转角的具体实现方式,其中旋转角包括旋转角度和旋转方向,再根据旋转角度和旋转方向,控制骨骼模型旋转,最后将物品、骨骼模型和绳索置于同一平面。

  请参阅图6,本发明实施例中基于虚幻引擎的绳索连接优化方法的第三个实施例包括:

  S301、分别获取待相连的物品的第一截面大小和绳索的第二截面大小,并根据所述第一截面大小和所述第二截面大小,创建骨骼模型并将所述骨骼模型设置于所述物品和所述绳索之间;

  S302、实时获取骨骼模型的骨骼中点坐标、与物品连接的骨骼模型的骨骼起点坐标、靠近绳索的骨骼模型的骨骼终点坐标以及远离骨骼模型的绳索的绳索终点坐标;

  S303、根据所述骨骼起点坐标、所述骨骼终点坐标和所述绳索终点坐标,确定所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转角,并控制所述骨骼模型按所述旋转角旋转;

  S304、以所述骨骼中点坐标为原点、以所述骨骼起点坐标和所述绳索终点坐标为端点,对应构建第三向量和第四向量;

  本发明采用将骨骼模型中点控制不动,将骨骼模型的终点端弯曲一定的角度,从而实现骨骼模型的弯曲。之前已通过旋转将骨骼模型、物品和绳索置于同一平面,因此只要弯曲骨骼模型,就可以将三者联合。

  先以骨骼中点坐标为原点、分别向绳索终点坐标为端点创建第三向量,以及以骨骼起点坐标为端点、创建第四向量。

  S305、计算所述第三向量和所述第四向量的第三点积值;

  通过两个向量的点积公式,可计算第三向量和第四向量之间的第三点积值,其中点积公式已在上一实施例详细描述,在此不再进行进一步的描述。

  S306、根据预置反余弦函数,计算所述第三点积值对应的角度;

  由于骨骼起点坐标、骨骼中点坐标和绳索终点坐标都是已知的,因此可得到第三向量和第四向量的坐标表示。通过反余弦函数,可计算第三点积值对应的角度,即待弯曲的弯曲角。

  S307、以所述骨骼起点坐标为原点,控制所述骨骼模型按所述角度弯曲,以平滑连接所述物品和所述绳索。

  本发明实施例中,提供了一种弯曲角计算方案,能够简单快捷地计算出骨骼模型所需弯曲的角度。

  上面对本发明实施例中基于虚幻引擎的绳索连接优化方法进行了描述,下面对本发明实施例中基于虚幻引擎的绳索连接优化装置进行描述,请参阅图7,本发明实施例中基于虚幻引擎的绳索连接优化装置一个实施例包括:

  创建模块401,用于分别获取待相连的物品的第一截面大小和绳索的第二截面大小,并根据所述第一截面大小和所述第二截面大小,创建骨骼模型并将所述骨骼模型设置于所述物品和所述绳索之间;

  获取模块402,用于实时获取骨骼模型的骨骼中点坐标、与物品连接的骨骼模型的骨骼起点坐标、靠近绳索的骨骼模型的骨骼终点坐标以及远离骨骼模型的绳索的绳索终点坐标;

  旋转模块403,用于根据所述骨骼起点坐标、所述骨骼终点坐标和所述绳索终点坐标,确定所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转角,并控制所述骨骼模型按所述旋转角旋转;

  弯曲模块404,用于根据所述骨骼起点坐标、所述骨骼中点坐标和所述绳索终点坐标,计算所述骨骼模型与所述绳索之间角度,并以所述骨骼起点坐标为原点,控制所述骨骼模型按所述角度弯曲,以平滑连接所述物品和所述绳索。

  本发明实施例中,先设置骨骼模型,为简单且高效地将骨骼模型与绳索、物品连接,将骨骼模型的调整分为旋转和弯曲两个步骤进行,也就是将三维问题转换为两个简单的二维问题。最终通过旋转和弯曲骨骼模型,将物品、骨骼模型和绳索的平滑连接,实现绳索与物品连接处显示得更为自然逼真。

  请参阅图8,本发明实施例中基于虚幻引擎的绳索连接优化装置的另一个实施例包括:

  创建模块401,用于分别获取待相连的物品的第一截面大小和绳索的第二截面大小,并根据所述第一截面大小和所述第二截面大小,创建骨骼模型并将所述骨骼模型设置于所述物品和所述绳索之间;

  获取模块402,用于实时获取骨骼模型的骨骼中点坐标、与物品连接的骨骼模型的骨骼起点坐标、靠近绳索的骨骼模型的骨骼终点坐标以及远离骨骼模型的绳索的绳索终点坐标;

  旋转模块403,用于根据所述骨骼起点坐标、所述骨骼终点坐标和所述绳索终点坐标,确定所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转角,并控制所述骨骼模型按所述旋转角旋转;

  弯曲模块404,用于根据所述骨骼起点坐标、所述骨骼中点坐标和所述绳索终点坐标,计算所述骨骼模型与所述绳索之间角度,并以所述骨骼起点坐标为原点,控制所述骨骼模型按所述角度弯曲,以平滑连接所述物品和所述绳索。

  所述基于虚幻引擎的绳索连接优化装置还包括指标模块405,所述指标模块405用于:

  基于所述物品,创建用于指示所述物品延伸方向的箭头组件;

  基于所述箭头组件的指示方向,生成相同方向的指标向量。

  其中,所述旋转模块403包括:

  旋转角度单元4031,用于以所述骨骼起点坐标为顶点、所述骨骼终点坐标和所述绳索终点坐标为端点,计算所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转角度;

  旋转方向单元4032,用于根据预置方向判断规则,确定所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转方向,其中,所述旋转角包括旋转方向和旋转角度;

  旋转单元4033,用于根据所述旋转方向,以所述指标向量为旋转轴、所述骨骼起点坐标为原点,控制所述骨骼模型旋转所述旋转角度,以使所述骨骼模型旋转至所述物品和所述绳索所在的平面。

  可选地,所述旋转角度单元4031具体用于:

  参照所述指示方向,分别创建经过所述骨骼终点坐标的第一辅助线和所述绳索终点坐标的第二辅助线,其中,所述第一辅助线和所述第二辅助线与所述指标向量平行;

  以所述骨骼起点坐标为原点,分别向所述第一辅助线和所述第二辅助线作垂线,对应得到第一向量和第二向量;

  计算所述第一向量和所述第二向量的第一点积值;

  根据所述第一点积值和预置反余弦函数,计算所述第一向量和所述第二向量对应的夹角并将所述夹角作为所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转角度。

  可选地,所述旋转方向单元4032具体用于:

  计算所述第一向量和所述第二向量的向量积,并将所述向量积作为所述第一向量和所述第二向量所在平面的法向量;

  计算所述法向量和所述指标向量之间的第二点积值;

  根据所述第二点积值,确定所述第一向量与所述第二向量之间的方向,并将所述方向作为所述骨骼模型旋转至所述物品和所述绳索所在平面的旋转方向。

  可选地,所述弯曲模块404具体用于:

  以所述骨骼中点坐标为原点、以所述骨骼起点坐标和所述绳索终点坐标为端点,对应构建第三向量和第四向量;

  计算所述第三向量和所述第四向量的第三点积值;

  根据预置反余弦函数,计算所述第三点积值对应的角度;

  以所述骨骼起点坐标为原点,控制所述骨骼模型按所述角度弯曲,以平滑连接所述物品和所述绳索。

  本发明实施例在上一实施例基础上,具体提供了计算旋转角的具体实现方式和简单快捷的弯曲角计算方案,其中旋转角包括旋转角度和旋转方向,再根据旋转角度和旋转方向,控制骨骼模型旋转,最后将物品、骨骼模型和绳索置于同一平面。

  上面图7和图8从模块化功能实体的角度对本发明实施例中的基于虚幻引擎的绳索连接优化装置进行详细描述,下面从硬件处理的角度对本发明实施例中基于虚幻引擎的绳索连接优化设备进行详细描述。

  图6是本发明实施例提供的一种基于虚幻引擎的绳索连接优化设备的结构示意图,该基于虚幻引擎的绳索连接优化设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)610(例如,一个或一个以上处理器)和存储器620,一个或一个以上存储应用程序633或数据632的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器620和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对基于虚幻引擎的绳索连接优化设备600中的一系列指令操作。更进一步地,处理器610可以设置为与存储介质630通信,在基于虚幻引擎的绳索连接优化设备600上执行存储介质630中的一系列指令操作。

  基于基于虚幻引擎的绳索连接优化设备600还可以包括一个或一个以上电源640,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口660,和/或,一个或一个以上操作系统631,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图6示出的基于虚幻引擎的绳索连接优化设备结构并不构成对基于基于虚幻引擎的绳索连接优化设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

  本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述基于虚幻引擎的绳索连接优化方法的步骤。

  所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

  所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

  以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

《基于虚幻引擎的绳索连接优化方法和相关设备.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)