骨骼皮肤绑定技术的研究及实现

浙江大学

硕士学位论文

骨骼皮肤绑定技术的研究及实现

姓名:李想

申请学位级别:硕士

专业:计算机应用技术

指导教师:孙守迁

20060301

浙江大学硕士学位论文

1.2理论背景

三维角色动画和骨骼皮肤动画的相关内容和技术(图1.1)是本文研究的主要理论背景和应用环境,本节中将分别予以介绍。———————————一竺璺竺竺

。。…。。。。。,i…。。

….一一.…..~…..杆状动画l顶点动画

Il骨骼皮肤动画|……L-—---?—-?--~Lw—-。-。。-—-。。。一一-…-一一…rL一一,一..一一u…u。….~

匿圜匿委匿圈匿蚕图1.1

1.2.1三维角色动画

三维角色动画【11【21本质上是拟人动画——从运动考虑。它从诞生开始就得到了广泛的应用,主要包括:电影行业(例如《金刚》等)、游戏行业(《(SplinterCell))等)、仿真领域(虚拟城区等)、辅助训练领域(高尔夫球等)[31、人机工程(Jack等)和医疗领域(步态分析等),这些应用又反过来促进了角色动画技术的发展。

应用领域的不同导致使用角色动画技术的差异:电影、仿真要求极具真实感的角色(图1.2);游戏、辅助训练要求在保证速度的基础上具有较好的真实感(图1|3);而人机工程和医疗领域对真实感要求不高,但是角色需要具有多层人体模型的特征和参数,以便进行动力学和生物力学方面的分析(图1.4)。本文研究内容属于前两个方面。

图1.2图1.3图1.4

在角色动画制作内容中,主要包括角色的造型、运动调整、材质设置以及最后渲染等。其中运动调整和角色造型是角色动画的关键和难点,两个方面的技术经过发展,细分成了很多具体的门类,从不同的角度解决特定的问题。

其中运动生成和控制方式有四种(针对骨骼皮肤动画数据):第一种是关键帧方式,通过设最关键帧中骨骼关节点的位置和角度来生成运动;第二种是运动学方式,通过设置速度和角速度来计算模型位置和角度等参数,但是不计较这些速度值是如何得到的;第三种是动力学方式,通过作用力分析和力学公式得到物体加速度、速度等运动参数,然后用这些参数计算实际模型位置,生成运动;第

四种是使用运动捕获技术,通过Motion.Capture机器测量实际人体的运动,并记

(图1.7和图1.8)。

图1.71.2.1.3骨骼皮肤动画(SkeletaIAnimation)

图1.8

为了解决顶点动画的种种问题,研究人员发明了骨骼皮肤动画。骨骼皮肤动画特别适合于人物和其他的脊椎动物——具有骨架结构的动画模拟。

一般来说,骨骼皮肤动画包含两部分信息:一是层次化骨架(图1.9);另一个部分是蒙在骨架上的皮肤(图1.10)。用骨骼承载运动,用皮肤模型表达角色,再利用骨骼控制皮肤变形就达到了角色动画模拟的目的。本文的研究重点就是骨骼皮肤动画。

骨骼皮肤动画和顶点动画相比,优点是内存消耗小,具备交互性(动画是实时计算l:l:i来的),并且控制层次高便于修改动画数据:缺点是用骨骼控制皮肤的机制复杂,而且需要的计算量大。但是随着应用中交互性和真实感的需求越来越强烈,骨骼皮肤动画技术成为目前被广泛应用的角色动画技术和主要的发展方向。

图1.91.2.1.4多层模型动画

图1.10

多层模型动画是在骨骼皮肤模型的基础上,在皮肤模型下添加其他层次形成的,控制机制比较复杂,例如由骨骼承载运动,骨骼控制肌肉层,皮肤由骨骼、肌肉和脂肪层共同控制生成动画,其中对肌肉的模拟可以大大提高动画效果的真

实性(图1.11)【71。由于计算的时间和空间复杂性高,还没有大规模应用。目前

对肌肉的模拟主要是在二层模型的基础上增加其它的算法(比如作用线模型)来模拟肌肉变形效果。

图1.11

1.2.2骨骼皮肤动画(Skole'taIAnima'l:ion)

1.2.2.1动画中的数据表示

骨骼皮肤动画主要涉及三种数据:运动数据、骨骼数据和皮肤数据。其中运动数据中包含旋转数据和平移数据两个部分;骨骼数据分为层次化结构数据和非层次化数据两种类型。

1、运动数据

运动数据是物体位置随时间的值序列。现在制造运动数据的方法有两种,一种是用动力学的方法得到循环性运动数据;另外一种就是普遍使用的运动捕获方法得到具有角色真实感的运动数据,使用运动捕获比较典型的例子有三维游戏《鬼武者》和电影《机械公敌》等。

运动捕获数据按照数据组织方式可分为层次化(BVH、HTR.)和非层次化(BVA)两种,分别应用于层次化骨骼和非层次化骨骼数据。由于层次化数据便于应用IK等运动学方法进行操作,本文使用BVH数据,格式如下:

在运动数据中,?旋转数据是一个重要的组成部分嘲,旋转数据有四种表示形式:

夺3x3矩阵(9个自由度)

浙江大学硕士学位论文

鞋a32引fd2I吒2吒3

L吒i码3/

夺欧拉角(3个自由度)

夺-轴-NN(4个自由度一轴向量,角度)

Axis(x,Y,z),口

令四元数(4个自由度)

Quaternion(x,y,z,W)

每种形式都有各自的优缺点:其中,四元数以旋转无歧异、能够平滑插

值、存储空间小等优点得到广泛的应用;而欧拉角易于理解,是界面交互的主要手段;而OpenOL以矩阵形式计算和存储平移变换和旋转变换。所以我们使用了欧拉角、矩阵和四元数三种形式在不同的场合表示旋转。

2)骨骼数据

