游戏角色脸部模型的调整方法、装置、处理器及终端与流程

文档序号:16585035发布日期:2019-01-14 18:20阅读:421来源:国知局
游戏角色脸部模型的调整方法、装置、处理器及终端与流程

本发明涉及计算机领域,具体而言,涉及一种游戏角色脸部模型的调整方法、装置、处理器及终端。



背景技术:

对于三维(3d)游戏而言,游戏中的游戏角色通常是采用3d模型来表示的。3d模型通常是由多个三角面片组成,而每个三角面片则是由空间中3个顶点来表示。在游戏中有时需要对3d模型进行形变,例如:游戏角色的跑步、张嘴等动作,便是通过对游戏角色3d模型进行形变来实现的。相关技术中针对3d模型形变存在多种解决方案,骨骼动画则是其中一种较为主流的设计方案。

骨骼动画的实现原理如下:

第一步、为需要形变的3d模型创建一具骨架。骨架由若干根具有父子关系的骨骼组成。子骨骼会记录其相对于父骨骼的三维变换(包括:平移、旋转、缩放)。

第二步、在3d模型中每个顶点上记录该顶点所对应的若干根骨骼,自身受若干根骨骼的影响系数,以及自身相对于若干根骨骼的三维变换。

第三步、在对3d模型进行形变时,对其骨架中的骨骼进行三维变换。此时,由于该3d模型顶点的位置已经是由相对于骨骼的三维变换来表示,因此可以求得其更新后的位置。由此便可实现3d模型的形变。

总体而言,通过将顶点绑定到骨骼上,以及通过动骨骼来实现顶点的移动,便可实现3d模型的形变。

此外,顶点动画也是一种实现3d模型形变的常用方式。顶点动画通过直接修改3d模型中各个顶点的位置,来实现3d模型的形变。

在3d模型的形变中,游戏玩家有时希望在游戏中实现改变游戏角色脸部模型的功能,也可以通俗地称为捏脸。在通常情况下,捏脸界面会为游戏玩家提供多个可调节的控制器,例如:“眼睛大小”、“嘴部高低”等。游戏玩家在调节控制器之后,游戏中角色脸部模型会相应地发生变化。

对于一个友好的捏脸系统而言,关键之处在于:向用户提供尽可能少、尽可能正交的调节控制器。通过组合这些控制器的调节参数,能够很容易地得到尽可能丰富、尽可能正常的脸部模型。

相关技术中提供了如下在游戏中实现捏脸功能的解决方案:

方案一、直接提供若干个固定的脸部3d模型,供游戏玩家在其中进行选择。

该方案的缺陷在于:直接提供若干个固定的脸部3d模型供游戏玩家进行选择,从严格意义上来讲,并没有真正实现捏脸功能。由于提供的3d模型数量会受到美术制作人员工作量以及占用空间的限制,数量有限,因此,游戏玩家改变游戏中角色脸部模型的能力也会受到极大地限制。

方案二、使用顶点动画融合的方式,将每个控制器与一个特定的顶点动画进行绑定,当控制器的值发生变化时,使用对应的顶点动画来改变3d模型的形状。

该方案的缺陷在于:如果希望使用顶点动画融合的方式,那么美术制作人员需要为每一个待使用的控制器设计相应的顶点动画,工作量很大,且很难预估多个顶点动画融合之后的效果。

方案三、使用骨骼的方式,在脸部布置一定数量的骨骼,直接将控制器与单个骨骼绑定,游戏玩家通过调节各个控制器,直接控制各个骨骼的位置,进而改变3d模型的形状。

该方案的缺陷在于:通过在脸部布置一定数量的骨骼,以使游戏玩家直接通过各个控制器控制各个骨骼的位置,不仅容易造成游戏玩家的自由度太高,可以任意调节出各种奇形怪状的脸部模型,容易破坏游戏氛围,影响游戏体验,而且游戏玩家使用难度太高,很多脸部模型的调整需要同时对多根骨骼进行不同的调整,缺乏3d模型制作经验的普通游戏玩家很难快速地调节出满意的效果。

方案四、使用骨骼的方式,在脸部布置大量骨骼,通过人工填写大量数据,定义每个控制器所影响的骨骼,以及在控制器调节时,每根骨骼的运动方式。游戏玩家调节各个控制器之后,依照人工填写的骨骼运动规则,改变骨骼位置,进而改变3d模型的形状。

该方案的缺陷在于:通过人工填写大量数据定义控制器所影响的骨骼和影响方式,易造成美术制作人员的工作量庞大、效率极低。

方案五、使用骨骼动画融合的方式,在脸部布置大量骨骼,通过美术制作人员创建骨骼动画,然后将每个控制器与动画进行绑定。当控制器的值发生变化时,将骨骼运动到动画所定义的位置,进而改变3d模型的形状。

