Cocos Creator v2.1.0 正式釋出,新增 3D 支援

powerx_yc發表於2018-12-12

Cocos Creator v2.1.0 今日正式釋出,點選進入官網下載。


12796411-f06fe866cccfc425


Cocos Creator  v2.1 版本最大的改動就是支援了 3D 模型渲染、3D Camera、3D 骨骼動畫、3D 點選等 3D 特性,同時編輯器原生支援解析 FBX 格式的 3D 模型檔案,不需要額外的匯入流程。

在之前 v2.0 中,Cocos Creator 就已經用上了基於 Cocos3D 的 3D 渲染器,具備了正式引入 3D 支援的基礎。3D 特性的加入可以大大豐富 2D 遊戲的表現力,減輕 2D 遊戲的資源開銷,帶來更多的想象與擴充套件空間。

不過需要強調的是,Cocos Creator 的目標使用者仍然是現有的 2D 遊戲開發團隊,2D 遊戲仍然是 Cocos Creator 2.x 時代的核心服務目標。我們會堅持優化 2D 遊戲的開發體驗及基礎效能,逐步增加適合融入 2D 遊戲的 3D 功能,陪伴 2D 遊戲團隊共同成長。

Cocos Creator 不會成為一個純 3D 引擎,那是 Cocos3D 的目標。Cocos Creator 的發展路線更接近 2.5D。

這不是 Cocos 第一次將引擎從 2D 升級到 3D,幾年前 Cocos2d-x 就在 3D 領域進行過擴充套件,積累了不少經驗,更誕生了《劍與家園》這樣非常優秀的作品。不過當時是在一套已經很重的 2D 渲染器上堆砌 3D 功能,也缺乏編輯器支援,因此最終並未得到市場的廣泛認可。而這一次,Cocos Creator 是在 Cocos3D 的 3D 渲染器基礎上,直接把 3D 潛能釋放出來,同時保證了無縫的編輯器使用體驗,這次的改變是完全不同性質的。


後續版本預告

v2.0 會繼續維護,原生平臺效能將會盡快優化。

v2.0 和 v2.1 將在一段時間內共同發展,v2.0 會繼續維護,增加更多的效能優化和缺陷改善。我們將很快釋出 v2.0.7 進行公測,在這個版本中,我們優化了引擎的渲染效能,尤其是原生平臺的 Spine 和 DragonBones,效能都有了很大幅度的提升。

v2.1 的迭代將會比較激進

相比 v2.0,v2.1 的提升將主要圍繞 3D 領域,我們推薦有 3D 需求的新專案升級到這個版本,並且在論壇等渠道和我們建立聯絡,我們負責 3D 的小夥伴將提供相關支援。由於 v2.1 是一個很新的版本,我們將加快迭代頻率,儘量滿足開發者的需求。目前 v2.1.0 版本仍不支援 3D 場景編輯,僅能夠在屬性檢查器中對節點進行 3D 引數的設定。近期我們就會推出 v2.1.1 版本,用來支援 3D 場景編輯和材質系統,優化 3D 開發流程。


完整改動列表(相比 v2.0.5)

一、What's New

 1 . 3D 節點  

在 2.1 中,預設新建立出來的節點都仍然是 2D 的,當有需要時,只需要點選節點右上方的 2.5D 按鈕就能切換成 3D 模式,切換後就能編輯 z 軸,詳見[3D Node]

12796411-645f68ebb50da519
3D節點切換動畫

 2 . 3D Camera  

和 Node 一樣,Camera 也分為了兩種模式。當你把 Camera 元件新增到普通的 2D 節點上時,它就是一個 2D Camera。當你把 Node 切換到 3D 模式後,Camera 也會進入 3D 模式,3D 模式下即可編輯 Camera 的 FOV 等引數。

12796411-bbc51e85215e9200
3D Camera切換動畫


 3 . 3D 模型匯入  

目前 Cocos Creator 支援匯入的 3D 模型格式為使用非常廣泛的 .fbx,基本上 3D 建模軟體都支援匯出這種格式。匯入的流程很簡單,只需要將 .fbx 模型資源拖入到資源管理器,等待片刻即可完成匯入工作。匯入完成後,在資源管理器中看到匯入後的模型資源是一個可以展開的資料夾,匯入模型的時候編輯器會自動解析模型的內容,並生成 Prefab、網格、骨骼動畫等資源,詳見[匯入模型]

12796411-a5a21689b0579d99

 4 . Mesh Renderer 元件  

Mesh Renderer 用於繪製網格資源,詳見[Mesh Renderer 元件]

12796411-016d46b1e029f45c

 5 . 骨骼動畫元件  

