一种游戏角色不同体型服装生成及换装方法和系统与流程

文档序号:23619392发布日期:2021-01-12 10:29阅读:357来源:国知局
一种游戏角色不同体型服装生成及换装方法和系统与流程

本发明属于计算机技术领域,具体地说,涉及一种游戏角色不同体型服装生成及换装方法和系统。



背景技术:

随着计算机技术和网络游戏技术的发展,为了使玩家在游戏中获得更多的成就感和满足感,同时为了满足不同玩家的审美需求以及迎合不同的游戏内活动的开展,很多游戏运营商都会推出游戏服装、游戏武器等的更换。

申请号为2019100994700的发明专利公开了一种游戏角色的换装方法、装置、计算机存储介质和电子设备,该方法包括:接收换装指令,所述换装指令包括待换装部位标识和服装标识;根据所述服装标识获取对应的目标服装文件,所述目标服装文件包括服装模型、与所述服装模型对应的服装模型骨骼和与所述服装模型对应的角色本体骨骼;将所述目标服装文件通过所述角色本体骨骼挂接至所述游戏角色的基础裸模中根据所述待换装部位标识确定的目标骨骼,并将所述目标服装文件渲染在所述游戏角色上。本公开将目标服装文件通过角色本体骨骼挂接至游戏角色的基础裸模中的根据待换装部位标识确定的目标骨骼,在游戏角色的换装中实现了真实世界穿戴服装的逻辑,简化了游戏角色的换装过程。该方法的换装方法基于角色本体骨骼进行换装,需要一个角色本体骨骼对应一个服装模型骨骼,对于不同体型的角色,在制作服装模型时需要制作出不同的服装模型骨骼,需要的骨骼数量仍然较多,游戏引擎消耗仍然较大。



技术实现要素:

针对现有技术中上述的不足,本发明提供一种游戏角色不同体型服装生成及换装方法和系统,该方法根据原基准体型模型、时装基准模型和目标体型模型生目标时装模型,在换装过程中,将生成的目标时装模型套用在目标体型上完成换装,该方法能够基于原基准体型模型和时装基准模型生成多个目标体型模型的时装模型,实现一套时装的多体型匹配,不需要对不同的体型生成不同的服装模型,有效减小模型数量,尤其在时装套数较多的游戏中能够有效减少引擎占用。

为了达到上述目的,本发明采用的解决方案是:一种游戏角色的不同体型服装生成方法,包括如下步骤:

s1:针对原基准体型模型、时装基准模型以及目标体型模型生成球面辅助点阵,将球面辅助点阵组成点阵队列,原基准体型模型点阵队列为ps,时装基准模型点阵队列为pm,目标体型模型点阵队列为pt;

s2:计算原基准体型模型点阵队列ps内所有顶点之间的距离作为对称矩阵的元素,构建一个n×n的对称矩阵d,其中n为原基准体型模型点阵队列的长度;

s3:以目标体型模型点阵队列pt的xyz数据为元素构建一个n×3的目标体型矩阵y;

s4:对对称矩阵d进行lu分解,计算出矩阵s,使得ds=y;

s5:对时装基准模型点阵队列pm中每个点pi做如下计算:

得到最终新点位npi,其中s[i]代表矩阵s第i行的数据;pi代表pm顶点队列中第i个顶点,(pi-pis[i]).magnitude代表顶点pi和原基准体型模型点阵队列ps中第i个顶点之间的距离,s[i].xyz为s[i]行三个数值组成的三元向量;

s6:根据npi构建目标服装模型点阵队列pn,生成目标服装模型。

所述的球面辅助点阵的生成方法包括:

s101:以模型所有点位坐标和除以模型顶点数得到的位置作为中心点,中心点的坐标为(centerx,centery,centerz);

s102:以3倍模型所有顶点中距离中心点最远点与中心点的距离值作为半径r;

s103:定义增量increase=pi*(3–√5);定义球面顶点个数;定义偏移量offset=2/顶点个数;

s104:计算每个顶点的中间量v、r、phi,计算公式为:

v=i*offset–1+(offset/2)

r=√(1–v*v)

phi=i*increase;

s105:计算每个球面顶点坐标的x、y、z值,计算公式为:

x=centerx+r*cos(phi)*r

y=centery+r*v

z=centerz+r*sin(phi)*r。

所述的生成目标服装模型包括:将pn中各个点按照原时装基准模型中顶点的拓扑结构,重新组成三角面,最终组合成新的模型。

所述的元素在对称矩阵d中的行列号对应获取该元素的顶点的行号和列号。

所述的目标体型矩阵y内的数值表示为y[0,0]=pt[0].x;y[0,1]=pt[0].y;y[0,2]=pt[0].z。

所述的模型点阵队列pn内的顶点顺序与时装标准模型点阵队列ps内的顶点顺序一致。

基于游戏角色的不同体型服装生成方法的系统,包括球面辅助点阵生成单元、矩阵构建单元、lu分解计算单元、目标时装模型点阵队列计算单元和目标服装模型生成单元;