该方案的缺陷在于:通过美术制作人员创建骨骼动画来定义控制器对骨骼的影响,在多个控制器调节时需要对应多个动画的融合,而美术制作人员难以估计多个动画融合之后的效果,由此造成美术制作人员的工作量庞大、效率极低。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明至少部分实施例提供了一种游戏角色脸部模型的调整方法、装置、处理器及终端,以至少解决相关技术中所提供的改变游戏角色脸部模型的方式在游戏开发阶段工作量大、效率低,而且在游戏运行阶段的脸部模型变化效果不可控的技术问题。

根据本发明其中一实施例,提供了一种游戏角色脸部模型的调整方法,包括:

获取至少一个调节选项的调节数值,其中,每个调节选项用于对游戏角色的脸部模型上不同部位的形态进行调节;根据获取到的调节数值计算得到至少一个加权数值,其中,每个加权数值用于确定对应脸部模型的骨骼的三维变换方式;根据至少一个加权数值对应骨骼的三维变换方式,得到游戏角色的更新后的脸部模型。

可选地,在获取至少一个调节选项的调节数值之前,还包括:获取配置文件,其中,配置文件中的内容至少包括:控制数据和曲面模型数据,控制数据包括:当前配置的调节选项的属性信息以及由当前配置的调节选项驱动的骨骼控制信息,属性信息包括:名称和维度,骨骼控制信息包括:缩放控制信息、旋转控制信息和沿曲面模型运动控制信息。

可选地,获取至少一个调节选项的调节数值包括:根据属性信息确定至少一个调节选项中每个调节选项的维度;获取与维度对应的调节数值。

可选地,根据获取到的调节数值计算得到至少一个加权数值包括:根据骨骼控制信息获取至少一个调节选项中每个待使用的调节数值的加权系数以及至少一个调节选项的加权依赖关系;采用加权系数和加权依赖关系计算得到至少一个加权数值。

可选地,根据至少一个加权数值对应骨骼的三维变换方式,得到更新后的脸部模型包括以下至少之一:通过至少一个加权数值中的第一部分数值以及根据缩放控制信息确定的至少一个缩放轴的缩放参数对第一部分数值分别对应骨骼进行缩放处理;通过至少一个加权数值中的第二部分数值以及根据旋转控制信息确定的旋转轴和旋转范围对第二部分数值分别对应骨骼进行旋转处理;首先按照预设分辨率在uv区间对曲面模型数据进行二维离散化处理,得到多个采样点,其次对多个采样点中的每个采样点执行从uv区间到曲面模型的反映射处理,得到每个采样点的位置偏移量和旋转偏移量,然后通过至少一个加权数值中的第三部分数值索引到每个采样点的位置偏移量和旋转偏移量并进行双线性插值处理,控制第三部分数值分别对应骨骼沿曲面运动。

可选地,对多个采样点中的每个采样点执行从uv区间到曲面模型的反映射处理,得到每个采样点的位置偏移量和旋转偏移量包括:遍历构成曲面模型的三角形面片,查找每个采样点归属的三角形面片;在查找到归属的三角形面片之后,利用重心坐标插值方式计算得到第一组数据和第二组数据,其中,第一组数据为每个采样点的位置坐标、法线向量和切线向量,第二组数据为uv区间的中心点反向映射后的位置坐标、法线向量和切线向量;利用第一组数据和第二组数据计算得到每个采样点相对于中心点的位置偏移量和旋转偏移量。

根据本发明其中一实施例,还提供了一种游戏角色脸部模型的调整装置,包括:

第一获取模块,用于获取至少一个调节选项的调节数值,其中,每个调节选项用于对游戏角色的脸部模型上不同部位的形态进行调节;计算模块,用于根据获取到的调节数值计算得到至少一个加权数值,其中,每个加权数值用于确定对应脸部模型的骨骼的三维变换方式;处理模块,用于根据至少一个加权数值对应骨骼的三维变换方式,得到游戏角色的更新后的脸部模型。

可选地,上述装置还包括:第二获取模块,用于获取配置文件,其中,配置文件中的内容至少包括:控制数据和曲面模型数据,控制数据包括:当前配置的调节选项的属性信息以及由当前配置的调节选项驱动的骨骼控制信息,属性信息包括:名称和维度,骨骼控制信息包括:缩放控制信息、旋转控制信息和沿曲面模型运动控制信息。

可选地,第一获取模块包括:确定单元,用于根据属性信息确定至少一个调节选项中每个调节选项的维度;第一获取单元,用于获取与维度对应的调节数值。

