CN111681306B - 基于ue4的绳索实现方法、装置、设备及存储介质 - Google Patents

基于ue4的绳索实现方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111681306B
CN111681306B CN202010545857.7A CN202010545857A CN111681306B CN 111681306 B CN111681306 B CN 111681306B CN 202010545857 A CN202010545857 A CN 202010545857A CN 111681306 B CN111681306 B CN 111681306B
Authority
CN
China
Prior art keywords
rope
constraint
node
vector
nodes
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.)
Active
Application number
CN202010545857.7A
Other languages
English (en)
Other versions
CN111681306A (zh
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.)
Shenzhen Realis Multimedia Technology Co Ltd
Original Assignee
Shenzhen Realis Multimedia Technology Co Ltd
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 Shenzhen Realis Multimedia Technology Co Ltd filed Critical Shenzhen Realis Multimedia Technology Co Ltd
Priority to CN202010545857.7A priority Critical patent/CN111681306B/zh
Publication of CN111681306A publication Critical patent/CN111681306A/zh
Application granted granted Critical
Publication of CN111681306B publication Critical patent/CN111681306B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明涉及虚拟成像领域,公开了一种基于UE4的绳索实现方法、装置、设备及存储介质。该方法包括:对UE4环境中的虚拟绳索进行节点化处理,得到N个绳索节点;根据预置绳索节点算法,计算N个绳索节点之间的节点约束关系,该节点约束关系包括相邻绳索节点的第一约束关系、绳索节点的旋转角度约束关系和间隔绳索节点的第二约束关系;根据第一约束关系、旋转角度约束关系和第二约束关系进行显示约束计算处理,得到N个绳索节点分别对应的N个显示节点;根据N个显示节点,更新虚拟绳索中的绳索节点,生成约束虚拟绳索。在本发明中,比较现有的技术,能够实现在虚拟环境中绳索仿真的稳定显示,且不抖动,硬度能够自由调节的绳索。

Description

