正式版推出前,說明3.3的功能還沒開發完。所以,又一大波更新來了~
下面對重點更新進行說明。
Spine的重要更新
3.3.0-beta.3版本開始,新增了Spine 4.2 的運行時庫,Spine動畫上可以支持物理特性了。例如,下圖右側女孩在啟用物理更新
后,頭發與裙擺受物理力的影響,擺動的更加自然。
至此,Spine 已完成了 3.7、3.8、4.0、4.1、4.2版本的運行時庫支持。
另外,beta.3版本完善了 Spine 使用的文檔,IDE屬性面板上增加了功能使用的說明。同時我們對?Spine 各模塊功能也進行了更加全面與細致的測試,穩定性與易用性得以顯著的提升。
2D物理的重要更新
3.3.0-beta.3版本開始,對2D物理的使用流程進行了優化重構,使得2D物理的流程與3D物理流程統一起來。
例如,取消2D碰撞體組件,碰撞形狀改到剛體上添加。新增靜態碰撞器,專門用于處理靜態剛體。
將碰撞屬性放到碰撞形狀上的好處是,一方面結構更加清晰,另一方面,當存在組合碰撞體時,可以更靈活的在不同碰撞形狀上設置不同的碰撞目標,而不再是統一在剛體上設置。
對于beta.3之前的舊版本2D物理引擎,我們也保持了兼容。不更新到新的物理流程,也可以使用。
但我們建議開發者直接升級到新版本的2D物理引擎,并為此內置了2D物理升級工具,方便開發者一鍵升級舊版本的2D物理數據。
需要注意的是,升級工具的操作不可逆。一旦使用物理升級工具升級,將無法在 beta.3 之前的 IDE 與引擎中使用。升級前一定要做好項目備份。
除了以上的更新外,2D剛體上增加了position與rotation訪問器,用于獲取位置和旋轉角度。并對postion進行世界坐標與局部坐標轉換,方便開發者按節點位置的理解來設置坐標。
TileMap的重要更新
3.3.0-beta.3版本開始,IDE支持第三方工具TiledMap編輯工具制作的地圖(tsx\tmx\tx)導入到LayaAir3-IDE,并自動轉換為LayaAir3內置的tileMap地圖格式(tres)。方便習慣第三方編輯器的美術人員,在第三方工具中編輯后,直接導入 IDE 并使用引擎內置的 tileMap。
原地圖中的圖塊圖層與對象圖層將被分別解析為帶有 TileMapLayer 組件的層級節點,以及不含任何組件的空節點。對象圖層下的各個對象將被解析為獨立的精靈對象。
新增功能方面,在TileSet中新增了訪問器terrainSets,用于描述一個集合的tile塊拼接規則,然后在用terrain模式添加塊時會自動拼接符合規則的塊。
進一步完善了新UI系統
對于新UI系統,本次版本也進一步完善了。
例如,工具菜單下新增了“創建按鈕、創建下拉框、創建進度條”等創建行為組件的入口,用于快捷創建按鈕等預制體。(這個功能同樣也可以用于創建插件UI)
圖片組件補充了和fairygui類似的翻轉、填充進度等效果,增加了裁剪為圓形等形狀的效果。
在Controller中,Gears新增了一個按鈕,可用于快速添加可見性控制。
除此之外,新UI系統中,還補充了GMovieClip。對于GTextField和GLoader補充了發布時清除功能。還完善了多國語言功能(i18n),使得該功能已經正常可用。
IDE的易用性更新
首先,3.3.0-beta.3版本開始,層級面板Image和GImage節點的圖標優化為顯示圖片的縮略圖,使得節點更容易識別。
另外,優化了繪圖編輯、形狀編輯、適配形狀等按鈕的位置與顯示,使界面更加美觀。
我們將預制體的運行預覽調整為中心顯示,這一優化可以使動畫預制體原點以外的區域(坐標負值)也能在 IDE 內預覽。
對于IDE中的菜單快捷鍵設置,我們從本版本開始,支持用戶自定義動態添加。
在插件系統方面,本次版本新增了一個addMenuItem的API,相對于以往@menu裝飾器,它可以不定義回調函數,這對于一些有默認處理函數的菜單有效果。
例如,層級菜單,如果不定義點擊函數,會自動使用菜單的id作為類型去創建節點。
Editor.extensionManager.addMenuItem(??"Hierarchy/我的預制體/Button",?null,? ? {?id:?"67b6743c-3e75-446c-bdf2-8d1c4e320062"?});
其它引擎與IDE的新增與優化
3.3.0-beta.3 版本中,我們還支持了文本與序列幀動畫混排,例如文本中可直接使用標簽 <img src='animation.atlas'>。
對于普通的圖集,該版本開始,也新增支持了動畫屬性的設置,可以直接變成圖集動畫資源。
我們還開放了動畫狀態機的動畫事件(進入狀態時觸發的OnStartEnter、狀態更新時觸發的EVENT_OnStateUpdate、退出狀態時觸發的EVENT_OnStateExit、狀態循環時觸發的EVENT_OnStateLoop),方便開發者根據事件來控制動畫邏輯。
值的重點介紹的是,LayaAir 3.3.0-beta.3 版本完成了?Additional 渲染架構,并支持基于 BaseRender 的材質合批功能。
在渲染過程中,材質合批(Material Batching)可以減少渲染批次,提高 GPU 的渲染效率。原本,渲染系統在處理多個相同材質的對象時,可能會因渲染狀態的切換導致額外的性能開銷。而在新的架構下,BaseRender 作為基礎渲染單元,通過合并相同材質的渲染數據,使得多個對象可以在同一個批次中被渲染,從而降低 DrawCall,提高幀率。
例如下圖中,兩百個顏色不同的球 ?只用了一個drawcall。
根據開發者的反饋,我們優化了showall適配模式,可以根據是否使用視網膜畫布模式(useRetinalCanvas)來決定是否采用高分辨率的畫布。以及優化了full模式等,讓開發者滿足各種適配需求。
對于Native方面,我們還優化了webgl模式的運行效率等。
歡迎大家前往引擎官網(layaAir.com)下載體驗。
END