橫板跳躍的巔峰之作,嘗試用Unity還原蔚藍(lán)(Celeste)——素材、場景篇

作者:QXYO
大家好。
作為能在2018年與大表哥、新戰(zhàn)神同臺競技,并且榮獲了TGA最佳獨立游戲、最具影響力游戲的蔚藍(lán)(Celeste),相信不需要由我來為大家進行過多的介紹。即使時隔兩年,仍能常??吹綄τ谠撟鞯馁澷p。由于本人貧乏的語言表達(dá)能力,就用一張圖來表現(xiàn)我對蔚藍(lán)的喜愛吧。

進入主題,現(xiàn)在網(wǎng)絡(luò)上模仿蔚藍(lán)的移動大多都只是實現(xiàn)了最簡單的跳躍、爬墻沖刺之類,手感之類完全沒有還原,更不要說在蔚藍(lán)中的各種高端的操作了。所以本次目標(biāo)就是以實現(xiàn)大部分技巧和還原手感為目標(biāo),盡我所能的還原蔚藍(lán)的移動。

一般來說跳躍游戲為了更好的手感,是全程用代碼模擬移動,包括重力、慣性等,為了更精準(zhǔn)的操作,只能通過射線檢測等方式獲取到周圍碰撞盒的信息,然后進行處理和優(yōu)化手感。從網(wǎng)絡(luò)中查詢資料得知,開發(fā)團隊的 Matt Thorson 放出了游戲的角色操作部分的源代碼,聽到這個消息后我滿心歡喜的去查看,結(jié)果...

看到5000多行的代碼使我陷入了沉默,不過作為一個程序員,代碼不應(yīng)該成為問題,但是當(dāng)我獲取到從游戲中提取出來的素材時...

這要是一張張把需要的素材剪裁下來怕是需要一個月,同時眼睛度數(shù)+100°。幸好在B站視頻中找到了整理后的素材,在此特別感謝該up主“我超勇的超會喝的”分享的素材:
畢竟是從游戲中提取出的素材,放到Unity中只能勉強的用一下,效果肯定沒有原版的好,而且如果大家仔細(xì)看了上一張動圖的話可能會發(fā)現(xiàn),素材中的女主角Madeline是沒有頭發(fā)的,這是因為開發(fā)者對Madeline的頭發(fā)做了特殊處理,使其表現(xiàn)得更加真實。

由于主要目標(biāo)是還原操作手感,所以在本系列文章中是見不到Madeline那飄逸的秀發(fā)了。
說了這么多是時候打開Unity了,將素材導(dǎo)入Unity,可以發(fā)現(xiàn)大部分環(huán)境素材是符合TIleMap規(guī)則的瓦片,所以這里我們使用2DTileMap插件來制作地圖。當(dāng)然使用前還需要對素材進行設(shè)置,用SpriteEditor中Grid By Cell Size的方法將圖集分割成32 * 32像素大小的圖片,同時修改圖集參數(shù)Pixels Per Unit為32。


之后就是用2DTileMap插件來繪制地圖,具體操作我這里就不詳細(xì)說明了,同時為了一比一復(fù)刻場景地圖,可以打開 蔚藍(lán)的debug模式,可以清楚的看到格子的數(shù)量(碰撞盒),方便數(shù)格子繪制。


之后不要忘了添加TileMap Collider 2D,勾上Used By Composite,添加Composite Collider2D把碰撞盒合并。通過蔚藍(lán)的debug mode可以看到,刺周圍的紅色邊框,也就是碰撞盒是小于其他的邊框,所以為了還原,項目中刺的碰撞盒需要單獨處理。
然后是制作角色動畫,可以通過Animation制作幀動畫。 因為是提取的素材,所以即使是整理后的素材,角色精靈圖都是無序的,好在蔚藍(lán)這游戲比較”糊“。所以即使缺少幾幀或是前一幀和后一幀的動畫反了也看不出太多問題。如果像是空洞騎士那樣的作品可能就只能一幀一幀對著視頻制作了。


最后就是將場景和角色組合起來,再加點特效本次的目標(biāo)就完成了。下面放上完成圖,看看是不是覺得還挺像的呢。

第一篇只能說是開胃菜,下一篇才是主餐,角色的移動、跳躍、沖刺還有各種對手感提升的優(yōu)化。希望不會咕太久吧。
工程鏈接:https://pan.baidu.com/share/init?surl=v-p21OQ0wSTFed11Q2yqjg
提取碼:a39o

對游戲開發(fā)學(xué)習(xí)感興趣的盆友,歡迎訪問:http://levelpp.com/
同時,也歡迎加入游戲開發(fā)群攪基:1082025059