基于UE4的绳索实现方法、装置、设备及存储介质
技术领域
本发明涉及虚拟成像领域,尤其涉及一种基于UE4的绳索实现方法、装置、设备及存储介质。
背景技术
在现在虚拟成像领域中,由于算法的千变万化,导致不同算法模拟现实物体呈现的效果不同。在使用不同的计算方程约束会对整个成像的效果产生不同的影响,其中,如果计算方程约束具有一定的参数变化,则成像会显示较为柔软;如果计算方程约束的参数变化较少,则成像显示会较为坚硬。
在现有技术中,使用多个物理骨骼约束的绳索,在虚拟成像的虚拟图像在受到虚拟世界中物理碰撞会发生抖动,或在绳索本事移动的过程中,发生绳索的自身抖动。在使用cable插件实现的绳索,则可以得到质地柔软的成像绳索,但是缺乏硬度。因此,需要一种方法使得成像的绳索能呈现出硬度可以调节、稳定不易抖动、任意更改骨骼样式的特点。
发明内容
本发明的主要目的在于解决现有绳索成像技术展现效果不稳定的技术问题。
本发明第一方面提供了一种基于UE4的绳索实现方法,所述基于UE4的绳索实现方法包括:
对UE4环境中的虚拟绳索进行节点化处理,得到N个绳索节点,其中,N为大于3的正整数;
根据预置绳索节点算法,计算N个所述绳索节点之间的节点约束关系,所述节点约束关系包括相邻绳索节点的第一约束关系、绳索节点的旋转角度约束关系和间隔绳索节点的第二约束关系;
根据所述第一约束关系、所述旋转角度约束关系和所述第二约束关系进行显示约束计算处理,得到N个所述绳索节点分别对应的N个显示节点;
根据N个所述显示节点,更新所述虚拟绳索中的绳索节点,生成约束虚拟绳索。
可选的,在本发明第一方面的第一种实现方式中,所述对UE4环境中的虚拟绳索进行节点化处理,得到N个绳索节点包括:
从待预处理的虚拟绳索中选取目标节点,读取所述虚拟绳索的外力数据;
读取所述目标节点在预置间隔时长之前的前帧节点;
根据所述前帧节点、所述目标节点和所述外力数据,通过预置演化算法运算,得到预测节点;
遍历所述虚拟绳索上的节点,计算出所述虚拟绳索中所有节点对应的预测节点,将所有所述预测节点显示确认为N个绳索节点。
可选的,在本发明第一方面的第二种实现方式中,所述第一约束关系为约束向量,所述第二约束关系为显示约束向量;
所述根据预置绳索节点算法,计算N个所述绳索节点之间的节点约束关系包括:
从所述虚拟绳索中抓取第一绳索节点和第二绳索节点,其中,所述第一绳索节点与所述第二绳索节点为所述虚拟绳索中相距预置间隔长度的绳索节点;
根据所述第一绳索节点和所述第二绳索节点,通过预置约束计算法运算,得到所述约束向量;
根据所述约束向量,计算出所述约束向量对应的单位向量,以及计算所述约束向量与所述单位向量之间的向量夹角,得到所述旋转角度约束关系;
判断所述向量夹角是否大于预置夹角阈值;
若所述向量夹角大于所述夹角阈值,则根据所述单位向量、所述约束向量、所述向量夹角和所述夹角阈值,通过预置转换算法运算,得到所述显示约束向量;
若所述向量夹角不大于所述夹角阈值,则在所述虚拟绳索中,抓取距离所述第一绳索节点循环次数倍所述间隔长度的节点作为第二绳索节点,以迭代进行约束运算。
可选的,在本发明第一方面的第三种实现方式中,所述根据所述第一绳索节点和所述第二绳索节点,通过预置约束计算法运算,得到所述第一约束关系中的约束向量包括:
将所述第一绳索节点与所述第二绳索节点的进行差值运算,得到节点向量;
根据所述节点向量与所述间隔长度,通过预置参数算法运算,得到约束参数;
根据所述约束参数、所述第一绳索节点和所述第二绳索节点,通过预置迭代升级算法运算,得到所述约束向量。
可选的,在本发明第一方面的第四种实现方式中,所述根据所述约束向量,计算出所述约束向量对应的单位向量,以及计算所述约束向量与所述单位向量之间的向量夹角,得到所述旋转角度约束关系包括:
对所述约束向量进行模运算,得到所述约束向量的模长度;
将所述约束向量的每个元素与模长度进行除法运算,得到所述约束向量的单位向量;
将所述单位向量与所述约束向量进行夹角运算,得到向量夹角,以确定所述旋转角度约束关系。
可选的,在本发明第一方面的第五种实现方式中,所述根据所述第一约束关系、所述旋转角度约束关系和所述第二约束关系进行显示约束计算处理,得到N个所述绳索节点分别对应的N个显示节点包括:
获得预置显示算法框架,将所述约束向量、所述向量夹角、所述夹角阈值、所述显示约束向量和所述间隔长度写入所述显示算法框架,得到显示算法;
遍历抓取N个所述绳索节点,分别通过所述显示算法的运算,得出N个所述绳索节点分别对应的N个显示节点。
可选的,在本发明第一方面的第六种实现方式中,所述根据N个所述显示节点,更新所述虚拟绳索中的绳索节点,生成约束虚拟绳索包括:
创建节点解算表格,将N个所述显示节点的数据输入所述解算表格;
调用内置计算函数,解算出所述解算表格中N个所述显示节点对应的位置;
根据所有所述位置,更新所述虚拟绳索中的绳索节点,以及根据所述绳索节点渲染生成约束虚拟绳索。
本发明第二方面提供了一种基于UE4的绳索实现装置,所述基于UE4的绳索实现装置包括:
抓取模块,用于对UE4环境中的虚拟绳索进行节点化处理,得到N个绳索节点,其中,N为大于3的正整数;
约束关系计算模块,用于根据预置绳索节点算法,计算N个所述绳索节点之间的节点约束关系,所述节点约束关系包括相邻绳索节点的第一约束关系、绳索节点的旋转角度约束关系和间隔绳索节点的第二约束关系;
节点计算模块,用于根据所述第一约束关系、所述旋转角度约束关系和所述第二约束关系进行显示约束计算处理,得到N个所述绳索节点分别对应的N个显示节点;
显示生成模块,用于根据N个所述显示节点,更新所述虚拟绳索中的绳索节点,生成约束虚拟绳索。
可选的,在本发明第二方面的第一种实现方式中,所述抓取模块具体用于:
从待预处理的虚拟绳索中选取目标节点,读取所述虚拟绳索的外力数据;
读取所述目标节点在预置间隔时长之前的前帧节点;
根据所述前帧节点、所述目标节点和所述外力数据,通过预置演化算法运算,得到预测节点;
遍历所述虚拟绳索上的节点,计算出所述虚拟绳索中所有节点对应的预测节点,将所有所述预测节点显示确认为N个绳索节点。
可选的,在本发明第二方面的第二种实现方式中,所述第一约束关系为约束向量,所述第二约束关系为显示约束向量;
所述约束关系计算模块包括:
抓取单元,用于从所述虚拟绳索中抓取第一绳索节点和第二绳索节点,其中,所述第一绳索节点与所述第二绳索节点为所述虚拟绳索中相距预置间隔长度的绳索节点;
第一向量计算单元,用于根据所述第一绳索节点和所述第二绳索节点,通过预置约束计算法运算,得到所述约束向量;
角度计算单元,用于根据所述约束向量,计算出所述约束向量对应的单位向量,以及计算所述约束向量与所述单位向量之间的向量夹角,得到所述旋转角度约束关系;
判断单元,用于判断所述向量夹角是否大于预置夹角阈值;
第二向量计算单元,用于若所述向量夹角大于所述夹角阈值,则根据所述单位向量、所述约束向量、所述向量夹角和所述夹角阈值,通过预置转换算法运算,得到所述显示约束向量;
迭代抓取单元,用于若所述向量夹角不大于所述夹角阈值,则在所述虚拟绳索中,抓取距离所述第一绳索节点循环次数倍所述间隔长度的节点作为第二绳索节点,以迭代进行约束运算。
可选的,在本发明第二方面的第三种实现方式中,所述第一向量计算单元具体用于:
将所述第一绳索节点与所述第二绳索节点的进行差值运算,得到节点向量;
根据所述节点向量与所述间隔长度,通过预置参数算法运算,得到约束参数;
根据所述约束参数、所述第一绳索节点和所述第二绳索节点,通过预置迭代升级算法运算,得到所述约束向量。
可选的,在本发明第二方面的第四种实现方式中,所述角度计算单元具体用于:
对所述约束向量进行模运算,得到所述约束向量的模长度;
将所述约束向量的每个元素与模长度进行除法运算,得到所述约束向量的单位向量;
将所述单位向量与所述约束向量进行夹角运算,得到向量夹角,以确定所述旋转角度约束关系。
可选的,在本发明第二方面的第五种实现方式中,所述节点计算模块具体用于:
获得预置显示算法框架,将所述约束向量、所述向量夹角、所述夹角阈值、所述显示约束向量和所述间隔长度写入所述显示算法框架,得到显示算法;
遍历抓取N个所述绳索节点,分别通过所述显示算法的运算,得出N个所述绳索节点分别对应的N个显示节点。
可选的,在本发明第二方面的第六种实现方式中,所述显示生成模块具体用于:
创建节点解算表格,将N个所述显示节点的数据输入所述解算表格;
调用内置计算函数,解算出所述解算表格中N个所述显示节点对应的位置;
根据所有所述位置,更新所述虚拟绳索中的绳索节点,以及根据所述绳索节点渲染生成约束虚拟绳索。
本发明第三方面提供了一种基于UE4的绳索实现设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述基于UE4的绳索实现设备执行上述的基于UE4的绳索实现方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的基于UE4的绳索实现方法。
本发明提供的技术方案中,对UE4环境中的虚拟绳索进行节点化处理,得到N个绳索节点,其中,N为大于3的正整数;根据预置绳索节点算法,计算N个所述绳索节点之间的节点约束关系,所述节点约束关系包括相邻绳索节点的第一约束关系、绳索节点的旋转角度约束关系和间隔绳索节点的第二约束关系;根据所述第一约束关系、所述旋转角度约束关系和所述第二约束关系进行显示约束计算处理,得到N个所述绳索节点分别对应的N个显示节点;根据N个所述显示节点,更新所述虚拟绳索中的绳索节点,生成约束虚拟绳索。本发明实施例中,通过比较现有的技术,本发明能够实现在虚拟环境中显示稳定不抖动,硬度能够自由调节,且能够任意更改骨骼样式的绳索,实现了目前现有技术无法达成的显示效果。
附图说明
图1为本发明实施例中基于UE4的绳索实现方法的第一个实施例示意图;
图2为本发明实施例中基于UE4的绳索实现方法的第二个实施例示意图;
图3为本发明实施例中基于UE4的绳索实现方法的第三个实施例示意图;
图4为本发明实施例中基于UE4的绳索实现方法的第四个实施例示意图;
图5为本发明实施例中基于UE4的绳索实现装置的一个实施例示意图;
图6为本发明实施例中基于UE4的绳索实现装置的另一个实施例示意图;
图7为本发明实施例中基于UE4的绳索实现设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种基于UE4的绳索实现方法、装置、设备及存储介质,本发明提供的技术方案中,本发明提供的技术方案中,对UE4环境中的虚拟绳索进行节点化处理,得到N个绳索节点,其中,N为大于3的正整数;根据预置绳索节点算法,计算N个所述绳索节点之间的节点约束关系,所述节点约束关系包括相邻绳索节点的第一约束关系、绳索节点的旋转角度约束关系和间隔绳索节点的第二约束关系;根据所述第一约束关系、所述旋转角度约束关系和所述第二约束关系进行显示约束计算处理,得到N个所述绳索节点分别对应的N个显示节点;根据N个所述显示节点,更新所述虚拟绳索中的绳索节点,生成约束虚拟绳索。本发明实施例中,通过比较现有的技术,本发明能够实现在虚拟环境中显示稳定不抖动,硬度能够自由调节,且能够任意更改骨骼样式的绳索,实现了目前现有技术无法达成的显示效果。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中基于UE4的绳索实现方法的第一个实施例包括:
101、对UE4环境中的虚拟绳索进行节点化处理,得到N个绳索节点,其中,N为大于3的正整数;
在本实施例中,目标节点为P1(i),而设置的预置间隔时间为t,在t之前的目标节点的前帧节点为P0(i)。在具体实施例中,在虚拟绳索共有8000个节点,目标节点为P1(1501),设置间隔时长为0.02秒,在0.02秒前P1(1501)的节点为P0(1501)。根据前帧的节点为P0(1501),目标节点为P1(1501),外力数据F,根据P2(1501)=2*P1(1501)-P0(1501)+F*t^2,然后得到预测节点P2(1501),将8000个预测节点确认为节点化的8000个绳索节点。
102、根据预置绳索节点算法,计算N个绳索节点之间的节点约束关系,节点约束关系包括相邻绳索节点的第一约束关系、绳索节点的旋转角度约束关系和间隔绳索节点的第二约束关系;
在本实施例中,绳索节点算法包括抓取第一绳索节点P2(i)和第二绳索节点P2(i+1),代入第一公式V1=P2(i)-P2(i+1),将得出的数据写入E=(V1-s)/V1,代入P2 (1)(i)=P2(i)+0.5*E*V1,然后代入P2 (1)(i+1)=P2(i+1)-0.5*E*V1,然后得到V1 (1)=P2 (1)(i)-P2 (1)(i+1)。根据JV1=V1 (1)/|V1 (1)|,然后根据点积得出a1=arccos(V1 (1)*JV1)/|V1 (1)|*|JV1|,得出夹角的数据。如果a1大于夹角阈值a,则V2=V1+(V1-JV1)*a/a1,得到约束向量V2。如果a1小于夹角阈值a,则循环次数为1将第一绳索节点P2(i)距离为2s的P2(i+2)作为第二绳索节点P2(i+2),然后对第二绳索节点P2(i+2)与第一绳索节点P2(i)作为抓取的数据。
103、根据第一约束关系、旋转角度约束关系和第二约束关系进行显示约束计算处理,得到N个绳索节点分别对应的N个显示节点;
在本实施例中,根据显示算法P2 (2)(i+1)=s*V2+P2 (1)(i),其中,i为节点编号,s为节点之间的长度,将上文得到V2、s、P2 (1)(i)作为约束的参数内容填入到显示算法中,P2 (2)为显示节点,得到每个绳索节点对应的显示节点。在具体实施中,V2(2400)=V1(2400)+(V1(2400)-JV1(2400))*a/a1,得到约束向量V2(2400),然后通过公式:
P2 (2)(2401)=s*V2(2400)+P2 (1)(2400),
得出P2 (2)(2401)的坐标数据。将虚拟绳索上8000个绳索节点均计算,得出对应的8000个显示节点。
104、根据N个显示节点,更新虚拟绳索中的绳索节点,生成约束虚拟绳索。
在本实施例中,虚拟绳索上共有8000个节点,则分别处理8000个节点,最终生成显示节点P2 (2)(1)、P2 (2)(2)、P2 (2)(3)、P2 (2)(4)、…、P2 (2)(8000)。
创建解算表格,分立有横坐标、纵坐标、竖直坐标三个坐标的数据,且对应有P2 (2)(1)、P2 (2)(2)、P2 (2)(3)、P2 (2)(4)、…、P2 (2)(8000)的项目科目。内置计算函数对P2 (2)(1)、P2 (2)(2)、P2 (2)(3)、P2 (2)(4)、…、P2 (2)(8000)共8000个点,将这8000个点在环境中渲染生成对应的数据点,8000个点共同构成虚拟绳索。
本发明实施例中,通过比较现有的技术,本发明能够实现在虚拟环境中显示稳定不抖动,硬度能够自由调节,且能够任意更改骨骼样式的绳索,实现了目前现有技术无法达成的显示效果。
请参阅图2,本发明实施例中基于UE4的绳索实现方法的第二个实施例包括:
201、从待预处理的虚拟绳索中选取目标节点,读取虚拟绳索的外力数据;
在本实施例中,从需要处理的绳索选择节点P1(i),并读取绳索的外力数据F。在具体实施中,绳索上共有8000个节点,选择其中一个节点P1(1501),以及读取外力F=400N,方向为正北方向。
202、读取目标节点在预置间隔时长之前的前帧节点;
在本实施例中,目标节点为P1(i),而设置的预置间隔时间为t,在t之前的目标节点的前帧节点为P0(i)。在具体实施例中,目标节点为P1(1501),设置间隔时长为0.02秒,在0.02秒前P1(1501)的节点为P0(1501)。
203、根据前帧节点、目标节点和外力数据,通过预置演化算法运算,得到预测节点;
在本实施例中,根据前帧的节点为P0(1501),目标节点为P1(1501),外力数据F,根据P2(1501)=2*P1(1501)-P0(1501)+F*t^2,然后得到预测节点P2(1501)。
204、遍历虚拟绳索上的节点,计算出虚拟绳索中所有节点对应的预测节点,将所有预测节点显示确认为N个绳索节点;
在本实施例中,绳索上共有5000个点,计算出5000个点的预测节点分别为:P2(1)、P2(2)、P2(3)、…、P2(5000),并将所有预测的节点作为待重新约束显示的绳索,代入计算中。
205、根据预置绳索节点算法,计算N个绳索节点之间的节点约束关系,节点约束关系包括相邻绳索节点的第一约束关系、绳索节点的旋转角度约束关系和间隔绳索节点的第二约束关系;
本实施例描述的方法实施例与第一个实施例类似,可以参考前述方法实施例中的对应过程,在此不再赘述。
206、根据第一约束关系、旋转角度约束关系和第二约束关系进行显示约束计算处理,得到N个绳索节点分别对应的N个显示节点;
本实施例描述的方法实施例与第一个实施例类似,可以参考前述方法实施例中的对应过程,在此不再赘述。
207、根据N个显示节点,更新虚拟绳索中的绳索节点,生成约束虚拟绳索。
本实施例描述的方法实施例与第一个实施例类似,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明实施例中,通过比较现有的技术,本发明能够实现在虚拟环境中显示稳定不抖动,硬度能够自由调节,且能够任意更改骨骼样式的绳索,实现了目前现有技术无法达成的显示效果。
请参阅图3,本发明实施例中基于UE4的绳索实现方法的第三个实施例包括:
301、对UE4环境中的虚拟绳索进行节点化处理,得到N个绳索节点,其中,N为大于3的正整数;
本实施例描述的方法实施例与第一个实施例类似,可以参考前述方法实施例中的对应过程,在此不再赘述。
302、从虚拟绳索中抓取第一绳索节点和第二绳索节点,其中,第一绳索节点与第二绳索节点为虚拟绳索中相距预置间隔长度的绳索节点;
在本实施例中,例如:绳索上共有5000个点,每个点之间相距0.1mm,选择P2(2400)为第一绳索节点,则将P2(2401)点作为第二绳索节点,同理,也可以将P2(2399)为第二绳索节点。
303、将第一绳索节点与第二绳索节点的进行差值运算,得到节点向量;
在本实施例中,根据第一绳索节点P2(3)与第二绳索节点P2(4),将两者之间的差值作为节点向量V1=P2(3)-P2(4)。
304、根据节点向量与间隔长度,通过预置参数算法运算,得到约束参数;
在本实施例中,在本实施例中,预置的参数算法为E=(V1-s)/V1,其中,V1为节点向量其表达式为V1=P2(i)-P2(i+1),s为不同点之间的长度,E为约束参数。
305、根据约束参数、第一绳索节点和第二绳索节点,通过预置迭代升级算法运算,得到所述约束向量;
在本实施例中,迭代升级算法为V1 (1)=(P2(i)+0.5*E*V1)-(P2(i+1)-0.5*E*V1),其中P2(i)和P2(i+1)为节点,E为约束参数,V1为节点向量。将P2(3)和P2(4)的数据代入可以得到约束向量V1 (1)=(P2(3)+0.5*E*V1)-(P2(4)-0.5*E*V1)。
306、对约束向量进行模运算,得到约束向量的模长度;
在本实施例中,在本实施例中,已经得到约束向量V1 (1)的向量,对约束向量V1 (1)进行模运算,得到模长度|V1 (1)|。
307、将约束向量的每个元素与模长度进行除法运算,得到约束向量的单位向量;
在本实施例中,单位向量JV1=V1 (1)/|V1 (1)|,其中JV1为单位向量,V1 (1)为约束向量。将约束向量V1 (1)与其模长度相除。具体数据中,
JV1=V1 (1)(2001)/|V1 (1)(2001)|,其中V1 (1)(2001)中每个元素都乘以1/|V1 (1)(2001)|。
308、将单位向量与约束向量进行夹角运算,得到向量夹角,以确定旋转角度约束关系;
在本实施例中,根据cos a1=(V1 (1)*JV1)/|V1 (1)|*|JV1|,
可知,a1=arccos(V1 (1)*JV1)/(|V1 (1)|*|JV1|),其中,JV1为单位向量,V1 (1)为约束向量。具体数据中,可以获得表达式:
a1=arccos(V1 (1)(2001)*JV1(2001))/(|V1 (1)(2001)|*|JV1(2001)|)。
309、判断向量夹角是否大于预置夹角阈值;
本实施例描述的方法实施例与第一个实施例类似,可以参考前述方法实施例中的对应过程,在此不再赘述。
310、若向量夹角不大于夹角阈值,则在虚拟绳索中,抓取距离第一绳索节点循环次数倍间隔长度的节点作为第二绳索节点,以迭代进行约束运算;
在本实施例中,向量夹角0.205度而夹角阈值为0.501,而夹角向量小于夹角阈值,且本次循环为第三次循环,则要在虚拟绳索中抓取P2(i)与P2(i+3),其中,P2(i)与P2(i+3)是虚拟绳索中间隔3个间隔长度的点。将P2(i)与P2(i+3)重新代入上述算法中循环。
311、若向量夹角大于夹角阈值,则根据单位向量、约束向量、向量夹角和夹角阈值,通过预置转换算法运算,得到显示约束向量;
本实施例中,转换算法为V2=V1+(V1-JV1)*a/a1,其中,V1为约束向量,JV1为单位向量,a为夹角阈值,a1为向量夹角。将所有的数据内容填入转换算法运算,得到显示约束向量。
312、获得预置显示算法框架,将约束向量、向量夹角、夹角阈值、显示约束向量和间隔长度写入显示算法框架,得到显示算法;
本实施例中,显示算法框架为:
P2 (2)(i+1)=s*(V1+(V1-JV1)*a/a1)+P2 (1)(i),
其中,V1为约束向量,JV1为单位向量,a为夹角阈值,a1为向量夹角,P2 (2)(i+1)为显示节点,P2 (1)(i)为绳索节点上的节点。将数据根据所述显示算法框架组合,得到P2 (2)(i+1)=s*(V1+(V1-JV1)*a/a1)+P2 (1)(i)。
313、遍历抓取N个绳索节点,分别通过显示算法的运算,得出N个所述绳索节点分别对应的N个显示节点;
在本实施例中,P2 (2)(i+1)=s*V2+P2 (1)(i)为显示算法,而根据已经得到显示约束向量V2和间隔长度s,将数据代入至显示算法中,得到显示节点P2 (2)(i+1),遍历绳索节点P2 (1)的所有取值,得到所有取值对应的显示节点。
314、根据N个显示节点,更新虚拟绳索中的绳索节点,生成约束虚拟绳索。
本实施例描述的方法实施例与第一个实施例类似,可以参考前述方法实施例中的对应过程,在此不再赘述。
本实施例描述的方法实施例与第一个实施例类似,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明实施例中,通过比较现有的技术,本发明能够实现在虚拟环境中显示稳定不抖动,硬度能够自由调节,且能够任意更改骨骼样式的绳索,实现了目前现有技术无法达成的显示效果。
请参阅图4,本发明实施例中基于UE4的绳索实现方法的第四个实施例包括:
401、对UE4环境中的虚拟绳索进行节点化处理,得到N个绳索节点,其中,N为大于3的正整数;
本实施例描述的方法实施例与第一个实施例类似,可以参考前述方法实施例中的对应过程,在此不再赘述。
402、根据预置绳索节点算法,计算N个绳索节点之间的节点约束关系,节点约束关系包括相邻绳索节点的第一约束关系、绳索节点的旋转角度约束关系和间隔绳索节点的第二约束关系;
本实施例描述的方法实施例与第一个实施例类似,可以参考前述方法实施例中的对应过程,在此不再赘述。
403、根据第一约束关系、旋转角度约束关系和第二约束关系进行显示约束计算处理,得到N个绳索节点分别对应的N个显示节点;
本实施例描述的方法实施例与第一个实施例类似,可以参考前述方法实施例中的对应过程,在此不再赘述。
404、创建节点解算表格,将N个显示节点的数据输入解算表格;
在本实施例中,创建解算表格,分立有横坐标、纵坐标、竖直坐标三个坐标的数据,且对应有P2 (2)(1)、P2 (2)(2)、P2 (2)(3)、P2 (2)(4)、…、P2 (2)(8000)的项目科目。
405、调用内置计算函数,解算出解算表格中N个显示节点对应的位置;
在本实施例中,内置计算函数对P2 (2)(1)、P2 (2)(2)、P2 (2)(3)、P2 (2)(4)、…、P2 (2)(8000)共8000个显示节点进行位置计算,最终得到位置节点。
406、根据所有位置,更新虚拟绳索中的绳索节点,以及根据绳索节点渲染生成约束虚拟绳索。
在本实施例中,将这8000个显示节点在环境中渲染生成对应的数据点,8000个点共同构成虚拟绳索,将8000个显示节点的位置更新绳索节点的位置,然后根据绳索节点渲染出约束虚拟绳索。
本发明实施例中,通过比较现有的技术,本发明能够实现在虚拟环境中显示稳定不抖动,硬度能够自由调节,且能够任意更改骨骼样式的绳索,实现了目前现有技术无法达成的显示效果。
上面对本发明实施例中基于UE4的绳索实现方法进行了描述,下面对本发明实施例中基于UE4的绳索实现装置进行描述,请参阅图5,本发明实施例中基于UE4的绳索实现装置一个实施例包括:
抓取模块501,用于对UE4环境中的虚拟绳索进行节点化处理,得到N个绳索节点,其中,N为大于3的正整数;
约束关系计算模块502,用于根据预置绳索节点算法,计算N个所述绳索节点之间的节点约束关系,所述节点约束关系包括相邻绳索节点的第一约束关系、绳索节点的旋转角度约束关系和间隔绳索节点的第二约束关系;
节点计算模块503,用于根据所述第一约束关系、所述旋转角度约束关系和所述第二约束关系进行显示约束计算处理,得到N个所述绳索节点分别对应的N个显示节点;
显示生成模块504,用于根据N个所述显示节点,更新所述虚拟绳索中的绳索节点,生成约束虚拟绳索。
本发明实施例中,通过比较现有的技术,本发明能够实现在虚拟环境中显示稳定不抖动,硬度能够自由调节,且能够任意更改骨骼样式的绳索,实现了目前现有技术无法达成的显示效果。
请参阅图6,本发明实施例中基于UE4的绳索实现装置的另一个实施例包括:
抓取模块501,用于对UE4环境中的虚拟绳索进行节点化处理,得到N个绳索节点,其中,N为大于3的正整数;
约束关系计算模块502,用于根据预置绳索节点算法,计算N个所述绳索节点之间的节点约束关系,所述节点约束关系包括相邻绳索节点的第一约束关系、绳索节点的旋转角度约束关系和间隔绳索节点的第二约束关系;
节点计算模块503,用于根据所述第一约束关系、所述旋转角度约束关系和所述第二约束关系进行显示约束计算处理,得到N个所述绳索节点分别对应的N个显示节点;
显示生成模块504,用于根据N个所述显示节点,更新所述虚拟绳索中的绳索节点,生成约束虚拟绳索。
在本实施例中,所述抓取模块501具体用于:
从待预处理的虚拟绳索中选取目标节点,读取所述虚拟绳索的外力数据;
读取所述目标节点在预置间隔时长之前的前帧节点;
根据所述前帧节点、所述目标节点和所述外力数据,通过预置演化算法运算,得到预测节点;
遍历所述虚拟绳索上的节点,计算出所述虚拟绳索中所有节点对应的预测节点,将所有所述预测节点显示确认为N个绳索节点。
在本实施例中,所述第一约束关系为约束向量,所述第二约束关系为显示约束向量,其中,所述约束关系计算模块502包括:
抓取单元5021,用于从所述虚拟绳索中抓取第一绳索节点和第二绳索节点,其中,所述第一绳索节点与所述第二绳索节点为所述虚拟绳索中相距预置间隔长度的绳索节点;
第一向量计算单元5022,用于根据所述第一绳索节点和所述第二绳索节点,通过预置约束计算法运算,得到所述约束向量;
角度计算单元5023,用于根据所述约束向量,计算出所述约束向量对应的单位向量,以及计算所述约束向量与所述单位向量之间的向量夹角,得到所述旋转角度约束关系;
判断单元5024,用于判断所述向量夹角是否大于预置夹角阈值;
第二向量计算单元5025,用于若所述向量夹角大于所述夹角阈值,则根据所述单位向量、所述约束向量、所述向量夹角和所述夹角阈值,通过预置转换算法运算,得到所述显示约束向量;
迭代抓取单元5026,用于所述向量夹角不大于所述夹角阈值,则在所述虚拟绳索中,抓取距离所述第一绳索节点循环次数倍所述间隔长度的节点作为第二绳索节点,以迭代进行约束运算。
在本实施例中,所述第一向量计算单元5022具体用于:
将所述第一绳索节点与所述第二绳索节点的进行差值运算,得到节点向量;
根据所述节点向量与所述间隔长度,通过预置参数算法运算,得到约束参数;
根据所述约束参数、所述第一绳索节点和所述第二绳索节点,通过预置迭代升级算法运算,得到所述约束向量。
在本实施例中,所述角度计算单元5023具体用于:
对所述约束向量进行模运算,得到所述约束向量的模长度;
将所述约束向量的每个元素与模长度进行除法运算,得到所述约束向量的单位向量;
将所述单位向量与所述约束向量进行夹角运算,得到向量夹角,以确定所述旋转角度约束关系。
在本实施例中,所述节点计算模块503具体用于:
获得预置显示算法框架,将所述约束向量、所述向量夹角、所述夹角阈值、所述显示约束向量和所述间隔长度写入所述显示算法框架,得到显示算法;
遍历抓取N个所述绳索节点,分别通过所述显示算法的运算,得出N个所述绳索节点分别对应的N个显示节点。
在本实施例中,所述显示生成模块504具体用于:
创建节点解算表格,将N个所述显示节点的数据输入所述解算表格;
调用内置计算函数,解算出所述解算表格中N个所述显示节点对应的位置;
根据所有所述位置,更新所述虚拟绳索中的绳索节点,以及根据所述绳索节点渲染生成约束虚拟绳索。
本发明实施例中,通过比较现有的技术,本发明能够实现在虚拟环境中显示稳定不抖动,硬度能够自由调节,且能够任意更改骨骼样式的绳索,实现了目前现有技术无法达成的显示效果。
上面图5和图6从模块化功能实体的角度对本发明实施例中的基于UE4的绳索实现装置进行详细描述,下面从硬件处理的角度对本发明实施例中基于UE4的绳索实现设备进行详细描述。
图7是本发明实施例提供的一种基于UE4的绳索实现设备的结构示意图,该基于UE4的绳索实现设备700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)710(例如,一个或一个以上处理器)和存储器720,一个或一个以上存储应用程序733或数据732的存储介质730(例如一个或一个以上海量存储设备)。其中,存储器720和存储介质730可以是短暂存储或持久存储。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对基于UE4的绳索实现设备700中的一系列指令操作。更进一步地,处理器710可以设置为与存储介质730通信,在基于UE4的绳索实现设备700上执行存储介质730中的一系列指令操作。
基于UE4的绳索实现设备700还可以包括一个或一个以上电源740,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口760,和/或,一个或一个以上操作系统731,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图7示出的基于UE4的绳索实现设备结构并不构成对基于UE4的绳索实现设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述基于UE4的绳索实现方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (9)

