CN1885348A - 一种基于骨骼的任意拓扑结构虚拟角色的驱动方法 - Google Patents

一种基于骨骼的任意拓扑结构虚拟角色的驱动方法 Download PDF

Info

Publication number
CN1885348A
CN1885348A CNA2005100772879A CN200510077287A CN1885348A CN 1885348 A CN1885348 A CN 1885348A CN A2005100772879 A CNA2005100772879 A CN A2005100772879A CN 200510077287 A CN200510077287 A CN 200510077287A CN 1885348 A CN1885348 A CN 1885348A
Authority
CN
China
Prior art keywords
bone
virtual role
coordinate system
information
skeletal system
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
CNA2005100772879A
Other languages
English (en)
Other versions
CN100530244C (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.)
XIAOSHAN INDUSTRY RESEARCH INSTITUTE
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CNB2005100772879A priority Critical patent/CN100530244C/zh
Publication of CN1885348A publication Critical patent/CN1885348A/zh
Application granted granted Critical
Publication of CN100530244C publication Critical patent/CN100530244C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

本发明公开了一种基于骨骼的任意拓扑结构虚拟角色的驱动方法,包括:1)将虚拟角色相关信息分为三类;2)定义虚拟角色相关信息的磁盘存储格式;3)根据实际需求,确定具体的虚拟角色;4)装载骨骼系统;5)装载皮肤纹理信息,装载时,根据皮肤纹理中各个模块的名称建立到骨骼系统中骨骼的映射关系;6)装载运动数据,判断运动数据中自由度的维数与骨骼系统中的维数是否相同;7)从运动数据中提取某一时刻的姿态;8)正向运动学计算,计算每个骨骼局部坐标系相对于全局坐标系下的变换矩阵;9)利用步骤8)得到的骨骼局部坐标系相对于全局坐标系下的变换矩阵,重新计算皮肤顶点坐标;10)渲染。

Description

