制作人类运动的动画_互动科普

使用社交账号登录

购买价格:
付款方式:

互动科普

主页 > 科普纵览 > 信息 • 能源

制作人类运动的动画

admin  发表于 2017年09月16日


计算机动画已经越来越逼真了。利用模拟技术(以物理定律为基础的一种技术),研究人员创作出了能够跑步、跳水、骑自行车和跳跃的虚拟人。

 1.PNG

人类非常善于看出人的运动的种种复杂微妙的细节。例如,人常常能够仅根据走路的步伐就在很远的距离上辨认出自己的朋友。由于具备这种能力,人们对于以人为角色的动画有很挑剔的要求。为了使计算机生成的动画栩栩如生、令人信服,虚拟演员的动作必须具有自然的风格。

 

动画制作、虚拟环境和电脑游戏等场合需要使用合成的人类动作。动画制作者希望能够创作出一部儿童占据的镜头同他们的玩具占据的镜头一样多的《玩具总动员》。教练们可以用虚拟的竞争对手来激励并训练有远大抱负的运动员。电脑游戏设计者们则可以创作出其角色具有高度交互性且十分吸引人的电脑游戏产品。模拟人的运动的能力在人体工程学、运动员的步法分析以及身体康复等领域中也具有重要的科学用途。

 

虽然合成的人类运动具有多种多样的用途,但向计算机规定运动则难得出乎人们意料。甚至连球的反弹这样简单的东西可能都难以用动画令人信服地显示出来,这部分是因为人们能很快捕捉到不自然的、难以置信的动作,尽管他们不一定知道毛病究竟出在何处。制作人的动画是特别费时间的,因为这种动画必须抓住人类运动的各种复杂微妙的细节才能反映出个性与情绪。

 

计算机动画制作技术可以分为3个基本类别:关键框架法(key framing)、动作捕捉法(motion capture)以及模拟法。所有这3种方法都要求在动画制作者对动作的微小细节的掌握程度和计算机独立完成的工作量之间作出某种权衡和折衷。关键框架法使动画制作者能够实现对微小细节的精细控制,但要求他们设法确保所得的结果自然而逼真。动作捕捉法和模拟法则以相当自动化的方式生成动作,但几乎没有什么精细调节的余地。

 

关键框架法和动作捕捉法

 

关键框架法这一名称是从一项传统的手工动画制作技术中借用来的。它要求动画制作者规定物体关键位置。然后计算机通过在这些位置之间进行平滑的内插而补上所差的框架。1995年的电影《玩具总动员》中的角色就是用这种方法制成动画的,其中每个主要人物都有七百多个控制位置。例如,若干单独的控制位置使某一角色的眉毛的各个不同部分能够动作。

 

使用有助于布置某些躯体关节的方法,规定关键框架的工作可部分地实现自动化。例如,如果某一人物的手必须处于某一特定位置上,计算机就可以计算出合适的厅和肩的角度。虽然这类方法可以过程得到简化,但关键框架法仍然要求动画制作者对运动物体的行如何随时间而变化有详尽的了解也要求动画制作者拥有通过关键框架构形表达此类信息的才能。关键框架法日益流行的原因在于这种法使动画制作者能在较大程度上制动作的微妙复杂的细节。

 2.PNG

另一种方法——动作捕捉——使用磁传感器或以视觉为基础的传感器记录下人或动物试验对象的三维动作。然后一台计算机利用这些数据制作某一人物的动画。这一技术使得许多有名的运动员成了体育电脑游戏中的人物的动作原型。

 

动作捕捉法日益流行的原因在于,许多常见的人类动作可以相当容易地记录下来。然而,一系列的问题使这种方法不能成为适用于所有各种场合的理想解决办法。首先,精确测量人体的运动是一件棘手的工作,因为当动作表演者在运动时,安放在皮肤和衣服上的标志会发生位置移动,从而使数据产生误差。其次,受试对象与动画角色之间在形状和尺寸上的差异也可能产生问题。例如,如果记录到测量对象触到一张真实的桌子,那么较矮的动画角色的手看起来就可能陷进桌子里了。

 

