CN112891954A - 虚拟对象的模拟方法、装置、存储介质及计算机设备 - Google Patents

虚拟对象的模拟方法、装置、存储介质及计算机设备 Download PDF

Info

Publication number
CN112891954A
CN112891954A CN202110144059.8A CN202110144059A CN112891954A CN 112891954 A CN112891954 A CN 112891954A CN 202110144059 A CN202110144059 A CN 202110144059A CN 112891954 A CN112891954 A CN 112891954A
Authority
CN
China
Prior art keywords
constraint
rigid body
coordinate system
rigid
determining
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.)
Granted
Application number
CN202110144059.8A
Other languages
English (en)
Other versions
CN112891954B (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.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network 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 Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202110144059.8A priority Critical patent/CN112891954B/zh
Publication of CN112891954A publication Critical patent/CN112891954A/zh
Application granted granted Critical
Publication of CN112891954B publication Critical patent/CN112891954B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/825Fostering virtual characters
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6607Methods for processing data by generating or executing the game program for rendering three dimensional images for animating game characters, e.g. skeleton kinematics

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请实施例公开了一种虚拟对象的模拟方法、装置、存储介质及计算机设备。该方法包括:获取虚拟对象的骨骼模型和网格体信息,根据骨骼模型中的骨骼信息和网格体信息生成虚拟对象对应的多个刚体以及刚体之间的约束的第一约束参数,并根据刚体、骨骼信息和第一约束参数生成约束的第二约束参数,根据刚体、约束来对虚拟对象进行模拟,如此,自动根据骨骼模型生成对应的刚体和刚体之间的约束的约束参数,提高生成刚体和对应的约束参数的效率,避免美术技术人员一个一个的调整约束的约束参数;降低了美术技术人员的工作难度,提高了参数调整的效率,节约了大量的时间成本和人工成本;提高了基于物理模拟的头发、衣服、布料等虚拟对象的开发效率。

Description

虚拟对象的模拟方法、装置、存储介质及计算机设备
技术领域
本申请涉及计算机技术领域,尤其涉及游戏技术领域,具体涉及一种虚拟对象的模拟方法、装置、存储介质及计算机设备。
背景技术
随着游戏主机硬件和游戏技术的发展,具有飘动效果的头发、衣服、布料等游戏画面成为次世代游戏标配。基于物理模拟的头发、衣服、布料实现是常见的做法。
常见的物理模拟做法可以细分为基于刚体模拟,和基于质点-弹簧系统的模拟。相比弹簧-质点模型,基于刚体模拟的头发、布料的实现具有效率高、效果可控灵活、效果通用性好等优点。但是基于刚体模拟的物理模拟涉及的参数较多,且各个参数互相依赖影响,如单个约束的参数多达几十个,而一个角色会有几十个约束。参数的调整偶尔还会出现差之毫厘,谬以千里的情况。通常情况下,这些参数靠美术技术人员根据具体场景的不同手动调整,但由于涉及的参数众多,且非常复杂,美术技术人员需要非常多的精力来调整,降低了物理模拟的开发效率,且增加了时间成本和人工成本。
发明内容
本申请实施例提供一种虚拟对象的模拟方法、装置、存储介质及计算机设备,可以提高游戏中基于物理模拟的头发、衣服、布料等虚拟物体的开发效率。
本申请实施例提供了一种虚拟对象的模拟方法,包括:
获取虚拟对象的骨骼模型和网格体信息,所述骨骼模型中包括虚拟对象的骨骼信息;
根据骨骼信息和网格体信息生成虚拟对象对应的多个刚体,以及刚体之间的约束的第一约束参数,其中,所述第一约束参数用于确定约束的方位参数;
根据刚体、骨骼信息和第一约束参数生成约束的第二约束参数,其中,所述第二预设参数用于确定所述刚体的移动参数;
根据刚体、以及包括第一约束参数和第二约束参数的约束对虚拟对象进行模拟。
本申请实施例还提供一种虚拟对象的模拟装置,包括:
获取模块,用于获取虚拟对象的骨骼模型和网格体信息,所述骨骼模型中包括虚拟对象的骨骼信息;
第一生成模块,用于根据骨骼信息和网格体信息生成虚拟对象对应的多个刚体,以及刚体之间的约束的第一约束参数,其中,所述第一约束参数用于确定约束的方位参数;
第二生成模块,用于根据刚体、骨骼信息和第一约束参数生成约束的第二约束参数,其中,所述第二约束参数用于确定所述刚体的移动参数;
模拟模块,用于根据刚体、以及包括第一约束参数和第二约束参数的约束对虚拟对象进行模拟。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如上任一实施例所述的虚拟对象的模拟方法中的步骤。
本申请实施例还提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如上任一实施例所述的虚拟对象的模拟方法中的步骤。
本申请实施例提供的虚拟对象的模拟方法、装置、存储介质及计算机设备,通过获取虚拟对象的骨骼模型和网格体信息,根据骨骼模型中的骨骼信息和网格体信息生成虚拟对象对应的多个刚体以及刚体之间的约束的第一约束参数,并根据刚体、骨骼信息和第一约束参数生成约束的第二约束参数,如此,自动根据骨骼模型生成对应的刚体和刚体之间的约束的约束参数(包括第一约束参数和第二约束参数),提高生成刚体和对应的约束参数的效率,避免美术技术人员一个一个的调整刚体,以及一个一个的调整约束的约束参数;且在生成刚体的过程中,根据网格体信息和骨骼信息来生成,考虑了生成的刚体与对应骨骼的关系,使得生成的刚体符合美术技术人员要求的刚体与骨骼之间的关系,降低了美术技术人员的工作难度;由于生成的刚体符合对应的要求,因此,生成刚体之间的约束的第一约束参数的也能更好的符合对应的要求;根据刚体、骨骼信息和第一约束参数生成的第二约束参数,也能更好的符合对应的要求,降低了美术技术人员的工作难度,提高了参数调整的效率,节约了大量的时间成本和人工成本;得到包括第一约束参数和第二约束参数的约束后,根据刚体、约束来对虚拟对象进行模拟,提高了基于物理模拟的头发、衣服、布料等虚拟对象的开发效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的虚拟对象的模拟方法的流程示意图。
图2a为本申请实施例提供的链状结构的骨骼示意图。
图2b为本申请实施例提供的链状结构的刚体和约束位置示意图。
图3a为本申请实施例提供的环状结构的骨骼示意图。
图3b为本申请实施例提供的环状结构的刚体和约束位置示意图。
图4a为本申请实施例提供的片状结构的骨骼示意图。
图4b为本申请实施例提供的片状结构的刚体和约束位置示意图。
图5a为本申请实施例提供的环状结构的骨骼示意图。
图5b本申请实施例提供的环状结构的刚体和约束位置示意图。
图6为本申请实施例提供的刚体坐标系与约束坐标系的示意图。
图7为本申请实施例提供的虚拟对象的模拟方法的另一流程示意图。
图8为本申请实施例提供的虚拟对象的模拟装置的结构示意图。
图9为本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种虚拟对象的模拟方法、装置、存储介质及计算机设备。具体地,本申请实施例的虚拟对象的模拟方法可以由计算机设备执行,该虚拟对象的模拟装置可以集成在计算机设备中。其中,该计算机设备可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,Personal Computer)、个人数字助理(Personal DigitalAssistant,PDA)等终端设备,还可以是服务器设备。
该虚拟对象的模拟方法运行于计算机设备中,计算机设备存储有对虚拟对象进行模拟的应用程序并用于呈现在虚拟对象模拟过程中出现的骨骼模型、所生成的刚体、约束等的虚拟场景,以及模拟的虚拟对象的虚拟场景,或者虚拟对象所在的开发场景等。计算机设备用于通过图形用户界面与用户进行交互,如将图形用户界面渲染显示在计算机设备的显示屏上。例如,计算机设备可以包括触控显示屏和处理器,该触控显示屏用于呈现图形用户界面以及接收用户作用于图形用户界面产生的操作指令,该图形用户界面包括虚拟对象模拟过程中产生的各种虚拟场景,该处理器用于运行该对虚拟对象进行模拟的应用程序、生成图形用户界面、响应操作指令以及控制图形用户界面在触控显示屏上的显示。
需要注意的是,本申请实施例中的虚拟对象包括在游戏场景通过骨骼模型来实现的多种虚拟对象,如人物角色对象、动物对象、武器对象等等。利用本申请实施例中的方法,可自动生成虚拟对象的刚体以及对应的约束,提高生成刚体和对应的约束的效率,再根据刚体和对应的约束来实现对虚拟对象的模拟,提高基于物理模拟的虚拟对象的开发效率。尤其是柔体虚拟对象,如头发、布料、衣服等,效果尤为明显。这是因为美术技术人员在对柔体对象进行模拟时,非常复杂,利用本申请实施例中的方法,可大幅减少美术技术人员的工作量,提高生成刚体和对应的约束的效率,进一步提高柔体对象的模拟效率,以模拟出柔体对象的飘动效果。
本申请实施例中以虚拟对象为柔体对象为例进行说明。
以下将分别对本申请实施例提供的一种虚拟对象的模拟方法、装置、存储介质及计算机设备进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。
图1为本申请实施例中提供的虚拟对象的模拟方法的流程示意图,该虚拟对象的模拟方法运行于计算机设备中,该虚拟对象的模拟方法包括如下步骤。
101,获取虚拟对象的骨骼模型和网格体信息,所述骨骼模型中包括虚拟对象的骨骼信息。
其中,可使用骨骼动画的方式制作虚拟对象。根据待制作的对象的走向,布局骨骼,以得到骨骼模型,根据网格体信息(下文中将会介绍)对骨骼模型中的骨骼进行蒙皮,以得到虚拟对象。可获取预先存在的虚拟对象的骨骼模型和网格体信息。
其中,骨骼模型中包括虚拟对象的骨骼信息,骨骼信息包括组成虚拟对象的骨骼模型中的每根骨骼的骨骼信息以及各骨骼之间的拓扑结构等。
骨骼之间的拓扑结构包括骨骼之间的父子关系、兄弟关系等,如人物角色对象中,躯干对应的骨骼包括躯干→右肩→右肘→右手→右拇指、右食指、右中指、右无名指、右小指等;躯干→左肩→左肘→左手→左拇指、左食指、左中指、左无名指、左小指等。其中,躯干→右肩→右肘→右手→右拇指,躯干→左肩→左肘→左手→左拇指等之间的上下层级关系为父子关系。如躯干与右肩、左肩的关系为父子关系,右手与右拇指、右食指、右中指、右无名指、右小指的关系为父子关系,等等。其中,右肩与左肩,右肘与左肘,右手与左手,右拇指、右食指、右中指、右无名指与右小指,左拇指、左食指、左中指、左无名指与左小指等同层级之间的关系为兄弟关系。
每根骨骼的骨骼信息包括骨骼长度、骨骼位置、骨骼坐标系等。其中,每根骨骼的骨骼坐标系均为局部坐标系,该局部坐标系的原点可通过坐标转换,转换到世界坐标系的对应点。在一些情况下,骨骼坐标系的原点即为骨骼位置对应的位置点,如此,以减少骨骼信息的存储量和骨骼信息对应的参数数量。在一些情况下,骨骼坐标系的原点与骨骼位置对应的位置点并不相同。
需要注意的是,本申请实施例的坐标系中,除了包括坐标系的原点之外,还包括坐标系的各坐标轴方向的信息,也可称为坐标系的各坐标轴朝向。无论是骨骼坐标系、刚体坐标系,还是约束坐标系都是如此。
将三维网格顶点联系至骨骼的过程,称为蒙皮,三维网格顶点形成对应的网格体,即俗称的mesh,网格体中包括多个三维网格顶点。网格体信息包括多个三维网格顶点信息。需要说明的是,网格体信息中还可包括其他更多的信息。
如图2a所示,类似丝带状的虚拟物体表示网格体11,箭头表示骨骼12,箭头的方系表示骨骼12的走向。在图2a中,示例出两根骨骼,分别为骨骼121和骨骼122,该两根骨骼为父子关系。
如图3a所示,类似项链状的环状虚拟物体表示网格体21,箭头表示骨骼22,箭头的方向表示骨骼22的走向。在图3a中,示例出三根骨骼,分别为骨骼221、骨骼222、骨骼223,其中,骨骼221和骨骼222为父子关系,骨骼222与骨骼223为父子关系。
如图4a所示,类似头发的虚拟物体表示网格体31,箭头表示骨骼32,箭头的方向表示骨骼32的走向。在图3a中,示例出两根骨骼,分别为骨骼321和骨骼322,该两根骨骼为父子关系。
如图5a所示,类似裙子的虚拟物体表示网格体41,箭头表示骨骼42,箭头的方向表示骨骼42的走向。在图5a中,示例出四根骨骼,其中,骨骼421与骨骼422为父子关系,骨骼423与骨骼424为父子关系,骨骼421与骨骼423为兄弟关系,骨骼422与骨骼424也为兄弟关系。
需要注意的是,网格体11、网格体21、网格体31、网格体41只是示例说明,网格体还包括相应的纹理、颜色、网格等特征,图中并未示出。
102,根据骨骼信息和网格体信息生成虚拟对象对应的多个刚体,以及刚体之间的约束的第一约束参数,其中,第一约束参数用于确定约束的方位参数。
其中,刚体是物理模拟中的对象,其形状和大小不会更改。骨骼信息中的每根骨骼可对应一个刚体,也可以多根骨骼对应一个刚体,还可以一根骨骼对应多个刚体。可以使用约束连接场景中的多个刚体。即约束可以将两个刚体连接在一起,通过约束可限制刚体在物理模拟中的移动。
其中,第一约束参数用于确定约束的方位参数。第一约束参数包括约束位置和约束坐标系。约束坐标系为局部坐标系,每个约束对应一个约束坐标系。在一些情况下,约束坐标系的原点即为约束位置对应的位置点,在一些情况下,约束坐标系的原点与约束位置对应的位置点并不相同。
在一情况下,步骤102,包括:根据骨骼信息和网格体信息生成虚拟对象对应的多个刚体;调整刚体,使得刚体与骨骼信息中对应的骨骼的相对位置保持不变;根据调整后的刚体和刚体对应的骨骼信息确定刚体之间的约束的第一约束参数。其中,刚体与骨骼信息中对应的骨骼的相对位置保持不变,指的是所有刚体中的每个刚体和对应的骨骼的相对位置保持不变,即使得刚体和对应的骨骼保持一致。将刚体和对应的骨骼保持一致,使得一开始的刚体模拟结果与骨骼模型中的骨骼形状一致,降低了美术技术人员的工作难度。
在一实施例中,所述根据骨骼信息和网格体信息生成虚拟对象对应的多个刚体的步骤,包括:根据骨骼信息和网格体信息确定虚拟对象对应的多个刚体的刚体参数;根据刚体参数生成虚拟对象对应的多个刚体。
在一情况下,步骤102,包括:根据骨骼信息和网格体信息确定虚拟对象对应的多个刚体的刚体参数;根据刚体参数生成虚拟对象对应的多个刚体;调整刚体参数,使得刚体与骨骼信息中对应的骨骼的相对位置保持不变;根据调整后的刚体和刚体对应的骨骼信息确定刚体之间的约束的第一约束参数。
其中,刚体参数包括刚体位置、刚体坐标系、刚体尺寸和刚体形状等。在一些情况下,刚体坐标系的原点即为刚体位置对应的位置点,在一些情况下,刚体坐标系的原点与刚体位置对应的位置点并不相同。刚体坐标系为局部坐标系,每个刚体对应一个刚体坐标系。
刚体形状按需要可分为胶囊体(Capsule)形状、长方体(Box)形状等。如图2b所示,刚体12的形状为胶囊体形状;如图3b所示,刚体23的形状也为胶囊体形状;如图4b所示,刚体33的形状为长方体形状;如图5b所示,刚体43的形状为长方体形状。
当刚体形状为胶囊体形状时,刚体尺寸包括刚体半径和刚体长度;当刚体形状为长方体形状时,刚体尺寸包括刚体厚度和刚体长度等。
其中,根据骨骼信息和网格体信息确定虚拟对象对应的多个刚体的刚体参数的步骤,包括:根据骨骼信息中的骨骼位置和骨骼坐标系分别确定骨骼所对应的刚体的刚体位置和刚体坐标系;根据网格体信息中的网格体顶点和骨骼信息中的骨骼尺寸确定骨骼所对应的刚体的刚体尺寸。
在一实施例中,可将骨骼信息中的骨骼位置作为骨骼所对应的刚体的刚体位置。例如,将每根骨骼的中心点/质心作为该骨骼的骨骼位置,如此,可将骨骼的中心点/质心作为所对应的刚体的刚体位置。在其他一些实施例中,还可以将骨骼的非中心点/非质心所在的位置作为对应的刚体的刚体位置;或者将刚体的重心/质心作为对应的刚体位置。
确定了刚体的刚体位置后,确定刚体的刚体坐标系。刚体坐标系的原点可以与刚体位置相同,也可以不同。若不同,则将对应骨骼的任意一其他位置作为刚体坐标系的原点。确定了刚体坐标系的原点之后,确定刚体坐标系的各坐标轴方向。刚体的走向与骨骼走向一般情况下设置为相同,如此,可根据骨骼的骨骼坐标系各坐标轴方向确定对应刚体的刚体坐标系各坐标轴方向,如将刚体坐标系各坐标轴方向设置为与对应的骨骼的骨骼坐标系各坐标轴方向相同。在一些情况下,刚体坐标系各坐标轴方向也可设置为与对应的骨骼的骨骼坐标系各坐标轴方向不同,但需尽可能贴合骨骼的走向。
在本申请实施例中,刚体坐标系各坐标轴方向与对应的骨骼的骨骼坐标系各坐标轴方向相同,刚体位置根据刚体的重心/质心决定。
刚体的局部结构可根据骨骼模型中的骨骼的结构类型来确定。具体地,获取骨骼模型中的骨骼的结构类型;根据结构类型确定刚体的布局结构。其中,可以理解地,骨骼的结构类型可描述骨骼走向,影响刚体的布局结构。刚体的布局结构与骨骼模型中的骨骼的结构类型一致。
其中,骨骼的结构类型包括链状结构、片状结构、环状结构和网状结构。如图2a所示,骨骼的结构类型为链状结构;如图3a所示,骨骼的结构类型为环状结构;如图4a所示,骨骼的结构类型为片状结构;如图5a所示,骨骼的结构类型为网状结构。
其中,骨骼尺寸包括骨骼长度,根据网格体信息中的网格体顶点和骨骼信息中的骨骼尺寸确定骨骼所对应的刚体的刚体尺寸的步骤,包括:根据网格体信息中的网格体顶点确定骨骼所对应的刚体的刚体厚度或者刚体半径;根据骨骼信息中的骨骼长度确定刚体的刚体长度。
可以理解地,刚体需要将对应的网格体包住,以避免穿插。因此,根据网格体信息确定骨骼对应的刚体的刚体厚度或者刚体半径。具体地,根据网格体信息确定骨骼对应的刚体的刚体厚度或者刚体半径的步骤,包括:确定骨骼信息中的每根骨骼所对应的网格体区域;根据网格体区域确定刚体形状;遍历网格体区域中的所有顶点,并确定离每根骨骼距离最大的目标顶点到该骨骼的目标距离;根据目标距离确定该骨骼所对应的刚体的刚体厚度或者刚体半径。
其中,每根骨骼所对应的网格体区域可理解为每根骨骼所影响的网格体区域。根据网格体区域确定刚体形状,可以理解地,刚体形状要能够包括所影响的网格体区域,尽量贴合网格体(mesh)的形状。如网格体区域是个大概圆形区域,则确定刚体形状为胶囊体或者其他合适的形状;如网格体区域是个大概长方形的区域,则确定刚体形状为长方体形状。具体地,遍历网格体区域中的所有顶点,根据所有顶点所对应的位置来确定网格体区域。
遍历网格体区域中的所有顶点,并确定出目标距离,其中,目标距离为网格体区域中的顶点中距离刚体中心线的距离中最大的一个距离。确定目标距离后,根据目标距离设置刚体的刚体厚度或者刚体半径。若刚体结构为胶囊体形状,则根据目标距离设置刚体半径;若刚体结构为长方体形状,则根据目标距离设置刚体厚度。其中,可将刚体半径或者刚体厚度设置为等于目标距离,或者大于目标距离的任意一个数值,如可设置刚体半径或者刚体厚度在[目标距离,2*目标距离]中的任意一个值。
接着可确定刚体长度。其中,根据骨骼信息中的骨骼长度确定刚体的刚体长度。例如,将刚体长度设置为对应的骨骼长度,以便于更好的使用刚体来驱动对应的骨骼。
在一些情况下,也可以实现一个刚体对应多跟骨骼,或者多个刚体对应一个骨骼,在这些情况下,还是根据骨骼长度确定刚体长度。
图2b中示例了两个刚体131和132,其中,骨骼121对应刚体131,骨骼122对应刚体132。图3b中示例了三个刚体,其中,骨骼221对应刚体231,骨骼222对应刚体232,骨骼223对应刚体233。从图2b和图3b可以看出,骨骼对应的刚体的刚体形状为胶囊体形状,刚体包住了骨骼所能影响的所有的网格体区域,刚体的长度与骨骼的长度一致。例如图2b中,骨骼12为链状结构,对应的刚体13的刚体形状为胶囊体形状;刚体131和刚体132包住了骨骼121和骨骼122所能影响的所有的网格体区域;刚体131的长度与骨骼121的长度一致,刚体132的长度与骨骼122的长度一致。
图4b中示例了两个刚体331和332,其中,骨骼321对应刚体331,骨骼322对应刚体332。图5b中示例了四个刚体,结合图5a来看,其中,骨骼421对应刚体431,骨骼422对应刚体432,骨骼423对应刚体433,骨骼424对应刚体434。从图4b和图5b可以看出,骨骼对应的刚体的刚体形状为长方体形状,刚体包住了骨骼所能影响的所有的网格体区域,刚体的长度与骨骼的长度一致。
其中,对于柔体对象来说,环状结构典型的例子包括项链,特点是两端固定,中间自由运动,固定组件和活动组件形成一个环。和链状结构不同,环状结构的刚体一般需要从两个固定点开始,向中间生成。片状结构典型的例子包括披肩发,多绺头发一起组成片状,一端固定,另一端自由运动,多绺头发长度可能有差别,但方向大体平行。刚体的生成与链状类似。因为片状的宽度和厚度有可能差别很大,可以根据具体的场景选择胶囊体形状或者更扁的长方体形状。网状结构典型的例子包括莲蓬裙,筒裙等。特点是结构复杂,多点固定,多点自由,刚体按照统一的朝向沿骨骼生成。
其中,链状结构的骨骼所对应的刚体中,有一端部分刚体,如项链戴在脖子上的部分,由外部因素决定其最终位置和朝向,比如受动画驱动或者外部冲量作用;其他部分的刚体,根据物理性质和约束特点,经物理引擎模拟决定其最终的位置和朝向。其中,物理性质主要指的是刚体的特点,比如每一节刚体的重量、尺寸、接触面的摩擦系数等;约束特点包括约束的软硬、约束恢复的阻尼等。设置这些参数后,可以交由物理引擎模拟。
需要注意的是,为了避免刚体在模拟中的互相穿插,或者因为模拟误差造成刚体间“脱节”过大问题,刚体为胶囊体形状时,设置将胶囊体两端的半球状部分相重叠,并取消有约束的刚体间的碰撞。如图2b和图3b所示,胶囊体两端的半球状部分相重叠,以避免刚体在模拟中的相互穿插。
至此,根据骨骼信息和网格体信息自动确定了虚拟对象对应的多个刚体的刚体参数。其中,自动确定刚体参数,相对于美术技术人员来手动修改对应的参数来说,效率更高,且稳定性也更高。
确定了虚拟对象的多个刚体的刚体参数后,根据刚体参数来生成虚拟对象对应的多个刚体,自动根据刚体参数来生成对应的多个刚体,每根骨骼对应一个刚体,提高刚体生成的效率。
生成刚体之后,可调整刚体参数,以使得刚体与骨骼信息中对应的骨骼的相对位置保持不变。需要说明的是,这里可不考虑刚体坐标系和对应的骨骼坐标系的对应关系,仅考虑刚体位置与骨骼位置的相对位置关系;当然也可以两者都考虑,即刚体位置与骨骼位置的相对位置保持不变,同时刚体坐标系朝向与骨骼坐标系的朝向也保持不变。
调整刚体参数,使得刚体和对应的骨骼保持一个相对位置不变,即使得刚体和对应的骨骼保持一致。可以理解地,一般骨骼模型制作好之后,骨骼的位置是确定的,而且这个位置一般是一个较正常且美观的位置。但是给骨骼绑定好刚体和约束后,骨骼受刚体和约束驱动,则骨骼的最终位置为物理引擎模拟的结果。如果物理引擎模拟的结果和骨骼模型原始的形状差别很大的话,后期靠美术技术人员调整,想让物理模拟的结果与模型原来形状吻合需要耗费很多时间。但是通过自动化方法,将刚体一开始就将刚体模拟结果设置与骨骼模型中的骨骼原始形状相吻合,美术技术人员以骨骼模型中的骨骼原始形状为基准,进行物理参数调整则相对容易,大大降低了美术技术人员的工作难度。
在调整刚体参数后,根据调整后的刚体和刚体对应的骨骼信息确定刚体之间的约束的第一约束参数。
其中,根据调整后的刚体和刚体对应的骨骼信息确定刚体之间的约束的第一约束参数的步骤,包括:根据调整后的刚体的刚体位置和刚体对应在骨骼信息中的层级关系确定刚体之间的约束的约束位置;根据刚体的刚体坐标系确定约束的约束坐标系;将约束位置和约束坐标系作为刚体之间的约束的第一约束参数。
其中,根据所生成刚体对应在骨骼信息中的层级关系确定刚体之间是否需生成约束,若需生成约束,则根据刚体的刚体位置确定需生成约束的约束位置。其中,层级关系包括父子关系和兄弟关系。具体地,根据所生成的刚体的刚体位置和刚体对应在骨骼信息中的层级关系确定刚体之间的约束的约束位置的步骤,包括:获取骨骼模型中骨骼的结构类型;若结构类型包括链状结构或者片状结构或者环状结构,则确定层级关系对应为父子关系的刚体之间需生成约束;若结构类型包括网状结构,则确定层级关系为父子关系和兄弟关系的刚体之间需生成约束;根据刚体的刚体位置确定需生成约束的约束位置。
可以理解地,链状结构、片状结构、环状结构所对应的骨骼,只需将层级关系为父子关系的刚体之间设置约束,以来模拟父子关系的刚体之间的运动;根据刚体驱动对应骨骼的运动,骨骼来驱动骨骼模型,以达到对相应虚拟对象的模拟。网状结构所对应的骨骼,除了层级关系为父子关系的刚体之间需要设置约束外,还需要将层级关系为兄弟关系的刚体之间设置约束,以根据兄弟关系的刚体之间设置的约束,父子关系的刚体之间设置的约束,将对应的刚体连接成网状,如此,以达到对相应虚拟对象的模拟。
确定需生成约束后,根据刚体的刚体位置确定需生成约束的约束位置。在一实施例中,根据刚体的刚体位置确定需生成约束的约束位置的步骤,包括:根据刚体的刚体位置确定需生成约束的两个刚体之间的目标位置;将目标位置确定为两个刚体之间的需生成约束的约束位置。
可将两个刚体的刚体位置之间的任一一个位置作为目标位置,目标位置可以位于两个刚体中。为了便于计算和理解,将两个刚体的刚体位置的中间位置(即正中间位置)作为目标位置。
如图2b所示,骨骼的结构类型为链状结构,骨骼121与骨骼122的层级关系为父子关系,因此,对应在骨骼信息中的层级关系为父子关系的刚体131与刚体132之间需建立约束。该约束的约束位置14为刚体131与刚体132的中间位置,即两个刚体之间的箭头所指的位置。
如图3b所示,骨骼的结构类型为环状结构,骨骼221与骨骼222的层级关系、骨骼223与骨骼223的层级关系都为父子关系,因此,对应骨骼信息中的层级关系为父子关系的刚体231与刚体232之间、刚体232与刚体233之间需建立约束,需确定需要建立的两个约束的约束位置24。其中,刚体231与刚体232之间的约束的约束位置241为刚体231与刚体232的中间位置,刚体232与刚体233之间的约束的约束位置为刚体232与刚体233的中间位置。
如图4b所示,骨骼的结构类型为片状结构,骨骼321与骨骼322的层级关系为父子关系,因此,对应骨骼信息中的层级关系为父子关系的刚体331与刚体332之间需建立约束。刚体331与刚体332之间的约束的约束位置34为刚体331与刚体332的中间位置。
如图5a和5b所示,骨骼的骨骼类型为网状结构,骨骼421与骨骼422、骨骼423与骨骼424之间为父子关系,骨骼421与骨骼423、骨骼422与骨骼424之间为兄弟关系。因此,对应骨骼信息中的层级关系为父子关系的刚体431与刚体432、刚体433与刚体434之间需建立约束,对应骨骼信息中的层级关系为兄弟关系的刚体431与刚体433、刚体432与刚体434之间需建立约束。需分别确定对应的约束位置44。其中,刚体431与刚体432之间的约束位置441为刚体431与刚体432的中间位置,刚体431与刚体433之间的约束位置443为刚体431与刚体433的中间位置,约束位置442、约束位置444也同样理解。
确定了约束位置后,根据刚体的刚体坐标系确定约束的约束坐标系。在一种情况下,根据刚体的刚体坐标系确定约束的约束坐标系的步骤,包括:获取生成约束的两个刚体中的其中一个刚体的第一刚体坐标系;根据第一刚体坐标系确定两个刚体之间的约束的约束坐标系。例如,将第一刚体坐标系各坐标轴方向确定为约束坐标系各坐标轴方向,将生成约束的两个刚体之间的任一一个位置作为约束坐标系原点的位置。将约束坐标系各坐标系方向设置为与第一刚体坐标系相同,如此,可大大减少计算约束的第二预设参数的复杂度。
在本申请实施例中,将第一刚体坐标系各坐标轴方向确定为约束坐标系各坐标轴方向,将所确定的约束位置作为约束坐标系的原点的位置,如此,便于后续对第二约束参数的计算。
在其他一实施例中,在根据刚体的刚体坐标系确定约束的约束坐标系时,也可设置约束坐标系与其中一个刚体的第一刚体坐标系和另一个刚体的第二刚体坐标系均不相同,在该种情况计算约束的第二约束参数较为复杂。
在其他一实施例中,也可根据刚体对应的骨骼坐标系来确定刚体之间的约束坐标系,如将两个刚体中其中一个刚体对应的骨骼坐标系各坐标轴方向确定为约束坐标系的各坐标轴方向。
将所确定的约束位置和约束坐标系作为约束的第一约束参数。需要注意的是,在其他实施例中,第一约束参数还可以包括更多的其他参数。
如此,自动实现对第一约束参数的计算和确定,减少美术技术人员手动调整对应第一约束参数的随机性和不确定性,降低美术技术人员调整第一约束参数的时间和精力,提高确定第一约束参数的效率。可以理解地,通常情况下,美术技术人员需要一个一个的手动调整对应的约束参数,而一般一个骨骼模型所对应的约束可能会有几十个,美术设计人员一个一个的来调整约束,使其能够达到对应的标准,是需要消耗大量的时间和精力的,往往还达到想要的效果。
103,根据刚体、骨骼信息和第一约束参数生成约束的第二约束参数,其中,第二约束参数用于确定刚体的移动参数。
其中,约束的第二约束参数用于确定刚体的移动参数,即在物理引擎模拟虚拟对象运动的过程中,该移动参数用于约束刚体的移动。约束的第二约束参数包括各坐标轴方向上的约束角度上下限。在其他情况下,约束的第二约束参数还包括更多的其他参数。由于约束的约束角度是非常难确定的一个约束参数之一,且对约束的影响也较大,因此,在本实施例中,将对约束角度的确定进行详细的描述,确定了约束角度后,很容易确定出约束角度上下限。其中,约束角度上下限包括约束角度上限、约束角度下限。
在一实施例中,步骤103,包括:根据生成约束的两个刚体中的另一个刚体对应的骨骼信息,确定另一个刚体的第二刚体坐标系;根据第二刚体坐标系和约束坐标系确定约束坐标系在各坐标轴方向上的约束角度上下限,并将约束角度上下限作为约束的第二约束参数。
根据第二刚体坐标系和约束坐标系确定约束坐标系在各坐标轴方向上的约束角度上下限,可以通过至少以下两种不同的方式实现。
在一种情况下,根据第二刚体坐标系和约束坐标系确定约束坐标系在各坐标轴方向上的约束角度上下限的步骤,包括:确定第二刚体坐标系在约束坐标系中的目标第二刚体坐标系;确定目标第二刚体坐标系和约束坐标系之间各坐标轴方向上的相对偏移角度;将相对偏移角度作为约束坐标系在各坐标轴方向上的约束角度;根据约束角度和第二预设上下限值确定约束坐标系在各坐标轴方向上的约束角度上下限。
上文中已经说明,约束坐标系各坐标轴方向设置为其中一个刚体对应的第一刚体坐标系各坐标轴方向,可以理解地,约束坐标系各坐标轴方向以第一刚体坐标系各坐标轴方向为基准,是在第一刚体的刚体坐标系空间中。由于第一刚体坐标系与第二刚体坐标系都是局部坐标系,所以第一刚体坐标系和第二刚体坐标系不同。该种方案中,将第二刚体坐标系转换至约束坐标系中,以得到目标第二刚体坐标系。
在世界坐标系中,使用三维坐标标识来表示对应的坐标系各坐标轴方向。
设置约束坐标系的坐标轴向量为
Figure BDA0002930261020000151
设置第二刚体坐标系的坐标轴向量为:
Figure BDA0002930261020000152
将第二刚体坐标系变换至约束坐标系中的第一变换映射矩阵用M1表示,则通过约束坐标系的坐标轴向量和第二刚体坐标系的坐标轴向量可计算出M1。可以理解地,M1将第二刚体坐标系映射至约束坐标系。确定出M1之后,利用M1和第二刚体坐标系即可确定出目标第二刚体坐标系,该目标第二刚体坐标系以约束坐标系为基准。
再根据矩阵分解的方式,可计算出目标第二刚体坐标系与约束坐标系之间各坐标轴方向之间的相对偏移角度;将相对偏移角度作为约束坐标系在各坐标轴方向上的约束角度;根据约束角度和第二预设上下限值确定约束坐标系在各坐标轴方向上的约束角度上下限。其中,第二预设上下限可以根据具体场景的不同设置为不同的数值。如可将第二预设上下限设置为0,如此,理解为该约束比较硬,可将第二预设上下限设置为±5。假设某一个坐标轴的约束角度为135度,第二预设上下限设置为±5,则该坐标轴的约束角度上限值为135+5=140;该坐标轴的约束角度下限值为135-5=130。
在该种情况下,计算在预设坐标系的坐标系空间中,约束坐标系与目标第二刚体坐标系之间各坐标轴方向的相对偏移角度,将该相对偏移角度作为约束坐标系在各坐标轴方向上的约束角度。
在另一种情况下,根据第二刚体坐标系和约束坐标系确定约束坐标系在各坐标轴方向上的约束角度上下限的步骤,包括:确定约束坐标系在第二刚体坐标系中的目标约束坐标系;确定约束的约束位置在第二刚体坐标系中的目标约束位置;将约束的约束位置修改为目标约束位置,并将约束的约束坐标系修改为目标约束坐标系;确定目标约束坐标系与第二刚体坐标系之间各坐标轴方向上的约束角度;根据约束角度和第一预设上下限值确定约束坐标系在各坐标轴方向上的约束角度上下限。其中,在该种情况下,设置约束位置与约束坐标系原点位置相同。
在该种方案中,将约束坐标系转换为第二刚体坐标系中,以得到目标约束坐标系。将约束坐标系变换至第二刚体坐标系中的第二变换映射矩阵用M2表示,则通过约束坐标系的坐标轴向量和第二刚体坐标系的坐标轴向量可计算出M2。可以理解地,M2将约束坐标系映射至第二刚体坐标系。确定出M2之后,利用M2和约束坐标系即可确定出目标约束坐标系,该目标约束坐标系以第二刚体坐标系为基准。
利用M2来计算目标约束坐标系可参看公式:
Figure BDA0002930261020000161
其中,
Figure BDA0002930261020000162
为目标约束坐标系的齐次坐标,
Figure BDA0002930261020000163
为在第二刚体坐标系下,约束坐标系的目标原点位置(目标约束位置),
Figure BDA0002930261020000164
为约束坐标系在未变换之前,原点在世界坐标系中的原点位置(约束位置)。
需要注意的是,将约束坐标系转换至第二刚体坐标系中,约束坐标系会发生变化,而约束坐标系在世界坐标系中的位置并没有发生变化,但是大大简化了约束角度的计算。如在第二刚体坐标系中,约束角度可能都为0度,无需进行矩阵分解,简化了约束角度的计算。计算出约束角度之后,根据约束角度和第一预设上下限值确定约束坐标系在各坐标轴方向上的约束角度上下限,具体请参看上文中对应的描述,在此不再赘述。
如图6所示,约束坐标系51位于刚体54和刚体55之间,是刚体54和刚体55之间形成的约束的约束坐标系。刚体54中对应有第一刚体坐标系52,刚体55中对应有第二刚体坐标系53。约束坐标系51根据第一刚体坐标系52生成。
在第一种情况下,确定第二刚体坐标系53在约束坐标系51中的目标第二刚体坐标系,以将第二刚体坐标系53转换至约束坐标系51所在的坐标系空间中。在第二种情况下,确定约束坐标系51在第二刚体坐标系53中的目标约束坐标系,以将约束坐标系51转换至第二刚体坐标系53所在的坐标系空间中。对应的,根据上文中描述的来确定约束的第二约束参数。
以上自动根据骨骼信息、刚体信息和第一约束参数来确定约束的第二预设参数,提高生成对应的第二约束参数的效率,避免美术技术人员一个一个的调整约束的第二约束参数,节约了美术技术人员大量的时间和精力。
104,根据刚体、以及包括第一约束参数和第二约束参数的约束对虚拟对象进行模拟。
将生成的刚体和约束输入至物理引擎中,以进行模拟,得到刚体模拟的刚体位置、刚体坐标系等信息。利用刚体驱动骨骼,骨骼驱动骨骼模型,实现对虚拟对象的模拟,如实现对头发、布料、衣服等进行模拟,以得到生动的头发、布料、衣服等。
在一些情况下,在根据刚体、以及约束对虚拟对象进行模拟之前,还包括:微调约束的第一约束参数、第二约束参数以及其他约束参数。
可以理解地,在自动生成的刚体和约束的基础上,通过调整约束的松紧、角度、自由度,刚体的碰撞体形状(刚体的碰撞体如胶囊体、长方体等),碰撞体大小,重力大小,刚体的惯性张量,物理引擎模拟的误差容量等,来让模型的运动更精细,符合美术风格。
本申请实施例自动生成刚体、刚体的约束,再根据刚体、约束来对虚拟对象进行模拟,提高了基于物理模拟的头发、衣服、布料等虚拟对象的开发效率。
图7是本申请实施例提供的虚拟对象的模拟方法的另一流程示意图,该虚拟对象的模拟方法运行于计算机设备中,该虚拟对象的模拟方法包括如下步骤。
201,获取虚拟对象的骨骼模型和网格体信息,所述骨骼模型中包括虚拟对象的骨骼信息。
202,根据骨骼信息中的骨骼位置和骨骼坐标系分别确定骨骼所对应的刚体的刚体位置和刚体坐标系。
如根据骨骼位置确定刚体的刚体位置,并将骨骼坐标系朝向确定为刚体坐标系朝向。
203,根据网格体信息中的网格体顶点和骨骼信息中的骨骼尺寸确定骨骼所对应的刚体的刚体尺寸。
根据网格体信息中的网格体顶点确定骨骼所对应的刚体的刚体厚度或者刚体半径;根据骨骼信息中的骨骼长度确定刚体的刚体长度。
204,将对应的刚体位置、对应的刚体坐标系和对应的刚体尺寸作为虚拟对象对应的多个刚体的刚体参数。
205,根据刚体参数生成虚拟对象对应的多个刚体。
206,调整刚体参数,使得刚体与骨骼信息中对应的骨骼的相对位置保持不变。
具体地,调整刚体参数中的刚体位置,使得刚体的刚体位置与骨骼信息中对应的骨骼的骨骼位置保持一致。如此,使得刚体驱动的骨骼形状与原始模型的骨骼形状保持一致,以该骨骼原始形状为基准来调整约束参数,相对容易,降低美术技术人员的时间和精力。且自动将刚体与对应的骨骼保持一致,提高了稳定性。
207,获取骨骼模型中骨骼的结构类型。
208,若结构类型包括链状结构或者片状结构或者环状结构,则确定层级关系对应为父子关系的刚体之间需生成约束。
209,若结构类型包括网状结构,则确定层级关系为父子关系和兄弟关系的刚体之间需生成约束。
210,根据刚体的刚体位置确定需生成约束的约束位置。
根据刚体的刚体位置确定需生成约束的两个刚体之间的中间位置;将中间位置确定为两个刚体之间的需生成约束的约束位置。
211,根据刚体的刚体坐标系确定需生成约束的约束坐标系。
将第一刚体坐标系各坐标轴方向确定为约束坐标系各坐标轴方向,将约束位置作为约束坐标系的原点的位置。
212,将约束位置和约束坐标系作为刚体之间的需生成约束的第一约束参数。
213,获取需生成约束的两个刚体中的其中一个刚体的第一刚体坐标系,将第一刚体坐标系确定两个刚体之间的需生成约束的约束坐标系。
214,根据需生成约束的两个刚体中的另一个刚体对应的骨骼信息,确定另一个刚体的第二刚体坐标系。
215,根据第二刚体坐标系和约束坐标系确定约束坐标系在各坐标轴方向上的约束角度上下限,并将约束角度上下限作为所述约束的第二约束参数。
216,根据刚体、以及包括第一约束参数和第二约束参数的约束对虚拟对象进行模拟。
该实施例中与上述实施例中步骤相同的请参看上述实施例中对应的描述,在此不再赘述。
上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
为便于更好的实施本申请实施例的虚拟对象的模拟方法,本申请实施例还提供一种虚拟对象的模拟装置。请参阅8,图8为本申请实施例提供的虚拟对象的模拟装置的结构示意图。该虚拟对象的模拟装置300可以包括获取模块301,第一生成模块302,第二生成模块303以及模拟模块304。
获取模块301,用于获取虚拟对象的骨骼模型和网格体信息,所述骨骼模型中包括虚拟对象的骨骼信息。
第一生成模块302,用于根据骨骼信息和网格体信息生成虚拟对象对应的多个刚体,以及刚体之间的约束的第一约束参数,其中,第一约束参数用于确定约束的方位参数。
其中,第一生成模块302包括第一生成单元、调整单元、方位参数确定单元。其中,第一生成单元,用于根据骨骼信息和网格体信息生成虚拟对象对应的多个刚体。具体地,第一生成单元,用于根据骨骼信息和网格体信息确定虚拟对象对应的多个刚体的刚体参数;用于根据刚体参数生成虚拟对象对应的多个刚体。调整单元,用于调整刚体,使得刚体与骨骼信息中对应的骨骼的相对位置保持不变,具体地,调整单元,用于通过调整刚体参数,使得刚体与骨骼信息中对应的骨骼的相对位置保持不变。方位参数确定单元,用于根据调整后的刚体和刚体对应的骨骼信息确定刚体之间的约束的第一约束参数。
第二生成模块303,用于根据刚体、骨骼信息和第一约束参数生成约束的第二约束参数,其中,第二约束参数用于确定刚体的移动参数,该移动参数用于约束刚体的移动。
第二生成模块303,包括坐标系确定单元、约束角度确定单元。其中,坐标系确定单元,用于根据生成约束的两个刚体中的另一个刚体对应的骨骼信息,确定另一个刚体的第二刚体坐标系。约束角度确定单元,用于根据第二刚体坐标系和约束坐标系确定约束坐标系在各坐标轴方向上的约束角度上下限,并将约束角度上下限作为约束的第二约束参数。
模拟模块304,用于根据刚体、以及包括第一约束参数和第二约束参数的约束对虚拟对象进行模拟。
上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。具体实施时,以上各个单元/模块可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现。以上装置和各单元/模块的具体实现过程,以及所达到的有益效果,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
相应的,本申请实施例还提供一种计算机设备,该计算机设备可以为计算机设备或者服务器。图9为本申请实施例提供的计算机设备的结构示意图。该计算机设备400包括有一个或者一个以上处理核心的处理器401、有一个或一个以上计算机可读存储介质的存储器402及存储在存储器402上并可在处理器上运行的计算机程序。其中,处理器401与存储器402电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器401是计算机设备400的控制中心,利用各种接口和线路连接整个计算机设备400的各个部分,通过运行或加载存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行计算机设备400的各种功能和处理数据,从而对计算机设备400进行整体监控。
在本申请实施例中,计算机设备400中的处理器401会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能:
获取虚拟对象的骨骼模型和网格体信息,所述骨骼模型中包括虚拟对象的骨骼信息;根据骨骼信息和网格体信息生成虚拟对象对应的多个刚体,以及刚体之间的约束的第一约束参数,其中,第一约束参数用于确定约束的方位参数;根据刚体、骨骼信息和第一约束参数生成约束的第二约束参数,其中,第二约束参数用于确定刚体的移动参数;根据刚体、以及包括第一约束参数和第二约束参数的约束对虚拟对象进行模拟。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图9所示,计算机设备400还包括:触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407。其中,处理器401分别与触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407电性连接。本领域技术人员可以理解,图9中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏403可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏403可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器401,并能接收处理器401发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器401以确定触摸事件的类型,随后处理器401根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏403而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏403也可以作为输入单元406的一部分实现输入功能。
在本申请实施例中,通过处理器401执行游戏应用程序在触控显示屏403上生成图形用户界面,图形用户界面上的虚拟场景中包括至少一个虚拟对象,还可以包括骨骼、刚体等。该触控显示屏403用于呈现图形用户界面以及接收用户作用于图形用户界面产生的操作指令。
射频电路404可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
音频电路405可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路405可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路405接收后转换为音频数据,再将音频数据输出处理器401处理后,经射频电路404以发送给比如另一计算机设备,或者将音频数据输出至存储器402以便进一步处理。音频电路405还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
输入单元406可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源407用于给计算机设备400的各个部件供电。可选的,电源407可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源407还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图中未示出,计算机设备400还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种虚拟对象的模拟方法中的步骤。例如,该计算机程序可以执行如下步骤:
获取虚拟对象的骨骼模型和网格体信息,所述骨骼模型中包括虚拟对象的骨骼信息;根据骨骼信息和网格体信息生成虚拟对象对应的多个刚体,以及刚体之间的约束的第一约束参数,其中,第一约束参数用于确定约束的方位参数;根据刚体、骨骼信息和第一约束参数生成约束的第二约束参数,其中,第二约束参数用于确定刚体的移动参数;根据刚体、以及包括第一约束参数和第二约束参数的约束对虚拟对象进行模拟。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种虚拟对象的模拟方法中的步骤,因此,可以实现本申请实施例所提供的任一种虚拟对象的模拟方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种虚拟对象的模拟方法、装置、存储介质及计算机设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (14)