骨骼動畫元件繼承自 Animation 元件,骨骼動畫元件的使用方法與 Animation 元件沒有太大區別,只是骨骼動畫元件使用的剪輯只能是骨骼動畫剪輯。骨骼動畫元件將在匯入模型時自動新增到模型的 Prefab 中,詳見[骨骼動畫元件]

12796411-814185bbfb833cc9

更多 3D 相關說明,請查閱文件[3D 系統]

 6 . 優化自動圖集構建速度  

大幅優化自動圖集構建速度,如果圖集沒有改變的話則直接使用上次構建的結果。

 7 . 進一步提升渲染效能  

v2.0 相比 v1.x,有一些情況引擎不會進行渲染批處理,導致了 Draw Call 的增加。v2.1 對這些情況重新進行了優化。如之前 Color 或 Opacity 不同無法批處理,Sliced 和非 Sliced 共用同一貼圖無法批處理,Opacity 為 0 的節點仍佔用 Draw Call 的問題都得到了解決。

 8 . 增加模擬器除錯功能  

在專案設定 - 預覽執行皮膚中,新增了“開啟模擬器除錯介面”選項和“等待偵錯程式連線”選項。前一個選項的作用是,在模擬器預覽專案時將自動開啟除錯視窗。後一個選項的作用是,暫停啟動過程直至偵錯程式連線完成,用於除錯載入過程。

12796411-3b206a3a9ffd6658


 9 . 紋理自動壓縮  

可以直接在編輯器中設定紋理需要的壓縮方式,Creator 將在專案釋出時自動對紋理進行壓縮。在 Web 平臺上支援同時匯出多種圖片格式,引擎將根據不同的瀏覽器自動下載合適的格式,詳見[壓縮紋理]


 10 . 編輯器  

Dashboard 改為在開啟工程的時候關閉,工程關閉的時候自動開啟

Dashboard 將會自動記錄上一次建立的工程路徑

優化 Button 在編輯器下的預覽效果

優化 Button Click Event 對元件的索引方式,避免指令碼重新命名後索引就丟失的問題

QQ 輕遊戲構建時允許直接打包出 zip 檔案,便於上傳伺服器

新增外掛商城在外掛下載完成後自動提示使用者安裝

構建微信小遊戲主域工程時,不會再清空子域

修改構建 Android 平臺時預設選中的 API Level 為當前最高的 Level(Target API Level)

移除了場景編輯器中的節點路徑欄,節點路徑可通過層級管理器的節點右鍵選單獲取

動畫編輯器對 cc.Enum 和 cc.Integer 型別的數值預設改用 Constant 曲線,不進行插值

動畫編輯器關鍵幀增刪體驗優化

優化引擎自動編譯有關體驗

新增了其它一系列體驗優化


 11 . 引擎  

[UI] 在 Layout 元件上新增 affectedByScale 屬性,如果開發者希望 Layout 子節點的縮放能夠影響佈局,可以手動開啟該選項。

[UI] 支援 XML 格式的 fnt 檔案

[UI] Label 節點 onEnable 時將立即重新整理一次節點的 Content Size

[UI] 當 Button 的 target 未定義時,將預設使用當前節點

[UI] ToggleContainer 增加了和 Toggle 類似的 checkEvents 事件屬性,該事件只有在 Toggle 的 isChecked 狀態變為 true 時才觸發

[Action] 新增了 cc.Rotate3DTo、cc.rotate3DTo、cc.Rotate3DBy、cc.rotate3DBy 四個 Action 的支援

[Native] 在 iOS 和安卓平臺重新加入了在 v2.0.0 中移除的 WebView 和 VideoPlayer 支援