一种基于骨骼的任意拓扑结构虚拟角色的驱动方法
技术领域
本发明涉及一种虚拟角色的驱动方法,特别地,涉及一种基于骨骼的任意拓扑结构虚拟角色的驱动方法。
背景技术
虚拟角色动画的生成是一个热点问题,它广泛应用于虚拟现实和游戏等领域中。三维虚拟角色动画的生成方法通常有两种:一种是顶点动画,一种是骨骼动画。顶点动画方法直接在虚拟角色模型的基础上做变形,即直接改变虚拟角色皮肤顶点在每一帧中的位置来达到动画的效果。这种方法直观简单,但如果要对物体进行某种整体变形或者模型中需移动的顶点非常多时,该方法就显得相当费时和繁琐。
与顶点动画相比,近年来,骨骼动画更为流行,骨骼动画又称为关节动画。这种动画生成方法分别定义了骨架和皮肤,骨架由一系列骨骼按照特定的拓扑关系联结而成,而包裹这些骨骼的“皮肤”则是一个顶点网,每个顶点的位置受到一个或多个骨骼运动的影响而变化。因此,骨骼动画生成方法首先通过驱动骨架而运动,被定义为皮肤的顶点的运动则以数学公式的方式生成,最后通过逐帧渲染形成动画。为了下面说明的方便,首先对骨骼系统进行描述。骨骼系统的拓扑结构可以看成是由一系列链杆通过关节顺次相连的开式运动链,在骨骼系统中,定义了虚拟角色的骨骼数目、每个骨骼的长度、骨骼与骨骼之间的相互关系等。结合图1,对骨骼系统的基本组成进行说明。在一个虚拟角色的骨骼系统中,对骨骼系统做如下定义。
1)在每一个骨骼上定义一个与之固连的坐标系Fi,该坐标系称为该骨骼的局部坐标系。两个骨骼连接时自动形成关节,骨骼间的连接关系不能构成环。
2)存在且仅存在一个关节称为根节点1,对于和关节2相连的两个骨骼3和4,离根节点近的骨骼3称为关节2的父骨骼,另一个骨骼4称为关节2的子骨骼。对于和骨骼5相连的两个关节6和7,离根节点近的关节6称为骨骼5的父关节,离根节点远的关节7称为骨骼5的子关节。在骨骼5的局部坐标系下,子关节7到父关节6的平移记为{Xi,Yi,Zi}。
3)任何一个关节(骨骼)最多有一个父关节(父骨骼),任何一个关节(骨骼)可以有多个或没有子关节(子骨骼)。
4)根节点除了定义其相对于世界坐标系的旋转外,还定义了其相对于世界坐标系的平移。
由于关节是两个骨骼连接时自动形成的,因此,只要保存了骨骼的信息和骨骼间的连接关系,就蕴含了对关节的定义。在实际应用中,为了表示上的统一,需要定义一个虚骨骼,称为“根骨骼”。这个骨骼没有长度,可视为一个点,其功能和意义与根节点相同。
在利用基于骨骼的动画生成方法,实现虚拟人动画生成时,人们通常定义一个标准的虚拟人骨架模板,虚拟人骨架模板是一个固定的虚拟人骨骼系统。
在现有技术中,虚拟角色的骨骼系统是固定的,即一个虚拟角色在不同的应用场合有固定的骨骼系统,利用固定的骨骼系统实现动画生成的方式虽然简化了虚拟角色的驱动过程,但却有很大的局限性。
首先,在不同的情况下,对虚拟人骨骼系统的要求可能是不同的。以虚拟人手掌部位的骨骼为例,从较远的地方观察虚拟人手掌时,只需要用一根骨骼便可代替整个手掌;而如果需要表现“拿取”东西这一动作时,则需要19根骨骼。因此,对一个虚拟角色,如果只用一个固定的骨骼系统并不能满足所有情况。
其次,在固定模版方法中,由于骨骼系统中各个骨骼间的拓扑关系是固定的,因此固定模板法也不能驱动其它类型的虚拟角色,如动物等。
另外,在固定模板方法中,一个虚拟角色通常保存了自己的骨骼系统和皮肤信息,这样每个角色可有独立的模型。然而,在大规模虚拟环境中,如部队的演练,骨骼系统或皮肤纹理信息通常是相同的,这样就会导致信息的冗余,消耗大量的内存空间。
最后,虚拟角色在磁盘中的存储缺乏统一、完善的格式。当前的一些存储格式不能满足对任意拓扑结构的骨骼系统、多虚拟角色共存的存储要求。
发明内容
本发明的目的是提供一种基于骨骼的任意拓扑结构虚拟角色的驱动方法,实现对虚拟角色的驱动。
为了实现上述目的,本发明提供了一种基于骨骼的任意拓扑结构虚拟角色的驱动方法,包括:
1)获取虚拟角色的相关信息,所述的虚拟角色的相关信息分为骨骼系统信息、皮肤纹理信息和运动数据;
2)定义虚拟角色相关信息的磁盘存储格式,磁盘文件对相同的骨骼系统、皮肤纹理信息、运动数据只保存一次,骨骼系统、皮肤纹理信息和运动数据适用于任意拓扑结构的虚拟角色以及任意数目的虚拟角色;
3)根据实际需求,确定具体的虚拟角色;
4)根据角色,装载相应的骨骼系统;
5)根据角色,装载皮肤纹理信息,装载时,根据皮肤纹理中各个模块的名称建立到骨骼系统中骨骼的映射关系;
6)装载运动数据,在运动数据装载前,判断运动数据中自由度的维数与骨骼系统中的维数是否相同,如果不同则运动数据无法驱动骨骼系统,需要重新选定运动数据进行装载或退出虚拟角色驱动的过程;
7)从运动数据中提取某一时刻的姿态,若在运动数据中无法找到指定时刻的姿态,则通过对相邻时刻的姿态做插值得到指定时刻的姿态;
8)正向运动学计算,计算每个骨骼局部坐标系相对于全局坐标系下的变换矩阵;
9)利用步骤8)得到的骨骼局部坐标系相对于全局坐标系下的变换矩阵,重新计算皮肤顶点坐标;
10)渲染,根据步骤9)得到的重新计算的皮肤顶点坐标和三角面片列表绘制虚拟角色。
上述技术方案中,在所述的步骤2)中,一个磁盘存储文件由文件头、骨骼系统、皮肤纹理信息单元、虚拟角色信息单元组成;在一个骨骼系统中,骨骼系统由骨骼系统名称和骨骼列表组成,在骨骼列表中包含有骨骼系统的各个骨骼的信息,一个骨骼需要保存的信息有:骨骼名称、骨骼索引号、父关节的索引号、静态变换矩阵、骨骼质量、质心坐标及关节活动范围;一个皮肤纹理信息单元由顶点列表、三角面片列表、纹理坐标列表、法向量列表、部位信息列表组成,其中的部位信息列表中有多个部位信息单元,一个部位信息单元包括名称、顶点索引列表、影响权重列表;一个虚拟角色单元由虚拟角色基本信息、骨骼系统索引、皮肤纹理索引和运动数据组成;运动数据中的每一帧姿态由该帧的时刻、根节点的位移以及各个骨骼局部坐标系相对于其父骨骼局部坐标系的旋转组成。
上述技术方案中,所述的虚拟角色的骨骼系统、皮肤纹理信息和运动数据在内存组织上采用共用的方式,一种骨骼系统或皮肤纹理信息可以为不同的虚拟角色所用,而一个虚拟角色在不同的场合也可以采用不同的骨骼系统或皮肤纹理信息。
上述技术方案中,在所述的步骤4)中,装载骨骼系统的具体实现包括:
4-1、所装载的骨骼系统的拓扑结构是一个多叉树,对多叉树做深度优先遍历,重新排列骨骼间的顺序;
4-2、计算初始姿态下骨骼局部坐标系相对于全局坐标系的变换矩阵。
上述技术方案中,在所述的步骤8)中,正向运动学计算包括:
8-1、将某一时刻的姿态下各个骨骼局部坐标系相对于父骨骼局部坐标系的旋转转换为变换矩阵;
8-2、根据步骤8-1所得到的变换矩阵和磁盘存储文件中所包含的静态变换矩阵,计算骨骼局部坐标系相对于全局坐标系下的变换矩阵。
上述技术方案中,在所述的步骤9)中,所述的皮肤顶点坐标的计算公式为: p ′ = T j W · ( T j W 0 ) - 1 · p , 其中,p为骨骼皮肤上的一个顶点的坐标,p′为皮肤顶点在骨骼运动情况下的新坐标,0Tj W为步骤4-2所得到的初始姿态下骨骼局部坐标系相对于全局坐标系的变换矩阵,Tj W为步骤8-2所得到的骨骼局部坐标系相对于全局坐标系下的变换矩阵。
在步骤4-1中,所述的骨骼顺序为根骨骼排在最前面,任意一个骨骼都排在其所有的子骨骼之前。
本发明的优点在于:
1、本发明方法对虚拟角色按照骨骼系统、皮肤纹理信息和运动数据做逻辑划分,分别存储,实现了对任意拓扑结构、任意数目虚拟角色的驱动。
2、本发明方法采用共用数据结构的机制,减少在磁盘和内存中的空间占用。
3、本发明方法采用四元数表示旋转矩阵,提高了计算效率,节省了存储空间。
4、本发明方法采用非递归的方式来计算正向运动学,提高驱动时的计算效率。
5、本发明方法采用四元数插值可以获取运动片段中任意时刻的姿态,从而实现任意速度的驱动。
附图说明
图1为一个简单的骨骼系统的示意图;
图2为在本发明方法中对虚拟角色的逻辑划分;
图3为本发明方法中磁盘文件的组织格式;
图4为本发明方法中虚拟角色在内存中的组织方式;
图5为本发明方法的流程图。
图面说明:
1  根节点  2  关节  3  骨骼  4  骨骼  5  骨骼
6  关节    7  关节
具体实施方式
下面参照附图和具体实施方式对本发明做详细说明。
本发明的基于骨骼的任意拓扑结构虚拟角色的驱动方法包括以下步骤:
步骤10、获取虚拟角色的相关信息。虚拟角色从逻辑上可以划分为三个部分,如图2所示,分别为:骨骼系统、皮肤纹理信息和运动数据。骨骼系统是一种静态信息,它决定了虚拟角色的形状、大小等基本特点,对骨骼系统赋予不同的运动数据可驱动骨骼实现不同的运动姿态,而骨骼的运动会改变皮肤纹理信息,将骨骼系统、皮肤纹理信息、运动数据相结合可实现对虚拟角色的驱动。要实现虚拟角色的驱动,首先就要有上述的虚拟角色的相关信息。这些信息可通过对相关文件做格式转换得到。
步骤20、定义虚拟角色相关信息的磁盘存储格式。基于现有技术中对虚拟角色相关信息采取了独立存储的方式,不同虚拟角色中的相同信息反复存储,浪费存储空间的缺点,本发明方法中对虚拟角色相关信息在磁盘上的存储格式做了新的定义,即将虚拟角色划分为骨骼系统、皮肤纹理信息和运动数据。对相同的骨骼系统、皮肤纹理信息、运动数据只保存一次,一个骨骼系统或皮肤信息适用于任意拓扑结构的虚拟角色以及任意数目的虚拟角色。如图3所示,为保存在磁盘上的文件的组织格式,一个文件由一个文件头、多个骨骼系统、多个皮肤纹理信息单元、多个虚拟角色信息单元组成。此处所述的多个的具体数值根据实际应用的情况而设定。在一个骨骼系统中,骨骼系统由骨骼系统名称和骨骼列表组成,在骨骼列表中包含有骨骼系统的各个骨骼的信息。一个骨骼需要保存的信息有:骨骼名称、骨骼索引号、父关节的索引号、静态变换矩阵、骨骼质量、质心坐标及关节活动范围。一个皮肤纹理信息单元由顶点列表、三角面片列表、纹理坐标列表、法向量列表、部位信息列表组成,其中的部位信息列表中有多个部位信息单元,一个部位信息单元由名称、顶点索引列表、影响权重列表组成。一个虚拟角色单元由虚拟角色基本信息、骨骼系统索引、皮肤纹理索引和运动数据组成;运动数据中的每一帧姿态由该帧的时刻、根节点的位移以及各个骨骼局部坐标系相对于其父骨骼局部坐标系的旋转组成。在运动数据中,旋转用单位四元数表示。
步骤30、确定具体的虚拟角色。在虚拟角色相关信息的存储文件中,存储有多种的骨骼系统、皮肤纹理信息和运动数据,对于一个具体的应用场合,只需要选用其中的骨骼系统、部分皮肤纹理信息和部分运动数据,因此在对虚拟角色做驱动前,要根据虚拟角色的应用场合确定具体的虚拟角色,以方便在后续操作中确定骨骼系统、皮肤纹理信息、运动数据的选取。在本发明中,虚拟角色的骨骼系统、皮肤纹理信息和运动数据在内存组织上采用共用的方式,即一种骨骼系统可以为不同的虚拟角色所用,而一个虚拟角色在不同的场合也可以采用不同的骨骼系统。对于皮肤纹理信息和运动数据也同样如此。这种内存组织方式有效地节省了内存空间的开支,适合大规模虚拟环境中多虚拟角色驱动的需要。如图4所示,为虚拟角色在内存中的组织方式,一个虚拟角色通过指针指向其骨骼系统、皮肤纹理和运动数据。一个骨骼系统或皮肤纹理信息可以同时被多个虚拟角色共用。例如,虚拟角色2通过指针指向骨骼系统1、皮肤系统1和运动片段2,将上述骨骼系统、皮肤系统和运动片段组合可实现对虚拟角色2的驱动。而骨骼系统1可同时被虚拟角色1和虚拟角色2共用。从图4中还可以看到,虚拟角色还可以只包括骨骼系统与运动数据,不含有皮肤纹理信息。此时,对虚拟角色的驱动就只是对骨骼系统的驱动。
步骤40、装载骨骼系统。根据步骤30所确定的虚拟角色从磁盘文件中选取骨骼系统,装载该骨骼系统,所选取的骨骼系统的拓扑结构是一个多叉树,对该多叉树做如下处理。
步骤41、对多叉树做深度优先遍历,重新排列骨骼间的顺序,骨骼重新排序后,设排序后的骨骼顺序为L1,L2,L3,...Ln,则排序后的骨骼满足如下两个条件:
(1)L1为根骨骼;
(2)若Li(1<i≤n)的父骨骼为Lj,则j<i
步骤42、计算初始姿态下骨骼局部坐标系相对于全局坐标系的变换矩阵0Tj W(左上角坐标表示初始状态),如果一骨骼没有父骨骼,则 T j W 0 = T j P · M j , 其中Tj P是骨骼的局部坐标系相对父骨骼局部坐标系的静态变换矩阵,该静态变换矩阵可从磁盘文件中直接得到;如果一骨骼有父骨骼,则 T j W 0 = T j P · M j · T i W 0 , 其中,i为骨骼j的父关节的序号。由于步骤41中通过对多叉树做深度优先遍历,重新排列了骨髂顺序,因此计算0Tj W之前,其父骨骼的齐次矩阵0Ti W已经更新过,只需按顺序逐一对每一个骨骼计算即可。在初始姿态下,Mj均为单位矩阵。
步骤50、装载皮肤纹理信息。根据步骤30所确定的虚拟角色从磁盘文件中按需求选取皮肤纹理信息并装载,在装载过程中,根据皮肤纹理中各个模块的名称建立到骨骼系统中骨骼的映射关系。
步骤60、装载运动数据。从磁盘文件中按需要选取运动数据并装载,在装载运动数据时,判断运动数据中自由度的维数与骨骼系统中的维数是否相同,如果不同则无法驱动该骨骼系统,即运动数据装载失败,需要重新选定运动数据进行装载或退出虚拟角色驱动的过程。
步骤70、从运动数据中获取给定时刻t的姿态。姿态是某一时刻用来刻画关节角度的一组矢量,用{p,q1,q2,...,qn}表示。其中,p表示根骨骼在世界坐标系中的平移,qi表示对骨骼Li的局部坐标系相对于其父骨骼Lj局部坐标系的旋转,用四元数表示。在某些情况下,运动数据中可能没有指定时刻t的姿态,此时按下列步骤求取指定时刻的姿态信息。
步骤71、找到与指定时刻t最接近的时间的两帧姿态pose1、pose2,其对应时刻分别为t1,t2。pose1、pose2具体表示如下:
pose 1 = { p 1 , q 1 1 , q 2 1 , · · · q k 1 } , pose 2 = { p 2 , q 1 2 , q 2 2 , · · · q k 2 }
步骤72、按公式对pose1、pose2进行插值得到t时刻对应的姿态,插值公式如下:
pose={p,q1,q2,…qk}:
p = ( 1 - t ) · p 1 + t · p 2 q j = Slerp ( q j 1 , q j 2 , t )
其中:
Slerp ( q 1 , q 2 , t ) = q 1 sin ( ( 1 - t ) Ω ) + q 2 sin ( tΩ ) sin ( Ω ) , cos ( Ω ) = q 1 · q 2
步骤80、正向运动学计算。计算每个骨骼局部坐标系相对于全局坐标系下的变换矩阵Tj W。变换矩阵Tj W的求取步骤如下。
步骤81、将当前姿态下各个骨骼局部坐标系相对于父骨骼局部坐标系的旋转qj转换为变换矩阵Mj,qj是一个单位四元数。该转换过程是成熟的现有技术,普通技术人员查阅相关资料可实现该转换。
步骤82、判断一骨骼是否有父骨骼,如果该骨骼没有父骨骼,则 T j W = T j P · M j .
步骤83、如果一骨骼有父骨骼,则 T j W = T j P · M j · T i W , 其中i为骨骼j的父关节的序号。
由于步骤41中通过对多叉树做深度优先遍历,重新排列了骨骼顺序,因此计算Tj W之前,其父骨骼的齐次矩阵Ti W已经更新过,因此只需按顺序逐一对每一个骨骼计算即可。
步骤90、重新计算皮肤顶点坐标。骨骼系统在运动数据驱动下,依附于骨骼的皮肤顶点坐标会产生相应的变化,本步骤就是要实现对时刻t时,虚拟角色的所有皮肤顶点坐标的计算。以索引号为j的骨骼为例,设p为该骨骼皮肤上的一个顶点的坐标,则该点在新的姿态下的旋转坐标由下式给出: p ′ = T j W · ( T j W 0 ) - 1 · p . 将皮肤顶点在初始姿态下全局坐标系中的坐标与初始姿态下骨骼局部坐标系相对于全局坐标系的变换矩阵的逆矩阵做点积,得到皮肤顶点在骨骼局部坐标系中的坐标,然后将该坐标与骨骼局部坐标系相对于全局坐标系下的变换矩阵做点积,得到皮肤顶点在新姿态下的全局坐标。
步骤100、渲染。根据重新计算的皮肤顶点坐标和磁盘文件中所保存的三角面片列表绘制虚拟角色。