1.一种虚拟对象的模拟方法,其特征在于,包括:
获取虚拟对象的骨骼模型和网格体信息,所述骨骼模型中包括所述虚拟对象的骨骼信息;
根据所述骨骼信息和所述网格体信息生成所述虚拟对象对应的多个刚体,以及所述刚体之间的约束的第一约束参数,其中,所述第一约束参数用于确定约束的方位参数;
根据所述刚体、所述骨骼信息和所述第一约束参数生成所述约束的第二约束参数,其中,所述第二约束参数用于确定所述刚体的移动参数;
根据所述刚体、以及包括所述第一约束参数和第二约束参数的所述约束对所述虚拟对象进行模拟。
2.根据权利要求1所述的虚拟对象的模拟方法,其特征在于,所述根据所述骨骼信息和所述网格体信息生成所述虚拟对象对应的多个刚体,以及所述刚体之间的约束的第一约束参数的步骤,包括:
根据所述骨骼信息和所述网格体信息确定所述虚拟对象对应的多个刚体的刚体参数;
根据所述刚体参数生成所述虚拟对象对应的多个刚体;
调整所述刚体参数,使得所述刚体与所述骨骼信息中对应的骨骼的相对位置保持不变;
根据调整后的所述刚体和所述刚体对应的骨骼信息确定所述刚体之间的约束的第一约束参数。
3.根据权利要求2所述的虚拟对象的模拟方法,其特征在于,所述刚体参数包括刚体位置、刚体坐标系,所述根据调整后的所述刚体和所述刚体对应的骨骼信息确定所述刚体之间的约束的第一约束参数的步骤,包括:
根据调整后的所述刚体的刚体位置和所述刚体对应在骨骼信息中的层级关系确定所述刚体之间的约束的约束位置;
根据所述刚体的刚体坐标系确定所述约束的约束坐标系;
将所述约束位置和所述约束坐标系作为所述刚体之间的约束的第一约束参数。
4.根据权利要求3所述的虚拟对象的模拟方法,其特征在于,所述根据调整后的所述刚体的刚体位置和所述刚体对应在骨骼信息中的层级关系确定所述刚体之间的约束的约束位置的步骤,包括:
获取骨骼模型中骨骼的结构类型;
若所述结构类型包括链状结构或者片状结构或者环状结构,则确定层级关系对应为父子关系的刚体之间需生成约束;
若所述结构类型包括网状结构,则确定层级关系为父子关系和兄弟关系的刚体之间需生成约束;
根据所述刚体的刚体位置确定需生成约束的约束位置。
5.根据权利要求4所述的虚拟对象的模拟方法,其特征在于,所述根据所述刚体的刚体位置确定需生成约束的约束位置的步骤,包括:
根据所述刚体的刚体位置确定需生成约束的两个刚体之间的目标位置;
将所述目标位置确定为所述两个刚体之间的需生成约束的约束位置。
6.根据权利要求3所述的虚拟对象的模拟方法,其特征在于,所述根据所述刚体的刚体坐标系确定所述约束的约束坐标系的步骤,包括:
获取生成约束的两个刚体中的其中一个刚体的第一刚体坐标系;
根据所述第一刚体坐标系确定所述两个刚体之间的约束的约束坐标系。
7.根据权利要求6所述的虚拟对象的模拟方法,其特征在于,所述根据所述刚体、所述骨骼信息和所述第一约束参数生成所述约束的第二约束参数的步骤,包括:
根据生成约束的两个刚体中的另一个刚体对应的骨骼信息,确定所述另一个刚体的第二刚体坐标系;
根据所述第二刚体坐标系和所述约束坐标系确定所述约束坐标系在各坐标轴方向上的约束角度上下限,并将所述约束角度上下限作为所述约束的第二约束参数。
8.根据权利要求7所述的虚拟对象的模拟方法,其特征在于,根据所述第二刚体坐标系和所述约束坐标系确定所述约束坐标系在各坐标轴方向上的约束角度上下限的步骤,包括:
确定所述约束坐标系在所述第二刚体坐标系中的目标约束坐标系;
确定所述约束的约束位置在所述第二刚体坐标系中的目标约束位置;
将所述约束的约束位置修改为目标约束位置,并将所述约束的约束坐标系修改为目标约束坐标系;
确定所述目标约束坐标系与所述第二刚体坐标系之间各坐标轴方向上的约束角度;
根据所述约束角度和第一预设上下限值确定为所述约束坐标系在各坐标轴方向上的约束角度上下限。
9.根据权利要求7所述的虚拟对象的模拟方法,其特征在于,根据所述第二刚体坐标系和所述约束坐标系确定所述约束坐标系在各坐标轴方向上的约束角度上下限的步骤,包括:
确定所述第二刚体坐标系在所述约束坐标系中的目标第二刚体坐标系;
确定所述目标第二刚体坐标系和所述约束坐标系之间各坐标轴方向上的相对偏移角度;
将所述相对偏移角度作为所述约束坐标系在各坐标轴方向上的约束角度;
根据所述约束角度和第二预设上下限值确定所述约束坐标系在各坐标轴方向上的约束角度上下限。
10.根据权利要求2所述的虚拟对象的模拟方法,其特征在于,所述根据所述骨骼信息和所述网格体信息确定所述虚拟对象对应的多个刚体的刚体参数的步骤,包括:
根据所述骨骼信息中的骨骼位置和骨骼坐标系分别确定骨骼所对应的刚体的刚体位置和刚体坐标系;
根据所述网格体信息中的网格体顶点和所述骨骼信息中的骨骼尺寸确定骨骼所对应的刚体的刚体尺寸;
将对应的所述刚体位置、对应的所述刚体坐标系和对应的所述刚体尺寸作为所述虚拟对象对应的多个刚体的刚体参数。
11.根据权利要求10所述的虚拟对象的模拟方法,其特征在于,所述骨骼尺寸包括骨骼长度,所述刚体尺寸包括刚体厚度或者刚体半径,以及所述刚体长度,所述根据所述网格体信息中的网格体顶点和所述骨骼信息中的骨骼尺寸确定骨骼所对应的刚体的刚体尺寸的步骤,包括:
根据网格体信息中的网格体顶点确定骨骼所对应的刚体的刚体厚度或者刚体半径;
根据所述骨骼信息中的骨骼长度确定所述刚体的刚体长度。
12.一种虚拟对象的模拟装置,其特征在于,包括:
获取模块,用于获取虚拟对象的骨骼模型和网格体信息,所述骨骼模型中包括所述虚拟对象的骨骼信息;
第一生成模块,用于根据所述骨骼信息和所述网格体信息生成所述虚拟对象对应的多个刚体,以及所述刚体之间的约束的第一约束参数,其中,所述第一约束参数用于确定约束的方位参数;
第二生成模块,用于根据所述刚体、所述骨骼信息和所述第一约束参数生成所述约束的第二约束参数,其中,所述第二约束参数用于确定所述刚体的移动参数;
模拟模块,用于根据所述刚体、以及包括所述第一约束参数和第二约束参数的所述约束对所述虚拟对象进行模拟。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如权利要求1-11任一项所述的虚拟对象的模拟方法中的步骤。
14.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如权利要求1-11任一项所述的虚拟对象的模拟方法中的步骤。
CN202110144059.8A 2021-02-02 2021-02-02 虚拟对象的模拟方法、装置、存储介质及计算机设备 Active CN112891954B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110144059.8A CN112891954B (zh) 2021-02-02 2021-02-02 虚拟对象的模拟方法、装置、存储介质及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110144059.8A CN112891954B (zh) 2021-02-02 2021-02-02 虚拟对象的模拟方法、装置、存储介质及计算机设备

