掌桥专利:专业的专利平台
掌桥专利
首页

对象控制方法及装置

文献发布时间:2023-06-19 09:27:35


对象控制方法及装置

技术领域

本发明实施例涉及计算机领域,尤其涉及一种对象控制方法及装置。

背景技术

随着游戏相关技术的不断发展,对游戏中的虚拟对象的建模和动画表现的要求也越来越高。

目前,虚拟对象在运动的过程中会产生动画表现,在虚拟对象的运动过程中,虚拟对象可能会发生形体的变形,例如在虚拟对象抬起手臂的运动过程中,虚拟对象的肩部可能会发生扭曲变形,从而导致虚拟对象的动画表现不自然。

因此在目前虚拟对象的运动过程中,虚拟对象的某些部位会扭曲变形,从而导致虚拟对象的表现缺乏真实性。

发明内容

本发明实施例提供一种对象控制方法及装置,以克服虚拟对象的表现缺乏真实性的问题。

第一方面,本发明实施例提供一种对象控制方法,包括:

接收针对虚拟对象的控制指令,所述虚拟对象包括第一类型的骨骼和第二类型的骨骼,所述第一类型的骨骼为在所述虚拟对象的部分肌肉部位添加的骨骼,所述第二类型的骨骼为所述虚拟对象的基础骨骼;

根据所述控制指令,获取所述第一类型的骨骼对应的第一运动参数和所述第二类型的骨骼对应的第二运动参数,其中,所述第一运动参数用于指示所述第一类型的骨骼以第一关键点为中心进行运动,所述第二运动参数用于指示所述第二类型的骨骼以第二关键点为中心进行运动;

根据所述第一运动参数和所述第二运动参数,控制所述虚拟对象运动。

在一种可能的设计中,根据所述第一运动参数和所述第二运动参数,控制所述虚拟对象运动,包括:

根据所述控制指令确定所述虚拟对象中的第一运动部位,所述第一运动部位对应的第一类型的第一主骨骼和第一子骨骼均与所述第一关键点链接,以及所述第一运动部位对应的第二类型的骨骼与所述第二关键点链接;

在所述第一运动参数中获取所述第一主骨骼对应的第一主运动参数,和所述第一子骨骼对应的第一子运动参数;

根据所述第一主运动参数控制所述第一主骨骼以所述第一关键点为中心运动,以及根据所述第一子运动参数控制所述第一子骨骼以所述第一关键点为中心运动,以及根据所述第二运动参数控制所述第二类型的骨骼以所述第二关键点为中心点运动。

在一种可能的设计中,所述第一主运动参数指示所述第一主骨骼以第一方式与所述第一关键点链接;

所述第一子运动参数指示所述第一子骨骼以第二方式与所述第一关键点链接;

所述第二运动参数指示所述第二类型的骨骼以第三方式与所述第二关键点链接。

在一种可能的设计中,所述第一方式为查找约束,所述第二方式为位置限制,所述第三方式为位置限制和方向约束。

在一种可能的设计中,所述方法还包括:

对所述虚拟对象进行蒙皮操作,其中,所述蒙皮操作的过程中将四元数的重量增加至预设重量,以控制所述第一运动部位的肌肉运动。

在一种可能的设计中,所述第一运动参数还包括所述第一主骨骼和所述第一子骨骼在三维坐标系中的旋转角度。

在一种可能的设计中,所述方法还包括:

根据所述第一主运动参数和所述第一子运动参数,在所述虚拟对象的所述第一运动部位添加对应的所述第一主骨骼和所述第一子骨骼。

在一种可能的设计中,所述第一类型的骨骼为骨骨骼,所述第二类型的骨骼为角色表达式CS骨骼。

第二方面,本发明实施例提供一种对象控制装置,包括:

接收模块,用于接收针对虚拟对象的控制指令,所述虚拟对象包括第一类型的骨骼和第二类型的骨骼,所述第一类型的骨骼为在所述虚拟对象的部分肌肉部位添加的骨骼,所述第二类型的骨骼为所述虚拟对象的基础骨骼;

获取模块,用于根据所述控制指令,获取所述第一类型的骨骼对应的第一运动参数和所述第二类型的骨骼对应的第二运动参数,其中,所述第一运动参数用于指示所述第一类型的骨骼以第一关键点为中心进行运动,所述第二运动参数用于指示所述第二类型的骨骼以第二关键点为中心进行运动;