Claims (8)

1、一种基于骨骼的任意拓扑结构虚拟角色的驱动方法,包括:
1)获取虚拟角色的相关信息,所述的虚拟角色的相关信息分为骨骼系统信息、皮肤纹理信息和运动数据;
2)定义虚拟角色相关信息的磁盘存储格式,磁盘文件对相同的骨骼系统、皮肤纹理信息、运动数据只保存一次,骨骼系统、皮肤纹理信息和运动数据适用于任意拓扑结构的虚拟角色以及任意数目的虚拟角色;
3)根据实际需求,确定具体的虚拟角色;
4)根据角色,装载相应的骨骼系统;
5)根据角色,装载皮肤纹理信息,装载时,根据皮肤纹理中各个模块的名称建立到骨骼系统中骨骼的映射关系;
6)装载运动数据,在运动数据装载前,判断运动数据中自由度的维数与骨骼系统中的维数是否相同,如果不同则运动数据无法驱动骨骼系统,需要重新选定运动数据进行装载或退出虚拟角色驱动的过程;
7)从运动数据中提取某一时刻的姿态,若在运动数据中无法找到指定时刻的姿态,则通过对相邻时刻的姿态做插值得到指定时刻的姿态;
8)正向运动学计算,计算每个骨骼局部坐标系相对于全局坐标系下的变换矩阵;
9)利用步骤8)得到的骨骼局部坐标系相对于全局坐标系下的变换矩阵,重新计算皮肤顶点坐标;
10)渲染,根据步骤9)得到的重新计算的皮肤顶点坐标和三角面片列表绘制虚拟角色,所述的三角面片列表包含在步骤5)所装载的皮肤纹理信息中。
2、根据权利要求1所述的基于骨骼的任意拓扑结构虚拟角色的驱动方法,其特征在于,在所述的步骤2)中,一个磁盘存储文件由文件头、骨骼系统、皮肤纹理信息单元、虚拟角色信息单元组成;在一个骨骼系统中,骨骼系统由骨骼系统名称和骨骼列表组成,在骨骼列表中包含有骨骼系统的各个骨骼的信息,一个骨骼需要保存的信息有:骨骼名称、骨骼索引号、父关节的索引号、静态变换矩阵、骨骼质量、质心坐标及关节活动范围;一个皮肤纹理信息单元由顶点列表、三角面片列表、纹理坐标列表、法向量列表、部位信息列表组成,其中的部位信息列表中有多个部位信息单元,一个部位信息单元包括名称、顶点索引列表、影响权重列表;一个虚拟角色单元由虚拟角色基本信息、骨骼系统索引、皮肤纹理索引和运动数据组成;运动数据中的每一帧姿态由该帧的时刻、根节点的位移以及各个骨骼局部坐标系相对于其父骨骼局部坐标系的旋转组成,其中所述的旋转用四元数表示。
3、根据权利要求1所述的基于骨骼的任意拓扑结构虚拟角色的驱动方法,其特征在于,所述的虚拟角色的骨骼系统、皮肤纹理信息和运动数据在内存组织上采用共用的方式,一种骨骼系统或皮肤纹理信息可以为不同的虚拟角色所用,而一个虚拟角色在不同的场合也可以采用不同的骨骼系统或皮肤纹理信息。
4、根据权利要求1所述的基于骨骼的任意拓扑结构虚拟角色的驱动方法,其特征在于,在所述的步骤4)中,装载骨骼系统的具体实现包括:
4-1、所装载的骨骼系统的拓扑结构是一个多叉树,对多叉树做深度优先遍历,重新排列骨骼间的顺序;
4-2、计算初始姿态下骨骼局部坐标系相对于全局坐标系的变换矩阵。
5、根据权利要求1所述的基于骨骼的任意拓扑结构虚拟角色的驱动方法,其特征在于,在步骤7)中,所述的插值方法采用四元数的球面线形插值法。
6、根据权利要求1所述的基于骨骼的任意拓扑结构虚拟角色的驱动方法,其特征在于,在所述的步骤8)中,正向运动学计算包括:
8-1、将某一时刻的姿态下各个骨骼局部坐标系相对于父骨骼局部坐标系的旋转转换为变换矩阵;
8-2、根据步骤8-1所得到的变换矩阵和磁盘存储文件中所包含的静态变换矩阵,计算骨骼局部坐标系相对于全局坐标系下的变换矩阵。
7、根据权利要求1所述的基于骨骼的任意拓扑结构虚拟角色的驱动方法,其特征在于,在所述的步骤9)中,所述的皮肤顶点坐标的计算公式为: p ′ = T j W · ( T j W 0 ) - 1 · p , 其中,p为骨骼皮肤上的一个顶点的坐标,p′为皮肤顶点在骨骼运动情况下的新坐标,0Tj w为步骤4-2所得到的初始姿态下骨骼局部坐标系相对于全局坐标系的变换矩阵,Tj w为步骤8-2所得到的骨骼局部坐标系相对于全局坐标系下的变换矩阵。
8、根据权利要求4所述的基于骨骼的任意拓扑结构虚拟角色的驱动方法,其特征在于,在步骤4-1中,所述的骨骼顺序为根骨骼排在最前面,任意一个骨骼都排在其所有的子骨骼之前。
CNB2005100772879A 2005-06-21 2005-06-21 一种基于骨骼的任意拓扑结构虚拟角色的驱动方法 Expired - Fee Related CN100530244C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100772879A CN100530244C (zh) 2005-06-21 2005-06-21 一种基于骨骼的任意拓扑结构虚拟角色的驱动方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100772879A CN100530244C (zh) 2005-06-21 2005-06-21 一种基于骨骼的任意拓扑结构虚拟角色的驱动方法

