游戏里的人,为啥都不会脱衣服?
别想歪了,这句话的重点在于“脱”这个动作,在游戏里究竟有多难实现?
随着CG技术,动作捕捉等技术的发展,我们在游戏里看到的场景和人物已经越来越趋于真实化,我们可以清晰地看清NPC喘气时一起一伏的胸脯,欣赏即时天气系统带来的变化……但依靠现在的技术,想要在电子游戏里看到NPC像正常人一样穿脱衣服,依旧不太现实。
这个问题或许已经被很多玩家注意到了,我们通常会笼统地把原因归结在游戏制作技术上,但是其具体原理和一些替代解决办法,或许很少有人能说全面。近日,外媒Kotaku就对此问题做了一番详细的分析,我们将其中的要点给大家整理了出来,并补充了一些相关的信息和分析。
从技术上来讲,之所以游戏里的人物很难表现正常的穿脱衣服动作,是因为物人建模一般只会搭好人物的骨架和基本动作,而他们穿的衣服,则属于物理建模,是后期添加上的。这是两个相对独立的环节。
对于那些技术实力一般的厂商来说,单纯地想要将僵硬的人物建模动作调教的“更像真人一点”都已经非常复杂了,更别提还要让后期添加的衣服既要尽可能贴近物理质感,又要随人物动作做出变化,还得考虑到不同道具之间的互动体积,这已经足够让程序员和设计师喝一壶了。
最典型,也是大家印象最深刻的,就是我们俗称的“穿模”,即便是技术顶尖的工作室都很难完美解决这类问题。
作为最能提升角色气质的装备,披风这么多年都很难和腰上别着的武器“相处融洽”,看着多少会有点出戏,但是这却已经是最简单的一类互动方式了,因为披风仅仅要做的只有随风飘动而已,并没有太多的物理交互,但是仍然很难避免祖传的穿模问题。
注意看披风和背上武器的穿模细节,这个问题即使到了最新的MHW里仍然没办法很好解决
作为对比,新《战神》里奎爷背上的斧子则完美解决了人物背斧子像是凭空悬在后背上的问题,想要解决这个细节,在技术上并不简单
所以,在过去的十几年时间里,开发者们通常会通过一些其他的办法带代替“脱”衣服这个动作,每个游戏在这方面都各有不同,这也算脑洞和创意的一种体现了。
最直接的解决办法当然就是直接删掉“脱(穿)”这个步骤,取而代之的是一些人物转身,低头之类的展示动作。这几乎被所有拥有纸娃娃系统的游戏所采用。
另外一种解决办法或许来源于电影灵感,设计师们会采用蒙太奇之类的手段,通过镜头拼接或者转换,让我们脑补出脱衣服这个场景。比如2010年的游戏《质量效应2》:
在《质量效应2》里,NPC雅各布会有一场脱衣戏,为了显示他赤裸的胸肌,镜头先是扫过他穿着衣服的上半身,紧接着镜头一转,他的上衣就不见了。虽然我们并没看清雅各布的上衣是怎么没的,但是这已经足够你脑补出脱衣服的画面了。
显然,这是一种非常经济且效果不错的解决方案,不少游戏也会采用同样的方法,有时候甚至留给我们脑补的空间会更大,比如前一阵非常火的《天国拯救》,镜头一转就是第二天了:
如果把技术门槛再提高一点,似乎可以找到一些更高级的替代办法,就像顽皮狗工作室在制作《神秘海域4》里所做的差不多,设计师会把衣服的某个特定部位而不是整体,比如衣领,单独在引擎中进行模拟,以达到更加逼真的效果:
在神海4里,像这样的细节非常多,这也正是很多人赞赏这个游戏的地方。其他一些顶级工作室也掌握着类似的技术,比如水晶动力的《古墓丽影:崛起》,注意看劳拉点燃火把之后衣服后面的帽子的运动轨迹,是不是已经足够以假乱真了?
但是这样做也只是一种障眼法而已,在游戏画面进行实时渲染时,角色所穿的衣服并不是一个“整体”,而是被分割成了单独的几个部分,脱衣服的动作仍旧很难完整的表现出来。
即便是这样,像上面提到的这种解决方案,也是最近几年才被付诸现实,对于一些非3A工作室来说,想要做到这个程度依旧难于上青天。从物理引擎的角度来讲,想要在复杂的模型表面之外,再模拟一层独立的柔软表面(布料)是相当困难的。手工制作3D动画可以解决这一问题,但是效率又太低。与其花费大量的金钱和时间去解决这一个细节,倒不如去解决一些更明显或者更重要的问题。
随着显示设备的快速迭代,设备更新的速度要明显快于内容团队技术进步的速度,玩家们的眼睛也越来越挑剔,关注游戏帧数的人或许比关注画面细节的人更多,即使工作室能够负担的起这样的时间和人力成本,真实布料模拟仍旧需要多次演算,迭代才能在游戏里有稳定的表现。所有工作室都不会冒险把一个运行起来不稳定的模型加入到实际游戏当中去,这个风险实在是太大了——还是在这样一个看起来不太重要,而且有更廉价,也更安全的替代方案的前提下。
这或许也是影响“脱衣服”这个细节这么多年一直没有什么明显解决的客观原因之一。并不是只有玩家想到了,制作人也同样想到了,但这个问题暂时还太难解决了。
由于游戏引擎不能模拟真实布料,带来的问题并不止脱衣服这一件事,这会导致大量人物与衣服互动都没法实现,即使像衣服口袋这样的小东西也会给开发者带来许多麻烦。
育碧在制作初代《看门狗》时就遇到了类似问题。或许是为了耍酷,主角艾登·皮尔斯在街头漫步时,两只手总是想要插在风衣口袋里,但在实际操作过程中,开发人员们发现这其实是在“自己给自己挖坑”。
动画导演在一段幕后视频里说,他“从来没有”看到过任何人试图在电子游戏中做到这一点,想要让主角把手一直留在口袋里,还要保持风衣一直跟着身体运动几乎不可能实现。为了能让手的位置尽量保持固定,他们不得不在动作捕捉演员的脖子上挂了一条绳子,以确保他的手位置不会发生太大的变动。
但是实际效果呢?不好意思,艾登的手还是会偷偷的从口袋里跑出来。这也似乎解释了《看门狗2》里的主角为什么不穿风衣的原因吧。
还有一些时候,缺乏互动甚至会影响到某些游戏情节的推进,这时就不得不想一些其他的办法来获得类似脱衣服的效果了。在这里我要举一个《巫师3》的例子,波兰人靠自己的勤奋和实力在2015年赢得了满堂彩,但他们似乎也被“脱衣服”的难题给难住了。作为替代,他们找到了一个更聪明的解决办法,来让杰洛特和叶奈法的这场动作戏看起来更“完整”:
他们的解决办法就是用“魔法”,当杰洛特向叶奈法靠近时,只见她手一挥,一股奇怪的魔法力量就让自己的衣服消失了。
其实叶奈法的衣服在整个场景中并没有消失,这只是一个非常简单的小技巧,熟悉Photoshop的玩家或许会比较容易懂,它的原理和图层与透明度的概念非常接近。“叶奈法的衣服其实根本没有脱下来,只不过它是透明的而已。”《巫师3》的艺术总监这样解释道。
是不是感觉自己上当了?
看到这里,你大概已经对游戏里脱衣服的原理有了一个基本的认识,但凡事总有例外。因为之前听说过“游戏角色很难做出穿脱动作”的说法,所以我在玩《神秘海域4》到下图的流程,并眼睁睁看着游戏角色在镜头前自然地脱下了衣服时,被震惊得目瞪口呆。在这里,其实顽皮狗已经向我们展示了一种趋近真实的表现方式。
就像上图中表现的那样,哥俩在一间仓库里竟然相当自然地脱下了身上的西装,整个动作非常自然,还有伸手递衣服,耸肩之类的小动作。那么顽皮狗的程序员究竟是怎样实现这个创举的呢?
Hans Godard是团队里负责解决这一问题的负责人,由于目前的引擎无法模拟真实布料,所以他用了手头一种叫做BlendShape(图形变形)的技术,许多游戏依赖这项技术来使网格表面变形以实现其他效果,比如脸部表情变化,水面或者山丘等等。
而在神海4中,他们用这种技术将预设好的衣服像皮肤一样,按照人物建模的骨架和关节将类似图层的材质分布,然后在脱衣服的时候再将它们变形,模拟成脱掉的衣服。这个办法实现起来也相当麻烦,一件西服上衣就有超过1000个以上关键帧,每一个都需要细微调整。幸运的是,从最后的结果来看,效果已经足够令人满意了。
另外,2015年佐治亚理工大学的研究人员曾发表论文,介绍了一种由他们设计的“穿衣控制器”的算法,这种做法也称得上另辟蹊径,可以给预设好的人物建模设计动作路径,让他自己找到衣服的开口,“把衣服穿(脱)上去”,不过当时这项技术看起来还比较简陋,相信经过几年的开发之后,这套新的算法会更加智能。
虽然有些人可能会觉得这项功能有些鸡肋,但这项技术未来的应用场景将不再局限于游戏或者3D动画中的人物,以展现游戏的真实性,如果成行的话,甚至可以让机器人学会帮人类穿衣服,帮他们根据衣服的开口和方向来判断肢体的移动方向。
再进一步发展的话,它甚至可以用同样的原理教会机器人做一些复杂的互动类动作,朝着智能化的方向再进一步。
从这个角度来看的话,让游戏中的人物学会自己穿脱衣服,或许要比单纯的让游戏看起来更真实,还要有用的多。
*本文资料参考来源: https://kotaku.com/why-video-game-characters-almost-never-remove-their-clo-1828182196