Unity一个低成本优化游戏动作的方案探究
本篇博客主要探究一个低成本运用动作捕捉,动态骨骼,以及一个动作标准来提升游戏角色动作表现的方案。
一.什么是游戏动作
顾名思义,就是游戏中,人物角色行为举止,走路,跑步,战斗等等。
二.为什么游戏动作如此重要
在一位被卢浮宫邀请过的日本漫画家写的一本书,《荒木飞吕彦的漫画术》中,荒木老师认为,漫画有四大基本元素,分别是:角色、剧情、世界观、主题。而其中,角色,是终极顶梁柱,如果角色塑造的好,其余剧情世界观主题等元素,甚至可以被忽略。我个人比较认同,因为就像是樱桃小丸子,蜡笔小新,大家都不记得这俩动漫到底讲了些啥剧情世界观主题,但是都深深记住了这两个特色鲜明的角色形象。而我们游戏世界里,角色就更重要了,为什么?因为玩家只有喜欢这个角色才会为ta充钱。
怎么样的角色,玩家会更喜欢?我认为是更加容易让人产生共鸣,更加生动,更加形象的角色。而角色的一举一动,会极大影响其生动和形象,一个走路像机械,木头的角色,会让玩家迅速失去对这个角色充钱的想法。
三、如何提升游戏中角色动作?各个方案比较。
经过大量案例的参考,我个人总结出三个大的方向,1.提升肢体生动性(动作捕捉技术),2.提升装饰生动性(动态骨骼系统) 3.提升面部表情生动性(面部捕捉技术)。第3点,由于我个人还没有涉及到相关的领域,这次先不探讨,以后有空再新增相关内容。以及第4点,一个动作标准:在使用频率最多的动作之间(比如跑步和站立)的过渡,必须穿插一个衔接动作(比如跑步停止的动作)。
以下是我统计最捞钱的3个游戏(商业最成功),以及近4年的tga年度最佳游戏(口碑最成功)对这三个有关动作方面的运用:
带行走角色的游戏列表 | 1.动作捕捉(肢体生动性) | 2.动态骨骼(装饰生动性) | 3.动作衔接额外动作(动作整体性) |
原神 | 是 | 是 | 是 |
王者荣耀 | 是 | 是 | 是 |
和平精英 | 是 |
否(应该是因为时装太多了, 无法都绑定动态骨骼) |
是 |
双人成行(21年tga最佳) | 是 | 否 | 是 |
最后生还者2(20年tga最佳) | 是 | 是 | 是 |
只狼(19年tga最佳) | 是 | 是 | 是 |
战神4(18年tga最佳) | 是 | 是 | 是 |
是碰巧他们都做到了这3点,还是起码这3点做好了,他们才能站到这个山顶。我个人认为是后者。
3.1 提升肢体生动性
用手动编辑出来的动作,和真人的动作比,总是会少了大量的细节,感觉不到最真实的效果,所以为了还原真人最真实的动作,最主流提升肢体生动性的,还是动作捕捉技术。动捕起源于好莱坞,起先用来制作生动的CG人物。现在已经普遍被用到游戏里面了,甚至是优秀的游戏必不可少的一个技术了。
3.1.1 原始动作捕捉技术
没啥特别的,就是花钱,买设备,请人。财大气粗的公司可以直接这样来,就像那几个大厂一样,没啥好说的,请专业的舞蹈或者武术演员,可能做出的效果更好。但不适合小公司。
3.1.2 AI动作捕捉技术
现在的用AI来捕捉动作的技术,其实已经能用了,网上也有相当多的例子。只是用这个方案,需要花费大量的时间来对机器学习进行一个系统的学习。关于这个,个人下次有时间再做引申和研究。
3.1.3 直接到Unity store里面购买动捕动作
如果我们的游戏中角色数量少,不需要为大量角色分配各态不同的动捕动作,我们就可以直接到Unity store里面买别人录制好的动捕动作,匹配到我们的角色中。当然,这么做前提是要求我们角色数量少的情况下才能这么做,否则如果有100个角色,整个Unity store的动捕动作可能都不够买。
要使用别人录制的动捕动作,先把我们要使用的角色模型,转换为humanoid标准人物模型。例如个人用的米哈游官方放出来的角色模型,转换为humanoid标准模型。
之后就能匹配上Unity官方商城的商业动捕动作了,比如这个女士的动捕动作:
其中包含“站立”,“走路”,“走路向站立过渡” 的3个动捕动作,运用起来的实际效果如下:
3.2 提升装饰生动性
角色形象由肢体和服饰组成(暂不讨论面部表情),肢体生动了,服饰也得想办法生动起来,甚至角色有些时候需要特地增加飘动的服饰来增强角色的生动感,而DynamicBone动态骨骼系统,就是实现飘动的一个系统,是一个简单的基于模拟弹簧振子的算法实现树状柔体的物理模拟插件。虽然基于模拟弹簧振子运动的算法实现,但是DynamicBone各节点之间的距离实际上不会发生变化, 比起弹簧,父子节点之间的相对运动更接近简谐运动中的单摆。
简而言之,动态骨骼系统,就是能让头发,衣服,其他服饰飘起来的一个系统。也是现在优秀的游戏必不可少的一个组件之一。如何应用,网上的教程也是特别多,这里不作太多介绍了。
给头发和裙子绑定动态骨骼并调制好参数之后,效果如下:
3.3 穿插衔接动作
心理学中,一个人对一个事物的整体映像,取决于2件事情,1.这件事物的极值 2.这件事物的最终值。按照这个理论,一个玩家对一个电影的整体映像,可以极大取决于,电影最糟的那一段,以及电影结束时候的那一段质量。而游戏动作里面,动作衔接的部分,往往是最糟的那一段,例如人物从跑步动作,突然变成了站立动作,两只腿会像磁铁一样由张开,突然吸在一起了,这十分不自然,现实里面的人走路不会是这样的动作。
为了解决这块最短的木板,有必要,在重要的衔接动作中间,再插入一段过渡动画。
如图,角色由run(跑步)过渡到idle(站立),必须要中间插入一个优雅的跑完了的runend动作,使得整个跑步-停止-站立,的过渡十分的自然,没有中间出现的短暂的不自然,搞坏整体的映像分数。
以下是没有过渡动作和有过渡动作的对比(着重关注脚丫):
无过渡动作:
有过渡动作:
四.总结:
如果游戏中角色数量少,购买Unity store动捕资源(商业性质,版权合法)是个十分划算的选择,花费少,却能获得准一线的动作效果。而动态骨骼系统,更是必须尽早掌握积累的技术,除非未来不想依靠角色来创造营收。穿插衔接动作这个标准,则是程序美工多注意一下的事情就能做好的事情。
我个人的观点是,这三个方向,无论工作室大小,能用上的,尽量要用上,越早越好。
关于AI生成动捕数据(低成本,大量生成动捕动作),面部捕捉技术(面部表情真实),甚至AI生成面部捕捉数据(低成本,大量生成动捕表情)这三个坑,留着之后有空再研究和填了。
Unity一个低成本优化游戏动作的方案探究相关推荐
- Unity修改分辨率优化游戏性能
前两天浏览到腾讯游戏学院上的一篇文章,利用 RenderTexture 降低实际渲染分辨率以提升渲染性能,结合着我们自己的项目,对这一方案进行的探索研究. 关于修改游戏分辨率来提高游戏性能有另种方案: ...
- moba寻路_GitHub - ylmbtm/MoBaDemo: 用Unity做的一个类Moba游戏Demo
游戏整体逻辑 出兵逻辑 游戏会在两个阵营的固定区域在固定的频率中出兵.小兵只能沿着规定好的轨道进行行走,并按照各个防守塔的顺序向敌方进行进攻. 需要注意的点 对于固定出现的小兵来说,不适合在其死亡之后 ...
- moba寻路_GitHub - aafasou/MoBaDemo: 用Unity做的一个类Moba游戏Demo
游戏整体逻辑 出兵逻辑 游戏会在两个阵营的固定区域在固定的频率中出兵.小兵只能沿着规定好的轨道进行行走,并按照各个防守塔的顺序向敌方进行进攻. 需要注意的点 对于固定出现的小兵来说,不适合在其死亡之后 ...
- [Unity3D]总结使用Unity 3D优化游戏运行性能的经验
作者:Amir Fasshihi 流畅的游戏玩法来自流畅的帧率,而我们即将推出的动作平台游戏<Shadow Blade>已经将在标准iPhone和iPad设备上实现每秒60帧视为一个重要目 ...
- [转]总结使用Unity 3D优化游戏运行性能的经验
转载自:http://www.gameres.com/msg_221889.html 作者:Amir Fasshihi 流畅的游戏玩法来自流畅的帧率,而我们即将推出的动作平台游戏<Shadow ...
- Unity 3D中的内存管理与优化游戏运行性能的经验
Unity3D在内存占用上一直被人诟病,特别是对于面向移动设备的游戏开发,动辄内存占用飙上一两百兆,导致内存资源耗尽,从而被系统强退造成极差的体验.类似这种情况并不少见,但是绝大部分都是可以避免的.虽 ...
- 一个近乎完美的Unity全平台原生c#热更方案
今天给大家推荐一个近乎完美的Unity全平台原生c#热更方案,相对比其他方案,此方案学习成本更低.完全支持c#所有特性.兼容性极高.占用内存低.执行小高. 项目简介 HybridCLR是一个特性完整. ...
- 【Unity】U3D TD游戏制作实例(三)相机管理器、生成敌人优化、敌人血槽小组件
文章目录 相机管理器 调整相机 敌人类优化 融合导航测试代码 敌人移动速度 销毁对象 加载敌人配置 敌人生成方式优化 血槽组件 相机管理器 调整相机 首先将主相机调整为正交镜头,这样可以防止模型畸变. ...
- [Unity][优化][游戏杂谈]浅谈开放武侠世界
通过参考资料1,学到了很多.由此来表达一下自己的观点. 怎么形容 开放世界,游戏性,世界观,优化 这些元素, 就好比 人在吃饭,吃饭所用的碗 很精致,这就是开放世界,如果人都已经饿晕了(制作人员匮乏) ...
最新文章
- php 结构体_PHP底层原理知其然知其所以然
- python中字典和集合的区别_Python中字典和集合学习小结
- 使用TWebBrowser组件保存网页为html和mht文件 收藏
- beyond compare类似软件_BIM工作是什么?需要哪些BIM软件来完成?
- zigbee ZIGBEE_FRAGMENTATION
- 包含几通道数据_功率分析仪和数据采集记录仪有什么区别?
- 此图片来自微信公众平台未经允许不可引用 解决方法
- 线性代数笔记 -- A = LU的应用
- 日前加拿大平板厂商 Datawind和印度运营商Reliance Communications日前宣布合作
- SpringBoot整合JWT实现前后端Token验证
- 免费PR转场 多种创意图形转场过渡PR动态图形模板MOGRT转场
- 【转载】一些常用的WebServices 天气,IP,邮编,Emai
- 解析几何:第六章 二次曲面(1)球面 椭球面 双曲面
- 2020美团秋招,二本计算机,疯狂复习半年,拿下美团offer
- property of non-object,yii错误
- Maxscript基本数据类型(二):Name
- 如何让医药行业涌现更多“药神”?
- 畅购商城项目(面试版)二
- PLSQL developer下载、安装、详细教程
- Java线程池的知识
热门文章
- field是什么意思
- “傲慢”的飞书渴望被“白嫖”
- 万物皆可电商,生鲜的坎坷之路
- 小程序加入人脸识别_微信小程序+人脸识别
- RK3399外设驱动之RTC驱动(二):hym8563驱动
- 使用U盘将系统安装到Raid(磁盘阵列)上(出处http://hym.cublog.cn)
- [硬件项目] 1、汽车倒车雷达设计——基于API8108A芯片简易智能语音模块的设计与实现...
- c语言remove和rename不起作用,C语言探索之旅 | 第二部分第七课:文件读写
- 题解 P4117 【[Ynoi2018]五彩斑斓的世界】
- 何飞作业-17037065