用Unity重現(xiàn)《空洞騎士》的苦痛之路(1)——動作篇

作者:繁華如夢
大家好。
Team Cherry游戲工作室開發(fā)的游戲空洞騎士,以其流暢的動作,細膩的美術(shù),豐富的內(nèi)容,初上手便將我深深吸引。讓我這樣一個手殘玩家,能夠花104個小時以112%的完成度完成游戲??上脒@游戲在我心中的地位。

游戲中,蒼綠之徑的美術(shù)與音樂讓我流連忘返,而白色宮殿則是磨練技術(shù)變強的必經(jīng)之路。而當(dāng)我完成DLC苦痛之路的挑戰(zhàn)后,突然有種想將這款游戲還原的沖動,于是便有了這一篇文章。
沒錯,今天這篇表面上是開發(fā)類文章,實質(zhì)上卻有著安利文的精髓。
閑話不多說,下面就是簡單的當(dāng)前項目進度的演示:

素材獲取
主意打定之后,“如何獲取到原版游戲素材”便是呈現(xiàn)在面前的第一個問題。
用工具來直接提取是最容易想到的。推薦AssetStudio這款工具。這里必須說一句:提取到的資源都是只是用來學(xué)習(xí)提高的,絕對不要用作商業(yè)用途?。。。。。?/strong>
這樣我們就得到了游戲內(nèi)的美術(shù)與音樂資源,可是接下來卻讓我十足震驚。
在動手之前,我從來沒有想到游戲在動作方面竟然全部都是使用的幀動畫來進行制作的。玩過的玩家都知道《空洞騎士》中無論是主角還是敵人,動作都是異常細膩豐富的。可想美術(shù)的工作量有多大。
然鵝,
巴特,
西卡西,
他們團隊只有3個人。

下面就是我使用提取出來的圖集(主角的單個動作圖集),在Unity中進行切割后的精靈圖(這里純粹是一個體力活,瘋狂切圖)。大約有將近700張(僅僅是主角相關(guān)的動作序列幀就如此,不包含Boss以及NPC等動作)。

體力活過了,接下來就是苦力活了。
由于我們并不知道幀動畫的圖片替換順序,這個時候就需要對照著游戲畫面,逐幀查看并得到相應(yīng)的動畫順序,然后在Unity中制作幀動畫。
可能有童鞋就要問了,哪里需要這么麻煩,直接看圖不就能夠看到是什么動作了,根本不需要逐幀這么麻煩。
下面是幾張空洞騎士使用到動作序列幀,如果你能夠分辨出他們是在什么動作的時候使用的,那就不用逐幀對比了,直接上。

關(guān)于逐幀對比,一種笨但有效的方法是先錄制一段游戲視頻,然后放在視頻剪輯軟件中逐幀播放,與Unity中切出來的動作序列幀進行對比,找到對應(yīng)的圖片。
雖然沒有啥技術(shù)含量,但是這一步操作又需要大家來找茬式的眼力,又需要耐心,而且工作量巨大,是個苦力活(這步搞完眼睛都瞎了)。

動作分析
經(jīng)過了上面的復(fù)雜,繁瑣,工作量又巨大的準備資源工作,接下來就是理清各個動作之間的關(guān)系,并構(gòu)建好主角的動畫狀態(tài)機即可。下面是我理解的空洞騎士各個動作之間的聯(lián)系,如有錯誤可直接在下面評論。

上面的關(guān)系圖是省略了一些動作切換后,返回的條件提示。接下就可以通過上圖理清的動作之間的關(guān)系,在Unity中制作主角使用的動畫狀態(tài)機了。大致如下圖:

由于工(wo)作(yao)量(mo)巨(yu)大,上面并沒有把所有的動作一并制作進去,而是剔除了一些本做不需要使用的動作(劍技,法術(shù),回血等)。有野心的童鞋可以考慮一下,全部動作都加入進去,完美重現(xiàn)。
結(jié)語
截至本篇文章完成,雖然工程中的角色已經(jīng)能夠正常移動與攻擊,但由于現(xiàn)在的工程代碼大部分都是測試代碼,過于凌亂,不便于理解,于是沒有貼上。因此我會在接下來的系列文章中,專門寫一篇用于講解人物控制的文章。
接下來項目還需要完善人物動作的特效,并使動作之間的切換更加流暢,還需要加上場景等內(nèi)容,來完善項目。如果不出意(mo)外(yu)的話,補上我們故意漏掉的,接下來大約還有人物控制,特效以及場景3篇系列文章。那么我們下篇文章在見。
相關(guān)鏈接,很(mai)重(mai)要(mai)
空洞騎士購買鏈接:https://store.steampowered.com/app/367520/Hollow_Knight/
有線下學(xué)習(xí)游戲開發(fā)打算的童鞋,歡迎訪問:http://www.levelpp.com/
線上課程的傳送門則如下:https://study.163.com/course/introduction/1006462005.htm
另有專業(yè)開發(fā)交(gao)流(ji)群等待大家強勢插入:869551769