骨骼数据是骨骼皮肤动画中的骨骼层,其生成方法有三种:第一是利用三维建模软件构造骨骼,这种方法可以建立任意复杂程度的骨骼,具有真实感(图1.12);第二是从运动中提取骨骼,结果只是对骨骼的逻辑表示(图1.13);第三是根据皮肤生成骨骼数据,从皮肤的结构反推骨骼的位置,并连接成骨架,更具有抽象性和随意性。按照骨骼关节之间是否存在着父子关系,骨骼数据可以分为层次化骨骼和非层次化骨骼,其中层次化骨骼数据拓扑关系见图1.14。本文的做法是依据运动数据的格式BVH,抽取出层次化的骨骼数据,这样可以降低与其它运动控制方法的耦合性,利于系统实现。

图1.13

。≯矗

,赣Ⅲ辩㈣燃

r鼹隧絷滞必m图

。;,,女擎

图1.14

任何类型动画中都有自由度(DOF)的概念,自由度就是能够随着时间变化的数据。骨骼皮肤动画中,骨架结构的整体自由度是指关节的活动变量维数之和。每个关节的自由度一般包括3个平移自动度,用来表示位置和3个旋转自由度(欧拉角表示)。骨骼运动的数学表示如下:

M(t)=ftPo(t),QtO),Q2(t),L,9(f)】公式1.1

公式1.1中r表示时间,t'o(0表示根关节的位置随时间的函数,Qi(t)表示各个关节的旋转(四元数表示)随时间的函数。

由于骨骼承载动画数据,所以通过对骨骼自由度数据范围加以限制可以达到对动画进行约束的目的,很多运动控制的方法都据此设计(例如基于约束的IK等)。

3'皮肤数据

皮肤数据主要包含皮肤点位置信息、材质信息和纹理坐标信息。其获取方式主要有:

●三维扫描仪(图1.15)

?三维建模软件3DMAX和Poser等,格式OBJ、3DS等

?从二维图像重建三维模型(图1.16)

本文采用的是普通的3DS格式的模型数据,容易得到和修改。

图1.15图1.16

4、小结:

综上所述,本文使用了运动捕获的数据,从中提取出层次化的骨骼数据,皮肤数据使用的是三维建模软件生成的模型;重点研究这些数据之间如何配合完成骨骼皮肤绑定、生成动画的过程和算法(图1.17)。

2)运动连接

运动数据,不论是运动捕获生成的还是通过其他方法生成的,都是比较小的运动片断,用来表达一种特定运动(跑、跳、走等等),所以动画中富有情节的运动需要将这些运动段进行平滑连接得到,过程示意图1.19。

31运动重定向(motionretargeting)115]1161

在角色动画制作中,角色模型很有可能不是人体,或者是动物或者是人造的生物,他们有不同的形态和层次结构的骨架,为了可以重用运动数据到新骨架,需要运动重定向技术来保证结果的正确性和效果的真实性——不丧失原始运动的细节信息完成重定向。

运动重定向需要解决的问题分为:相同拓扑结构不同骨骼长度的运动重定向(图1.20);不同拓扑结构的运动重定向以及这两个问题的结合(图1.21)。