控制模块,用于根据所述第一运动参数和所述第二运动参数,控制所述虚拟对象运动。

在一种可能的设计中,所述控制模块具体用于:

根据所述控制指令确定所述虚拟对象中的第一运动部位,所述第一运动部位对应的第一类型的第一主骨骼和第一子骨骼均与所述第一关键点链接,以及所述第一运动部位对应的第二类型的骨骼与所述第二关键点链接;

在所述第一运动参数中获取所述第一主骨骼对应的第一主运动参数,和所述第一子骨骼对应的第一子运动参数;

根据所述第一主运动参数控制所述第一主骨骼以所述第一关键点为中心运动,以及根据所述第一子运动参数控制所述第一子骨骼以所述第一关键点为中心运动,以及根据所述第二运动参数控制所述第二类型的骨骼以所述第二关键点为中心点运动。

在一种可能的设计中,所述第一主运动参数指示所述第一主骨骼以第一方式与所述第一关键点链接;

所述第一子运动参数指示所述第一子骨骼以第二方式与所述第一关键点链接;

所述第二运动参数指示所述第二类型的骨骼以第三方式与所述第二关键点链接。

在一种可能的设计中,所述第一方式为查找约束,所述第二方式为位置限制,所述第三方式为位置限制和方向约束。

在一种可能的设计中,所述控制模块还用于:

对所述虚拟对象进行蒙皮操作,其中,所述蒙皮操作的过程中将四元数的重量增加至预设重量,以控制所述第一运动部位的肌肉运动。

在一种可能的设计中,所述第一运动参数还包括所述第一主骨骼和所述第一子骨骼在三维坐标系中的旋转角度。

在一种可能的设计中,所述控制模块还用于:

根据所述第一主运动参数和所述第一子运动参数,在所述虚拟对象的所述第一运动部位添加对应的所述第一主骨骼和所述第一子骨骼。

在一种可能的设计中,所述第一类型的骨骼为骨骨骼,所述第二类型的骨骼为角色表达式CS骨骼。

第三方面,本发明实施例提供一种对象控制设备,包括:

存储器,用于存储程序;

处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。

第四方面,本发明实施例提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。

本发明实施例提供一种对象控制方法及装置,该方法包括:接收针对虚拟对象的控制指令,虚拟对象包括第一类型的骨骼和第二类型的骨骼,第一类型的骨骼为在虚拟对象的部分肌肉部位添加的骨骼,第二类型的骨骼为虚拟对象的基础骨骼。根据控制指令,获取第一类型的骨骼对应的第一运动参数和第二类型的骨骼对应的第二运动参数,其中,第一运动参数用于指示第一类型的骨骼以第一关键点为中心进行运动,第二运动参数用于指示第二类型的骨骼以第二关键点为中心进行运动。根据第一运动参数和第二运动参数,控制虚拟对象运动。通过在虚拟对象中设置第一类型的骨骼,第一类型的骨骼对应有第一运动参数,以及对第二类型的骨骼设置有第二类型参数,其中第一运动参数和第二运动参数可以对第一类型的骨骼和第二类型的骨骼的运动进行约束,进而对虚拟对象的运动进行约束,以避免虚拟对象的运动过程中,虚拟对象的部分部位发生扭曲变形的问题,有效提升虚拟对象的表现真实性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的虚拟对象的形体变形示意图;

图2为本发明实施例提供的设置参数的界面示意图;

图3为本发明其中一实施例提供的对象控制方法的流程图;

图4为本发明实施例提供的CS骨骼的示意图;

图5为本发明实施例提供的对象控制方法的流程图;

图6为本发明实施例提供的创建第一类型的骨骼和第一关键点的示意图;

图7为本发明实施例提供的对齐工具的设置示意图;

图8为本发明实施例提供的手臂结构示意图;

图9为本发明实施例提供的添加第一类型的骨骼的示意图;

图10为本发明实施例提供的查找约束属性的设置示意图;

图11为本发明实施例提供的位置限制属性的设置示意图;

图12为本发明实施例提供的第二关键点的设置示意图;

图13为本发明实施例提供的消除变形的虚拟对象示意图;

图14为本发明实施例提供的虚拟对象的臀部的扭曲示意图;