可选地,计算模块包括:第二获取单元,用于根据骨骼控制信息获取至少一个调节选项中每个待使用的调节数值的加权系数以及至少一个调节选项的加权依赖关系;计算单元,用于采用加权系数和加权依赖关系计算得到至少一个加权数值。

可选地,处理模块包括:第一处理单元,用于通过至少一个加权数值中的第一部分数值以及根据缩放控制信息确定的至少一个缩放轴的缩放参数对第一部分数值分别对应骨骼进行缩放处理;第二处理单元,用于通过至少一个加权数值中的第二部分数值以及根据旋转控制信息确定的旋转轴和旋转范围对第二部分数值分别对应骨骼进行旋转处理;第三处理单元,用于首先按照预设分辨率在uv区间对曲面模型数据进行二维离散化处理,得到多个采样点,其次对多个采样点中的每个采样点执行从uv区间到曲面模型的反映射处理,得到每个采样点的位置偏移量和旋转偏移量,然后通过至少一个加权数值中的第三部分数值索引到每个采样点的位置偏移量和旋转偏移量并进行双线性插值处理,控制第三部分数值分别对应骨骼沿曲面运动。

可选地,第三处理单元,用于遍历构成曲面模型的三角形面片,查找每个采样点归属的三角形面片;在查找到归属的三角形面片之后,利用重心坐标插值方式计算得到第一组数据和第二组数据,其中,第一组数据为每个采样点的位置坐标、法线向量和切线向量,第二组数据为uv区间的中心点反向映射后的位置坐标、法线向量和切线向量;以及利用第一组数据和第二组数据计算得到每个采样点相对于中心点的位置偏移量和旋转偏移量。

根据本发明其中一实施例,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述游戏角色脸部模型的调整方法。

根据本发明其中一实施例,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述游戏角色脸部模型的调整方法。

根据本发明其中一实施例,还提供了一种终端,其特征在于,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,一个或多个程序被存储在存储器中,并且被配置为由一个或多个处理器执行,一个或多个程序用于执行上述游戏角色脸部模型的调整方法。

在本发明至少部分实施例中,采用获取至少一个调节选项的调节数值,每个调节选项用于对游戏角色的脸部模型上不同部位的形态进行调节的方式,根据获取到的调节数值计算得到至少一个加权数值,其中,每个加权数值用于确定对应骨骼的三维变换方式以及根据至少一个加权数值分别对应脸部模型的骨骼的三维变换方式,得到游戏角色的更新后的脸部模型,从而实现了对于游戏玩家而言,使用方便、功能强大。通过调节数量较少并且正交的若干个控制器,便可以生成各种各样的个性化脸部模型;对于美术制作人员而言,可以方便地定义控制器与骨骼之间的关联关系,约束脸部模型调节的范围,以确保游戏玩家能够调节出的脸部模型在正常可控范围之内,降低美术制作人员的工作量,进而解决了相关技术中所提供的改变游戏角色脸部模型的方式在游戏开发阶段工作量大、效率低,而且在游戏运行阶段的脸部模型变化效果不可控的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的游戏角色脸部模型的调整方法的流程图;

图2是根据本发明其中一实施例的游戏角色脸部模型的调整装置的结构框图;

图3是根据本发明其中一可选实施例的游戏角色脸部模型的调整装置的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

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

本发明所涉及的名词解释如下:

(1)控制器:即游戏玩家在捏脸时所选择的特定调节选项,例如:“眼球大小”、“眉毛位置”都可以被设定为控制器,控制器可以是一维或二维的。

(2)控制器值(或调节数值):即游戏玩家在调节控制器后所产生的一个或两个范围在[0,1]之间的浮点数。一维控制器可以产生一个控制器值,二维控制器可以产生两个控制器值。

(3)加权控制器值(或加权数值):即多个控制器值可以采用一定系数比例构成一个加权控制器值,加权系数由美术制作人员配置。假设当前存在x,y,z三个控制器值,则可以定义加权控制器值为:

u=ax+by+cz

其中,a,b,c即为美术制作人员预先配置的加权系数。

根据本发明其中一实施例,提供了一种游戏角色脸部模型的调整方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

该方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,移动终端可以包括一个或多个处理器(处理器可以包括但不限于图像处理器(gpu)或微处理器(mcu)或可编程逻辑器件(fpga)等的处理装置)和用于存储数据的存储器,可选地,上述移动终端还可以包括用于通信功能的传输装置以及输入输出设备。本领域普通技术人员可以理解,上述结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比上述结构更多或者更少的组件,或者具有与上述结构不同的配置。

存储器可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明其中一实施例中的游戏角色脸部模型的调整方法对应的计算机程序,处理器通过运行存储在存储器内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的游戏角色脸部模型的调整方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。