最后,当前的技术使某些动作的记录有困难。磁系统常常要求实验人员用电线把受试者连到一台计算机,这就限制了受试者运动的范围。在附近有金属物体或设备时(例如原地跑步的运动踏板,它可用来获取跑步的受试者的动作),这些系统也会产生噪声较大的数据。光学系统则存在着遮蔽问题,即身体的某一部位被另一部位挡住了而看不见。尽管存在这些缺点,大规模制作的动画中的许多动作仍然是通过对获得的数据进行修正使其与某一虚拟角色的尺寸及所要求的行为相符而生成的。

 

模拟

 

与关键框架法和动作捕捉法不同,模拟法是利用物理法则来生成各种人物和其它东西的运动的。虚拟的人通常表示为一组刚性的身体部位。例如,躯体的下部由躯干、大腿和小腿以及脚构成,而这几部分通过表示髋部、膝盖和脚踝的旋转关节连接起来。我和我的学生们利用各项研究(包括对尸体的测量)所获得的生物力学数据建立了精确的模型。例如,我们的虚拟成年男性的前臂质量为1.1公斤(重量为2.4磅),长度为0.24米(9.4英寸),平均周围长度大致为0.25米。

 3.PNG

虽然这些模型在物理上是可信的,但它们仅仅是人的躯体的近似表示。一组刚性的躯体部位忽略了肌肉群相对于骨骼的运动,另外,虽然肩常常被模拟为有3个自由度的单一关节,但人的锁骨和肩胛骨能做更复杂的运动,如耸肩等。最近研究人员开始建立更复杂的模型:由此所得的模拟将随着研究人员不断补充这样一些细节而变得越来越逼真。

 

当模型涉及的是无生命的东西(例如衣服或水)时,计算机可以通过让它们服从根据物理法则推导出的运动方程而确定它们的运动。在对一个球沿着山坡滚下这种情况进行模拟时,计算机可以通过考虑重力和其它一些力:比如球与地面的接触所产生的摩擦力)而计算出球的运动。但是人体内存在内部能源,并不仅仅是消极的、无生命的东西。因此,虚拟人需要一个肌肉或运动指令源,即一个“控制系统”。这个软件计算并施加被模拟机体的每一关节处的力矩,以使人物能够完成指定的动作。例如,缓步前进这一动作的控制系统必须确定使腿着地前向前摆动以防行走者摔倒所需的力矩。

 

我和我的学生们已经开发出各种运动——如跑步、跳水、骑自行车和体操跳跃——的控制系统。虽然这些运动项目的特性有很大的区别,但我们这些用手工制作的系统全都以基本相同的方式工作,并且是用一套共同的组成单元制作出来的。

 

我们的控制系统使用一台状态机,也就是一个用软件实现的算法,它确定每个关节在每一时刻应当做什么,然后就像一个乐队指挥一样确保这些关节在适当的时候履行这些功能。例如,跑步是两个阶段——即站立阶段(stance phase)和腾空阶段(flight phase)交替进行的一种循环性的活动。在站立阶段是一只腿起着支撑身体的作用,而在腾空阶段则两只脚都不着地。在站立过程中,与地面接触的那只腿的脚踝、膝盖和髋部必须提供支撑和平衡。然而,当那只脚在空中时,髋部具有一种不同的功能——使腿向前摆动以准备下一次着地状态机在髋部的各种不同作用间进行选择,并选出与跑步运动的当前阶段相适合的那一动作。

 

与每一阶段相关联的是对于模拟人体的30个关节中的每一个关节计算出所需角度的控制法则。这些控制法则就是表示身体的每一部位应当如何动作才能完成它在每一运动阶段中的预定功能的公式。为了使关节进入所需的位置,控制系统用公式计算出合适的扭矩。这些公式的作用就像弹簧一样,把关节拉向所需的角度。实质上,这些公式就是使身体各部位移动到正确位置上的肌肉。

 