所述的球面辅助点阵生成单元针对原基准体型模型、时装基准模型以及目标体型模型生成球面辅助点阵;

所述的矩阵构建单元包括对称矩阵构建单元和目标体型矩阵构建单元,所述的对称矩阵构建单元计算原基准体型模型点阵队列内所有顶点之间的距离作为对称矩阵的元素,构建一个n×n的对称矩阵,其中n为原基准体型模型点阵队列的长度;所述的目标体型矩阵构建单元以目标体型模型点阵队列的xyz数据为元素构建一个n×3的目标体型矩阵;

所述的lu分解计算单元对对称矩阵d进行lu分解,计算出矩阵s,使得ds=y;

所述的目标时装模型点阵队列计算单元对时装基准模型点阵队列pm中每个点pi做如下计算:

得到最终新点位npi,其中s[i]代表矩阵s第i行的数据;pi代表pm顶点队列中第i个顶点,(pi-pis[i]).magnitude代表顶点pi和原基准体型模型点阵队列ps中第i个顶点之间的距离,s[i].xyz为s[i]行三个数值组成的三元向量;根据npi构建目标服装模型点阵队列pn;

所述的目标服装模型生成单元根据目标模型点阵队列pn生成目标服装模型。

一种游戏角色的不同体型的服装,服装采用上述的服装生成方法生成。

一种不同体型的游戏角色的换装方法,将上述的服装换装到模型上。

基于不同体型的游戏角色的换装方法的系统,包括球面辅助点阵生成单元、矩阵构建单元、lu分解计算单元、目标时装模型点阵队列计算单元、目标服装模型生成单元和换装单元;

所述的球面辅助点阵生成单元针对原基准体型模型、时装基准模型以及目标体型模型生成球面辅助点阵;

所述的矩阵构建单元包括对称矩阵构建单元和目标体型矩阵构建单元,所述的对称矩阵构建单元计算原基准体型模型点阵队列内所有顶点之间的距离作为对称矩阵的元素,构建一个n×n的对称矩阵,其中n为原基准体型模型点阵队列的长度;所述的目标体型矩阵构建单元以目标体型模型点阵队列的xyz数据为元素构建一个n×3的目标体型矩阵;

所述的lu分解计算单元对对称矩阵d进行lu分解,计算出矩阵s,使得ds=y;

所述的目标时装模型点阵队列计算单元对时装基准模型点阵队列pm中每个点pi做如下计算:

得到最终新点位npi,其中s[i]代表矩阵s第i行的数据;pi代表pm顶点队列中第i个顶点,(pi-pis[i]).magnitude代表顶点pi和原基准体型模型点阵队列ps中第i个顶点之间的距离,s[i].xyz为s[i]行三个数值组成的三元向量;根据npi构建目标服装模型点阵队列pn;

所述的目标服装模型生成单元根据目标模型点阵队列pn生成目标服装模型;

所述的换装单元将目标服装模型套用在目标体型模型上。

本发明的有益效果是:

(1)该方法根据原基准体型模型、时装基准模型和目标体型模型生目标时装模型,在换装过程中,将生成的目标时装模型套用在目标体型上完成换装,该方法能够基于原基准体型模型和时装基准模型生成多个目标体型模型的时装模型,实现一套时装的多体型匹配,不需要对不同的体型生成不同的服装模型,有效减小模型数量,尤其在时装套数较多的游戏中能够有效减少引擎占用。

(2)服装生成系统应用于游戏设计上,能够有效节约同套服装制作服装模型的时间。

附图说明

图1为本发明服装生成方法流程图;

图2为本发明服装生成系统框图;

图3为本发明游戏角色换装系统框图。

具体实施方式

以下结合附图对本发明作进一步描述:

如图1所示,一种游戏角色的不同体型服装生成方法,包括如下步骤:

s1:针对原基准体型模型、时装基准模型以及目标体型模型生成球面辅助点阵,将球面辅助点阵组成点阵队列,原基准体型模型点阵队列为ps,时装基准模型点阵队列为pm,目标体型模型点阵队列为pt;原基准体型模型、时装基准模型和目标体型模型均是由美工通过绘图制作出来,目标体型模型可以为多个。

球面辅助点阵的生成方法包括:

s101:以模型所有点位坐标和除以模型顶点数得到的位置作为中心点,中心点的坐标为(centerx,centery,centerz),若是原基准模型的球面辅助点阵,则中心点坐标为原基准模型所有顶点坐标的平均值,目标基准模型的球面辅助点阵同理;

s102:以3倍模型所有顶点中距离中心点最远点与中心点的距离值作为半径r;

s103:定义增量increase=pi*(3–√5);定义球面顶点个数,一般顶点个数取值为200;定义偏移量offset=2/顶点个数;从0开始给予球面点阵每个点一个编号i,即0~199。

s104:计算每个顶点的中间量v、r、phi,计算公式为:

v=i*offset–1+(offset/2)

r=√(1–v*v)

phi=i*increase;

s105:计算每个球面顶点坐标的x、y、z值,计算公式为:

x=centerx+r*cos(phi)*r

y=centery+r*v