在上述移动终端的运行环境下,可以搭建一套捏脸系统。在本发明的至少部分实施例中,将骨骼动画被用来实现各种游戏角色的动作转用为利用骨骼动画的原理来实现角色脸部模型的调整。

美术制作人员为整套捏脸系统提供数据配置,然后游戏玩家便可以通过这套捏脸系统自由地创建出个性化的脸部模型。换言之,在这套捏脸系统中,存在游戏玩家和美术制作人员两个输入信息来源。在系统的使用过程中,可以分为如下两个阶段。在第一个阶段里,美术制作人员为这套系统配置各种参数,形成一套捏脸方案,这一阶段是在游戏的开发过程中进行的。在第二个阶段里,游戏玩家调节各种控制器,通过这套系统的运算,得到个性化的脸部模型,这一阶段发生在游戏运行期间,此时美术制作人员配置的各种参数已经存储在系统当中,不会发生改变。

游戏玩家调节控制器会产生对应的控制器数据。在本发明的其中一可选实施例中,定义了两种控制器:

(1)一维控制器,游戏玩家通过第一类形状用户界面(ui)(例如:条状轨道)进行调节,生成一个[0,1]之间的浮点数。

(2)二维控制器,游戏玩家通过第二类形状ui进行调节(例如:控制面板),生成两个[0,1]之间的浮点数。

这样,游戏玩家在调节捏脸相关的各个控制器之后,便可得到一系列[0,1]之间的浮点数,此处将这些浮点数称为控制器值。换言之,一维控制器可以生成一个控制器值,二维控制器可以生成两个控制器值。美术制作人员在本发明至少部分实施例所设计的捏脸系统中,配置捏脸方案需要使用哪些控制器以及每个控制器采用一维控制器还是二维控制器。

在美术制作人员对上述控制器配置完毕之后,便可以通过调节控制器产生多个控制器值。

然后,美术制作人员根据需要配置若干个加权控制器值,每个加权控制器值是由若干个控制器值依照一定系数比例加权得到。美术制作人员需要设定每个加权控制器值需要依赖哪些控制器值以及每个依赖控制器的系数。

最后,美术制作人员需要配置加权控制器值与骨骼三维变换的关系。本发明提供了三种加权控制器值影响骨骼三维变换的方式,分别如下:

(1)加权控制器值驱动骨骼进行缩放,这种方式需要依赖一个加权控制器值。对于需要采用这种方式驱动的骨骼,美术制作人员需要配置该骨骼缩放受到哪个加权控制器值的影响,以及xml格式的配置数据中包含的xyz三轴缩放参数受影响的比率。

(2)加权控制器值驱动骨骼按照特定轴进行旋转,这种方式需要依赖一个加权控制器值。对于需要采用这种方式驱动的骨骼,美术制作人员需要配置该骨骼旋转受到哪个加权控制器值的影响,以及旋转轴和旋转角度范围。

(3)加权控制器值驱动骨骼沿三维空间中美术制作人员设定的曲面进行运动。运动过程包括位置的改变和旋转。这种方式需要依赖两个加权控制器值。对于需要采用这种方式驱动的骨骼,美术制作人员需要配置该骨骼沿曲面运动受到哪两个加权控制器值的影响,并且还需要提供一个三维空间的方形网格形变而来的曲面模型,该模型即定义了沿曲面运动的运动范围和朝向。

由此可见,在整套捏脸系统中,游戏玩家对控制器进行调节,美术制作人员配置需要使用哪些控制器,控制器值按照何种系数进行加权,以及每根骨骼的运动如何受加权控制器值影响。

图1是根据本发明实施例的游戏角色脸部模型的调整方法的流程图,如图1所示,该方法包括如下步骤:

步骤s12,获取至少一个调节选项的调节数值,其中,每个调节选项用于对游戏角色的脸部模型上不同部位的形态进行调节;

步骤s14,根据获取到的调节数值计算得到至少一个加权数值,其中,每个加权数值用于确定对应脸部模型的骨骼的三维变换方式;

步骤s16,根据至少一个加权数值对应骨骼的三维变换方式,得到游戏角色的更新后的脸部模型。

