《Gem Hunter》是 Unity 的全新官方示例項目,展示了如何在 Unity 2022 LTS 使用通用渲染管線 (URP)打造搶眼的光效和視效,讓 2D 益智/三消游戲在競爭中脫穎而出。
下載示例項目及其說明文檔。準備潛入清澈湛藍的海水中探尋財富吧,因為那里到處都是色彩鮮艷的珠寶和海洋生物。了解如何設置2D精靈及光照來增加深度,應用Sprite Custom Lit著色器來賦予微光,并且創造眩光和波紋特效。
為 Unity 創作者提供最近發布的優質 URP 示例項目
Unity 的 URP 示例項目
繼《URP 3D 示例項目》和《Happy Harvest》之后,示例項目系列迎來了《Gem Hunter Match》,該示例項目由 Unity 的多個團隊制作,展示了 Unity 2022 LTS版本中 URP 的很多功能,適用于 3D 和 2D 多平臺項目。
這款跨平臺三消益智游戲的可玩部片段可在 Unity 資源商店和 Unity Samples 中獲取。你可以在《Gem Hunter Match》中使用自己的資源或自定義游戲玩法,或者把《Gem Hunter Match》中提供的精靈、著色器、特效、音頻、紋理和腳本用到自己的項目中。
擁有多彩元素的簡易游戲循環
《Gem Hunter Match》中的游戲循環
氣泡、珊瑚、警惕的美人魚組成了《Gem Hunter Match》游戲背景。游戲板上分布著珍珠、粉鉆、紅海星寶石、藍魚、金貝殼和綠海龜等海底珍寶元素,共有三個可玩關卡。匹配三個或更多元素可清除并獲得增益道具金幣。增益道具可以幫助到目標,但是失敗就會失去一顆心。木箱和繩子是障礙物;匹配木箱旁邊或繩子下面的三個元素可消除障礙物。
《Gem Hunter Match》游戲玩法示例
項目包含了簡易的游戲循環和可復用的物品欄。主要部分如下:
主場景:此畫面列出了所有可玩關卡,均引用自 Data 文件夾中名為 LevelList 的 ScriptableObject。
關卡場景:這里設置了具體的游戲玩法。玩家需要清除關卡目標區域列出的元素。
在 Data/BonusItems 文件夾中,可以找到增益道具以及引用的預制件,這些預制件包含了相關參數,例如觸發生成獎勵的組合形狀(如果多個部分具有相同的組合形狀,則會隨機選擇一個進行生成)。你還可以從頂部菜單創建自己的增益道具,路徑為 Assets > Create > 2D Match。
關卡結束/ 商店:在通關失敗或成功后可進入商店;給自己購買增益道具、心或其他貨幣。
商店中的所有道具均位于 Data/ShopItems 文件夾中(你也可以自行添加,路徑為 Assets > Create > 2D Match。商店中的道具包括:
金幣:匹配三個或更多道具即可賺取金幣,然后將金幣用作軟貨幣。
心或命:這些加速器可以讓玩家有機會重玩失敗的關卡。如果玩家在三消游戲中耗盡此等加速器,往往需要等待一段冷卻期,然后才能補充生命值。
星星:每過一關就可以收集星星;在實際的三消游戲中,星星往往是是元游戲(Metagame,指游戲主要玩法之外,玩家的其他目標或活動)的一部分、裝飾元素,或用于推進劇情。
在 2D 精靈上使用逐對象光照進行創意控制
2D 益智/三消游戲之所以受到歡迎,是因為這類游戲可愛又多彩,玩法輕松有趣、簡單不挑人,隨時隨地可玩。
雖然這類游戲可能還有精良的美工,但攝像機是靜態的、游戲玩法重復,而且在很多情況下光照和陰影是預烘焙的,因此這類游戲并不以尖端的光照和視覺特效而聞名。然而,你可使用多種方法添加閃光和微光,從而增加游戲的趣味性。
《Gem Hunter Match》使用了Sprite Custom Lit Shader。這是一種用來制作視覺特效的技術。此著色器取代了場景光照,讓我們可以修改 2D 光源紋理信息,并控制各個元素上的光照。因而可以給精靈賦予創意照明,比如產生熠熠生輝的特效,讓元素顯得流光溢彩。
光源位置數據已遷移至著色器,不必在場景中放置實際光源對象,這也有助于保持場景的整潔。此著色器中封裝的逐對象光照可以很好地進行隔離和大規模編輯,并在可以批處理時提高性能。
法線遮罩和遮罩貼圖
因為光照和陰影信息被存儲在著色器中,精靈中只有顏色信息。2D 光照系統使用法線貼圖來計算每個像素的方向,確保根據其位置接收不同強度的光照。遮罩貼圖(Mask map)則由可以影響特定RGB通道的光源使用。
《Gem Hunter Match》關卡場景中的Lights 預制件包含用于網格的 2D 光源。這些光源會影響默認的 Sprite Lit 著色器,并應用于接收光源的排序層(Sorting Layer)中包含的網格元素。
以下圖像展示了精靈的創建步驟,以及 Sprite Custom Lit 著色器在這個過程中的作用。
精靈準備:游戲中的不同光源使用精靈信息來制作動態 2D 光源系統
眩光特效讓寶石閃耀
在《Gem Hunter Match》中,“虛構的”光源位置由 LightRotator GameObject 表示,在經過動畫處理后,讓寶石產生了閃閃發光的特效。我們對游戲中的珍寶元素應用了 TileShader Shader Graph,其中包含 2D 光照貼圖的修改和使用 Dot Product 節點制作的高光。
在 Shader Graph 中使用 Dot Product 節點為示例項目中的寶石創造特效
如果你希望在 2D 項目中自定義光照,那么Dot Product 節點可能非常實用。Dot Product 將測量兩個向量的相近程度。在本示例項目中,我們對比了 LightDirection 位置和法線貼圖中每個像素表面的方向。采樣的黑白圖像可以用于為精靈添加光照,并且在 Runtime 對所有使用同一著色器的元素實時更新數值。
用于制作沖擊波特效的攝像機排序層紋理
Radial Warp 著色器使用了URP 2D Camera Sorting Layer Texture(攝像機排序層紋理)設置。這項實用功能允許訪問 URP 2D 渲染器中生成到指定排序層的圖形數據,然后將其用于 Shader Graph 以應用特效。在《Happy Harvest》示例項目中,攝像機排序層紋理用于創建水折射特效,在《Dragon Crashers》中,它被用于制作煙霧扭曲效果。在本示例項目中,我們用它來實現一種模擬沖擊波的扭曲效果,在消消樂時更添視覺吸引力。這種特效會讓玩家對游戲的印象更加深刻。
我們希望你能下載《Gem Hunter Match》,親自體驗并嘗試自定義,在自己的項目中應用它的圖形技術。讓你的 2D 休閑游戲大放異彩。
Unity 官方微信
第一時間了解Unity引擎動向,學習進階開發技能
每一個“點贊”、“在看”,都是我們前進的動力
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.