1.一种基于UE4的绳索实现方法,其特征在于,所述基于UE4的绳索实现方法包括:
对UE4环境中的虚拟绳索进行节点化处理,得到N个绳索节点,其中,N为大于3的正整数;
根据预置绳索节点算法,计算N个所述绳索节点之间的节点约束关系,所述节点约束关系包括相邻绳索节点的第一约束关系、绳索节点的旋转角度约束关系和间隔绳索节点的第二约束关系;
根据所述第一约束关系、所述旋转角度约束关系和所述第二约束关系进行显示约束计算处理,得到N个所述绳索节点分别对应的N个显示节点;
根据N个所述显示节点,更新所述虚拟绳索中的绳索节点,生成约束虚拟绳索;
所述第一约束关系为约束向量,所述第二约束关系为显示约束向量;
所述根据预置绳索节点算法,计算N个所述绳索节点之间的节点约束关系包括:
从所述虚拟绳索中抓取第一绳索节点和第二绳索节点,其中,所述第一绳索节点与所述第二绳索节点为所述虚拟绳索中相距预置间隔长度的绳索节点;
根据所述第一绳索节点和所述第二绳索节点,通过预置约束计算法运算,得到所述约束向量;
根据所述约束向量,计算出所述约束向量对应的单位向量,以及计算所述约束向量与所述单位向量之间的向量夹角,得到所述旋转角度约束关系;
判断所述向量夹角是否大于预置夹角阈值;
若所述向量夹角大于所述夹角阈值,则根据所述单位向量、所述约束向量、所述向量夹角和所述夹角阈值,通过预置转换算法运算,得到所述显示约束向量;
若所述向量夹角不大于所述夹角阈值,则在所述虚拟绳索中,抓取距离所述第一绳索节点循环次数倍所述间隔长度的节点作为第二绳索节点,以迭代进行约束运算。
2.根据权利要求1所述的基于UE4的绳索实现方法,其特征在于,所述对UE4环境中的虚拟绳索进行节点化处理,得到N个绳索节点包括:
从待预处理的虚拟绳索中选取目标节点,读取所述虚拟绳索的外力数据;
读取所述目标节点在预置间隔时长之前的前帧节点;
根据所述前帧节点、所述目标节点和所述外力数据,通过预置演化算法运算,得到预测节点;
遍历所述虚拟绳索上的节点,计算出所述虚拟绳索中所有节点对应的预测节点,将所有所述预测节点显示确认为N个绳索节点。
3.根据权利要求1所述的基于UE4的绳索实现方法,其特征在于,所述根据所述第一绳索节点和所述第二绳索节点,通过预置约束计算法运算,得到所述约束向量包括:
将所述第一绳索节点与所述第二绳索节点的进行差值运算,得到节点向量;
根据所述节点向量与所述间隔长度,通过预置参数算法运算,得到约束参数;
根据所述约束参数、所述第一绳索节点和所述第二绳索节点,通过预置迭代升级算法运算,得到所述约束向量。
4.根据权利要求3所述的基于UE4的绳索实现方法,其特征在于,所述根据所述约束向量,计算出所述约束向量对应的单位向量,以及计算所述约束向量与所述单位向量之间的向量夹角,得到所述旋转角度约束关系包括:
对所述约束向量进行模运算,得到所述约束向量的模长度;
将所述约束向量的每个元素与模长度进行除法运算,得到所述约束向量的单位向量;
将所述单位向量与所述约束向量进行夹角运算,得到向量夹角,以确定所述旋转角度约束关系。
5.根据权利要求4所述的基于UE4的绳索实现方法,其特征在于,所述根据所述第一约束关系、所述旋转角度约束关系和所述第二约束关系进行显示约束计算处理,得到N个所述绳索节点分别对应的N个显示节点包括:
获得预置显示算法框架,将所述约束向量、所述向量夹角、所述夹角阈值、所述显示约束向量和所述间隔长度写入所述显示算法框架,得到显示算法;
遍历抓取N个所述绳索节点,分别通过所述显示算法的运算,得出N个所述绳索节点分别对应的N个显示节点。
6.根据权利要求1所述的基于UE4的绳索实现方法,其特征在于,所述根据N个所述显示节点,更新所述虚拟绳索中的绳索节点,生成约束虚拟绳索包括:
创建节点解算表格,将N个所述显示节点的数据输入所述解算表格;
调用内置计算函数,解算出所述解算表格中N个所述显示节点对应的位置;
根据所有所述位置,更新所述虚拟绳索中的绳索节点,以及根据所述绳索节点渲染生成约束虚拟绳索。
7.一种基于UE4的绳索实现装置,其特征在于,所述基于UE4的绳索实现装置包括:
抓取模块,用于对UE4环境中的虚拟绳索进行节点化处理,得到N个绳索节点,其中,N为大于3的正整数;
约束关系计算模块,用于根据预置绳索节点算法,计算N个所述绳索节点之间的节点约束关系,所述节点约束关系包括相邻绳索节点的第一约束关系、绳索节点的旋转角度约束关系和间隔绳索节点的第二约束关系;
节点计算模块,用于根据所述第一约束关系、所述旋转角度约束关系和所述第二约束关系进行显示约束计算处理,得到N个所述绳索节点分别对应的N个显示节点;
显示生成模块,用于根据N个所述显示节点,更新所述虚拟绳索中的绳索节点,生成约束虚拟绳索;
所述第一约束关系为约束向量,所述第二约束关系为显示约束向量;
所述根据预置绳索节点算法,计算N个所述绳索节点之间的节点约束关系包括:
从所述虚拟绳索中抓取第一绳索节点和第二绳索节点,其中,所述第一绳索节点与所述第二绳索节点为所述虚拟绳索中相距预置间隔长度的绳索节点;
根据所述第一绳索节点和所述第二绳索节点,通过预置约束计算法运算,得到所述约束向量;
根据所述约束向量,计算出所述约束向量对应的单位向量,以及计算所述约束向量与所述单位向量之间的向量夹角,得到所述旋转角度约束关系;
判断所述向量夹角是否大于预置夹角阈值;
若所述向量夹角大于所述夹角阈值,则根据所述单位向量、所述约束向量、所述向量夹角和所述夹角阈值,通过预置转换算法运算,得到所述显示约束向量;
若所述向量夹角不大于所述夹角阈值,则在所述虚拟绳索中,抓取距离所述第一绳索节点循环次数倍所述间隔长度的节点作为第二绳索节点,以迭代进行约束运算。
8.一种基于UE4的绳索实现设备,其特征在于,所述基于UE4的绳索实现设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述基于UE4的绳索实现设备执行如权利要求1-6中任一项所述的基于UE4的绳索实现方法。
9.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任一项所述的基于UE4的绳索实现方法。
CN202010545857.7A 2020-06-16 2020-06-16 基于ue4的绳索实现方法、装置、设备及存储介质 Active CN111681306B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010545857.7A CN111681306B (zh) 2020-06-16 2020-06-16 基于ue4的绳索实现方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010545857.7A CN111681306B (zh) 2020-06-16 2020-06-16 基于ue4的绳索实现方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111681306A CN111681306A (zh) 2020-09-18
CN111681306B true CN111681306B (zh) 2023-06-30