通过上述步骤,可以实现采用获取至少一个调节选项的调节数值,每个调节选项用于对游戏角色的脸部模型上不同部位的形态进行调节的方式,根据获取到的调节数值计算得到至少一个加权数值,其中,每个加权数值用于确定对应脸部模型的骨骼的三维变换方式以及根据至少一个加权数值对应骨骼的三维变换方式,得到游戏角色的更新后的脸部模型,从而实现了对于游戏玩家而言,使用方便、功能强大。通过调节数量较少并且正交的若干个控制器,便可以生成各种各样的个性化脸部模型;对于美术制作人员而言,可以方便地定义控制器与骨骼之间的关联关系,约束脸部模型调节的范围,以确保游戏玩家能够调节出的脸部模型在正常可控范围之内,降低美术制作人员的工作量,进而解决了相关技术中所提供的改变游戏角色脸部模型的方式在游戏开发阶段工作量大、效率低,而且在游戏运行阶段的脸部模型变化效果不可控的技术问题。

可选地,在步骤s12,获取至少一个调节选项的调节数值之前,还可以包括以下执行步骤:

步骤s10,获取配置文件,其中,配置文件中的内容至少包括:控制数据和曲面模型数据,控制数据包括:当前配置的调节选项的属性信息以及由当前配置的调节选项驱动的骨骼控制信息,属性信息包括:名称和维度,骨骼控制信息包括:缩放控制信息、旋转控制信息和沿曲面模型运动控制信息。

美术制作人员需要为该系统提供的配置数据主要包括:预设格式(例如:xml格式、json格式、excel电子表格格式、纯文本格式等)的配置数据和用于表示沿曲面运动的曲面模型数据。

鉴于xml格式适合用来表达具有层次结构的数据并且可读性较强,因此,本发明其中一可选实施例将以xml格式的配置数据为例进行说明,但其并不构成对本发明的不当限制。

采用xml格式的配置可以包括如下内容:

(1)捏脸方案中的控制器列表,对于其中任一个控制器,需要设定控制器的名称和控制器的维数;

(2)脸上受到捏脸系统驱动的骨骼列表,对于其中任一根骨骼,需要设定骨骼的缩放相关控制信息、骨骼的旋转相关控制信息以及骨骼的沿曲面运动相关控制信息。

其中,骨骼的缩放相关控制信息包括:

1)xyz三轴缩放参数,通过这三个参数,美术制作人员可配置该骨骼沿每个轴缩放的程度。例如:x轴缩放参数设为0,则表示x轴不受缩放控制影响。缩放参数的取值越大,表明缩放程度越厉害。

2)控制缩放的加权控制器值信息,包括:该加权控制器值所涉及到的控制器值列表,对于其中任一个控制器值,需要设定控制器值对应的控制器名称及所需要索引的维度(即一维控制器或二维控制器),是否对控制器值进行镜像以及控制器值加权系数。

需要说明的是,控制器值是一个[0,1]之间的浮点数。上述镜像是指使用f(x)=1–x这个函数来处理控制器值。镜像的主要目的在于:为了便于美术制作人员实现一些具有对称结构的捏脸操作。例如,美术制作人员希望实现“眼睛旋转”的一维控制器。从效果上来讲,美术制作人员通常希望的是左右眼按照相反的方向旋转,即左眼逆时针旋转的同时,右眼顺时针旋转,这样比较符合普通人对这一操作的理解。在这种情况下,左右眼的骨骼在使用“眼睛旋转”这一控制器产生的控制器值时,其中便需要设定使用镜像功能,才能够确保两个骨骼沿相反的方向旋转。因此,针对具有左右对称结构的捏脸操作,此处需要设定在读取控制器值时的镜像。

其中,骨骼的旋转相关控制信息包括:

1)旋转轴,是三维空间中的一个向量;

2)旋转度数范围;

3)控制旋转的加权控制器值信息,与前述控制缩放的加权控制器值信息结构一致。

其中,骨骼的沿曲面运动相关控制信息包括:

(1)控制曲面u方向的加权控制器值信息,与前述控制缩放的加权控制器值信息结构一致;

(2)控制曲面v方向的加权控制器值信息,与前述控制缩放的加权控制器值信息结构一致。

通过上述参数配置过程,从骨骼出发,通过加权控制器值信息,反向索引会影响该骨骼运动的所有控制器,其优势在于:可以很自然地实现多个控制器影响同一根骨骼以及一个控制器影响多根骨骼,灵活性较高。而且,在骨骼缩放,旋转,沿曲面运动三个反面均使用同样的结构表示加权控制器值信息,有利于代码复用。

另外,关于曲面模型数据的配置,为了实现骨骼沿曲面运动的运动方式,美术制作人员需要为存在这种运动方式的骨骼提供对应的三维曲面模型。该曲面需要由方形三维网格形变而来。整个表面的uv范围恰好是[0,1]*[0,1]之间。换言之,给定该曲面上一点,便可以得到唯一的二维浮点向量。每个浮点数成员的范围是[0,1]。因此,在本发明的其中一可选实施例中,构造一个反向过程,即通过一个二维浮点向量,反向求出曲面上一点的三维坐标,通过这个反向的方式实现骨骼沿曲面运动。通过使用曲面模型数据来表示曲面非常自然、流畅,美术制作人员的制作过程相当便捷。

