1、计算机动画技术,第七讲 关节与人体动画,2009,北京航空航天大学计算机学院 孟宪海,2,2018/9/15,北京航空航天大学,目录,计算机动画中的运动学 关节动画技术; 正向运动学; 逆向运动学; 运动捕捉技术; 过程纹理动画;,3,2018/9/15,北京航空航天大学,关节动画技术,有骨架动物的动画技术: 计算机动画技术中最具挑战性的课题之一; 促进了机器人等学科的发展; 使人类采用计算机动画技术模拟自身的行为和动作成为了可能;,4,2018/9/15,北京航空航天大学,关节动画技术,骨架动画的复杂性: 建模 现有的参数曲面、隐函数曲面造型等技术难以再现真实的人物和动物,随着三维扫描技术的
2、出现,该问题已得到较好的解决; 绘制 动物与人体的绘制有别于传统图形绘制,目前在绘制皮肤、毛发和皱纹等特殊效果上的各种技术日益成熟; 运动控制,5,2018/9/15,北京航空航天大学,关节动画技术,骨架动画的复杂性: 运动控制技术发展较为滞后 人体或动物的运动涉及到大量的自由度,其运动的确定非常复杂; 运动看上去相对直观、简单,但任何动作都是自然平衡和环境的多重影响的结果,是许多因素的协同作用所致; 每个人体或动物角色均有一定的个性,如何抽取描述角色个性的参数是有骨架角色动画的重要问题;,6,2018/9/15,北京航空航天大学,关节动画技术,骨架动画: 骨架控制三维动画角色的运动; 角色的
3、骨架定义为一系列骨件,而包裹这些骨件的“皮肤”则是一个顶点网;每个顶点的位置因受到一个或多个骨件运动的影响而变化; 因此,只要定义好角色模型的骨架动作就可以实现栩栩如生的动画了; 定义为皮肤顶点的运动则以数学公式的方式生成。,7,2018/9/15,北京航空航天大学,关节动画技术,骨架结构的关键: 关节结构:基于关节链的运动控制: 如何有效地描述关节链结构; 如何有效地控制关节链结构;,8,2018/9/15,北京航空航天大学,关节动画技术,关节结构: 关节链 一系列依次相连的刚体连接而成的开链; 两刚体的连接点称为关节(joint); 连接两相邻关节的刚体称为连杆(link); 计算机动画中
4、将关节限制为旋转关节,相邻刚体在其连接关节处只能做相对旋转运动,不能做平移运动; 基结点和末端影响器 关节链的起点为基结点; 其自由末端为末端影响器(end effector);,9,2018/9/15,北京航空航天大学,关节动画技术,关节结构: 自由度 DOF(degree of freedom), 完全确定关节链结构的状态所需的独立变量个数; 无约束刚体的自由度为6; 状态空间 定义关节链结构的所有可能形态的向量空间; 状态空间的每个向量(状态向量)定义了关节链结构的一种形态; 可由一组独立的位置、朝向及关节旋转等参数确定; 状态空间的维数等于关节链结构的自由度;=(x, y, z, ,)
5、,10,2018/9/15,北京航空航天大学,关节动画技术,关节结构: 一条关节链结构的运动等价于在其状态空间中定义一条m维的运动路径; 一条关节链通常不足以定义一个复杂的骨架; 需将多个关节链结构有约束地连接起来构造复杂的模型;,11,2018/9/15,北京航空航天大学,关节链结构的表示,DH表示法: 对每一链杆建立坐标标架来描述链杆相对于其相邻的链杆的运动; 用四个独立的参数来定义相邻链杆坐标标架间的线性变换关系; 链杆的长度li、相邻链杆间的距离di、扭角i和夹角i; (li, i)链杆参数; (di, i)关节参数; 适合一个旋转自由度的关节;,12,2018/9/15,北京航空航天
6、大学,关节链结构的表示,13,2018/9/15,北京航空航天大学,关节链结构的表示,AP表示法: DH表示法比较经济,没有任何冗余信息,但只能表示单链结构; 1988年,轴位置关节表示法(Axis-position joint, AP); 可以方便地表示多分支的关节结构; 需要存储:每个关节的位置;每个关节轴线的方向;指向每个关节所连的链杆的指针; 描述相邻链杆的关系时需要七个参数,DH只需要四个;,14,2018/9/15,北京航空航天大学,关节动画技术,关节链结构的运动求解技术: 驱动关节链结构运动的方式; 运动学模型(kinematics): 物体的运动独立于产生运动的力,其参数包括物
7、体的位置、速度和加速度; 动力学模型(dynamics): 物体的运动由所受的力控制,有关运动参数完全由动力学方程决定;,15,2018/9/15,北京航空航天大学,关节链结构的运动控制,运动学模型: 结构的运动要受到整体连接性的限制; 一个连杆引起其周围的连杆运动,连杆本身具有限制; 由于这些限制必须在所有的插值位置上有效,所以不能轻易的使用关键帧系统;设关节链的末端影响器关于世界坐标系的方位为X; 关节链结构的状态向量为;X = f (),16,2018/9/15,北京航空航天大学,关节链结构的运动控制,运动学模型: 正向动力学(Forward Kinematics) 通过给定状态向量来确
8、定各关节的位置及末端影响器的位置,正向求解过程;X = f () 逆向动力学(Inverse Kinematics) 目标驱动法,给定末端影响器的方位X,然后逆向求解关节链结构的状态向量,进而求得各关节的空间位置,逆向运动学方程可描述为: = f-1 (X ),17,2018/9/15,北京航空航天大学,关节链结构的运动控制,正向动力学法: 求解过程直观简单; 需要制作者清晰地定义关节结构中的每个部件的所有运动; 过程比较繁琐,太多的自由度使用户无所适从;,18,2018/9/15,北京航空航天大学,关节链结构的运动控制,正向动力学: 可采用脚本语言来辅助减轻操作的复杂性: 脚本语言中用曲线以
9、一种时间的函数来定义变换值;,19,2018/9/15,北京航空航天大学,关节链结构的运动控制,逆向动力学: 只需给定末端影响器的空间方位,反求出整个状态向量; 用户的交互非常简便; 该方法求解不定系统方程,通常存在多解及求解不稳定线性,求解过程比较复杂; 在实际中可对关节结构赋以一定的约束来减少多解情况;,20,2018/9/15,北京航空航天大学,关节链结构的运动控制,二链杆关节链结构的运动过程: 正向运动的解:,21,2018/9/15,北京航空航天大学,关节链结构的运动控制,二链杆关节链结构的运动过程: 逆向运动的解:,当链杆数增加时,无论正向还是逆向,方程均变得非常复杂!,22,20
10、18/9/15,北京航空航天大学,关节链结构的运动控制,逆向运动方程的求解: 正向运动方程求解直接; 但是一个高度非线性的函数,且其复杂性随着关节链结构的链杆数目增大而快速增长; 事实上不能给出其逆函数的解析表达式; 采用分段线性函数来逼近函数; 设状态向量维数为m,末端方位向量的维数为k,有微分局部线性化运动方程:dX=J()d J为km阶Jacobian矩阵,其i行j列的元素为: 逆函数可通过下述局部线性化来逼近:d = J-1(dX) 当末端影响器从X运动到Xgoal时,可采用逐步逼近法来求解链结构的目标运动状态;,23,2018/9/15,北京航空航天大学,关节链结构的运动控制,逆向求
11、解的逐步逼近法的几何说明,24,2018/9/15,北京航空航天大学,关节动画技术,复杂骨架的层次构造 大部分骨架结构在一些关节处具有多个分支; 所有的链杆在关节处形成了一个网状结构; 将复杂骨架表达为关节的树状层次结构; 树中每个结点均对应一个关节;,25,2018/9/15,北京航空航天大学,骨架层次构造,26,2018/9/15,北京航空航天大学,骨架层次构造,骨架结构的运动控制: 利用树结构将复杂的多分支关节结构分解成许多开的单链结构; 对每个单链结构应用运动控制技术;,27,2018/9/15,北京航空航天大学,骨架结构的运动控制,逆向运动学的应用: 根据逆向运动学,只需给出单链结构
12、的末端影响器的方位就可以求出其状态向量; 在计算机动画系统中,只需采用关键帧插值或其他动画技术来生成末端影响器的方位动画,就可生成整个单链结构在每一时刻的状态向量,从而达到驱动关节链结构的目的; 处理目标跟踪方面更为方便;,28,2018/9/15,北京航空航天大学,骨架结构的运动控制,目标驱动技术逆向运动学的应用: 目标跟踪技术可简化为一系列运动的约束; 物体的运动完全由目标物体的运动所驱动; 主要的运动约束: 位置约束物体的局部坐标原点与目标物体的局部坐标原点重合,且以同样的平移速度运动; 方向约束物体的朝向同物体的局部坐标原点和目标物体的局部坐标原点所定义的方向一致; 运动约束技术极大地
13、减轻了用户交互的复杂性,提高了生成动画的真实性,对逆向运动学方法求解复杂的骨架运动尤为重要;,29,2018/9/15,北京航空航天大学,骨架结构的运动控制,正向运动学的应用: 可采用关键状态向量来插值生成任意时刻的状态向量; 但需要大量的用户交互,而且所生成的末端影响器的运动很难跟踪目标; 一种解决方法是建立一些模型,对于像行走、跑、抓等普通的姿态预先写出正向运动学的脚本; 在侏罗纪公园中,ILM利用真实的模型在操控下的运动,记录关键节点的运动生成一个真实的脚本;,30,2018/9/15,北京航空航天大学,骨架结构的运动控制,动作捕获正向运动学的应用: 采用人类演员与运动跟踪设备,记录演员
14、的运动数据,生成对计算机模型的一个运动脚本;,31,2018/9/15,北京航空航天大学,骨架结构的运动控制,动作捕获 设置关键点; 利用光学仪器和高速摄影机;,32,2018/9/15,北京航空航天大学,33,2018/9/15,北京航空航天大学,骨架结构的运动控制,基于捕获的方法得到了广泛的应用; 但设备昂贵,只能生成预先设计好的动作; 利用运动学方程来控制人体骨架仍具有现实意义; 如何利用计算机生成协调一致的骨架运动;,34,2018/9/15,北京航空航天大学,骨架结构的运动控制,两足行走模型: 动画设计者无需给出各关节的运动细节,只需给出运动参数如行走方向、速度等; 人体行走是一个循
15、环往复的过程,给出其中一个步态的循环,就可生成整个行走动画序列; 首先定义一组与简单机械抽象地结合在一起的步态决定因子,以解释两足行走的运动学特性; 在骨架模型上每次增加一个步态决定因子来逐渐建立复杂的步态; 某个决定因子依赖于某个关节中的一个自由度;,35,2018/9/15,北京航空航天大学,两足行走模型,步态决定因子: 圆规步态; 骨盆旋转; 骨盆倾斜; 支撑腿的弯曲; 支撑腿的脚底弯曲; 骨盆侧面的移位;,36,2018/9/15,北京航空航天大学,两足行走模型,两足行走模型: 利用骨架和步态的定义; 在一个步态循环所需的时间周期内,每条腿均经历两个支撑阶段和摆动阶段; 每个阶段的起始
16、点是脚跟部着地和脚趾离地,而且两条腿所处的阶段恰好相反;为了区分跑和走,引入负载因子,即支撑在整个周期所占的比例,行走时该因子大于0.5;,37,2018/9/15,北京航空航天大学,38,2018/9/15,北京航空航天大学,骨架结构的运动控制,骨架驱动的肌肉模型: 各链杆为刚体,运动缺乏生命特征; 动物骨架的运动是皮下肌肉变形的结果; 为获得真实的动画效果,必须考虑肌肉在骨架运动中的变形效果; 所模拟的动物组织可分作三层: 骨架层、肌肉层和皮肤层; 运动学驱动骨架驱动肌肉收缩和扩张产生皮肤表面的变形可见的表面几何;,39,2018/9/15,北京航空航天大学,骨架驱动的肌肉模型,骨架驱动的
17、肌肉模型: Chadwich,1989年; 不真正建立皮肤和骨架层之间的肌肉层; 采用自由变形技术来驱动皮肤表面几何的变形; 利用按一定方式组织好的FFD来抽象表达肌肉层的功能,每块FFD被表示成一个三三次Bezier体;,40,2018/9/15,北京航空航天大学,骨架驱动的肌肉模型,骨架驱动的肌肉模型: 初始为长方体网状结构,有七个垂直于轴线的平面; 两端四个平面起保持连续性的作用; 中间三个平面用来驱动皮肤表面的变形; 将皮肤表面几何嵌入到FFD表示的肌肉模型中,建立皮肤表面与肌肉层的连接关系,通过改变FFD的控制顶点,达到变形皮肤表面的目的;,41,2018/9/15,北京航空航天大学
18、,骨架驱动的肌肉模型,骨架驱动的肌肉模型: 用户交互地将皮肤表面包裹在骨架上; 需要皮肤变形的区域沿骨架轴向放置一些FFD块; 建立运动变形关系;,42,2018/9/15,北京航空航天大学,自然景物动画,自然景物造型和运动模拟: 过程纹理造型和动画技术; 自然景物造型的过程式技术; 基于物理的模拟技术; 下一节中会讲到;,43,2018/9/15,北京航空航天大学,过程纹理造型和动画技术,过程纹理造型和动画技术 传统的造型技术不易构造具有丰富表面细节的几何景物; 二维纹理映射无法对动态变化的纹理细节进行有效的模拟; 过程纹理造型和动画技术: 三维纹理映射技术; 过程纹理造型技术; 过程纹理的
19、动画技术;,44,2018/9/15,北京航空航天大学,过程纹理造型和动画技术,三维纹理映射技术: 将三维纹理函数直接定义在三维纹理空间:T = T(x,y,z), T为该点处的纹理颜色值 纹理空间与景物空间在数学意义上是等同的,可以通过空间嵌入来实现纹理映射; 嵌入到三维纹理空间中的景物表面的纹理属性由该表面与三维纹理场的交来确定; 常用三维纹理的构造方法: 基于离散采样的数字化纹理; 采用数学模型生成纹理; 数学模型纹理过程迭代函数;,45,2018/9/15,北京航空航天大学,过程纹理造型技术,过程纹理(procedural texture): 解析表达的数学模型; 能用一些简单的参数来
20、逼真地描述复杂的自然纹理细节; 先要从原始物体中提炼出能体现此类物体特性的数学模型,并通过解析表达的数学模型以算法的形式表达出来,最终通过计算机对算法的执行完成对物体纹理的仿真再现; 经验模型,主要用于模拟自然界中常见的木纹,云等纹理。大多数的过程纹理都是基于某类噪声函数(Noise Function;,46,2018/9/15,北京航空航天大学,过程纹理造型技术,木纹函数: 1985年,Peachey,木制品的纹理效果; 采用一组共轴圆柱面定义纹理函数; 把位于相邻圆柱面之间点的纹理函数值交替地取为“明”或“暗”; 引入扰动、扭曲和倾斜操作来制造不规则感;,47,2018/9/15,北京航空
21、航天大学,过程纹理造型技术,分形随机函数: 分维布朗运动随机过程模型广泛地用作自然界中的许多时间序列模型; 利用其简化模型模拟地貌表面的纹理;,48,2018/9/15,北京航空航天大学,过程纹理造型技术,分形: 分形(Fractal)的原义具有不规则、支离破碎等意义,分形几何学是一门以非规则几何形态为研究对象的几何学。 由于不规则现象在自然界是普遍存在的,因此分形几何又称为描述大自然的几何学。 分形几何与传统几何相比有什么特点: 从整体上看,分形几何图形是处处不规则的。例如,海岸线和山川形状,从远距离观察,其形状是极不规则的。 在不同尺度上,图形的规则性又是相同的。上述的海岸线和山川形状,从
22、近距离观察,其局部形状又和整体形态相似,它们从整体到局部,都是自相似的。,49,2018/9/15,北京航空航天大学,过程纹理造型技术,Perlin噪声: 使用随机数生成器去创造不可预测性; 物体的行为和运动表现的更加自然,或者生成纹理; 自然界中很多事物是分形的。它们有着很多层次细节。最平常的例子是山峰轮廓。它包含着高度上的很大变化(山峰),中等变化(丘陵),小的变化(砾石),微小变化(石头).你可以继续想象。 观察几乎所有事物:片状分布于田间草,海中的波浪,蚂蚁的运动方式,树枝的运动,大理石的花纹,风。所有这些现象表现出了同一种的大小的变化形式 ; Perlin噪声函数通过直接添加一定范围
23、内,不同比例的噪声函数来重现这种现象,50,2018/9/15,北京航空航天大学,过程纹理造型技术,噪声函数: 噪声函数基本上是一个种子随机发生器; 以一个整数作为参数,根据这个参数返回一个随机数; 两次传同一个参数进来,它就会产生两次相同的数;,51,2018/9/15,北京航空航天大学,过程纹理造型技术,噪声函数:,52,2018/9/15,北京航空航天大学,过程纹理造型技术,Perlin噪声函数: 使用很多平滑函数,分别拥有各种各样的频率和振幅,可以把他们叠加在一起来创建一个漂亮的噪声函数就是柏林噪声函数;,53,2018/9/15,北京航空航天大学,过程纹理造型技术,Perlin噪声函
24、数: 2D扩展;,54,2018/9/15,北京航空航天大学,过程纹理造型技术,Perlin噪声函数 3D扩展:,55,2018/9/15,北京航空航天大学,过程纹理造型技术,Perlin噪声函数应用: 大理石纹理;,56,2018/9/15,北京航空航天大学,过程纹理造型技术,Perlin噪声函数应用: 自然水面模拟;,57,2018/9/15,北京航空航天大学,过程纹理造型技术,Perlin噪声函数应用:,58,2018/9/15,北京航空航天大学,过程纹理造型技术,Perlin噪声函数应用: 地形建模;,59,2018/9/15,北京航空航天大学,过程纹理造型技术,Perlin噪声函数应用: 自然景物模拟;,60,2018/9/15,北京航空航天大学,过程纹理动画技术,过程纹理动画技术: 过程纹理有效实现了不规则景物的造型; 过程纹理动画: 随时间变化改变纹理空间; 在纹理空间中移动绘制点;,61,2018/9/15,北京航空航天大学,1,2,3,4,课后作业,阐述说明正向运动学与逆向运动学的区别,什么是关节链的自由度和状态向量?,举例写出一个骨架结构的树形层次结构?,简要介绍一下Perlin噪声函数?,