在运动重定向过程中,针对环境交互问题主要利用增加空间约束的方式完成;对于骨骼拓扑改变的问题可以分为从多到少和从少到多两种,解决算法很多,但是比较自动化的方法是增加一个中间骨架结构作为重定向媒介,对它定义好完整的重定向算法作为基本骨架结构,然后将重定向操作分成两步完成,分别对基本骨架进行。

图1.21

4)运动路径编辑I"1

动画数据放置到具体场景中,需要壁障;要壁障就要重新设计路径,在单纯的修改路径曲线的过程中,会出现角色朝向、角色步伐等信息出错,如何消除这些运动失真就是路径编辑技术的关键。

高层的路径规划算法也是建立在基本的路径编辑方法基础上的。1.2.2.3骨骼皮肤绑定技术(Skinning)

骨骼皮肤绑定技术主要解决的问题是使用运动数据驱动皮肤模型,得到骨骼皮肤动画。由于模型变形不当会产生失真,提高皮肤变形真实感和动画实时性就是绑定技术的目标。

骨骼皮肤绑定技术的研究涉及到以下三个方面:骨骼皮肤绑定过程的设计、骨骼皮肤绑定算法的研究和骨骼皮肤绑定在角色动画中的应用。

目前,国内外的研究工作主要围绕绑定算法进行,在第三章中将详细介绍相

关研究的进展情况。

1.2.2.4骨骼皮肤动画的制作过程

以Maya为例‘18】,骨骼皮肤动画的制作过程是:首先按照人体的各个部分分别建立模型,和各个部分的层次关系,建立好之后缝合成一个整体网格(图1.22);然后建立骨骼,包括关节设计、关节连接、对关节链结构设置正向反向运动学关系等步骤(图1.23);接着进行蒙皮操作,其中又包括刚性蒙皮和柔性蒙皮两种方法(图1.24);最后设计关键帧得到动画,或者导入运动捕获数据得到动画。

幽1.22图1.23图1.24其中,蒙皮就是指骨骼皮肤绑定。这类三维软件进行蒙皮操作的过程对我们设计骨骼皮肤的绑定过程有指导意义,我们在下一章将详细介绍绑定过程的设计。

1.3研究内容和创新点

本文的内容主要包括:

1)研究骨骼皮肤绑定流程,分析其中的瓶颈问题。

2)实现各种绑定算法,研究绑定算法的发展过程,分析各种算法的优缺点。3)实现相应的骨骼皮肤动画系统,生成动画文件并设计应用接口。

文章的主要创新点:

1)建立完整的骨骼皮肤绑定流程,探讨在各个绑定阶段需要的相关技术和对复杂步骤的改进方法。

2)改进了目前最先进的绑定算法Boneblending,与同类算法相比,在降低时间复杂度的同时缩小了误差范围;之后在此基础上实现了综合绑定算法。1.4文章组织结构

组织结构如图1.25所示:第一章介绍角色动画技术的发展和骨骼皮肤动画的主要内容及骨骼皮肤绑定技术的概念,是背景知识介绍及相关工作总结;第二章提出骨骼皮肤绑定过程,并对各个环节的缺陷做出改进,目的是向快速绑定和自动绑定方向发展;第三章对骨骼皮肤绑定算法进行实践,比较算法的优缺点并提出算法的发展方向;在这个方向上,第四章详细介绍了我们对算法的改进和结果;

新江大学硕士学位论文

关研究的进展情况。

1.2.2.4骨骼皮肤动画的制作过程

以Maya为例Ⅲ1,骨骼皮肤动画的制作过程是:首先按照人体的各个部分分别建立模型,和各个部分的层次关系,建立好之后缝合成一个整体网格(图122);然后建立骨骼,包括关节设计、关节连接、对关节链结构设置正向反向运动学关系等步骤(图1.23);接着进行蒙皮操作,其中又包括刚性蒙皮和柔性蒙皮两种方法(圈124);最后设计关键帧得到动画,或者导入运动捕获数据得到动画。

图1.22图1.23图1.24其中,蒙皮就是指骨骼皮肤绑定。这类三维软件进行蒙皮操作的过程对我们设计骨骼皮肤的绑定过程有指导意义,我们在下一章将详细介绍绑定过程的设计。

1.3研究内容和创新点

本文的内容主要包括:

1)研究骨骼皮肤绑定流程,分析其中的瓶颈问题。

2)实现各种绑定算法,研究绑定算法的发展过程,分析各种算法的优缺点,3)实现相应的骨骼皮肤动碗系统,生成动画文件并设计应用接口。