图15为本发明实施例提供的虚拟对象的臀部的消除扭曲示意图;

图16为本发明实施例提供的对象控制装置的结构示意图;

图17为本发明实施例提供的对象控制设备的硬件结构示意图。

具体实施方式

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

为了便于理解,首先,对本发明所涉及的相关概念进行介绍:

3dsMax:3D Studio Max,常简称为3d Max或3ds MAX,是一款基于个人计算机(Personal Computer,PC)系统的三维动画渲染和制作软件。

bones骨骼:是基于3dsMax自带的骨骼工具创建的骨骼,bones骨骼能够提供正向动力学系统和骨骼缩放限制特性。

CS骨骼:其中角色工作室(character studio,CS)是一个动画角色工具套件,CS骨骼是基于CS创建的骨骼。

下面对本发明所涉及的技术背景进行详细介绍:

现如今对游戏中的虚拟对象的建模和动画表现的要求也越来越高,其中,虚拟对象在运动的过程中会产生动画表现,例如虚拟对象可以进行抬起手臂、抬起大腿等动作,通过一系列的动作虚拟对象可以产生动画表现。

在虚拟对象的运动过程中,虚拟对象可能会发生形体的变形,例如在虚拟对象抬起手臂的运动过程中,虚拟对象的肩部的肌肉可能会发生扭曲变形,从而导致虚拟对象的动画表现不自然。

再例如,可以参照图1理解虚拟对象抬腿动作的过程中形体的变形,图1为本发明实施例提供的虚拟对象的形体变形示意图。

参见图1,当前虚拟对象在进行抬腿动作,其中虚拟对象的大腿肌肉发生了明显的变形,可以参照图1中的101所圈出的部分,从而导致虚拟对象的呈现出不自然的状态。

因此虚拟对象在运动过程中,某些部位扭曲变形会导致虚拟对象缺乏真实性。

现有技术在对虚拟对象的扭曲变形进行处理时,在一种可能的实现方式中,可以在3dsMax中通过设置相关的参数,在一定程度上缓解扭曲变形的效果。

例如,现有技术可以对扭曲变形的肌肉的bones骨骼进行相关参数的设置,以在一定程度上缓解模型的扭曲变形。

下面结合图2对参数的设置进行介绍,图2为本发明实施例提供的设置参数的界面示意图。

图2中示意性的给出了参数的设置面板,通过在设置面板上进行相关的操作,从而实现对参数的调整,参见图2:

例如当前模型运动过程中,模型的肩膀发生变形,则可以对肩膀的肌肉的bones骨骼设置Freeze Length(冻结长度)关闭,即为图2中的201所示意的部分。

其中,Freeze Length开启之后,骨骼将保持其长度。Freeze Length关闭之后,骨骼长度将基于其子骨骼的平移。

以及可以设置stretch(伸展)选项选择Squash(压扁),参见图2,stretch选项可以选择Squash,还可以选择None(不伸展),或者还可以选择Scale(比例)。

参见201,现有技术中的通过stretch选项选择Squash,从而可以控制虚拟对象在运动过程中,模拟肌肉模拟压扁的动作,以提升表现的真实性。

以及还设置Twist poses(扭曲姿势)的Twist(扭曲)设置合适的数值,将设置的Twist的数值进行保存,其中Twist可以指示骨骼的扭转角度,例如参见图2,可以将Twist设置为36,从而可以将发生扭曲的肌肉内部的骨骼进行反方向的扭转,以在一定的程度上缓解虚拟对象所表现出的变形。

通过上述设置参数的实现方式,能够在一定程度上缓解虚拟对象在运动时所表现出的模型扭曲拉扯。

然而,在虚拟对象的动作幅度比较大的时候,虚拟对象还是会表现出扭曲拉扯的状态,因此现有技术的实现方案无法有效解决在虚拟对象的运动过程中,虚拟对象的某些部位会扭曲变形的问题,导致的虚拟对象缺乏真实性问题。

下面结合具体的实施例对本发明提供的对象控制方法进行介绍,首先结合图3进行说明,图3为本发明其中一实施例提供的对象控制方法的流程图,图4为本发明实施例提供的CS骨骼的示意图。

如图3所示,该方法包括:

S301、接收针对虚拟对象对应的控制指令,虚拟对象包括第一类型的骨骼和第二类型的骨骼,第一类型的骨骼为在虚拟对象的部分肌肉部位添加的骨骼,第二类型的骨骼为虚拟对象的基础骨骼。

在本实施例中,虚拟对象例如可以为虚拟的人、虚拟的动物、或者设计的包括四肢的虚拟角色等,本实施例对虚拟对象的具体实现方式不做限制,只要虚拟对象设置有肌肉组织,并且可以进行运动即可。

本实施例中的虚拟对象包括第一类型的骨骼和第二类型的骨骼,其中,第二类型的骨骼为虚拟对象的基础骨骼,在一种可能的实现方式中,第二类型的骨骼可以为CS骨骼,例如图4中示意出了CS骨骼的一种可能的实现方式,其中CS骨骼可以包括完整的人体工学骨骼。

以及本实施例中的第一类型的骨骼为在虚拟对象的部分肌肉部位添加的骨骼,其中,添加的骨骼可以为bones骨骼,在一种可能的实现方式中,添加骨骼的部分部位可以为需要对虚拟对象的扭曲变形进行调节的部位,例如虚拟对象的肩膀会发生变形,则可以在虚拟对象的肩膀的肌肉部位添加第一类型的骨骼,或者虚拟对象的大腿会发生变形,则可以在虚拟对象的大腿的肌肉部位添加第一类型的骨骼。

在本实施例中,第一类型的骨骼和第二类型的骨骼分别都设置有各自的运动参数,用于在虚拟对象运动过程中,避免部分部位发生扭曲和变形。

可以理解的是,第二类型的骨骼是虚拟对象对应的模型本身就自带的模型,若是虚拟对象仅包括第二类型的骨骼,那么无论如何细化蒙皮信息,都无法实现对虚拟对象的外轮廓的姿态的细化,因此本实施例中还在虚拟对象中添加了第一类型的骨骼,以创建约束机制,从而消除虚拟对象运动过程中部分部位的扭曲变形。

以及本实施例中可以接收针对虚拟对象的控制指令,其中控制指令用于控制虚拟对象运动,控制指令例如可以控制虚拟对象抬起手臂,或者控制指令可以控制虚拟对象的腿部抬起等等,本实施例中的控制指令可以控制虚拟对象进行任意的运动,其可以根据实际需求进行选择,本实施例对此不做限定。

在一种可能的实现方式中,可以根据在虚拟对象的控制界面上进行的相关操作,触发控制指令,从而接收到控制指令,例如可以在虚拟对象的控制界面上针对虚拟对象的手臂,发起抬起指令。

或者,还可以通过虚拟对象的控制代码所发出的控制指令,从而接收虚拟对象的控制指令。

S302、根据控制指令,获取第一类型的骨骼对应的第一运动参数和第二类型的骨骼对应的第二运动参数,其中,第一运动参数用于指示第一类型的骨骼以第一关键点为中心进行运动,第二运动参数用于指示第二类型的骨骼以第二关键点为中心进行运动。

本实施例中的控制指令用于指示虚拟对象进行运动,为了避免虚拟对象在运动过程中,部分部位发生扭曲或者变形,则本实施例中的第一类型的骨骼对应有第一运动参数,在一种可能的实现方式中,第一运动参数可以指示在虚拟对象的运动过程中,第一类型的骨骼围绕第一关键点,以第一关键点为中心进行运动,从而避免第一骨骼发生扭曲或者变形。

以及本实施例中的第二类型的骨骼对应有第二运动参数,在一种可能的实现方式中,第二运动参数可以指示在虚拟对象的运动过程中,第二类型的骨骼围绕第二关键点,以第二关键点为中心进行运动,从而避免第二骨骼发生扭曲或者变形。

在一种可能的实现方式中,本实施例中的第一关键点和第二关键点例如可以为创建的point点,其中,第一运动参数例如可以为针对第一关键点和第一类型的骨骼设置的约束参数,第二运动参数例如可以为针对第二关键点和第二类型的骨骼设置的约束参数,其中约束参数例如可以包括如下中的至少一种:位置限制、查找约束、方向约束等,本实施例对第一运动参数和第二运动参数的具体实现方式不做特别限制,只要其可以指示第一类型的骨骼和第二类型的骨骼围绕相应的关键点进行运动即可。

S303、根据第一运动参数和第二运动参数,控制虚拟对象运动。