可选地,在步骤s12中,获取至少一个调节选项的调节数值可以包括以下执行步骤:

步骤s121,根据属性信息确定至少一个调节选项中每个调节选项的维度;

步骤s122,获取与维度对应的调节数值。

在获取控制器值的过程中,对于一维的控制器而言,获得控制器值的方式极为简单,只要将游戏玩家对一维滑条的操作线性映射到一个[0,1]的浮点数即可。对于二维的控制器而言,游戏玩家需要在一个二维平面确定一个点,然后捏脸系统会将该点的位置映射到两个[0,1]的浮点数。

可选地,在步骤s14中,根据获取到的调节数值计算得到至少一个加权数值可以包括以下执行步骤:

步骤s141,根据骨骼控制信息获取至少一个调节选项中每个待使用的调节数值的加权系数以及至少一个调节选项的加权依赖关系;

步骤s142,采用加权系数和加权依赖关系计算得到至少一个加权数值。

在计算加权控制器值的过程中,美术制作人员在上述xml配置文件中已经定义了每个加权控制器值所依赖的各个加权控制器值以及加权系数。假设有x,y,z三个控制器值,则美术可以定义加权控制器值:

u=ax+by+cz

其中,a,b,c均为美术制作人员配置的加权系数。

通过这种方式,可以得到若干个捏脸系统所需的加权控制器值。

加权控制器值的作用在于:隔离控制器值和骨骼运动。控制器所产生的控制器值不是直接作用在骨骼运动上,而是以加权的方式产生加权控制器值,然后再作用到骨骼上。该处理过程的优势在于:可以很容易地实现多个控制器依照不同的比率同时影响同一根骨骼,以增强游戏中的捏脸体验。例如,美术制作人员可以通过捏脸系统实现如下效果:游戏玩家调节眼睛高低控制器时,眼角对应的骨骼发生较大幅度的上下运动;游戏玩家在调节额头高低时,眼角对应的骨骼发生较小幅度的上下运动;两个控制器均能够影响眼角骨骼的上下运动,只是一个影响比率大,另一个影响比率小。

可选地,在步骤s16中,根据至少一个加权数值对应骨骼的三维变换方式,得到更新后的脸部模型可以包括以下执行步骤:

步骤s161,通过至少一个加权数值中的第一部分数值以及根据缩放控制信息确定的至少一个缩放轴的缩放参数对第一部分数值分别对应骨骼进行缩放处理;

步骤s162,通过至少一个加权数值中的第二部分数值以及根据旋转控制信息确定的旋转轴和旋转范围对第二部分数值分别对应骨骼进行旋转处理;

步骤s163,首先按照预设分辨率在uv区间对曲面模型数据进行二维离散化处理,得到多个采样点,其次对多个采样点中的每个采样点执行从uv区间到曲面模型的反映射处理,得到每个采样点的位置偏移量和旋转偏移量,然后通过至少一个加权数值中的第三部分数值索引到每个采样点的位置偏移量和旋转偏移量并进行双线性插值处理,控制第三部分数值分别对应骨骼沿曲面运动。

在生成骨骼位置信息的过程中,每根骨骼的位置会受到以下运动方式中至少一种方式的影响:缩放、旋转、沿曲面运动。

缩放的实现方式如下:假设美术制作人员配置的该骨骼沿xyz三个轴的缩放参数分别为α∈[0,1],β∈[0,1],γ∈[0,1],配置的该骨骼缩放对应的加权控制器值为u,则该骨骼最终沿xyz的缩放系数分别计算为:

sx=lerp(1-α,1+α,u)

sy=lerp(1-β,1+β,u)

sz=lerp(1-γ,1+γ,u)

其中,lerp函数定义为:

lerp(a,b,u)=a(1-u)+b

旋转的实现方式如下:美术制作人员配置该骨骼旋转变换的旋转轴为非零向量u,旋转范围为标量a,配置该骨骼旋转对应的加权控制器值为v,则该骨骼最终会沿u所表示的向量进行旋转,旋转角度为lerp(-a,a,v)。

可选地,在步骤s163中,对多个采样点中的每个采样点执行从uv区间到曲面模型的反映射处理,得到每个采样点的位置偏移量和旋转偏移量可以包括以下执行步骤:

步骤s1631,遍历构成曲面模型的三角形面片,查找每个采样点归属的三角形面片;

步骤s1632,在查找到归属的三角形面片之后,利用重心坐标插值方式计算得到第一组数据和第二组数据,其中,第一组数据为每个采样点的位置坐标、法线向量和切线向量,第二组数据为uv区间的中心点反向映射后的位置坐标、法线向量和切线向量;