文章的主要创新点:

1)建立完整的骨骼皮肤绑定流程,探讨在各个绑定阶段需要的相关技术和对复杂步骤的改进方法。

2)改进了目前最先进的绑定算法Boneblending,与同类算法相比,在降低肘阃复杂度的同时缩小了误差范围;之后在此基础上实现了综合绑定算法。1.4文章组织结构

组织结构如图1.25所示;第~章介绍角色动画技术的发展和骨骼皮肤动画的主要内容及骨骼皮肤绑定技术的概念,是背景知识介绍及相关工作总结;第二章提出骨骼皮肤绑定过程,并对各个环节的缺陷做出改进,目的是向快速绑定和自动绑定方向发展;第三章对骨骼皮肤绑定算法进行实践,比较算法的优缺点并提出算法的发展方向;在这个方向上,第四章详细介绍了我们对算法的改进和结果;出算法的发展方向;在这个方向上,第四章详细介绍了我们对算法的改进和结果;

关研究的进展情况。

1.2.2.4骨骼皮肤动画的制作过程

以Maya为例‘18】,骨骼皮肤动画的制作过程是:首先按照人体的各个部分分别建立模型,和各个部分的层次关系,建立好之后缝合成一个整体网格(图1.22);然后建立骨骼,包括关节设计、关节连接、对关节链结构设置正向反向运动学关系等步骤(图1.23);接着进行蒙皮操作,其中又包括刚性蒙皮和柔性蒙皮两种方法(图1.24);最后设计关键帧得到动画,或者导入运动捕获数据得到动画。

幽1.22图1.23图1.24其中,蒙皮就是指骨骼皮肤绑定。这类三维软件进行蒙皮操作的过程对我们设计骨骼皮肤的绑定过程有指导意义,我们在下一章将详细介绍绑定过程的设计。

1.3研究内容和创新点

本文的内容主要包括:

1)研究骨骼皮肤绑定流程,分析其中的瓶颈问题。

2)实现各种绑定算法,研究绑定算法的发展过程,分析各种算法的优缺点。3)实现相应的骨骼皮肤动画系统,生成动画文件并设计应用接口。

文章的主要创新点:

1)建立完整的骨骼皮肤绑定流程,探讨在各个绑定阶段需要的相关技术和对复杂步骤的改进方法。

2)改进了目前最先进的绑定算法Boneblending,与同类算法相比,在降低时间复杂度的同时缩小了误差范围;之后在此基础上实现了综合绑定算法。1.4文章组织结构

组织结构如图1.25所示:第一章介绍角色动画技术的发展和骨骼皮肤动画的主要内容及骨骼皮肤绑定技术的概念,是背景知识介绍及相关工作总结;第二章提出骨骼皮肤绑定过程,并对各个环节的缺陷做出改进,目的是向快速绑定和自动绑定方向发展;第三章对骨骼皮肤绑定算法进行实践,比较算法的优缺点并提出算法的发展方向;在这个方向上,第四章详细介绍了我们对算法的改进和结果;

这种方法随着关节链的增加和自由度的提高,计算的复杂性也越来越高,比利于实现和对计算过程进行控制。

3)逆向运动学求解——基于优化的方法

痧≯矿

酗2.4

如图2.4所示为Cyclic.CoordinateDescent算法的求解过程,计算结束的标志是:在反复求解的过程中IK链末端达到指定位置(满足精度要求)或者循环次数超过指定的次数(达到时间复杂度要求)。

与第一种方法相比,基于优化的方法的复杂度不随具体问题变化,并且计算过程易于控制;而且给各个关节增加约束也比较方便。

2.2.2三视图的二维lK操作

但是由于在3D视图中进行1K操作具有歧异性,例如图2.5所示的威斯康星大学IK&BVHviewer中向上抬臂操作和向后抬臂操作无法精确完成,不利于骨骼皮肤绑定中精确的设置关节位景;所以为了达到“所见即所得”的操作结果,将Ⅸ操作放置到正交透视投影中完成,可以精确的指定目的位置。

图2.5

其实将Ⅸ操作本身放置到正交透视投影并不复杂,关键是如何在三个视图间保证操作的正确性。我们在系统中的解决方法是在每个视图的CCD链计算完成之后,重新计算骨骼的旋转和平移分量,保证旋转为空,骨骼的旋转操作完全由局部坐标系下的平移代替,使各个视图互不影响又能配合操作。实践中,我们模仿poser的操作方式,让用户对IK的根关节进行选择,结果如图2.6-2所示。

相关文档
最新文档