本实施例中的第一运动参数和第二运动参数可以指示虚拟对象运动过程中,第一类型的骨骼和第二类型的骨骼的运动,基于上述介绍,例如第一运动参数可以指示第一类型的骨骼以第一关键点为中心点进行运动,第二运动参数可以指示第二类型的骨骼以第二关键点为中心进行运动,从而可以控制虚拟对象实现控制指令所指示的运动,在虚拟对象的运动过程中,因为有第一运动参数和第二运动参数的约束,从而可以固定骨骼的运动的相对位置,使得骨骼在运动过程中,以关键点为中心进行运动,而不是随意的进行移动,进而可以避免虚拟对象的部分部位发生扭曲变形的问题。

本发明实施例提供的对象控制方法,包括:接收针对虚拟对象的控制指令,虚拟对象包括第一类型的骨骼和第二类型的骨骼,第一类型的骨骼为在虚拟对象的部分肌肉部位添加的骨骼,第二类型的骨骼为虚拟对象的基础骨骼。根据控制指令,获取第一类型的骨骼对应的第一运动参数和第二类型的骨骼对应的第二运动参数,其中,第一运动参数用于指示第一类型的骨骼以第一关键点为中心进行运动,第二运动参数用于指示第二类型的骨骼以第二关键点为中心进行运动。根据第一运动参数和第二运动参数,控制虚拟对象运动。通过在虚拟对象中设置第一类型的骨骼,第一类型的骨骼对应有第一运动参数,以及对第二类型的骨骼设置有第二类型参数,其中第一运动参数和第二运动参数可以对第一类型的骨骼和第二类型的骨骼的运动进行约束,进而对虚拟对象的运动进行约束,以避免虚拟对象的运动过程中,虚拟对象的部分部位发生扭曲变形的问题,有效提升和虚拟对象的表现真实性。

下面结合一个具体的实施例对本发明提供的对象控制方法进行进一步的详细介绍,图5为本发明实施例提供的对象控制方法的流程图,图6为本发明实施例提供的创建第一类型的骨骼和第一关键点的示意图,图7为本发明实施例提供的对齐工具的设置示意图,图8为本发明实施例提供的手臂结构示意图,图9为本发明实施例提供的添加第一类型的骨骼的示意图,图10为本发明实施例提供的查找约束属性的设置示意图,图11为本发明实施例提供的位置限制属性的设置示意图,图12为本发明实施例提供的第二关键点的设置示意图,图13为本发明实施例提供的消除变形的虚拟对象示意图。

如图5所示,该方法包括:

S501、接收针对虚拟对象对应的控制指令,虚拟对象包括第一类型的骨骼和第二类型的骨骼,第一类型的骨骼为在虚拟对象的部分肌肉部位添加的骨骼,第二类型的骨骼为虚拟对象的基础骨骼。

S502、根据控制指令,获取第一类型的骨骼对应的第一运动参数和第二类型的骨骼对应的第二运动参数,其中,第一运动参数用于指示第一类型的骨骼以第一关键点为中心进行运动,第二运动参数用于指示第二类型的骨骼以第二关键点为中心进行运动。

其中,S501和S501的实现方式与上述S301和S302的实现方式相同,此次不再赘述。

S503、根据控制指令确定虚拟对象中的第一运动部位,第一运动部位对应的第一类型的第一主骨骼和第一子骨骼均与第一关键点链接,以及第一运动部位对应的第二类型的骨骼和第二关键点链接。

本实施例中的控制指令用于指示虚拟对象的第一运动部位进行运动,例如控制指令可以指示虚拟对象的手臂抬起,则第一运动部位就可以为手臂;或者控制指令还可以指示虚拟对象的腿部抬起,则第一运动部位就可以为腿部;再或者控制指令还可以指示虚拟对象进行跑步,则第一运动部位可以有多个,例如可以包括手臂、腿部、脚部等。

其中,无论第一运动部位是一个还是多个,本实施例均会对各个部位进行相同的处理操作。

在本实施例中,第一运动部位可以包括对应的第一类型的第一主骨骼和第一子骨骼,可以理解的是,要使得本实施例中的第一运动部位包括第一主骨骼和第一子骨骼,则需要首先创建第一主骨骼和第一子骨骼,并且将第一主骨骼和第一子骨骼设置在第一运动部位。