Family

ID=72436337

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010545857.7A Active CN111681306B (zh) 2020-06-16 2020-06-16 基于ue4的绳索实现方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111681306B (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103853873B (zh) * 2012-12-06 2017-04-12 黎明游戏有限责任公司 用于利用块构建数字对象的系统和方法
US20180189996A1 (en) * 2015-06-12 2018-07-05 Naturalmotion Limited Animating a virtual object
CN107661629A (zh) * 2017-10-26 2018-02-06 广州市雷军游乐设备有限公司 一种牵引绳摆动控制方法、装置、终端设备及存储介质
CN107789828B (zh) * 2017-10-26 2021-02-02 广州市雷军游乐设备有限公司 装饰绳索状态调整方法、装置、终端设备及存储介质
CN111026318B (zh) * 2019-12-05 2022-07-12 腾讯科技(深圳)有限公司 基于虚拟环境的动画播放方法、装置、设备及存储介质
CN110882545B (zh) * 2019-12-06 2022-06-24 腾讯科技(深圳)有限公司 虚拟对象控制方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN111681306A (zh) 2020-09-18

Similar Documents

Publication Publication Date Title
JP7061238B2 (ja) 異種のターゲットアニメーションデータを使用してキャラクタをトレーニングする強化学習
Fang et al. Efficient synthesis of physically valid human motion
Bender et al. Position-based Methods for the Simulation of Solid Objects in Computer Graphics.
CN112037312B (zh) 实时人体姿态逆向运动学求解方法及装置
WO2016051640A1 (ja) 情報処理装置、情報処理方法及びプログラム
JP2009075888A5 (zh)
CN110021070A (zh) FBX三维模型转换为glTF三维模型的方法、设备以及系统
GB2546817A (en) Animating a virtual object in a virtual world
CN111223168A (zh) 目标对象控制方法、装置、存储介质和计算机设备
CN108133505A (zh) 骨骼柔体实现方法、装置及电子设备
US20070182744A1 (en) Polynomial encoding of vertex data for use in computer animation of cloth and other materials
JP4936522B2 (ja) 画像処理方法、画像処理装置
Ouaknin et al. Self-consistent field theory simulations of polymers on arbitrary domains
CN111681306B (zh) 基于ue4的绳索实现方法、装置、设备及存储介质
EP2156411A1 (en) Digital representation and animation of physical objects
US7173625B2 (en) Three-dimensional animation system and method using evolutionary computation
CN108509924A (zh) 人体姿态的评分方法和装置
CN105786333B (zh) 移动终端的操作方法及装置
WO2001097173A1 (en) Basis functions of three-dimensional models for compression, transformation and streaming
Wang et al. Six-degree-of-freedom haptic simulation of organ deformation in dental operations
Zhang et al. Real-time human motion capture with simple marker sets and monocular video
CN114299225A (zh) 动作图像生成方法、模型构建方法、设备及存储介质
Wang et al. Real-Time CUDA Based Collision detection and Physics based collision response simulation
Schmidl Optimization-based animation
CN113470150A (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
GR01 Patent grant
GR01 Patent grant