感谢哆啦A梦大神 @五犬 邀请。
虽然游戏本身存在很多争议(传送门:前段时间的评测),但游戏在表现力等硬指标方面是没得说的。
就“绳子”这方面而言,咱们在这里尽量从纯技术角度粗略分析一下,说的有不到位的地方欢迎大家补充。
美末2中绳子的惊艳之处有两部分:一是绳子本身的物理运动十分柔韧、十分真实;二是绳子与角色的互动更加惊艳。
先看看截图:
1、绳子本身的物理模拟:
2、角色与绳子的互动:
游戏中角色会抓起绳子一端,甚至会卷绳子,绳子的中间部分仍然符合物理效果:
拉着绳子一端跑动,当绳子长度不够时,会突然受到一个猛的拉力,角色的动画配合十分精彩:
近两年,图形学中的物理动画算法有了明显进展,一些以前只能离线计算的效果现在已经能轻松做到实时渲染了。
目前常用游戏引擎中采用的默认物理引擎,暂时还是传统刚体引擎(用柔体物理引擎性能消耗太大,没有必要)。但我们可以通过物理插件或者自己编写代码,来针对游戏中的某些物体进行模拟,比如Nvidia Flex插件可以模拟出类似效果(还不完善)。
在《最后生还者2》游戏中,由于上图的那条电线与关卡设计结合比较紧密,对玩家体验影响比较大,所以显然制作组针对这条电线做了更加细致的处理,采用了较先进的柔体模拟算法来模拟这条绳子。针对某个物体做细致处理的做法很常见,比如赛车游戏中,赛车的物理比周围环境的物理细致得多。
简单来说,忽略角色动作仅看绳子本身的实时物理模拟,其实近年来相关技术已经成熟了。虽然很多人是初次在游戏中看到这样的效果,但从技术上来看并不是特别让人意外。
另外,在模拟绳子的系统中,固定绳子上的一个点对绳子来说也只是添加了一个边界条件,不属于很困难的问题。
相比绳子本身,角色与绳子的互动更值得说一说。角色与绳子的交互,比绳子本身的运动更复杂一些,它涉及到2个麻烦的问题:
角色通过动作控制绳子需要极为细致的调整。在角色做动作时,他手部的物理性质也一直在变化。比如艾丽卷绳子时,她的手一会儿抓紧绳子,一会儿任由绳子从手上滑过。抓紧绳子时手部相当于一个夹子,而手部放松时手部相当于一个套环:
原理说起来简单,真的做起来估计非常麻烦,需要物理和动画密切配合,中间可能还有很多技术细节。
再说说绳子反作用力影响动作的问题。
表现外力、外部障碍对动作影响的技术叫做IK(反向动力学),现在也算是比较成熟了。但IK细说起来也有简单的和高级的。
简单的IK现在很常见,比如说把你的脚垫起来,你的腿就会自然弯曲;手抓在枪柄上,手臂就会自然弯曲。而复杂的IK效果涉及到力和加速度,比如突然推你的肩膀,你的肩膀往后晃一下,然后身体调整重心再恢复。
按照现阶段主流的技术,表现人物动作时,不用真的给人物动作建立复杂的物理模型,只需要让动画与简单IK相配合,就能做到足够好的效果。反而是人物死亡以后,尸体会变成物理关节,因为尸体没有动画只有物理,一般称为布娃娃系统。
所以,艾丽被绳子突然拉扯的动作,应该是为这种情况专门做了一个动画。同时为了让动画适配绳子的位置,还需要IK进行配合。
以上就是对《最后生还者2》的绳索物理进行的分析,仅从表面现象分析很容易有很多纰漏,如有问题可在评论区留言,一起探讨。
PS:这个回答仅针对绳子效果的实现,请不要讨论技术无关问题【逃】