Cocos Creator 3.0 入門! 2D 素材 3D 效果

用2D素材實現3D效果!

前言

好久沒寫教程筆記了,不知大夥是否想念教程了?

溫馨提示:所有內容純屬個人瞎玩研究,如要上線項目,請自行評估~ oh

最近逛論壇,看到有一位小夥伴想實現以下這種透視效果。

預期效果

接着,去找了這個遊戲的素材,都是2d圖片。

圖片素材

這想到兩個方案去實現:

  1. 純2d實現:對一張圖片的每個頂點做一次投影變換,算出每個頂點在2d屏幕中的座標。
  2. 用3d實現:調整相機參數,圖片放在 Quad (四方形) 上,佈置3d場景。

綜合考慮,用3d實現相對方便一點,行動起來吧!

實現

本次主要實現兩個點:

  1. 透視場景效果
  2. 金幣動畫

佈置場景

新建場景後,在場景中添加4個四方形(Quad),通過旋轉平移縮放,圍成長方體的四個面。

四個四方形圍成的四個面

接着創建材質(牆/地板/天花板),採用 builtin-unlit.effect(無光照),並選取對應的texture,再把材質加在對應的四方形上。

創建材質

所有都創建完後,是這個樣子的。

山洞效果

這個洞的深處應該有個漸變黑影,把這個資源類型改成sprite-frame,並加入場景的UI層。

修改資源類型

接着調整一下攝像機的參數,讓這個漸變黑影在中間,預覽運行,結果如下。

山洞效果+陰影遮罩

幀動畫

金幣素材是2d的幀動畫,要在3d實現透視效果這裏同樣採用四方形。

原素材有點擠,我們稍微處理一下,讓其每一幀的圖片位置均勻。

這邊用的是 shoebox 拆圖,然後放在ps裏調位置,導出的圖片長寬需要時2的n次冪

更程序員的做法是寫個腳本分割圖片,再重新生成圖片(或者找美術爸爸出圖)

金幣圖片處理

同樣的,也建一個金幣材質,選擇builtin-unlit.effect,選擇transparent(透明)的通道(因爲該圖要用到透明),修改tillingOffset(紋理縮放偏移)參數。

創建金幣材質

創建一個四方形,選擇金幣材質,添加動畫,修改tillingOffset中的偏移參數。

創建金幣動畫1

再把動畫過程調成Const,可以看到初步效果。

創建金幣動畫2

最後,多放幾個金幣在場景中,加一些牆紙放牆上~

最後效果預覽

更多可能

如果你想繼續把這個做成遊戲的話,可以參考以下幾個步驟:

  1. 角色也是幀動畫資源,可以放在UI層,控制其左右。
  2. 角色前進:可以通過控制攝像機向前推進。
  3. 地圖生成:把地圖塊做成預製體,根據相機的位置,不斷回收前面的和生成後面的地圖塊。
  4. 碰撞檢測:同樣可以根據攝像機的位置以及角色的位置,和帶檢測物體的位置判斷。

小結

巧用四邊形!3d效果值得擁有!

遊戲開發程序員必備英語單詞回顧:

  • opaque - [oʊ'peɪk] 不透明的
  • transparent - [træns'perənt] 透明的
  • unlit - [ʌn'lɪt] 無燈光的

以上爲白玉無冰使用 Cocos Creator 3.0 preview-1 實現 "用2D素材實現3D效果 的技術分享。歡迎分享給身邊的朋友!

原文鏈接
原創文章導航

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章