Publications (2)

Publication Number Publication Date
CN112891954A true CN112891954A (zh) 2021-06-04
CN112891954B CN112891954B (zh) 2024-02-13

Family

ID=76121512

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110144059.8A Active CN112891954B (zh) 2021-02-02 2021-02-02 虚拟对象的模拟方法、装置、存储介质及计算机设备

Country Status (1)

Country Link
CN (1) CN112891954B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113362435A (zh) * 2021-06-16 2021-09-07 网易(杭州)网络有限公司 虚拟对象模型的虚拟部件变化方法、装置、设备及介质
CN113642102A (zh) * 2021-07-23 2021-11-12 一汽奔腾轿车有限公司 一种碰撞模型中刚体对的自动化建模方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070030265A1 (en) * 2005-08-02 2007-02-08 Sony Computer Entertainment America Inc. Constraint schemes for computer simulation of cloth and other materials
US20070172797A1 (en) * 2006-01-12 2007-07-26 Kabushiki Kaisha Toyota Chuo Kenkyusho Method of constructing computer-based musculoskeletal model by redefining directions of pivot axes of joints in the same model
CN102663808A (zh) * 2012-02-29 2012-09-12 中山大学 一种基于数字家庭娱乐中三维模型的刚体模型建立方法
CN104021584A (zh) * 2014-06-25 2014-09-03 无锡梵天信息技术股份有限公司 一种骨骼蒙皮动画的实现方法
CN105976418A (zh) * 2016-06-28 2016-09-28 珠海金山网络游戏科技有限公司 一种人物动态骨骼的设计系统和方法
CN107578323A (zh) * 2017-10-10 2018-01-12 中国科学院合肥物质科学研究院 三维真实人体在线虚拟试衣系统
CN108510582A (zh) * 2018-04-02 2018-09-07 苏州蜗牛数字科技股份有限公司 一种匹配任意骨骼模型的刚体生成方法
CN111968204A (zh) * 2020-07-28 2020-11-20 完美世界(北京)软件科技发展有限公司 一种骨骼模型的运动展示方法和装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070030265A1 (en) * 2005-08-02 2007-02-08 Sony Computer Entertainment America Inc. Constraint schemes for computer simulation of cloth and other materials
US20070172797A1 (en) * 2006-01-12 2007-07-26 Kabushiki Kaisha Toyota Chuo Kenkyusho Method of constructing computer-based musculoskeletal model by redefining directions of pivot axes of joints in the same model
CN102663808A (zh) * 2012-02-29 2012-09-12 中山大学 一种基于数字家庭娱乐中三维模型的刚体模型建立方法
CN104021584A (zh) * 2014-06-25 2014-09-03 无锡梵天信息技术股份有限公司 一种骨骼蒙皮动画的实现方法
CN105976418A (zh) * 2016-06-28 2016-09-28 珠海金山网络游戏科技有限公司 一种人物动态骨骼的设计系统和方法
CN107578323A (zh) * 2017-10-10 2018-01-12 中国科学院合肥物质科学研究院 三维真实人体在线虚拟试衣系统
CN108510582A (zh) * 2018-04-02 2018-09-07 苏州蜗牛数字科技股份有限公司 一种匹配任意骨骼模型的刚体生成方法
CN111968204A (zh) * 2020-07-28 2020-11-20 完美世界(北京)软件科技发展有限公司 一种骨骼模型的运动展示方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113362435A (zh) * 2021-06-16 2021-09-07 网易(杭州)网络有限公司 虚拟对象模型的虚拟部件变化方法、装置、设备及介质
CN113362435B (zh) * 2021-06-16 2023-08-08 网易(杭州)网络有限公司 虚拟对象模型的虚拟部件变化方法、装置、设备及介质
CN113642102A (zh) * 2021-07-23 2021-11-12 一汽奔腾轿车有限公司 一种碰撞模型中刚体对的自动化建模方法
CN113642102B (zh) * 2021-07-23 2024-03-15 一汽奔腾轿车有限公司 一种碰撞模型中刚体对的自动化建模方法