则例如可以根据第一主运动参数和第一子运动参数,在虚拟对象的第一运动部位添加对应的第一主骨骼和所述第一子骨骼,下面结合图6-图8对第一主骨骼和第一子骨骼的创建过程和添加过程分别进行介绍。

参见图6,假设当前创建有bone骨骼,其中,bone骨骼包括第一主骨骼601和第一子骨骼602,其中第一主骨骼601用于作为第一运动部位的主要的骨骼,第一子骨骼602用于实现第一主骨骼601和其余部位的链接,以及本实施例中还创建有第一关键点(point点),第一关键点用于指示第一主骨骼和第一子骨骼的运动的中心位置。

在一种可能的实现方式中,第一关键点可以通过对齐工具(Align Selection)对齐到bone骨骼,以实现和bone骨骼的根部的重合,参见图7,可以通过对齐工具,选中X位置、Y位置和Z位置,以实现将第一关键点和bone骨骼对齐。

其中,通过将位置进行对齐,可以使得bone骨骼和point点位于同一个坐标系,避免后续的链接发生错乱。

本实施例中的第一主骨骼和第一关键点链接在一起,以及本实施例中的第一子骨骼也和第一关键点链接在一起,从而可以分别以第一关键点为中心进行运动。

在实现了第一主骨骼和第一子骨骼的创建之后,当前情况下第一主骨骼第一子骨骼与第一运动部位还是分离的,是两个独立的部分,因此还需要将创建的第一主骨骼和第一子骨骼设置给第一运动部位,以实现对第一运动部位运动过程的控制。

以第一运动部位为手臂中的一个部位为例,首先结合图8对手臂的结构进行介绍。

参见图8,手臂上的结构包括尺骨、腕桡骨肌、二头肌和三头肌,假设是要对手臂的上的三头肌的拉扯变形进行消除,则本实施例中的第一运动部位可以包括三头肌,则可以在三头肌上设置bones骨骼,因此虚拟对象的三头肌可以包括第一主骨骼和第一子骨骼。

参见图9,图9中包括第一主骨骼901和第一子骨骼902,其中,第一主骨骼901和第一子骨骼902可以设置在虚拟对象的三头肌的位置,以实现对三头肌的运动的调整,在一种可能的实现方式中,第一主骨骼901和第一子骨骼902可以和CS骨骼中与三头肌相对应的部分链接在一起,以实现将第一主骨骼和第一子骨骼设置在三头肌上。

例如可以将第一主骨骼901链接给大臂的CS骨骼,以及将第一主骨骼901链接的point点链接给小臂的CS骨骼,从而实现第一主骨骼和第一子骨骼的设置,以使得三头肌部位可以包括第一主骨骼和第一子骨骼。

上述介绍的是对三头肌的bones骨骼的设置,对手臂的其余部分,例如二头肌、腕桡骨肌、尺骨等,其设置bones骨骼的实现方式相同。

本实施例中的第一主骨骼和第一关键点链接,以及第一子骨骼也和第一关键点链接。

上述结合图6-图9介绍的是对第一主骨骼和第一子骨骼的设置,以及本实施例中的第一运动部位还包括第二类型的骨骼,其可以为CS骨骼,在一种可能的实现方式中,还可以针对CS骨骼设置有第二关键点,本实施例中的第二类型的骨骼和第二关联点链接。

同样以上述的手臂为例,例如可以在大臂的CS骨骼和小臂的CS骨骼之间架设根point点,其中根point即为第二关键点,并将大臂和小臂的CS骨骼均和根point点链接。

S504、在第一运动参数中获取第一主骨骼对应的第一主运动参数,和第一子骨骼对应的第一子运动参数。

本实施例中的第一运动参数中包括第一主骨骼对应的第一主运动参数,还包括第一子骨骼对应的第一子运动参数。

下面结合图10和图11介绍第一主运动参数和第一子运动参数的设置过程。

在本实施例中,第一主运动参数指示第一主骨骼以第一方式与第一关键点链接,其中,第一方式为查找约束。

则在一种可能的实现方式中,可以选中第一主骨骼,参见图10,通过assigncontroller(分配控制器)设置查找约束(lookat constraint)属性,通过查找约束属性选择链接的目标位置为第一关键点point001,则可以实现将第一主骨骼链接给第一关键点,通过设置查找约束,可以使得第一主骨骼以第一关键点为中心运动。

