找回密码
 立即注册
查看: 515|回复: 0

用Unity重现《空洞骑士》的苦痛之路(1)——动作篇

[复制链接]
发表于 2021-1-7 10:12 | 显示全部楼层 |阅读模式
大家好。
Team Cherry游戏工作室开发的游戏空洞骑士,以其流畅的动作,细腻的美术,丰富的内容,初上手便将我深深吸引。让我这样一个手残玩家,能够花104个小时以112%的完成度完成游戏。可想这游戏在我心中的地位。
游戏中,苍绿之径的美术与音乐让我流连忘返,而白色宫殿则是磨练技术变强的必经之路。而当我完成DLC苦痛之路的挑战后,突然有种想将这款游戏还原的冲动,于是便有了这一篇文章。
没错,今天这篇表面上是开发类文章,实质上却有着安利文的精髓。
闲话不多说,下面就是简单的当前项目进度的演示:

项目进度演示
https://www.zhihu.com/video/1083728907873742848
素材获取
主意打定之后,“如何获取到原版游戏素材”便是呈现在面前的第一个问题。
用工具来直接提取是最容易想到的。推荐AssetStudio这款工具。这里必须说一句:提取到的资源都是只是用来学习提高的,绝对不要用作商业用途!!!!!!
这样我们就得到了游戏内的美术与音乐资源,可是接下来却让我十足震惊。
在动手之前,我从来没有想到游戏在动作方面竟然全部都是使用的帧动画来进行制作的。玩过的玩家都知道《空洞骑士》中无论是主角还是敌人,动作都是异常细腻丰富的。可想美术的工作量有多大。
然鹅,
巴特,
西卡西,
他们团队只有3个人。
全家福
下面就是我使用提取出来的图集(主角的单个动作图集),在Unity中进行切割后的精灵图(这里纯粹是一个体力活,疯狂切图)。大约有将近700张(仅仅是主角相关的动作序列帧就如此,不包含Boss以及NPC等动作)。
主角的部分动作序列帧
体力活过了,接下来就是苦力活了。
由于我们并不知道帧动画的图片替换顺序,这个时候就需要对照着游戏画面,逐帧查看并得到相应的动画顺序,然后在Unity中制作帧动画。
可能有童鞋就要问了,哪里需要这么麻烦,直接看图不就能够看到是什么动作了,根本不需要逐帧这么麻烦。
下面是几张空洞骑士使用到动作序列帧,如果你能够分辨出他们是在什么动作的时候使用的,那就不用逐帧对比了,直接上。
略有差异的序列帧
关于逐帧对比,一种笨但有效的方法是先录制一段游戏视频,然后放在视频剪辑软件中逐帧播放,与Unity中切出来的动作序列帧进行对比,找到对应的图片。
虽然没有啥技术含量,但是这一步操作又需要大家来找茬式的眼力,又需要耐心,而且工作量巨大,是个苦力活(这步搞完眼睛都瞎了)。
动作分析
经过了上面的复杂,繁琐,工作量又巨大的准备资源工作,接下来就是理清各个动作之间的关系,并构建好主角的动画状态机即可。下面是我理解的空洞骑士各个动作之间的联系,如有错误可直接在下面评论。
不需要的动作未添加
上面的关系图是省略了一些动作切换后,返回的条件提示。接下就可以通过上图理清的动作之间的关系,在Unity中制作主角使用的动画状态机了。大致如下图:


看似动作不多,其实其余的动作被整合到了单个的子状态树中
由于工(wo)作(yao)量(mo)巨(yu)大,上面并没有把所有的动作一并制作进去,而是剔除了一些本做不需要使用的动作(剑技,法术,回血等)。有野心的童鞋可以考虑一下,全部动作都加入进去,完美重现。
结语
截至本篇文章完成,虽然工程中的角色已经能够正常移动与攻击,但由于现在的工程代码大部分都是测试代码,过于凌乱,不便于理解,于是没有贴上。因此我会在接下来的系列文章中,专门写一篇用于讲解人物控制的文章。
接下来项目还需要完善人物动作的特效,并使动作之间的切换更加流畅,还需要加上场景等内容,来完善项目。如果不出意(mo)外(yu)的话,补上我们故意漏掉的,接下来大约还有人物控制,特效以及场景3篇系列文章。那么我们下篇文章在见。
相关链接,很(mai)重(mai)要(mai)
空洞骑士购买链接:https://store.steampowered.com/app/367520/Hollow_Knight/


有线下学习游戏开发打算的童鞋,欢迎访问http://levelpp.com/。
线上课程的传送门则如下:简明易懂的C#入门指南 - 网易云课堂study.163.com
另有专业开发交(gao)流(ji)群等待大家强势插入:869551769

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-20 10:26 , Processed in 0.105961 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表