Publications (2)

Publication Number Publication Date
CN1885348A true CN1885348A (zh) 2006-12-27
CN100530244C CN100530244C (zh) 2009-08-19

Family

ID=37583487

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100772879A Expired - Fee Related CN100530244C (zh) 2005-06-21 2005-06-21 一种基于骨骼的任意拓扑结构虚拟角色的驱动方法

Country Status (1)

Country Link
CN (1) CN100530244C (zh)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008116426A1 (fr) * 2007-03-28 2008-10-02 Tencent Technology (Shenzhen) Company Limited Procédé de commande d'animation de rôle et système apparenté
CN101079154B (zh) * 2007-03-02 2010-05-26 腾讯科技(深圳)有限公司 一种角色动画实现方法及系统
CN101197049B (zh) * 2007-12-21 2010-12-01 西北工业大学 基于三维运动参数的三维运动模型全自动驱动方法
CN102646284A (zh) * 2012-04-11 2012-08-22 Tcl集团股份有限公司 一种3d渲染系统中透明物体的渲染顺序获取方法及系统
CN103065348A (zh) * 2012-12-27 2013-04-24 江苏太奇通软件有限公司 基于骨骼动作库的二维动画自动生成方法
CN103077546A (zh) * 2012-12-27 2013-05-01 江苏太奇通软件有限公司 二维图形的三维透视变换方法
CN103426196A (zh) * 2013-08-30 2013-12-04 电子科技大学 一种流体环境下的关节动画建模技术
CN103617643A (zh) * 2013-11-29 2014-03-05 广州菲动软件科技有限公司 骨骼动画的渲染方法和系统
CN104102487A (zh) * 2014-07-17 2014-10-15 福建天趣网络科技有限公司 一种3D游戏角色Avatar的可视化编辑方法及编辑器
CN104112288A (zh) * 2014-07-24 2014-10-22 无锡梵天信息技术股份有限公司 基于三维骨骼模型的动作过渡实现方法
CN106227368A (zh) * 2016-08-03 2016-12-14 北京工业大学 一种人体关节角度解算方法及装置
CN106600668A (zh) * 2016-12-12 2017-04-26 中国科学院自动化研究所 一种与虚拟角色进行互动的动画生成方法、装置及电子设备
CN107170030A (zh) * 2017-05-31 2017-09-15 珠海金山网络游戏科技有限公司 一种虚拟主播直播方法及系统
CN108198234A (zh) * 2018-01-12 2018-06-22 北京蜜枝科技有限公司 可实时互动的虚拟角色生成系统及方法
CN108734788A (zh) * 2018-05-17 2018-11-02 成都明镜视觉科技有限公司 一种3d对象在虚拟场景中的节点化组织方法
CN109395390A (zh) * 2018-10-26 2019-03-01 网易(杭州)网络有限公司 游戏角色脸部模型的处理方法、装置、处理器及终端
CN109547415A (zh) * 2018-10-29 2019-03-29 深圳市瑞立视多媒体科技有限公司 一种数据传输的方法、装置、终端设备及存储介质
CN109816773A (zh) * 2018-12-29 2019-05-28 深圳市瑞立视多媒体科技有限公司 一种虚拟人物的骨骼模型的驱动方法、插件及终端设备
CN109961496A (zh) * 2019-02-22 2019-07-02 厦门美图之家科技有限公司 表情驱动方法及表情驱动装置
CN110557625A (zh) * 2019-09-17 2019-12-10 北京达佳互联信息技术有限公司 虚拟形象直播方法、终端、计算机设备及存储介质
CN111383309A (zh) * 2020-03-06 2020-07-07 腾讯科技(深圳)有限公司 一种骨骼动画驱动方法、装置及存储介质
CN111417988A (zh) * 2017-07-28 2020-07-14 北奥拜勃工作室有限公司 用于实时复杂角色动画和交互性的系统和方法
CN111462343A (zh) * 2020-03-31 2020-07-28 腾讯科技(深圳)有限公司 数据处理方法、装置、电子设备及存储介质
CN112200892A (zh) * 2020-09-30 2021-01-08 京东方科技集团股份有限公司 一种显示处理方法和装置
CN112330805A (zh) * 2020-11-25 2021-02-05 北京百度网讯科技有限公司 人脸3d模型生成方法、装置、设备及可读存储介质
CN112819971A (zh) * 2021-01-26 2021-05-18 北京百度网讯科技有限公司 虚拟形象的生成方法、装置、设备和介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5912675A (en) * 1996-12-19 1999-06-15 Avid Technology, Inc. System and method using bounding volumes for assigning vertices of envelopes to skeleton elements in an animation system
WO2002009037A2 (en) * 2000-07-24 2002-01-31 Reflex Systems Inc. Modeling human beings by symbol manipulation
US6700586B1 (en) * 2000-08-23 2004-03-02 Nintendo Co., Ltd. Low cost graphics with stitching processing hardware support for skeletal animation
CN1271574C (zh) * 2004-12-09 2006-08-23 上海交通大学 基于标记点的人肢体三维建模方法
CN1266655C (zh) * 2004-12-09 2006-07-26 上海交通大学 基于图像轮廓的人肢体三维建模方法

