游戏里的人,为啥都不会“脱”衣服?

2023-10-21 01:40
文章标签 游戏 为啥 不会 衣服

本文主要是介绍游戏里的人,为啥都不会“脱”衣服?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

别想歪了,这句话的重点在于“脱”这个动作,在游戏里究竟有多难实现?

随着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动画中的人物,以展现游戏的真实性,如果成行的话,甚至可以让机器人学会帮人类穿衣服,帮他们根据衣服的开口和方向来判断肢体的移动方向。

再进一步发展的话,它甚至可以用同样的原理教会机器人做一些复杂的互动类动作,朝着智能化的方向再进一步。

从这个角度来看的话,让游戏中的人物学会自己穿脱衣服,或许要比单纯的让游戏看起来更真实,还要有用的多。

这篇关于游戏里的人,为啥都不会“脱”衣服?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/251064

相关文章

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

高仿精仿愤怒的小鸟android版游戏源码

这是一款很完美的高仿精仿愤怒的小鸟android版游戏源码,大家可以研究一下吧、 为了报复偷走鸟蛋的肥猪们,鸟儿以自己的身体为武器,仿佛炮弹一样去攻击肥猪们的堡垒。游戏是十分卡通的2D画面,看着愤怒的红色小鸟,奋不顾身的往绿色的肥猪的堡垒砸去,那种奇妙的感觉还真是令人感到很欢乐。而游戏的配乐同样充满了欢乐的感觉,轻松的节奏,欢快的风格。 源码下载

剑指offer(C++)--孩子们的游戏(圆圈中最后剩下的数)

题目 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去

【服务器08】之【游戏框架】之【加载主角】

首先简单了解一下帧率 FixedUpdate( )   >   Update( )   >   LateUpdate( ) 首先FixedUpdate的设置值 默认一秒运行50次 虽然默认是0.02秒,但FiexedUpdate并不是真的0.02秒调用一次,因为在脚本的生命周期内,FixedUpdate有一个小循环,这个循环也是通过物理时间累计看是不是大于0.02了,然后调用一次。有

2024年6月24日-6月30日(ue独立游戏为核心)

试过重点放在独立游戏上,有个indienova独立游戏团队是全职的,由于他们干了几个月,节奏暂时跟不上,紧张焦虑了。五一时也有点自暴自弃了,实在没必要,按照自己的节奏走即可。精力和时间也有限,放在周末进行即可。除非哪天失业了,再也找不到工作了,再把重心放在独立游戏上。 另外,找到一个同样业余的美术,从头做肉鸽游戏,两周一次正式交流即可。节奏一定要放慢,不能影响正常工作生活。如果影响到了,还不如自

植物大战僵尸杂交版2.1版本终于来啦!游戏完全免费

在这个喧嚣的城市里,我找到了一片神奇的绿色世界——植物大战僵尸杂交版。它不仅是一款游戏,更像是一扇打开自然奥秘的窗户,让我重新认识了植物和自然的力量。 植物大战僵尸杂交版最新绿色版下载链接: https://pan.quark.cn/s/d60ed6e4791c 🌱 🔥 激情介绍:不只是游戏,更是生态课 植物大战僵尸杂交版将经典的策略塔防游戏带入了一个全新的维度。这里,每一种植物都拥

游戏高度可配置化(一)通用数据引擎(data-e)及其在模块化游戏开发中的应用构想图解

游戏高度可配置化(一)通用数据引擎(data-e)及其在模块化游戏开发中的应用构想图解 码客 卢益贵 ygluu 关键词:游戏策划 可配置化 模块化配置 数据引擎 条件系统 红点系统 一、前言 在插件式模块化软件开发当中,既要模块高度独立(解耦)又要共享模块数据,最好的方法是有个中间平台(中间件)提供标准的接口来进行数据的交换,这在很多行业软件开发中已经广泛应用。但是,由于中间件的抽象和封

力扣SQL50 游戏玩法分析 IV 子查询

Problem: 550. 游戏玩法分析 IV 👨‍🏫 参考题解 这个SQL查询的目的是计算每个玩家在登录后的第二天参与活动的比例。查询使用了子查询和左连接来实现这一目的。下面是查询的详细解释,包括每个部分的作用和注释: -- 计算每个玩家登录后第二天参与活动的比例select round(avg(a.event_date is not null), 2) as fractio

博弈论(Nim 游戏)

公平组合游戏ICG 若—个游戏满足: 由两名玩家交替行动;在游戏进程的任意时刻,可以执行的合法行动与轮到哪名玩家无关;不能行动的玩家判负; 则称该游戏为一个公平组合游戏。 NIM博弈属于公平组合游戏,但城建的棋类游戏,比如围棋,就不是公平组合游戏。因为围棋交战双方分别只能落黑子和白子,胜负判定也比较复杂,不满足条件 2 2 2 和条件 3 3 3。 可以看出,公平组合游戏不存在平局,而且

C语言 | Leetcode C语言题解之第174题地下城游戏

题目: 题解: int calculateMinimumHP(int** dungeon, int dungeonSize, int* dungeonColSize) {int n = dungeonSize, m = dungeonColSize[0];int dp[n + 1][m + 1];memset(dp, 0x3f, sizeof(dp));dp[n][m - 1] = dp[