1.本公开涉及计算机图形学技术领域,尤其涉及一种游戏角色发型调整方法、装置、电子设备及存储介质。
背景技术:2.随着电子娱乐行业的发展,游戏受到越来越多用户的喜爱,技术逐渐进步,硬件性能大幅提升,玩家对于主角的个性化定制要求越来越高。用户为了获得更好的游戏体验,都希望具有个性化的造型,而发型是最能体现出个性化的地方。
3.目前的发型定制化主要通过更换发型来实现。由游戏的设计人员预先做好多种头发模型,玩家再使用游戏引擎对角色的发型进行更换,并且给出发型的一种或多种预定义的配色。玩家在游戏中选取自己喜欢的发型,然后换上,再对头发的颜色进行调整,从而完成发型个性化的设置。选择相同发型的人头发完全相同,或只有发色有所区别。而发型的总量是一定的,玩家的总量又是巨大的,相对玩家的总量,发型的多样性极度缺乏。
4.一些游戏中支持基于发型骨骼对游戏角色的发型进行个性化的调整,但发型骨骼数量较多,用户调整时需对每根骨骼进行旋转、平移、缩放等操作,操作复杂,耗时较多,调整出用户满意的发型较为困难。
技术实现要素:5.有鉴于此,本公开提出一种游戏角色发型调整方法、装置、电子设备及存储介质。以使游戏角色发型的调整更为简单快捷,为用户带来更好的体验。
6.本公开提供的一种游戏角色发型调整方法,包括:
7.获取游戏角色发型模型,为游戏角色发型模型中外观上成束的头发建立骨骼链;骨骼链与游戏角色发型模型绑定,包括多个串联连接的骨骼;
8.响应于骨骼链上第一骨骼的调整指令,基于循环降坐标反运动学调整第一骨骼及骨骼链上除第一骨骼外其他骨骼的位置;
9.更新游戏角色发型模型;
10.输出更新后的游戏角色发型。
11.基于同一构思,本公开提供的一种游戏角色发型调整装置,包括:
12.获取模块,用于获取游戏角色发型模型,为游戏角色发型模型中外观上成束的头发建立骨骼链;骨骼链与游戏角色发型模型绑定,包括多个串联连接的骨骼;
13.调整模块,用于响应于骨骼链上第一骨骼的调整指令,基于循环降坐标反运动学调整第一骨骼及骨骼链上除第一骨骼外其他骨骼的位置;
14.更新模块,用于更新游戏角色发型模型;
15.输出模块,用于输出更新后的游戏角色发型。
16.基于同一构思,本公开提供的一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时实现如上所述的方法。
17.基于同一构思,本公开提供的一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,计算机指令用于使计算机实现如上所述的方法。
18.从上面所述可以看出,本公开提供的游戏角色发型调整方法、装置、电子设备及存储介质,为游戏角色发型中外观上成束的头发建立骨骼链,在调整骨骼链上的任一骨骼的位置时,同步来调整整根骨骼链上其他所有骨骼的位置,随之调整附着在骨骼链上的头发,从而实现灵活简便的改变发型的目的,发型调整时,用户操作更方便,简单快捷,容易调整出用户满意的发型,具有良好的用户体验。
附图说明
19.为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施方式或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
20.图1为本公开实施方式提出的一种游戏角色发型调整方法的流程示意图;
21.图2为本公开实施方式提出的一种骨骼链上骨骼的调整方法示意图;
22.图3为本公开实施方式提出的一种骨骼链上骨骼的示意图;
23.图4为本公开实施方式提出的一种骨骼链调整过程的示意图;
24.图5为本公开实施方式提出的一种基于椭圆的旋转角限制机制的示意图;
25.图6为本公开实施方式提出的一种游戏角色发型调整装置的示意图;
26.图7为本公开实施方式提出的一种电子设备的示意图。
具体实施方式
27.为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施方式,并参照附图,对本公开进一步详细说明。
28.需要说明的是,除非另外定义,本公开实施方式使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施方式中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
29.如背景技术部分所述,随着技术进步,硬件性能提升,玩家对于主角的个性化定制要求越来越高。现在市面上品质好一点的游戏都已经支持了捏脸、捏身体的功能。但支持捏头发功能的游戏却很少,而发型在游戏中也占据了比较重要的一部分,发型对主角美感有很大的影响,同一个主角不同的发型就会给人不同的感受。所以玩家对发型个性化定制的需求是非常强烈的。
30.目前市面上仅有极少的mmorpg(大型多人在线角色扮演游戏)游戏中支持捏头发功能,而且对于发型的调整仅提供几个可调的点,可调的点太少,导致发型的定制化显得不
足;而且只能针对单个可调点进行调整,缺乏整体性的调整,调整起来也比较繁琐;这些调整方式只能适应于某类发型,应用面不够宽泛。
31.还有一些基于头发骨骼的发型调整方式,每根骨骼可以旋转、缩放、平移,但是对于通过骨骼调整头发发型这样的操作过于细节,头发骨骼的数量通常都有很多,调整起来会非常困难,玩家难以达到想要调节的效果,无法带来良好的用户体验。
32.本公开提供一种游戏角色发型调整方法、装置、电子设备及存储介质,可以为头发建立骨骼,将头发网格依附于骨骼之上,为成束的头发建立骨骼链,在调整骨骼链上的任一骨骼的位置时,同步来调整整根骨骼链上所有骨骼的位置,随之调整附着在骨骼链上的头发,使调整更加简单方便,更加多样性;还为骨骼调整增加了旋转角限制机制,使调整范围可控,不会出现调整过度,调整起来更加容易。
33.下面以具体地实施方式对本公开的技术方案以及本公开的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施方式可以相互结合,对于相同或相似的概念或过程可能在某些实施方式中不再赘述。下面将结合附图,对本公开的实施方式进行描述。
34.请参见图1,为本公开提供的游戏角色发型调整方法,包括:
35.s101、获取游戏角色发型模型,为游戏角色发型模型中外观上成束的头发建立骨骼链,骨骼链与游戏角色发型模型绑定,包括多个串联连接的骨骼。
36.在具体的实施方式中,首先可以通过手绘创建出大量的基础发型;因为不是所有的发型都有很高的调整价值,所以在获取到大量的基础发型后,需要根据现实中发型的类型,对各种发型进行分析总结,然后再归纳出常见的发型;找出可调性比较大的发型,将这些可调性较大的发型作为调整头发的基础发型。
37.这些可调性较大的基础发型可以供玩家方便的调整游戏角色发型,可以激发玩家塑造发型的欲望;避免因为发型塑造的问题,使玩家失去对游戏的耐心,还可以增加玩家对游戏角色创建的参与感。
38.根据已经获取到了的方便玩家调整的基础发型,然后根据这些基础发型,可以使用建模工具对这些可调性较大的基础发型创建3d模型。具体的,可以使用3d max,zbrush,maya等各种建模工具来创建这些基础发型的3d模型。
39.在建模的过程中,首先为基础发型创建若干顶点,然后依据创建的顶点构建基础发型的头发网格,通过将头发网格与发型相匹配起来,这样就建立起了头发的静态外观。
40.再依据游戏角色发型模型数据创建游戏角色发型的骨架;骨架由一系列与基础发型绑定的,具有层次关系的骨骼和/或骨骼链组成,为一种树结构。骨架的确定是依据所创建的头发的3d模型及对头发的调整需要来进行创建的。请参见图3,游戏角色发型模型包括多束头发,每一束可调整的头发包括至少一根骨骼。为了满足对游戏角色发型中外观上成束头发的多样化调整,可选择游戏角色发型模型中外观上成束的头发建立骨骼链,例如301、302、303三个骨骼,位于游戏角色发型模型中外观上同一束头发中,则骨骼301、302和303组成了该束头发的骨骼链。
41.骨骼链中,位于最接近头皮的为根骨骼301,根骨骼301朝向头皮的一端为骨骼链的根节点;距离头皮最远的骨骼为该骨骼链的末端骨骼303。在远离根节点的方向上,其它骨骼为根骨骼301的子骨骼。骨骼链至少由一根骨骼构成,可以根据基础发型的可调性的难
易程度,选择需要使用多少节骨骼构成骨骼链。比如调节要求较低的发型,可以根据发型的3d模型,对发型创建较少的骨骼链;然后骨骼链可以仅由一根骨骼创建而成;这样可以大幅增加调整头发时的运算速度;发型调整起来更加简单,直观;若是一种调整要求较为灵活的基础发型,就可以增加发型上的骨骼链的数量;其中每条骨骼链也由多个骨骼构成,以靠近发根处的骨骼作为根骨骼,在根骨骼后的增加若干个子骨骼。在相邻的两个骨骼中,距离根节点较近的骨骼为距离根节点较远的骨骼的父骨骼,距离根节点较远的骨骼为距离根节点较近的骨骼的子骨骼,两个骨骼之间的连接点为子骨骼的关节点。更为细致的骨骼设置可以更细致的调整骨骼链的形态,进而对游戏角色的发型进行细致的调整。
42.s102、响应于骨骼链上第一骨骼的调整指令,基于循环降坐标反运动学调整第一骨骼及骨骼链上除第一骨骼外其他骨骼的位置。
43.请一并参见图2、图3和图4,游戏角色发型模型中,其中一成束的头发包括由骨骼301、302、303组成的骨骼链,其中,最近接近发根的骨骼301为根骨骼,骨骼302、303为根骨骼301的子骨骼,骨骼303是距离根骨骼最远的末端骨骼。同时,骨骼302相对于骨骼303来说,是骨骼303的父骨骼。
44.在本实施例中,调节骨骼301、302、303中的任意一个,剩余的两个均会随之调整。优选的,骨骼303是骨骼链上距离骨骼链的根节点最远的骨骼,所以可以选择骨骼303作为第一次需要调整骨骼,通过调整骨骼303的位置来调整整条骨骼链。玩家在进行发束的调整时,只需要拖动其中一根骨骼,无需对发束中的所有骨骼进行单独调整,操作起来更加简单、便捷。
45.具体的,游戏角色发型发束上所有骨骼的调整方法如下:
46.s21调整第一骨骼的末端,使其基于其关节点向调整指令所指向的目标点旋转;
47.s22调整第一骨骼的父骨骼基于父骨骼的关节点旋转,使父骨骼的关节点到第一骨骼的末端的连线,指向调整指令指向的目标点;
48.s23通过上述方法依次调整骨骼链上所有骨骼的父骨骼,直至骨骼链上与根节点连接的根骨骼;调整根骨骼基于根节点旋转,使根节点到第一骨骼的末端的连线,指向调整指令指向的目标点;
49.s24循环执行上述步骤,直至第一骨骼的末端到达调整指令所指向的目标点。
50.在调整第一骨骼时,其父骨骼同步调整的远离如图4所示,请参见图4a至4d。用户调整骨骼链时,拖动骨骼链上的骨骼503,使其基于其关节点朝向目标点旋转,目标点为用户在进行发型调整时,期望将骨骼链的末端移动至的目标位置。
51.骨骼503的调整,并未一次性的使骨骼503的末端到达目标点,此时骨骼503的父骨骼502基于其关节点同样向目标点旋转;使骨骼502的关节点到骨骼503的末端的连接线指向目标点。
52.在骨骼502和骨骼503旋转的过程中,其旋转角度会受到限制,避免旋转过程中出现旋转过度,发型失真的情况。因此,骨骼502的父骨骼501同样基于其关节点同样向目标点旋转;使骨骼501的关节点到骨骼503的末端的连接线指向目标点。依次类推,直到骨骼链上所有的父骨骼,均完成调整。
53.由于骨骼旋转角度的控制,所以需要骨骼链上的骨骼经历多次旋转调整,直至骨骼503的末端到达目标点;最终如图4d所示,使骨骼503的末端到达目标点。
54.上述的实施方式中,通过确定一个目标点,旋转骨骼链上的骨骼,使用循环降坐标反运动学调整骨骼链上其他骨骼的位置,使第一次调整的骨骼的末端指向目标点,而且第一次调整的骨骼的末端与骨骼链上的父骨骼的骨骼节点的连线也需要指向目标点;最终使整根骨骼链改变位置;而且使用循环降坐标反运动学调整骨骼时,越靠近末端的骨骼,其变化权重越大,适合于造型调整和各种造型末端细节的调整。
55.进一步的,为了防止因为过度旋转骨骼,出现的预期之外的问题,还对骨骼的移动增加了限制,在一个可行的实施方式中,基于循环降坐标反运动学调整骨骼链上其他骨骼的位置,还包括:设置基于椭圆的骨骼旋转角控制,限制骨骼的旋转范围。
56.在实际应用中,每根骨骼都不能无限制的调整,比如过度的旋转某根骨骼,则很容易使模型出现穿模问题;使头发的整体看起来不美观,导致游戏角色看起来较为怪异。所以需要在每次迭代骨骼时,对骨骼施加约束,防止骨骼超出范围。所以为骨骼的旋转增加椭圆的骨骼旋转角限制机制;增加椭圆的骨骼旋转角限制机制是为了限制骨骼的过度旋转,防止骨骼出现不合理情况;而且这种限制方式看起来更为直观;每次迭代骨骼时,都会施加约束,防止骨骼移动的范围超出设定范围。
57.在一个可行的实施方式中,设置基于椭圆的骨骼旋转角控制,具体包括:
58.基于骨骼初始位置建立三维坐标系;
59.基于三维坐标系,建立椭圆方程;
60.以椭圆边上任意一点与椭圆圆心的连线长度,代表骨骼允许旋转的最大角度;
61.椭圆方程,具体为:x2/a2+y2/b2=1;
62.其中,x、y为椭圆上的点在坐标系中x轴和y轴上的分量;a、b为基于限制要求设定的固定系数。
63.具体的,请参见图5,d0为骨骼的初始方向向量,d1为骨骼的当前方向向量。基于d0建立三维坐标系,以d0的方向作为z轴,x轴和x轴垂直于z轴,且x轴和x轴相互垂直。以d0在z轴上的分量作为椭圆的圆心,建立椭圆方程;椭圆方程,具体为:x2/a2+y2/b2=1;
64.其中,x、y为椭圆上的点在坐标系中x轴和y轴上的分量;a、b为基于限制要求设定的固定系数;椭圆边上任意一点与圆心的连线长度为d0与d1的最大夹角,代表骨骼允许旋转的最大角度。
65.设p为d1在椭圆中的投影点,则p到圆心的连线长度的计算方法具体为:
66.p=d1/d1.z
ꢀꢀꢀ
(1)
67.n=(p.x)2/a2+(p.y)2/b2ꢀꢀꢀ
(2)
68.当n《=1时d1有效
ꢀꢀ
(3)
69.当n》1时,则
70.d1=normalize(p.x,p.y,1)
ꢀꢀꢀ
(4)
71.其中,d1.z代表d1的z轴分量;由于d0、d1都是单位向量,基于相似三角形得出公式(1),并计算出p点的x轴、y轴的坐标;
72.在公式(2)中,p.x、p.y分别为p的x轴y轴分量,将p点的x轴、y轴坐标带入到椭圆公式中,计算出p点到椭圆的圆心的连线长度;
73.在公式(3)中,根据n来判断d1是否超出限制范围,当n《=1时,说明p的坐标未超出椭圆的范围,则允许骨骼链调整到p的位置处;当n》1时,则p的位置超出了限制的范围,如公
式(4)所示,等比缩小xy的值,其中p.xy为p点的坐标,对d1归一,使其在允许的范围内进行调整,作为骨骼的最终位置。
74.s103、更新游戏角色发型模型数据。
75.完成骨骼链的调整后,需要相应对游戏角色发型模型进行调整。具体的,获取骨骼与顶点之间的相对位置信息;响应于骨骼的位置调整,调整顶点使相对位置信息保持不变。
76.本实施方式中,创建了基础发型的3d模型,还根据创建的3d模型,为游戏角色发型模型中外观上成束的头发,建立包括至少一个骨骼的骨骼链;但是骨骼链与发型模型却是相互独立的,为了调整骨骼链的位置时能改变发型的位置,所以需要将发型模型与骨骼链绑定到一起。
77.所以需要通过蒙皮操作将发型模型的顶点绑定到骨骼链上。具体的,可以使用3d max工具,绑定完成后检验骨骼的对位情况和骨骼的大小是否合理;选中骨骼的任意位置,进行移动,看看模型可不可以跟着移动;简单的调式骨骼,观察是否有粘连现象;确定好模型可以随着骨骼链移动后。就完成了发型模型的顶点与骨骼链绑定的操作。当然,发型模型与骨骼链绑定的操作有其他手段,并不限于此,本领域技术人员可以使用其它任意可以进行蒙皮操作的工具和方法。
78.将骨骼链与发型模型绑定之后,在调整骨骼链的位置后,更新顶点的位置,使其与骨骼链上的骨骼之间的相对位置保持不变,从而实现通过调整骨骼直接改变发型模型的目的。
79.s104、输出更新后的游戏角色发型。
80.本实施方式中,可以使用骨骼动画系统输出更新后的游戏角色发型。在此动画系统下,始终保持顶点和骨骼之间的相对位置关系。当使骨骼运动,调整骨骼的位置时,与骨骼绑定的顶点的位置也会随之改变位置;又因为与骨骼绑定的顶点是根据基础发型创建出来的,所以当顶点的位置发生变化后,头发的位置也就会发生变化;从视觉效果上来看,就是当调整了骨骼的位置后,头发也会随着骨骼移动,发生变化;比如人的手,使用顶点构成皮肤,将皮肤包裹在骨骼的周围,当骨骼动的时候,皮肤也跟着动;以此输出更新后的游戏角色的发型。
81.从上面所述可以看出,本公开实施方式通过为成束的头发建立骨骼链,通过调整骨骼链上的骨骼的位置,来调整整根骨骼链的位置,随之调整附着在骨骼链上的头发,从而实现灵活的改变发型的目的,发型调整多样化个性化;还为骨骼调整增加了椭圆的骨骼旋转角限制机制,使调整范围可控,调整起来更加方便。而且越靠近末端的骨骼变化权重越大,更适合造型的调整和末端细节的调整;发型调整时,变化计算较为简单,计算量少;而且调整发型时简单直观,具有良好的用户体验。
82.需要说明的是,本公开实施方式的方法可以由单个设备执行,例如一台计算机或服务器等。本实施方式的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施方式的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成的方法。
83.需要说明的是,上述对本公开的一些实施方式进行了描述。其它实施方式在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施方式中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程
不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
84.基于同一构思,与上述任意实施方式方法相对应的,本公开还提供了一种游戏角色发型调整装置。
85.请参见图6,游戏角色发型调整装置,包括:
86.获取模块210,用于获取游戏角色发型模型,为游戏角色发型模型中外观上成束的头发建立骨骼链;骨骼链与游戏角色发型模型绑定,包括多个串联连接的骨骼;
87.调整模块220,用于响应于调整骨骼链上第一骨骼的调整指令,并基于循环降坐标反运动学调整第一骨骼及骨骼链上除第一骨骼外其他骨骼的位置;
88.更新模块230,用于更新游戏角色发型模型;
89.输出模块240,用于输出更新后的游戏角色发型。
90.为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
91.上述实施方式的装置用于实现前述任一实施方式中相应的游戏角色发型调整方法,并且具有相应的方法实施方式的有益效果,在此不再赘述。
92.在一个可行的实施方式中,获取模块210,还用于:
93.基于游戏角色发型创建顶点,通过顶点构建头发网格,建立游戏角色发型模型。
94.在一个可行的实施方式中,更新模块230,还用于:
95.获取骨骼链上的骨骼与游戏角色发型模型之间的相对位置信息;
96.响应于骨骼链上的骨骼的位置调整,基于相对位置信息,更新游戏角色发型模型。
97.在一个可行的实施方式中,调整模块220,还用于:
98.调整第一骨骼的末端,使其基于其关节点向调整指令指向的目标点旋转;
99.调整第一骨骼的父骨骼基于父骨骼的关节点旋转,使父骨骼的关节点到第一骨骼的末端的连线,指向调整指令指向的目标点;
100.通过上述方法依次调整骨骼链上所有骨骼的父骨骼;直至骨骼链上与根节点连接的根骨骼;调整根骨骼基于根节点旋转,使根节点到第一骨骼的末端的连线,指向调整指令指向的目标点。
101.在一个可行的实施方式中,调整模块220,还用于:
102.设置基于椭圆的骨骼旋转角控制,限制骨骼的旋转范围。
103.在一个可行的实施方式中,调整模块220,还用于:
104.基于骨骼初始位置建立三维坐标系;
105.以三维坐标系的原点为圆心,建立椭圆方程;
106.以椭圆边上任意一点与圆心的连线长度,代表骨骼允许旋转的最大角度;
107.椭圆方程,具体为:x2/a2+y2/b2=1;
108.其中,x、y为椭圆上的点在坐标系中x轴和y轴上的分量;a、b为基于限制要求设定的固定系数。
109.基于同一构思,与上述任意实施方式方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时实现上任意一实施方式所述的游戏角色发型调整方法。
110.图7示出了本实施方式所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
111.处理器1010可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施方式所提供的技术方案。
112.存储器1020可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施方式所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
113.输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
114.通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
115.总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
116.需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施方式方案所必需的组件,而不必包含图中所示的全部组件。
117.上述实施方式的电子设备用于实现前述任一实施方式中相应的游戏角色发型调整方法,并且具有相应的方法实施方式的有益效果,在此不再赘述。
118.基于同一构思,与上述任意实施方式方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施方式所述的游戏角色发型调整方法。
119.本实施方式的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
120.上述实施方式的存储介质存储的计算机指令用于使所述计算机执行如上任一实施方式所述的游戏角色发型调整方法,并且具有相应的方法实施方式的有益效果,在此不
再赘述。
121.所属领域的普通技术人员应当理解:以上任何实施方式的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施方式或者不同实施方式中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开实施方式的不同方面的许多其它变化,为了简明它们没有在细节中提供。
122.另外,为简化说明和讨论,并且为了不会使本公开实施方式难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开实施方式难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开实施方式的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施方式的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开实施方式。因此,这些描述应被认为是说明性的而不是限制性的。
123.尽管已经结合了本公开的具体实施方式对本公开进行了描述,但是根据前面的描述,这些实施方式的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施方式。
124.本公开实施方式旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开实施方式的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
技术特征:1.一种游戏角色发型调整方法,其特征在于,包括:获取游戏角色发型模型,为所述游戏角色发型模型中外观上成束的头发建立骨骼链;所述骨骼链与所述游戏角色发型模型绑定,包括多个串联连接的骨骼;响应于所述骨骼链上第一骨骼的调整指令,基于循环降坐标反运动学调整所述第一骨骼及所述骨骼链上除所述第一骨骼外其他骨骼的位置;更新所述游戏角色发型模型;输出更新后的游戏角色发型。2.根据权利要求1所述的游戏角色发型调整方法,其特征在于,所述获取游戏角色发型模型,包括:基于所述游戏角色发型创建顶点,通过所述顶点构建头发网格,建立所述游戏角色发型模型。3.根据权利要求1所述的游戏角色发型调整方法,其特征在于,所述更新所述游戏角色发型模型,包括:获取所述骨骼链上的骨骼与所述游戏角色发型模型之间的相对位置信息;响应于所述骨骼链上的骨骼的位置调整,基于所述相对位置信息,更新所述游戏角色发型模型。4.根据权利要求1所述的游戏角色发型调整方法,其特征在于,所述第一骨骼为所述骨骼链上距离所述骨骼链的根节点最远的末端骨骼。5.根据权利要求4所述的游戏角色发型调整方法,其特征在于,所述响应于所述骨骼链上第一骨骼的调整指令,基于循环降坐标反运动学调整所述第一骨骼及所述骨骼链上除所述第一骨骼外其他骨骼的位置,包括:调整所述第一骨骼的末端,使其基于其关节点向所述调整指令指向的目标点旋转;调整所述第一骨骼的父骨骼基于所述父骨骼的关节点旋转,使所述父骨骼的关节点到所述第一骨骼的末端的连线,指向所述调整指令指向的目标点;通过上述方法依次调整所述骨骼链上所有骨骼的父骨骼,直至所述骨骼链上与所述根节点连接的根骨骼;调整所述根骨骼基于所述根节点旋转,使所述根节点到所述第一骨骼的末端的连线,指向所述调整指令指向的目标点;循环执行上述步骤,直至所述第一骨骼的末端到达所述调整指令指向的目标点。6.根据权利要求5所述的游戏角色发型调整方法,其特征在于,所述基于循环降坐标反运动学调整所述骨骼链上其他骨骼的位置,还包括:设置基于椭圆的骨骼旋转角控制,限制所述骨骼的旋转范围。7.根据权利要求6所述的游戏角色发型调整方法,其特征在于,所述设置基于椭圆的骨骼旋转角控制,具体包括:基于所述骨骼初始位置建立三维坐标系;基于所述三维坐标系,建立椭圆方程;以所述椭圆边上任意一点与所述椭圆圆心的连线长度,代表所述骨骼允许旋转的最大角度;所述椭圆方程,具体为:x2/a2+y2/b2=1;其中,x、y为所述椭圆上的点在所述坐标系中x轴和y轴上的分量;a、b为基于限制要求
设定的固定系数。8.一种游戏角色发型调整装置,其特征在于,包括:获取模块,用于获取游戏角色发型模型,为所述游戏角色发型模型中外观上成束的头发建立骨骼链;所述骨骼链与所述游戏角色发型模型绑定,包括多个串联连接的骨骼;调整模块,用于响应于所述骨骼链上第一骨骼的调整指令,并基于循环降坐标反运动学调整所述第一骨骼及所述骨骼链上除所述第一骨骼外其他骨骼的位置;更新模块,用于更新游戏角色发型模型;输出模块,用于输出所述更新后的游戏角色发型。9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至7任一项所述的方法。10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使计算机实现如权利要求1至7任一所述的方法。
技术总结本公开提供一种游戏角色发型调整方法、装置、电子设备及存储介质,所述方法包括获取游戏角色发型模型,为游戏角色发型模型中外观上成束的头发建立骨骼链;骨骼链与游戏角色发型模型绑定,包括多个串联连接的骨骼;响应于骨骼链上第一骨骼的调整指令,基于循环降坐标反运动学调整第一骨骼及骨骼链上除第一骨骼外其他骨骼的位置;更新游戏角色发型模型,输出更新后的游戏角色发型。本公开在调整骨骼链上的任一骨骼的位置时,同步来调整整根骨骼链上其他所有骨骼的位置,发型调整更简单快捷。发型调整更简单快捷。发型调整更简单快捷。
技术研发人员:龚帅 郑启强 詹定根
受保护的技术使用者:网易(杭州)网络有限公司
技术研发日:2022.07.14
技术公布日:2022/11/1