Cited By (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079154B (zh) * 2007-03-02 2010-05-26 腾讯科技(深圳)有限公司 一种角色动画实现方法及系统
WO2008116426A1 (fr) * 2007-03-28 2008-10-02 Tencent Technology (Shenzhen) Company Limited Procédé de commande d'animation de rôle et système apparenté
CN101197049B (zh) * 2007-12-21 2010-12-01 西北工业大学 基于三维运动参数的三维运动模型全自动驱动方法
CN102646284A (zh) * 2012-04-11 2012-08-22 Tcl集团股份有限公司 一种3d渲染系统中透明物体的渲染顺序获取方法及系统
CN103077546B (zh) * 2012-12-27 2015-10-28 江苏太奇通软件有限公司 二维图形的三维透视变换方法
CN103065348B (zh) * 2012-12-27 2016-03-30 江苏太奇通软件有限公司 基于骨骼动作库的二维动画自动生成方法
CN103077546A (zh) * 2012-12-27 2013-05-01 江苏太奇通软件有限公司 二维图形的三维透视变换方法
CN103065348A (zh) * 2012-12-27 2013-04-24 江苏太奇通软件有限公司 基于骨骼动作库的二维动画自动生成方法
CN103426196A (zh) * 2013-08-30 2013-12-04 电子科技大学 一种流体环境下的关节动画建模技术
CN103426196B (zh) * 2013-08-30 2016-07-06 电子科技大学 一种流体环境下的关节动画建模方法
CN103617643A (zh) * 2013-11-29 2014-03-05 广州菲动软件科技有限公司 骨骼动画的渲染方法和系统
CN104102487A (zh) * 2014-07-17 2014-10-15 福建天趣网络科技有限公司 一种3D游戏角色Avatar的可视化编辑方法及编辑器
CN104112288B (zh) * 2014-07-24 2017-05-10 无锡梵天信息技术股份有限公司 基于三维骨骼模型的动作过渡实现方法
CN104112288A (zh) * 2014-07-24 2014-10-22 无锡梵天信息技术股份有限公司 基于三维骨骼模型的动作过渡实现方法
CN106227368B (zh) * 2016-08-03 2019-04-30 北京工业大学 一种人体关节角度解算方法及装置
CN106227368A (zh) * 2016-08-03 2016-12-14 北京工业大学 一种人体关节角度解算方法及装置
CN106600668A (zh) * 2016-12-12 2017-04-26 中国科学院自动化研究所 一种与虚拟角色进行互动的动画生成方法、装置及电子设备
CN107170030A (zh) * 2017-05-31 2017-09-15 珠海金山网络游戏科技有限公司 一种虚拟主播直播方法及系统
CN111417988A (zh) * 2017-07-28 2020-07-14 北奥拜勃工作室有限公司 用于实时复杂角色动画和交互性的系统和方法
CN108198234A (zh) * 2018-01-12 2018-06-22 北京蜜枝科技有限公司 可实时互动的虚拟角色生成系统及方法
CN108734788A (zh) * 2018-05-17 2018-11-02 成都明镜视觉科技有限公司 一种3d对象在虚拟场景中的节点化组织方法
CN109395390A (zh) * 2018-10-26 2019-03-01 网易(杭州)网络有限公司 游戏角色脸部模型的处理方法、装置、处理器及终端
CN109395390B (zh) * 2018-10-26 2021-12-21 网易(杭州)网络有限公司 游戏角色脸部模型的处理方法、装置、处理器及终端
CN109547415B (zh) * 2018-10-29 2021-03-16 深圳市瑞立视多媒体科技有限公司 一种数据传输的方法、装置、终端设备及存储介质
CN109547415A (zh) * 2018-10-29 2019-03-29 深圳市瑞立视多媒体科技有限公司 一种数据传输的方法、装置、终端设备及存储介质
CN109816773A (zh) * 2018-12-29 2019-05-28 深圳市瑞立视多媒体科技有限公司 一种虚拟人物的骨骼模型的驱动方法、插件及终端设备
CN109961496A (zh) * 2019-02-22 2019-07-02 厦门美图之家科技有限公司 表情驱动方法及表情驱动装置
CN109961496B (zh) * 2019-02-22 2022-10-28 厦门美图宜肤科技有限公司 表情驱动方法及表情驱动装置
CN110557625A (zh) * 2019-09-17 2019-12-10 北京达佳互联信息技术有限公司 虚拟形象直播方法、终端、计算机设备及存储介质
CN111383309A (zh) * 2020-03-06 2020-07-07 腾讯科技(深圳)有限公司 一种骨骼动画驱动方法、装置及存储介质
CN111383309B (zh) * 2020-03-06 2023-03-17 腾讯科技(深圳)有限公司 一种骨骼动画驱动方法、装置及存储介质
CN111462343A (zh) * 2020-03-31 2020-07-28 腾讯科技(深圳)有限公司 数据处理方法、装置、电子设备及存储介质
CN111462343B (zh) * 2020-03-31 2023-03-17 腾讯科技(深圳)有限公司 数据处理方法、装置、电子设备及存储介质
CN112200892A (zh) * 2020-09-30 2021-01-08 京东方科技集团股份有限公司 一种显示处理方法和装置
CN112330805A (zh) * 2020-11-25 2021-02-05 北京百度网讯科技有限公司 人脸3d模型生成方法、装置、设备及可读存储介质
CN112330805B (zh) * 2020-11-25 2023-08-08 北京百度网讯科技有限公司 人脸3d模型生成方法、装置、设备及可读存储介质
CN112819971A (zh) * 2021-01-26 2021-05-18 北京百度网讯科技有限公司 虚拟形象的生成方法、装置、设备和介质

Also Published As

Publication number Publication date
CN100530244C (zh) 2009-08-19

Similar Documents

Publication Publication Date Title
CN1885348A (zh) 一种基于骨骼的任意拓扑结构虚拟角色的驱动方法
Gomes et al. Bitdrones: Towards using 3d nanocopter displays as interactive self-levitating programmable matter
WO2021155686A1 (zh) 一种制作动画的方法、装置、计算设备及存储介质
CN1763784A (zh) 一种三维场景实时绘制框架和绘制方法
CN113689537A (zh) 用于基于体素的三维建模的系统、方法和设备
CN106296778A (zh) 虚拟对象运动控制方法与装置
CN101055494A (zh) 基于空间索引立方体全景视频的虚拟场景漫游方法及其系统
CN109544683B (zh) 基于倾斜摄影数据的城市建筑群地震反应动态可视化方法
CN108876814A (zh) 一种生成姿态流图像的方法
CN101059760A (zh) Opengl到opengl│es翻译器和opengl│es仿真器
CN1694126A (zh) 一种三维场景动态建模和实时仿真的系统及方法
CN106710003A (zh) 一种基于OpenGL ES的三维拍照方法和系统
CN1975785A (zh) 骨骼动画的生成、实现方法/装置、游戏光盘以及外接卡
CN113344777B (zh) 基于三维人脸分解的换脸与重演方法及装置
CN1753033A (zh) 逼真三维地形几何模型的实时绘制方法
Quigley et al. Real-time interactive tree animation
US20230081791A1 (en) Displaced Micro-meshes for Ray and Path Tracing
CN1949274A (zh) 一种虚拟人群运动的三维可视化方法
CN106780707B (zh) 模拟场景中全局光照的方法和装置
CN107665269A (zh) 基于地理信息的快速人群疏散仿真方法和装置
CN108717729A (zh) 一种面向虚拟地球的地形多尺度tin在线可视化方法
CN103377484A (zh) 用于三维动画制作的角色表情信息控制方法
CN1851753A (zh) 一种基于状态集的Shader三维图形绘制框架和绘制方法
CN109493410A (zh) 一种千兆级像素图像的实时渲染方法
US11062495B2 (en) Systems and methods for partitioning an animatable model

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: XIAOSHAN INDUSTRY INSTITUTE

Free format text: FORMER OWNER: INSTITUTE OF COMPUTING TECHNOLOGY, CHINESE ACADEMY OF SCIENCES

Effective date: 20130402

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100080 HAIDIAN, BEIJING TO: 311215 HANGZHOU, ZHEJIANG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20130402

Address after: 311215, Hangzhou, Zhejiang province Xiaoshan District, Ning Town, civilization Road, No. 328, Jiangning building, east block, 7 floor

Patentee after: XIAOSHAN INDUSTRY RESEARCH INSTITUTE

Address before: 100080 Haidian District, Zhongguancun Academy of Sciences, South Road, No. 6, No.

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090819

Termination date: 20160621

CF01 Termination of patent right due to non-payment of annual fee