步骤s1633,利用第一组数据和第二组数据计算得到每个采样点相对于中心点的位置偏移量和旋转偏移量。

沿曲面运动是这三种变换中较为复杂的一种,其实现流程如下:

首先,对曲面模型进行二维离散化。美术制作人员提供的曲面模型uv区间为[0,1]*[0,1]。捏脸系统会以一定分辨率(例如:15*15)对该区间进行二维离散化。

对于离散化之后的每一个采样点,捏脸系统会进行一次从uv空间到曲面模型本身的一次反向映射过程。由模型uv映射的性质可知,在该曲面模型中有且仅有一个三角形对应的uv区间包含该点(对于点在三角形边界的情况,选择其中任意一个三角形均可)。捏脸系统会遍历该二维曲面中所有三角形,并使用点在三角形下的重心坐标来判定该采样点是否在三角形内部。在获取到包含该采样点的三角形之后,使用重心坐标插值的方式,计算出该采样点的位置坐标、法线向量、切线向量。在获取到每个采样点的这些信息之后,捏脸系统以uv区间中心点即(0.5,0.5)为原点,计算每个采样点反向映射之后相对于中心点反向映射之后的位置和旋转的偏移量,由此得到位置和旋转偏移量的二维数组。

然后,使用该二维数组,配合两个加权控制器值,可进行双线性插值。插值过程中,对于位置使用lerp的方式进行插值,对于旋转使用slerp的方式进行插值,其中,lerp方式采用lerp(a,b,u)=a(1-u)+b的公式进行插值,随着u在[0,1]之间变化,函数的值也在[a,b]之间线性变化,这种方式适合对位置进行插值;slerp方式适合对旋转进行插值,使用四元数来实现。经过插值处理便可得到该骨骼沿曲面运动的位置和旋转偏移量。

需要说明的是,此处也可以直接使用两个加权控制器值,按照处理采样点的方式,反向映射到曲面模型上,直接得到该骨骼沿曲面运动的位置和旋转偏移量。在本发明的其中一可选实施例中,通过新增的离散化的过程执行预处理得到各个采样点的位置和旋转偏移量,其优势在于:将反向映射到曲面模型这一时间复杂度比较高的操作,放在导入美术制作人员在制作曲面模型阶段(即游戏的开发阶段)进行。游戏玩家使用该捏脸系统时(即游戏的运行阶段),便无需执行复杂的反向映射运算,而是直接使用快速的双线性插值方式得到骨骼沿曲面运动的位置和旋转偏移量。

通过使用缩放、旋转、沿曲面运动这三种三维变换方式来描述捏脸过程中骨骼运动,可以达到如下技术效果:

(1)表现力足够强,通过这三种运动模式,可以灵活地表达捏脸中所需要的骨骼三维变换;

(2)美术制作人员的制作简便,对于缩放和旋转,美术制作人员只需要填写若干个容易理解的控制参数;对于沿曲面运动,美术制作人员只需再额外为骨骼设计一个对应的曲面模型,相对于利用骨骼动画和顶点动画更加简便;

(3)美术效果可控,由于缩放、旋转、沿曲面运动这三种运动方式独立性强,其叠加的效果更容易预测,从而能够有效地避免由于骨骼动画和顶点动画太过灵活,导致不同动画之间的独立性无法保证,由此得到的叠加之后效果也很难保证。

在获取到该骨骼的缩放、旋转、沿曲面运动这三种三维变换之后,将三者叠加在一起,即可得到这根骨骼最终所需要的变化。对所有脸部骨骼都进行同样的操作,即可得到整个捏脸运算的结果,即最终所有脸部骨骼需要执行的三维变换。

为了提高美术制作人员的工作效率,在本发明的其中一可选实施例中,还提供了自动镜像系统。当游戏玩家进行捏脸操作时,有些时候会期待得到一个对称的结果。例如:游戏玩家在将眼睛位置调高的时候,往往希望左右眼同时调高到同样的高度。再例如:游戏玩家在将嘴角拉开的时候,往往希望将左嘴角往左拉的同时,右嘴角自动往右拉。为此,美术制作人员可以在上述xml格式的配置文件中设定其中一根骨骼为另一根骨骼的镜像骨骼。由此镜像骨骼会自动与原骨骼同步运动,其中,上下和前后保持同向运动,左右保持反向运动。