为了使规定控制法则的问题得到简化,常常以协同的方式来运用四肢。例如,在站立阶段,模拟的跑步者的踝关节和膝关节配合动作使脚蹬离地面。只要有可能,控制法则就利用系统的被动行为来实现所需要的效果。我们假定人的效率相当高,因此节省能量的被动行为将能更准确地模仿人的运动。例如,在站立阶段,跑步者的膝盖起着弹簧的作用,先是压缩以存储能量然后又伸张以释放能量。

 

利用在某一阶段中空闲着的肢体来减少身体其它部位的运动所引起的干扰,也可以使模拟的运动显得更加自然。在模拟跑步的情况中,控制法则使跑步者的手臂朝着与腿相反的方向摆动,以减少身体的左右偏转。

 

优点与缺点

 

作为合成人类运动的一种方法,模拟法与关键框架法及动作捕捉法相比有两项潜在的优点。首先,可以很容易利用模拟来生成略微不同的动作序列,同时保持物理上的逼真一例如当一个人以每秒4米而不是每秒5米的速度跑步时。在这种情况下,仅靠快放或慢放另一类动画将可能使动作显得不自然。其次,实时模拟可以实现交互性。在虚拟环境和电脑游戏之类的人造角色必须对真实的人的动作作出反应的场合中,这是一个十分重要的特性。相比之下,以关键框架法和动作捕捉法为基础的合成运动制作是从一个预先计算好的动作库中选择并修改动作的。

5.PNG

 

不过模拟法也有一个缺点,那就是手工制作合适的控制系统将需要专业技能并耗费较多时间。为了解决这个问题,我和我的学生们开发出一个软件模块库,它的软件模块可以组合起来生成新的动作。具体地说就是,我们建造了一组基本的控制系统,即控制跳跃、跌倒、着地和平衡的4个系统。计算机可以把这些系统组合起来生成更复杂的动作,例如翻斤斗和跳水等。

 

我们也开始探索将现有的行为模式加以改动使之适合新角色的途径。这一过程相当困难,因为控制系统是针对特定模型的动态性质调整好了的。一般说来,为成年人开发出的系统不适用于儿童。为了修改一个现有的行为模式使之适合于其物理性质大不相同的一个新角色,我们开发出了调节控制系统的优化方法。例如,我们已成功地对一个用于男性跑步者的控制系统进行了改造,使之适用于女性和4岁的儿童。在这一过程中,我们考虑到了这三种模型的身体各部位质量上的差别以及其它许多参数。

 

最近几年中,研究人员研究了一些以模拟为基础的生成动作的方法,它们不需要建造人工制作的控制系统。几位研究人员把动作的合成当作路线优化问题来处理。这种表述方法把运动方程和所要求的动作的主要特性作为约束条件,并找出耗费的能量最少同时又满足这些约束条件的动作。在模拟跳跃时,约束条件可以是:人物在动作开始和结束时必须在地上,而在动作进行期间则在空中。然后优化软件就将自动地确定,人物在跳跃前必须屈膝才能以最少的能量消耗获取最大的跳跃高度。另一种方法则是自动搜索所有各种可能情况以找出最佳的控制系统。在最一般的情况下,这种方法必须确定一个人物可以如何从每一种可能的状态运动到其它每一种状态。由于此方法所解决的问题较之找出一条从起点到某一目标点的最优路线的问题更具一般性,因此,对于简单的模拟以及对于有多种解法(因而增加了计算机找到一种解法的可能性)的问题,这种方法是最成功的。完全自动化的方法优于需要人工设计的方法,但是研究人员尚未开发出即使缺乏对运动的许多先验知识也能生成复杂系统(如人)的行为的自动方法。

 