以及在本实施例中,第一子运动参数指示第一子骨骼以第二方式与第一关键点链接,其中,第二方式为位置限制方式。

则在一种可能的实现方式中,可以选中第一子骨骼,参见图11,通过assigncontroller(分配控制器)设置位置限制(position constraint)属性,通过位置限制属性选择链接的目标位置为第一关键点point001,则可以实现将第一子骨骼链接给第一关键点,通过设置位置限制,可以使得第一子骨骼以第一关键点为中心运动。

本实施例中,针对第一主骨骼和第一子骨骼设置有不同的约束属性,因此可以实现第一主骨骼和第一子骨骼的独立运动,两者互不干扰,并且两者都是以第一关键点为中心进行运动的,可以有效实现对第一类型的骨骼的运动控制。

以及,本实施例中还可以针对第二类型的骨骼设置有第二关键点,并将第二类型的骨骼和第二关键点进行链接。

参见图12,可以在在大臂与小臂之间架设第二关键点(point点),即为图12中设置的1201,以及通过assign controller(分配控制器)设置位置限制(position constraint)属性给小臂的CS骨骼,以及可以设置方向约束(orientation constraint)属性给大臂和小臂的CS骨骼,其中的位置限制属性和方向约束属性即为第二运动参数。

通过在针对CS骨骼增加第二关键点,并且设置位置限制属性和方向约束属性,可以避免虚拟对象运动过程中,附加的第一类型的骨骼出现偏差,提升处理的稳定性。

S505、根据第一主运动参数控制第一主骨骼以第一关键点为中心运动,以及根据第一子运动参数控制第一子骨骼以第一关键点为中心运动,以及根据第二运动参数控制第二类型的骨骼以第二关键点为中心点运动。

在本实施例中,第一主运动参数可以指示第一主骨骼以第一关键点为中心进行运动,以及第一子运动参数可以指示第一子骨骼以第一关键点为中心进行运动,从而可以对第一类型的骨骼的运动加以限制。

在本实施例中,第一类型的骨骼可以和第一运动部位对应的第二类型的骨骼链接在一起,从而可以将第一类型的骨骼的运动参数所指示的运动,附加给第二类型的骨骼,以实现对第二类型的骨骼的运动的约束。

同时,本实施例中针对第二类型的骨骼还设置有第二运动参数,第二运动参数用于指示第二类型的骨骼以第二关键点为中心点进行运动,从而可以有效保证消除虚拟对象的部分部位扭曲变形的处理的稳定性,保证了虚拟对象在运动过程中不会发生扭曲变形。

参见图13,和图1对比来看,图13中的虚拟对象在执行抬腿动作时,大腿根部的肌肉并没有发生扭曲变形,而是呈现出了自然的状态。

本发明实施例提供的对象控制方法,通过分配控制器对第一类型的骨骼进行位置限制和查找约束的属性的设置,并且将第一类型的骨骼设置在第一运动部位,从而可以实现对第一运动部位的运动加以约束,以实现了对第一运动部位的扭曲变形的消除,同时通过对第二类型的骨骼设置方向约束属性,以保证了对虚拟对象的扭曲变形的消除的稳定性,以保证虚拟对象的动画具有更强的表现力。

在上述实施例的基础上,还可以通过蒙皮操作修复失效的模型点。

在上述实施例的基础上,若第一运动部位为第一预设部位,则可以通过四元数控制第一预设部位的肌肉运动,其中四元数的重量可以影响部位的圆滑程度,其中第一预设部位可以为强圆度部位,例如可以为臀部等,则在一种可能的实现方式中,可以在蒙皮过程中增加四元数的重量,以提升强圆度部位的圆滑程度,从而避免在诸如臀部等强圆度部位和前部扭曲过大的情况下压扁。

例如参照图14和图15,图14为本发明实施例提供的虚拟对象的臀部的扭曲示意图,图15为本发明实施例提供的虚拟对象的臀部的消除扭曲示意图。

参见图14,在虚拟对象运动过程中,臀部发生了一定程度压扁,表现出了不自然的状态。

通过本发明提供的方法处理之后,可以参照图15,臀部的表现消除了被压扁变形的状态,表现的状态更加的细腻和自然。