在本发明其中一实施例中还提供了一种游戏角色脸部模型的调整装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图2是根据本发明其中一实施例的游戏角色脸部模型的调整装置的结构框图,如图2所示,该装置包括:第一获取模块10,用于获取至少一个调节选项的调节数值,其中,每个调节选项用于对游戏角色的脸部模型上不同部位的形态进行调节;计算模块20,用于根据获取到的调节数值计算得到至少一个加权数值,其中,每个加权数值用于确定对应脸部模型的骨骼的三维变换方式;处理模块30,用于根据至少一个加权数值对应骨骼的三维变换方式,得到游戏角色的更新后的脸部模型。

可选地,图3是根据本发明其中一可选实施例的游戏角色脸部模型的调整装置的结构框图,如图3所示,上述装置还包括:第二获取模块40,用于获取配置文件,其中,配置文件中的内容至少包括:控制数据和曲面模型数据,控制数据包括:当前配置的调节选项的属性信息以及由当前配置的调节选项驱动的骨骼控制信息,属性信息包括:名称和维度,骨骼控制信息包括:缩放控制信息、旋转控制信息和沿曲面模型运动控制信息。

可选地,第一获取模块10包括:确定单元(图中未示出),用于根据属性信息确定至少一个调节选项中每个调节选项的维度;第一获取单元(图中未示出),用于获取与维度对应的调节数值。

可选地,计算模块20包括:第二获取单元(图中未示出),用于根据骨骼控制信息获取至少一个调节选项中每个待使用的调节数值的加权系数以及至少一个调节选项的加权依赖关系;计算单元(图中未示出),用于采用加权系数和加权依赖关系计算得到至少一个加权数值。

可选地,处理模块30包括:第一处理单元(图中未示出),用于通过至少一个加权数值中的第一部分数值以及根据缩放控制信息确定的至少一个缩放轴的缩放参数对第一部分数值分别对应骨骼进行缩放处理;第二处理单元(图中未示出),用于通过至少一个加权数值中的第二部分数值以及根据旋转控制信息确定的旋转轴和旋转范围对第二部分数值分别对应骨骼进行旋转处理;第三处理单元(图中未示出),用于首先按照预设分辨率在uv区间对曲面模型数据进行二维离散化处理,得到多个采样点,其次对多个采样点中的每个采样点执行从uv区间到曲面模型的反映射处理,得到每个采样点的位置偏移量和旋转偏移量,然后通过至少一个加权数值中的第三部分数值索引到每个采样点的位置偏移量和旋转偏移量并进行双线性插值处理,控制第三部分数值分别对应骨骼沿曲面运动。

可选地,第三处理单元(图中未示出),用于遍历构成曲面模型的三角形面片,查找每个采样点归属的三角形面片;在查找到归属的三角形面片之后,利用重心坐标插值方式计算得到第一组数据和第二组数据,其中,第一组数据为每个采样点的位置坐标、法线向量和切线向量,第二组数据为uv区间的中心点反向映射后的位置坐标、法线向量和切线向量;以及利用第一组数据和第二组数据计算得到每个采样点相对于中心点的位置偏移量和旋转偏移量。

本发明其中一实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,获取至少一个调节选项的调节数值,其中,每个调节选项用于对游戏角色的脸部模型上不同部位的形态进行调节;

s2,根据获取到的调节数值计算得到至少一个加权数值,其中,每个加权数值用于确定对应脸部模型的骨骼的三维变换方式;

s3,根据至少一个加权数值对应骨骼的三维变换方式,得到游戏角色的更新后的脸部模型。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-onlymemory,简称为rom)、随机存取存储器(randomaccessmemory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

本发明其中一实施例还提供了一种处理器,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

s1,获取至少一个调节选项的调节数值,其中,每个调节选项用于对游戏角色的脸部模型上不同部位的形态进行调节;

s2,根据获取到的调节数值计算得到至少一个加权数值,其中,每个加权数值用于确定对应脸部模型的骨骼的三维变换方式;

s3,根据至少一个加权数值对应骨骼的三维变换方式,得到游戏角色的更新后的脸部模型。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

通过本发明至少部分实施例所提供的整套捏脸系统可以实现如下技术效果:

(1)显著降低美术制作人员的工作量,美术制作人员只需在游戏角色脸上布置骨骼,然后配置需要使用的控制器,配置各个控制器值的加权系数,以及定义每根骨骼与加权控制器值的关系,即可以形成一套捏脸方案。

(2)捏脸系统本身具有良好的可复用性。美术制作人员可以灵活地调节出多套捏脸方案,例如:为成年男性角色调整一套捏脸方案,为小女孩角色调整一套捏脸方案,为巨人怪物角色调整一套捏脸方案等,因此,同一套系统即可为多种不同类型的游戏角色提供捏脸的能力。

(3)游戏玩家调节控制器的过程十分简便,捏脸自由度高,而且捏脸效果更加可控。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

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

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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