z=centerz+r*sin(phi)*r。

s2:计算原基准体型模型点阵队列ps内所有顶点之间的距离作为对称矩阵的元素,构建一个n×n的对称矩阵d,元素在对称矩阵d中的行列号对应获取该元素的顶点的行号和列号,其中n为原基准体型模型点阵队列的长度。

s3:以目标体型模型点阵队列pt的xyz数据为元素构建一个n×3的目标体型矩阵y,目标体型矩阵y内的数值表示为y[0,0]=pt[0].x;y[0,1]=pt[0].y;y[0,2]=pt[0].z。

s4:对对称矩阵d进行lu分解,计算出矩阵s,使得ds=y。

s5:对时装基准模型点阵队列pm中每个点pi做如下计算:

得到最终新点位npi,其中s[i]代表矩阵s第i行的数据;pi代表pm顶点队列中第i个顶点,(pi-pis[i]).magnitude代表顶点pi和原基准体型模型点阵队列ps中第i个顶点之间的距离,s[i].xyz为s[i]行三个数值组成的三元向量。

s6:根据npi构建目标服装模型点阵队列pn,生成目标服装模型,模型点阵队列pn内的顶点顺序与时装标准模型点阵队列ps内的顶点顺序一致。将pn中各个点按照原时装基准模型中顶点的拓扑结构,重新组成三角面,最终组合成新的模型。该方法能够基于原基准体型模型和时装基准模型生成多个目标体型模型的时装模型,实现一套时装的多体型匹配,不需要对不同的体型生成不同的服装模型,有效减小模型数量,尤其在时装套数较多的游戏中能够有效减少引擎占用。

如图2所示,基于游戏角色的不同体型服装生成方法的系统,包括球面辅助点阵生成单元、矩阵构建单元、lu分解计算单元、目标时装模型点阵队列计算单元和目标服装模型生成单元;

所述的球面辅助点阵生成单元针对原基准体型模型、时装基准模型以及目标体型模型生成球面辅助点阵;

所述的矩阵构建单元包括对称矩阵构建单元和目标体型矩阵构建单元,所述的对称矩阵构建单元计算原基准体型模型点阵队列内所有顶点之间的距离作为对称矩阵的元素,构建一个n×n的对称矩阵,其中n为原基准体型模型点阵队列的长度;所述的目标体型矩阵构建单元以目标体型模型点阵队列的xyz数据为元素构建一个n×3的目标体型矩阵;

所述的lu分解计算单元对对称矩阵d进行lu分解,计算出矩阵s,使得ds=y;

所述的目标时装模型点阵队列计算单元对时装基准模型点阵队列pm中每个点pi做如下计算:

得到最终新点位npi,其中s[i]代表矩阵s第i行的数据;pi代表pm顶点队列中第i个顶点,(pi-pis[i]).magnitude代表顶点pi和原基准体型模型点阵队列ps中第i个顶点之间的距离,s[i].xyz为s[i]行三个数值组成的三元向量;根据npi构建目标服装模型点阵队列pn;

所述的目标服装模型生成单元根据目标模型点阵队列pn生成目标服装模型。服装生成系统应用于游戏设计上,能够有效节约同套服装制作服装模型的时间。

一种游戏角色的不同体型的服装,服装采用上述的服装生成方法生成。

一种不同体型的游戏角色的换装方法,将上述的服装换装到模型上。该方法根据原基准体型模型、时装基准模型和目标体型模型生目标时装模型,在换装过程中,将生成的目标时装模型套用在目标体型上完成换装,整个换装过程简单迅速。

如图3所示,基于不同体型的游戏角色的换装方法的系统,包括球面辅助点阵生成单元、矩阵构建单元、lu分解计算单元、目标时装模型点阵队列计算单元、目标服装模型生成单元和换装单元;

所述的球面辅助点阵生成单元针对原基准体型模型、时装基准模型以及目标体型模型生成球面辅助点阵;

所述的矩阵构建单元包括对称矩阵构建单元和目标体型矩阵构建单元,所述的对称矩阵构建单元计算原基准体型模型点阵队列内所有顶点之间的距离作为对称矩阵的元素,构建一个n×n的对称矩阵,其中n为原基准体型模型点阵队列的长度;所述的目标体型矩阵构建单元以目标体型模型点阵队列的xyz数据为元素构建一个n×3的目标体型矩阵;

所述的lu分解计算单元对对称矩阵d进行lu分解,计算出矩阵s,使得ds=y;

所述的目标时装模型点阵队列计算单元对时装基准模型点阵队列pm中每个点pi做如下计算:

得到最终新点位npi,其中s[i]代表矩阵s第i行的数据;pi代表pm顶点队列中第i个顶点,(pi-pis[i]).magnitude代表顶点pi和原基准体型模型点阵队列ps中第i个顶点之间的距离,s[i].xyz为s[i]行三个数值组成的三元向量;根据npi构建目标服装模型点阵队列pn;

所述的目标服装模型生成单元根据目标模型点阵队列pn生成目标服装模型;

所述的换装单元将目标服装模型套用在目标体型模型上。

以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1