在上述实施例的基础上,本发明实施例提供的方法,若第一运动部位为第二预设部位;第二运动参数还包括第一骨骼和第二骨骼在三维坐标系中的旋转角度。

其中第二预设部位例如可以为小腿部位,则可以通过浮点表达式的方式指示第一骨骼和第二骨骼的旋转角度。

其中,浮点表达式例如可以为:

[6.03798,-4.72976,32.7688],其中,第一个数值指示的是X轴的旋转角度,第二个数值指示的是Y轴的旋转角度,第三个数值指示的是Z轴的旋转角度。

通过指示旋转角度,使得第二预设部位根据旋转角度在对应的方向上进行旋转,从而可以避免第二预设部位表现出扭曲变形等状态。

图16为本发明实施例提供的对象控制装置的结构示意图。如图16所示,该装置160包括:接收模块1601、获取模块1602以及控制模块1603。

接收模块1601,用于接收针对虚拟对象的控制指令,所述虚拟对象包括第一类型的骨骼和第二类型的骨骼,所述第一类型的骨骼为在所述虚拟对象的部分肌肉部位添加的骨骼,所述第二类型的骨骼为所述虚拟对象的基础骨骼;

获取模块1602,用于根据所述控制指令,获取所述第一类型的骨骼对应的第一运动参数和所述第二类型的骨骼对应的第二运动参数,其中,所述第一运动参数用于指示所述第一类型的骨骼以第一关键点为中心进行运动,所述第二运动参数用于指示所述第二类型的骨骼以第二关键点为中心进行运动;

控制模块1603,用于根据所述第一运动参数和所述第二运动参数,控制所述虚拟对象运动。

在一种可能的设计中,所述控制模块1603具体用于:

根据所述控制指令确定所述虚拟对象中的第一运动部位,所述第一运动部位对应的第一类型的第一主骨骼和第一子骨骼均与所述第一关键点链接,以及所述第一运动部位对应的第二类型的骨骼与所述第二关键点链接;

在所述第一运动参数中获取所述第一主骨骼对应的第一主运动参数,和所述第一子骨骼对应的第一子运动参数;

根据所述第一主运动参数控制所述第一主骨骼以所述第一关键点为中心运动,以及根据所述第一子运动参数控制所述第一子骨骼以所述第一关键点为中心运动,以及根据所述第二运动参数控制所述第二类型的骨骼以所述第二关键点为中心点运动。

在一种可能的设计中,所述第一主运动参数指示所述第一主骨骼以第一方式与所述第一关键点链接;

所述第一子运动参数指示所述第一子骨骼以第二方式与所述第一关键点链接;

所述第二运动参数指示所述第二类型的骨骼以第三方式与所述第二关键点链接。

在一种可能的设计中,所述第一方式为查找约束,所述第二方式为位置限制,所述第三方式为位置限制和方向约束。

在一种可能的设计中,所述控制模块1603还用于:

对所述虚拟对象进行蒙皮操作,其中,所述蒙皮操作的过程中将四元数的重量增加至预设重量,以控制所述第一运动部位的肌肉运动。

在一种可能的设计中,所述第一运动参数还包括所述第一主骨骼和所述第一子骨骼在三维坐标系中的旋转角度。

在一种可能的设计中,所述控制模块1603还用于:

根据所述第一主运动参数和所述第一子运动参数,在所述虚拟对象的所述第一运动部位添加对应的所述第一主骨骼和所述第一子骨骼。

在一种可能的设计中,所述第一类型的骨骼为骨骨骼,所述第二类型的骨骼为角色表达式CS骨骼。

本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。

图17为本发明实施例提供的对象控制设备的硬件结构示意图,如图17所示,本实施例的对象控制设备170包括:处理器1701以及存储器1702;其中

存储器1702,用于存储计算机执行指令;

处理器1701,用于执行存储器存储的计算机执行指令,以实现上述实施例中对象控制方法所执行的各个步骤。具体可以参见前述方法实施例中的相关描述。

可选地,存储器1702既可以是独立的,也可以跟处理器1701集成在一起。

当存储器1702独立设置时,该对象控制设备还包括总线1703,用于连接所述存储器1702和处理器1701。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上对象控制设备所执行的对象控制方法。

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

上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。

应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。

总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本发明附图中的总线并不限定仅有一根总线或一种类型的总线。

上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

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

技术分类

06120112176701