大家天天都在找好遊戲玩,不論是2D、2.5D、3D,但終歸第一印象的好壞一定是遊戲的畫面。下面我們就看看一個遊戲開發商是如何制作自己遊戲2.5D的遊戲角色的。
兩周前在 大會上發表了關于制作《 in a 》中2.5D角色的動畫制作過程,我想是時候發布一些已經探讨過的内容。我對2D和3D之間的模糊界限一直很感興趣(遊戲邦注:作者曾從事一些關于2.5D動畫制作工作),對研發來說,引進代碼使動畫呈現生命力正是遊戲開發過程中最有趣的環節之一,現在将分享一些使用3D工具制作2D效果的遊戲開發經驗。
我們使用Unity創建了《 in a 》,其中一切内容都是由多邊形組成,但多數物體隻是一些映射到簡單位面的透明紋理。遊戲中沒有光線,我們隻是創造了背景光。我們通過一些不同方法處理美術資産,并在熟練使用Unity引擎的過程中不斷推進這一過程。
使用軟件的構建效果
從早期原型開始,創建主角的時間就有點緊迫,那時我們尚未掌握Unity的動畫腳本處理方法。這些角色最初是使用After 制作而成的2D動畫,之後将動畫幀渲染成精靈地圖集紋理(遊戲邦注:即包含所有動畫幀的網格)。在Unity引擎中,每個角色都是由單個位面組成,我們會為其分配精靈地圖集紋理。這種位面隻能展現縮小的紋理,我們可以通過變換所展示的精靈地圖集紋理而呈現不同的動畫幀
軟件構建過程中的繪圖素材
成品動畫展示(含開篇第一張圖)
玩家角色實現腳本動畫的地方就在于它們的伸展與擠壓過程。當角色着地時,通過略微擠壓整個位面,就可以讓角色從高處跳并落着地的這一瞬間呈現更多運動感和反應感,并且不會幹擾動畫幀的播放——你可以看到角色落地奔跑并且步履不亂的擠壓狀态。這一操作雖然很簡單,但卻能極大增強視覺效果。我們還在遊戲的其他一些地方采用了類似的操作。
伸展與擠壓效果 設計圖
實際演示效果
這個簡單的壞蛋也是由多個位面組合而成。這是我們創造的第二個角色,我們用Unity制作了所有的關鍵幀動畫,每個移動環節都有各自的動畫文件。我将自己從《古墓麗影1》的樹中所借鑒的一個技巧運用到了敵人腿部的十字式位面——它們可以用3D方式圍繞身體而旋轉,并且仍可在任意角度呈現。當我們編寫敵人的動畫播放以便對應其行動時,這個簡單的角色就開始顯得更加活靈活現。
我們針對這個敵人用Maya創建了一個整齊相連的骨架,但這也令該幾何體僅能呈現正位面。在制作了四個主要方向的動畫移動循環,這些循環就可以動态地在代碼中混合并變速以對應角色的位移。這正是使用3D工具制作2D角色的強大之處——你可以控制所有的程序性動畫。我們還使用這個方法觸發該角色受傷時所呈現的玻璃裂痕(否則受損的位面就會按比例縮小并隐藏到身體之後),我們還讓這種水母眨眼睛,并動态追蹤玩家的位置
十字式位面效果 設計圖
動畫演示 效果
至于這個迷你boss,我們使用Unity将不同剪輯片段劃分為多個動畫層。頭部和身體屬于同一個操作層面,但它們是在不同層面進行動畫播放。這樣我們就能夠根據加速和方向結合多個移動動畫,同時又讓角色頭部的閑置、射擊動畫的觸發免受其身體移動的影響
多個動畫層 設計效果
多個動畫層 演示效果
我們追求的是矢量霓虹的視覺效果,而固定2D視圖的一大好處就在于我們可以直接将發光和擴散效果整合到紋理中。另外,由于我們的資産較為簡單,我們可以輕松運用粒子效果。為将所有元素整合到一起,我們發現在鏡頭前設置緩慢轉移的大型多邊形,并且每個多邊形都添加一個帶點模糊色彩的紋理(會閃光的那種),确實有助于營造一個光線微移的發光太空環境。
有話要說...