百科问答小站 logo
百科问答小站 font logo



《最后生还者2》的绳索物理引擎是怎么做到的? 第1页

  

user avatar   levelpp_edu 网友的相关建议: 
      

感谢哆啦A梦大神 @五犬 邀请。

虽然游戏本身存在很多争议(传送门:前段时间的评测),但游戏在表现力等硬指标方面是没得说的。

就“绳子”这方面而言,咱们在这里尽量从纯技术角度粗略分析一下,说的有不到位的地方欢迎大家补充。

1、总体分析

美末2中绳子的惊艳之处有两部分:一是绳子本身的物理运动十分柔韧、十分真实;二是绳子与角色的互动更加惊艳。

先看看截图:

1、绳子本身的物理模拟:

2、角色与绳子的互动:

游戏中角色会抓起绳子一端,甚至会卷绳子,绳子的中间部分仍然符合物理效果:

拉着绳子一端跑动,当绳子长度不够时,会突然受到一个猛的拉力,角色的动画配合十分精彩:

2、如何实现绳子物理运动

近两年,图形学中的物理动画算法有了明显进展,一些以前只能离线计算的效果现在已经能轻松做到实时渲染了。

目前常用游戏引擎中采用的默认物理引擎,暂时还是传统刚体引擎(用柔体物理引擎性能消耗太大,没有必要)。但我们可以通过物理插件或者自己编写代码,来针对游戏中的某些物体进行模拟,比如Nvidia Flex插件可以模拟出类似效果(还不完善)。

在《最后生还者2》游戏中,由于上图的那条电线与关卡设计结合比较紧密,对玩家体验影响比较大,所以显然制作组针对这条电线做了更加细致的处理,采用了较先进的柔体模拟算法来模拟这条绳子。针对某个物体做细致处理的做法很常见,比如赛车游戏中,赛车的物理比周围环境的物理细致得多。

简单来说,忽略角色动作仅看绳子本身的实时物理模拟,其实近年来相关技术已经成熟了。虽然很多人是初次在游戏中看到这样的效果,但从技术上来看并不是特别让人意外。

另外,在模拟绳子的系统中,固定绳子上的一个点对绳子来说也只是添加了一个边界条件,不属于很困难的问题。

3、如何实现角色与绳子的交互

相比绳子本身,角色与绳子的互动更值得说一说。角色与绳子的交互,比绳子本身的运动更复杂一些,它涉及到2个麻烦的问题:

  1. 角色通过动作控制绳子。
  2. 角色动作受到绳子反作用力的影响。

角色通过动作控制绳子需要极为细致的调整。在角色做动作时,他手部的物理性质也一直在变化。比如艾丽卷绳子时,她的手一会儿抓紧绳子,一会儿任由绳子从手上滑过。抓紧绳子时手部相当于一个夹子,而手部放松时手部相当于一个套环:

原理说起来简单,真的做起来估计非常麻烦,需要物理和动画密切配合,中间可能还有很多技术细节。

再说说绳子反作用力影响动作的问题。

表现外力、外部障碍对动作影响的技术叫做IK(反向动力学),现在也算是比较成熟了。但IK细说起来也有简单的和高级的。

简单的IK现在很常见,比如说把你的脚垫起来,你的腿就会自然弯曲;手抓在枪柄上,手臂就会自然弯曲。而复杂的IK效果涉及到力和加速度,比如突然推你的肩膀,你的肩膀往后晃一下,然后身体调整重心再恢复。

按照现阶段主流的技术,表现人物动作时,不用真的给人物动作建立复杂的物理模型,只需要让动画与简单IK相配合,就能做到足够好的效果。反而是人物死亡以后,尸体会变成物理关节,因为尸体没有动画只有物理,一般称为布娃娃系统。

所以,艾丽被绳子突然拉扯的动作,应该是为这种情况专门做了一个动画。同时为了让动画适配绳子的位置,还需要IK进行配合。


以上就是对《最后生还者2》的绳索物理进行的分析,仅从表面现象分析很容易有很多纰漏,如有问题可在评论区留言,一起探讨。

PS:这个回答仅针对绳子效果的实现,请不要讨论技术无关问题【逃】




  

相关话题

  牛顿力学是如何过渡到热力学的? 
  如何评价我国「人造太阳」EAST 创造的 101.2 秒稳态长脉冲高约束等离子体运行新纪录? 
  物理有哪些经典入门书籍? 
  东京奥运会纸板床的标价上万元(人民币),实际成本真有那么高吗? 
  如何看待北大涂传诒院士等人质疑「九章」:不是量子计算机、没有实现「量子霸权」?应该如何正确认识? 
  当我们做二次量子化的时候,我们究竟在做什么? 
  无限不循环小数 派 中可以出现连续的100个0吗? 
  怎么通俗地理解张量? 
  溺水的时候可不可以不挣扎直接沉到水底然后相当于在陆地上行走然后走到岸边 走出水面? 
  为何单个电子通过双缝会发生干涉? 

前一个讨论
律师主动找我帮我打官司正常吗?我老婆因工伤和公司私了获赔三万块钱。后来一自称律师的找我们愿帮我打官司?
下一个讨论
Google 是如何盈利的?





© 2024-05-17 - tinynew.org. All Rights Reserved.
© 2024-05-17 - tinynew.org. 保留所有权利