虽然控制系统难于建造,但使用却比较简便。动画制作者不需要详细了解行为或支配行为的公式就能够执行模拟以生成运动。借助模拟,可以实现对一般动作的控制,但不是对复杂微妙的动作的控制。例如,动画制作者可以规定一辆自行车的行进路径,但要规定骑车人骑车时兴高采烈、心情愉快就不那么容易了。通过模拟来自动地生成粗线条的总的运动过程,再借助关键框架法或动作捕捉法来生成比较细致的动作(如面部表情等),就可以部分地克服这一局限性。

 

通过增添一些随主要角色而运动的被动的次要成分,可以使模拟的运动显得更逼真。当体操运动员在蹦床上跳跃时,蹦床必须要变形。跑步者在沙滩上跑步时,沙必定会被压缩而显示出跑步者的足迹。衣服——它可以被模拟为用弹簧连接起来的一组点——应当随穿着衣服的人的运动而相应地运动。

 

模拟的另一个特点是,它使动画制作者能够在很大程度上支配涉及一群人的场景。在控制系统之上插入的一个软件层次可以使若干人物以一组的形式运动而不会彼此相撞。这一层软件根据这群人中其他成员以及周围环境中障碍物的远近而计算出每个人所需要的速度,然后控制系统就将此项速度信息用于运动。

 

我和我的学生们之所以要选择研究跑步和骑自行车等项体育活动,是因为这些运动的动力学特性限制了动作,从而限制了对控制法则的搜索。这一性质在我们对跳跃的模拟中是最明显的。在跳跃运动的大部分时间中,体操运动员的身体都是腾空的。控制法则能够影响关节的内部运动,但对于体操运动员的角动量则没有影响(角动量必须服从动量守恒的物理定律)。跑步是更为复杂的动作,因为跑步时合成的运动员大部分时间中都与地面接触,而控制法则计算出的关节扭矩则直接影响到运动的许多细节。因此,我们对于调整跑步者的运动所花的工夫,比调整体操运动员的动作所花的功夫要多得多。这一点对于模拟那些人的风度在其中起着很大作用的简单人类动作(如用姿势表示意思及坐立不安等)有影响。当有关的物理学法则不对一项运动的总的特性构成约束时,计算机能够成功地合成出运动,但将显得不够自然。模拟这类行为的控制法则需要把以对人的运动的观察和测量为基础的另一些规则考虑进去。

 

足够逼真?

 

评价模拟的人类运动的质量高低,其标准与具体的场合有关。用于培训、合作及娱乐的虚拟环境,要求模拟的运动有足够的表现力、逼真性并且丰富多彩,以便使用户能有一种身临其境、完全沉浸在其中的感觉。有些虚拟环境如有逼真的动作将会更加令人信服。对于这样一些场合,一个重大的挑战是图灵检验:模拟的运动是否同真实的人的运动一样自然(至少是在两种类型的运动都通过相同的图示模型播放出来的情况下)?初步的实验表明,对这个问题的答案眼下暂时是否定的。然而,如果在观看这两种类型的运动时,把人的躯体去掉,只用各个关节上的点来表示运动,那么有些观看者的确认为模拟的运动更自然一些。

 7.PNG

与虚拟环境这一类主要是视觉的应用场合相反,科学与工程问题需要的模拟是那些通过与人的资料进行严格对比而获得证实的模拟。一种简单的评估是比较真实的与合成的录像镜头。研究人员也应用关于地面反作用力、腾空时间、速度及步长等的生物力学资料来测定模拟的动作与人的动作的接近程度。

 

随着研究人员逐步深化他们对控制系统的认识,他们将开始借助这项技术来解决重要的科学和工程技术问题。理疗专家可能得益于对某些伤害所造成的不规则步法的深入了解。自行车设计人员则希望不需要造出原型车就能够确定骑车者骑乘设计新颖的自行车架的效率。跳水教练想要知道某位运动员是否强壮得能够表演新的动作。尽管控制系统固有的复杂性增加了其设计工作的难度,但此项技术所具有的牢固的科学基础使它可能适合于上述这些用途以及其它的科学用途。

                    


全部评论

你的评论