Also Published As

Publication number Publication date
CN112891954B (zh) 2024-02-13

Similar Documents

Publication Publication Date Title
US20210312695A1 (en) Hair rendering method, device, electronic apparatus, and storage medium
CN113426117B (zh) 虚拟相机拍摄参数获取方法、装置、电子设备和存储介质
CN112891954B (zh) 虚拟对象的模拟方法、装置、存储介质及计算机设备
CN112233211A (zh) 动画制作的方法、装置、存储介质及计算机设备
CN108170282A (zh) 用于控制三维场景的方法和装置
CN112206517A (zh) 一种渲染方法、装置、存储介质及计算机设备
CN113516742A (zh) 模型特效制作方法、装置、存储介质及电子设备
CN114742925A (zh) 虚拟对象的蒙皮方法、装置、电子设备和存储介质
CN113398583A (zh) 游戏模型的贴花渲染方法、装置、存储介质及电子设备
CN114782605A (zh) 毛发虚拟模型的渲染方法、装置、计算机设备及存储介质
CN113350792B (zh) 虚拟模型的轮廓处理方法、装置、计算机设备及存储介质
CN113362435B (zh) 虚拟对象模型的虚拟部件变化方法、装置、设备及介质
CN115588065A (zh) 一种毛发模型的生成方法、装置、计算机设备及存储介质
CN113345059B (zh) 动画生成方法、装置、存储介质及电子设备
CN115512012A (zh) 一种骨骼重映射方法、装置、计算机设备及存储介质
CN115645921A (zh) 游戏指示器的生成方法、装置、计算机设备及存储介质
CN115526967A (zh) 虚拟模型的动画生成方法、装置、计算机设备及存储介质
CN114797109A (zh) 对象编辑方法、装置、电子设备和存储介质
CN115222867A (zh) 重叠检测方法、装置、电子设备和存储介质
CN117953150A (zh) 三维人体重建方法、装置、电子设备及存储介质
CN114494551A (zh) 三维模型的贴图处理方法、装置、计算机设备及存储介质
CN117258289A (zh) 一种指向标识特效生成方法、装置、电子设备及存储介质
CN115457177A (zh) 虚拟植物的动画制作方法、装置、存储介质及计算机设备
CN116958352A (zh) 美术资源的处理方法、装置、电子设备及存储介质
CN116468829A (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