[Native] Mac 原生平臺切換至 V8 引擎,如需用回 JSC 需手動修改巨集,詳見[#1515]

[Native] 新增原生平臺 LocalStorage 缺失的 key 和 length 屬性,詳見[#1371]

[Native] 在 iOS 原生平臺上採用跟 Android 統一的拼音輸入行為,不保留輸入未完成的拼音

[Android] 升級安卓編譯方式到 NDK r16 + Clang,同時採用 Clang 編譯安卓預編譯庫

[Android] 升級 Android 構建工具配置 Gradle 至 4.4,plugin 至 3.1.4。(Gradle 4.6 有已知 issue 會導致資源打包失敗)

[Android] 優化安卓輸入框使用體驗

[Android] 壓榨安卓空包包體,最小包體從 7.0MB 減小到 6.3MB

[Web] 增加 Web 平臺上 WebView 的透明度支援

[Web] 優化了 WebView 元件的顯示位置

[Web] 優化 VideoPlayer 在 X5 瀏覽器上的適配表現

[Wechat] 支援在微信小遊戲上響應 cc.game.EVENT_SHOW 事件時,獲取到平臺傳入的 res 和 referrerInfo 引數

[VideoPlayer] 優化了 VideoPlayer 全屏播放的有關表現


二、Bug Fixes

 1 . 編輯器  

修復動畫編輯器節點列表可能沒更新的問題

修復在場景編輯器裡面能選中 RichText 子節點的問題

修復使用命令列構建專案時,不論是否出錯,錯誤碼始終返回 0 的問題

修復場景編輯器中的網格背景會穿透到某些半透明圖片上方,導致顏色和執行時有一些差異的問題

修復外部拖拽資源到資源管理器的無效位置時,編輯器會報錯的問題

修復釋出 Android Instant 平臺時遠端伺服器 ip 獲取錯誤的問題


 2 . 引擎  

[Core] 修復節點 destroy 後,activeInHierarchy 仍為 true 的問題

[Core] 修復 RenderTexture 中的 filter, premultiply alpha 設定無效的問題

[Core] 修復無法載入由外掛引入的場景的問題

[Web] 修復 Chrome 69、70 上半透明物件渲染後可能出現白色殘影的問題(Since 2.0)[#3357]

[UI] 修復 Button 在多個狀態互相疊加時可能有些狀態失效的問題

[UI] 修復 LabelOutline 設定顏色無效的問題

[UI] 修復了在 start 方法中設定 Toggle.isChecked 無效的問題

[UI] 修復 LabelOutline 元件 enabled 狀態修改時效果沒同步變化的問題

[Animation] 修復 AnimationState 的引數有可能解析為字串型別的問題

[QQPlay] 修復 QQ 輕遊戲不響應前後臺切換事件的問題

[QQPlay] 修復 QQ 輕遊戲上如果使用斜體,字型將會變得很小的問題

[QQPlay] 修復 QQ 輕遊戲在鎖屏重新進入或前後臺切換時,聲音無法重新播放的問題

[微信小遊戲] [QQPlay] 修復小遊戲平臺 audio setCurrentTime 之後,不觸發 ended 事件的問題[#3373]

[Native] 修復原生平臺連線 socket.io 伺服器可能會報 Bad Request 的錯誤

[Native] 修復 iOS 和安卓無法檢測重力感應的問題

[Native] 修復 iOS 呼叫 cc.game.restart 重啟遊戲後再輸入文字會崩潰的問題

[Native] 修復 Windows 原生平臺上 Label 的 opacity 屬性不生效的問題

[Native] 修復安卓上無法監聽 onKeyUp 的問題

[Native] 修復安卓手機如果自帶的 SSL 證書過期後會導致資源載入失敗的問題

[Native] 修復安卓原生平臺下載圖片時不支援伺服器重定向的問題[#PR]

[Physics] 修復 MouseJoint 未能響應 touch cancel 的問題

[Spine] 修復當 Spine 在 Mask 下重新載入時貼圖有可能丟失的問題


三、MIGRATION GUIDE

 1 . v2.1 升級注意事項  

Node 的 rotation 相關 API 已被標記為 deprecated,執行時將提示升級為 angle ,詳見[3D Node - Node API 升級]

安卓的 NDK 版本需要升級到 r16,否則將編譯失敗。


 2 . 微信小遊戲開放資料域  

從 v2.0.1 開始,Cocos Creator 升級了開放資料域解決方案,請參閱[接入小遊戲開放資料域]


 3 . v2.0 升級指南  

詳見[v2.0 升級指南]


 4 . 資源升級  

從 v1.10 開始,Cocos Creator 對底層資源型別進行了重構,大多數專案不受影響,但有些專案可能會收到一些警告,詳情請查閱

[v1.10 資源升級指南]


以上就是 Cocos Creator v2.1.0 的更新說明。各位開發者可點選文末[閱讀原文]進入 Cocos 官網下載新版本,下載完畢,新建一個 example 工程,開啟 assets/cases/3d 下的案例即可體驗。在安裝、升級和體驗過程中,如有遇到任何技術難題,歡迎大家通過 Cocos 技術論壇等渠道向我們反饋,感謝各位的支援!

[Cocos 官網]

[Cocos 論壇]

12796411-9ce795f1c43071e0



小遊戲流量入口大盤點,不可錯過

OPPO、vivo 小遊戲正式上線,Cocos 率先支援

有人說他這本 Cocos Creator 教材可以防脫髮

Google Play Instant 正式上線,Cocos Creator 同步支援

Cocos 技術派|實時競技小遊戲技術實現分享

相關文章