The Last Night美術分析
最初我和很多同事都覺得The Last Night用了特殊的著色器(Shader)將3D模型實時的翻譯為2D像素,尤其是最後的黃色計程車表現出了明顯的3D卡通渲染(Cel Shading),更讓人覺得整個遊戲的角色都是3D模型,然後通過像素化讓玩家誤以為是平面。但是問題也在於每個像素的方格是完全平行的,所以不可能是直接讓UV貼圖直接像素化(否則像素方塊會因為模型體積的變化而發生扭曲)。有一種方法是通過攝像機投影(Camera Projection)來根據攝像機來重設貼圖,類似於《返老還童》的紐扣片頭。這樣就保證不管3D模型體積和動作如何,它正對著攝像機的貼圖一定是平面的。但這樣計算量就會很大,而且UV包裹會出現問題。因為在遊戲里,角色的像素都很完美的和人物邊緣協調,不會出現有半個像素的情況。如果每一個不同的3D模型都能準確的渲染成完美的2D像素效果,那這個演算法一定非常智能,來探測邊緣和優化像素分布。
這也太黑科技了。沒有人確定這是The Last Night的實現方法。但是如果不是3D模型,又如何做出帶有法線的2D Sprite呢。
在驚嘆和發愁之餘,我將The Last Night的預告片逐幀反覆觀看了數十遍之後,終於得出了答案。其實沒有黑科技,就是比較聰明。
3D和2D的混合
遊戲中的箱子是3D模型上貼了像素化的貼圖,就像Minecraft里那樣。但本身是3D元件,也會受各種光源影響,即使傾斜,邊緣也不會是鋸齒狀。
當然,同時是3D模型的還有街道上的一些垃圾箱,頂棚,和雜物。他們僅僅是擁有像素貼圖。而這給人了一種誤導,會以為「既然連箱子都是3D的了,那人和武器一定也都是。」 然而並非如此。
右側垃圾廠里的紙箱全部都是3D的模型,包括預告片里被子彈擊中的翻滾的紙箱。它們會正常接收光線和陰影。而裡面的植被都是2D紙片。
2D人物
人物是2D Sprite,就是一個紙片。當聚光燈打到人的身上的時候,你能明顯看到柔和的邊緣掠過人的身體,如果是3D渲染成2D像素,那麼它會把光的信息翻譯成像素的顏色,呈現出一個實心的色塊。而非有漸變的柔光。這就是一個聚光燈打到一個紙片上的效果。
中間紫發姑娘的身上打了一個聚光,從褲子可以看到柔和的漸變,如果是3D光照再像素化就不會是這樣的效果。
那閃電和燈光照耀時角色的頭頂邊緣光又如何解釋呢?答案是那只是額外的一層「頂光」貼圖。無論是任何角色,他們只有頂光和正面光兩種情況,而且頂光所照亮的像素一模一樣。比如一個前行的戴帽子的女士,無論她在燈前面還是走過燈,她帽子的頂光永遠是那幾個像素,只是明度上有變化。所以每個角色的sprite都有一個頂光圖層,通過調節這個頂光圖層的亮度來模擬出受路燈和閃電的影響。這依舊需要一定的工作,但是比之前的黑科技要可行很多。
街上的人物只有白髮特朗普,太陽帽姑娘,粉朋克女孩,DJ,流浪漢,胖子和紫發。每個人出現在任何環境里的高光都是頭頂光,像素位置也一模一樣。
可以上下對比一下這個太陽帽姑娘。一個是正上方的閃電,一個是偏右的更近的路燈,兩者打出的高光只有明度上的區別。也就是說高光並非是實時的,而是烘焙在sprite里的。
沒錯,人物的動作都是一幀一幀做的,頂光圖層也是,這些都是這個工作室最駕輕就熟的2D像素流程,從他們之前的Flash版The Last Night就能看出來。而且裡面的路人角色也並不多,工作量很取巧。而最後的那輛飛車,則極有可能是3D預渲染,這一點國外Retronator Magazine網站也做出了判斷。
鏡頭效果
強烈的景深效果,鋪天蓋地的體積光,真實的水面反射和雨滴流淌,都讓這個遊戲即使不用2D像素角色,也可以成為一個電影級別的3A遊戲。
體積光,Bloom配合霧氣,讓整個遊戲浸在強大的光感里。
總結
因為The Last Night在本次E3上只放出了預告片,沒有Demo可玩。所以現在所有的判斷都是基於預告片。從中可以分析出整體的立體像素風格是由帶有多層Pass的人物Sprite,在3D環境中擺放的2D紙片,和帶有像素貼圖的3D模型一起共同完成的。它們互相融入協調,和諧的共同作用讓整個遊戲擁有一個統一的令人驚嘆的藝術風格。
推薦閱讀:
※現在國內遊戲製作過程中,遊戲音樂的存在感是不是非常弱的?
※天涯明月刀OL公測距今將近三個月再來看這個遊戲怎麼看?
※建立一個單機遊戲製作室需要多少錢?