死亡总是令人失望的。即使在电子游戏中也是如此。这意味着一轮战斗的结束、一个关卡的结束,也许还意味着数分钟(或数小时)未保存的游戏成果的丢失。但在早期的游戏中,死亡不仅是件扫兴的事——在画面上也令人失望。
你那被击败的角色的身体会笨拙地从直立变为水平。也许它会破碎或消失。由于旧的关键帧动画(每个动作,如跳跃和下落,都会令人厌烦地重复),死亡看起来总是一模一样。这些蹩脚的、脚本化的死亡动画非常不真实,影响了游戏质量。
数字死亡的惊人转变
从早期开始,数字死亡已经以惊人的方式发生了变化。大家都知道游戏变得更加血腥,全球每天都有无数加仑的血液和断裂的骨头被制作成动画。但瘫倒的尸体的真实感也发生了巨大变化,这在很大程度上要归功于布娃娃物理效果。
布娃娃物理效果是一种程序动画类别,它能展示具有更逼真动作的类人形象。有时效果惊人地准确。其他时候,结果往往被过度强调,以至于变得很滑稽,手臂、腿和躯干像喝了太多龙舌兰酒的布娃娃一样摇晃和扭动。
如果在游戏中精心融入布娃娃物理效果,会增加真实感,特别是在充满无尽杀戮的屏幕场景中。例如,如果你在玩第一人称射击游戏,用各种武器射击其他角色,你的每个受害者每次被击中时的反应都会不同。射中敌人的肩膀会使身体上部在承受打击时向后挥舞。但射中腹部时,角色可能会弯腰,然后在虚拟的死亡挣扎开始时向前倒下。
这些可能听起来像是愚蠢或简单的视频效果。但实际上,这些动画依赖于复杂的物理和数学知识,程序员们一直在不断寻找更好的方法,使屏幕上的物体更准确地模拟我们的现实世界。
动画引擎
几十年来,电子游戏制作者一直试图重现现实世界的物理效果。他们使用模拟物理引擎来构建重力、速度、碰撞检测和动量等原理,这些原理会影响你的赛车、飞机,甚至是马里奥在地下世界跳跃和攀爬时的状态。没有这些元素,游戏玩法就没有任何真正意义上的规则或界限。
角色死亡也是如此。在早期游戏中,角色总是按照完全相同的预先脚本设定的静态动画死亡。在较简单的时代这没什么问题,但硬件的改进为更好的整体图形性能提供了空间。专用图形处理卡减轻了CPU的一些负担,从而实现更复杂的游戏玩法,没错,还有更好的死亡动画。
像《光环》系列和《马克思·佩恩》这样的游戏,当身体被子弹击中时会有逼真的动作。而Rockstar Games凭借其《侠盗猎车手》系列声名远扬,该系列充满了看起来很自然的灯光效果和几乎令人吃惊的准确的人物动作。部分归功于布娃娃物理效果(而不是固定图形),程序员使角色能够对屏幕上的其他元素(从墙壁到炸弹再到子弹)做出实时反应。
《杀手:代号47》是最早采用布娃娃物理效果的游戏之一。在你使对手丧失行动能力后,你可以拖动那毫无生气、滚动的身体并偷走其衣服作为伪装。子弹以惊人的力量撞击身体。这些元素并不完全令人信服,但它们增加了游戏玩法中一直缺失的一层可信度。
《杀手》使用了Verlet积分法,这是一种将牛顿运动方程融入计算机动画等应用程序的算法。动画骨骼的每个部分都被定义为按照一些基本规则相互连接的点。这种算法相对简单,这意味着它比其他技术使用更少的CPU处理时间。
混合布娃娃物理效果在《侏罗纪公园:迷失世界》等游戏中将实时物理处理与预制动画相结合。静态动画与环境的交互更加真实;动画角色不会只是扑通倒下。它们更像真实的人类一样碰撞和弯曲。但仍然存在不符合人类大脑理解的视觉缺陷。看起来不够自然。
程序动画是最新、最具沉浸感的游戏物理类型。这里没有预先确定的动画。相反,所有角色和大部分环境都能持续对游戏中的物理效果做出响应。这当然适用于死亡动画,但也使游戏的其他方面更具说服力。
从《杀手》到《侠盗猎车手》
如果物理引擎是舞台,动画角色就是木偶。布娃娃物理效果看起来很逼真,因为这些角色由相互连接的刚性部分组成,这个系统类似于现实世界中的骨骼身体。当受损时,身体会在屏幕上摇晃、翻滚和弹跳。
其中涉及的数学和物理知识极其复杂,即使到现在,CPU能力和处理算法也还没有找到完美模拟崩溃人形的方法。因此,经常会出现滑稽的情况,角色的关节肢体以各种不现实和荒谬的方式扭曲和弹跳,就像一个被扔下楼梯的布娃娃。许多当前的在线游戏,如《快乐滚轮》利用了这种效果,本质上是提供碰撞试验假人让你在各种愚蠢和奇异的场景中折磨和抛掷。
许多当代简单游戏利用布娃娃物理效果使屏幕上的动作不那么暴力,更具卡通化和趣味性。然而,娱乐因素掩盖了现代游戏中物理效果的复杂性。
最复杂的动画引擎之一是由NaturalMotion制作的Euphoria。Euphoria已经被用于一些非常受欢迎的游戏,如《星球大战:原力释放》、《荒野大镖客:救赎》和《侠盗猎车手4》。
NaturalMotion宣称Euphoria为每个场景的每个部分实时模拟身体运动,甚至细化到角色的肌肉和运动系统。例如,角色可能会被机枪射击声惊吓,或者在从行驶的车辆上跌落时试图减轻摔倒的冲击力。最终,这类游戏提供了更引人入胜的游戏体验。
动画物理
在《原力释放》中,用原力鞭打敌人并看着他们翻滚是游戏乐趣的一半。
布娃娃物理效果只是构建逼真动画的一个方面。许多游戏使用骨骼动画来提供角色的真实感。骨骼动画涉及两个主要元素,包括表面或网格(你能看到的皮肤或盔甲)和装备或骨骼(支撑皮肤并使其移动的刚性底层结构)。这是一个由关节连接的关节体。
程序员为装备设置限制和约束。例如,头部不能旋转360度或垂落到胸部区域。手腕可以旋转和摆动,但只能到一定角度然后停止,就像真人一样。
一旦游戏的骨骼系统构建完成,开发者可以使用相同的基础构建多个角色,只需改变表面外观来充实虚拟世界的人口。
与真实骨骼一样,骨骼动画基于运动链或树,所以各个部分作为一个层级结构的一部分移动。简而言之,这意味着所有的“骨头”都是相连的。例如,当大腿骨移动时,小腿也会移动。
在数字角色中编写这种动作 – 反应运动是很困难的。开发者使用各种技术来完成这一壮举。一种常见的方法基于Featherstone算法,该算法以关节体算法专家Roy Featherstone的名字命名。
这种动态建模需要大量数据才能使角色看起来可信。程序员需要考虑几何形状和所有身体部位的相对位置。他们必须为关节和连接性以及空间惯性创建限制和规则。
所有这些因素都必须用数学算法和物理来描述。然后动画师使用类似CAD的软件逐个关节地构建几何角色,直到他们真正构建出一个数字生命体。然后这个生命体可以被插入到数字环境中。
不管是谁制作的,物理效果都是现代电子游戏的驱动力。这些物理效果是极其逼真还是令人捧腹大笑并不重要,重要的是让游戏玩起来更有趣。随着预算不断增加和硬件功能更强大,你可以预期物理引擎将取得巨大的进步,无论是跳跃、跨越还是枪林弹雨。
资料来源
Champandard, Alex J. “程序角色与即将到来的动画革命”。AIGameDev。2012年8月20日。(2015年9月4日)http://aigamedev.com/open/editorial/animation – revolution/
Clary, Grayson. “可怕的引擎”。Method。2015年。(2015年9月4日)http://www.methodquarterly.com/2015/06/fearsome – engines/
DigitalRune. “布娃娃”。(2015年9月4日)http://www.digitalrune.com/Documentation/html/0f8abfcc – b27e – 4887 – 8017 – 9fda6e7fb0fc.htm
Florian, Razyan. “用于模拟关节体的Featherstone算法”。Thyrix。2005年7月27日。(2015年9月4日)http://www.thyrix.com/documentation/featherstone_method.php
Glimberg, Stefan和Morten Engel. “布娃娃方法的比较”。2007年1月23日。(2015年9月4日)http://image.diku.dk/projects/media/glimberg.engel.07.pdf
Massoudi, Peyman. “结合布娃娃和关键帧动画以实现动态姿势”。AniMotion。2015年5月25日。(2015年9月4日)http://peyman – mass.blogspot.com/2015/05/combining – physical – animation – with.html
Millington, Ian. “游戏物理引擎开发:如何为你的游戏构建一个强大的商业级物理引擎”。CRC Press。2010年7月23日。
NaturalMotion. “Euphoria”。(2015年9月4日)http://www.naturalmotion.com/middleware/euphoria/
Pitzel, Steve. “角色动画:骨骼和逆运动学”。Intel Developer Zone。2011年9月9日。(2015年9月4日)https://software.intel.com/en – us/articles/character – animation – skeletons – and – inverse – kinematics
Solberg, Dan. “为什么布娃娃物理效果如此有趣?”Kill Screen Daily。2014年4月1日。(2015年9月4日)
http://killscreendaily.com/articles/why – are – ragdoll – physics – so – funny/