白鷺引擎技術總監,DragonBones 創始人。研究Flash 14 年,曾就職於Adobe北京研發中心Flash Runtime部門,擔任創新項目主管,參與過Stage3D項目的開發。電競愛好者,目前專注於設計類工具產品的研究。
自我介紹一下,劉晨光,多年伴隨設計師的程序開發者,白鷺時代 DragonBones的負責人。很多人對我的自我描述感覺很奇怪。實際上由於產品的緣故,我接觸的更多的是設計師而非開發者,故常自嘲為「多年伴隨設計師的程序開發者」。近年底,我們也在總結一年以來DragonBones的一些經驗和未來的發展方向。這次我想從四個方面想跟大家說一說DragonBones。動畫從來都是遊戲中最能體現效果的重要組成部分,但往往動畫製作也是遊戲開發中較為頭疼的一個環節。多年的從業經驗告訴我,對於遊戲中的動畫而言,主要存在一下幾個問題。1、設計師很容易被遊戲的技術選型所束縛,難以發揮在動畫效果上做最大化的發揮。2、骨骼動畫對於可以讓遊戲畫面素材提及減小,但是做起來麻煩,效率低。3、沒有專門為移動遊戲所伺服器的動畫製作工具,大部分還是沿用以前頁遊和端由的工具。4、設計師與動畫設計師之間的協同不理想,各種PSD文件導來導去,不勝其煩。5、骨骼動畫與傳統幀動畫不能有效整合,放到一起使用,總有不能和諧處理的地方。在DragonBones開發過程中,我們希望能夠從根本上解決遊戲開發過程中動畫部分的瓶頸。對於上面的五個問題,我們通過不同的方法進行逐一攻克。1、統一的動畫數據格式:DragonBones定義了一套完整的動畫數據格式,這樣便可以適用於任何工具,以及任何引擎。在工具方面,我們支持DragonBones Pro(獨立動畫編輯器)和DragonBones DesignPanel(基於FlashPro的骨骼動畫製作插件)。而程序方面,我們擁有多語言版本的動畫程序庫(DragonBones Library)。這樣,動畫設計師可將精力放置與DragonBones中,而無需關心程序是否能夠完整還原所設計的動畫。2、DragonBones Pro:這是一個完整的獨立動畫編輯器,專門為動畫編輯所準備,更加適合遊戲中動畫製作。3、專門為移動遊戲優化:DragonBones無論在功能的設計上,還是程序庫的優化上,都針對行動裝置做了大量優化,保證在不同手機中維持一個理想的性能狀態。4、插件系統:我們所提供的插件可以將PhotoShop中設計好的圖片直接導出為DragonBones Pro項目文件,然後直接編輯。我們的一些插件可提供對Spine、Cocos等格式的支持,可以方便做工具遷移。5、普通動畫支持:DragonBones Pro不僅僅可以製作骨骼動畫,亦可以製作逐幀動畫。與此同時,在動畫程序庫中,兩種不同的動畫形式可以進行嵌套操作,這極大的增強了兩種形式的動畫相互融合。說了這麼多,從動畫原型設計,到素材設計,再到動畫製作,最終由程序在遊戲中實現,我們能夠做到一個「跨引擎」的動畫製作流程,我們將這個流程總結為一句話便是,DragonBones是為移動開發者服務動畫製作完整工作流產品。很多人對這句話的理解都是用戶想要什麼我們就給什麼,大而全則好。我則不這麼認為。需求永遠都不可能存在盡頭,而將這些全部變為實實在在的功能,則是拖累用戶,讓產品變得愈加臃腫。DragonBones則一直秉承為快不破,動畫製作應該再簡單一些,再方便一些,考慮的再少一些,而不是一味的堆砌功能。這部分我想將幾個產品中的功能詳細說說。1、時間軸:經過多年的洗禮,我相信絕大部分動畫視頻製作類軟體都由時間軸的概念。Adobe的部分產品則更是將時間軸發揚光大。但DragonBones則對時間軸功能一剪再剪,其目是讓用戶所看所用到的東西是正確的東西。以Flash為參考,Flash是模擬翻頁動畫,幀與幀之間沒有時間,這是正確的思路。但目前動畫製作的主流需求應該是點與點,譬如循環動畫第二次循環要去掉開始的重複幀,如此才擁有更完美的動畫表現,DragonBones的時間軸是按照節奏製作和呈現的,設計師所看到動畫點才是他們所關心的內容。2、骨骼體系:比較重要的功能就是骨架嵌套,以及支持同骨骼的序列幀動畫。如果沒有骨架嵌套,很多動畫效果也可實現,但是製作成本卻要翻倍。譬如遊戲中人物與其手上的武器,傳統的是做成單個角色,這樣人物動畫中的動作極為單一,而DragonBones是將人物與武器做成兩個角色,嵌套在一起,如此可以產生更豐富的動作和動畫。所以骨架嵌套嵌套功能孕育而生,這也是為設計師效率所考慮。3、反向動力學約束:所有人都不願意看到一個遊戲中人物的動作如殭屍般僵硬。但大部分人應該知道,人物的動作想要鋼筋有力,亦或是飄飄欲仙,都需要動畫設計師不停的微調,反覆修改每一個關節的運動狀態,這是極為耗時和考驗耐心的工作。而反向動力學約束可以幫助設計師在動畫調整過程中幫助想關聯關鍵做出正確的位置移動。譬如人在站立,需要上身動腳不動,在DragonBones中將人物上下半身分割,並且在下半身嵌套入遊戲場景,簡單的操作即可實現。4、蒙皮動畫:很抱歉,在本文撰寫時,你能看到的版本還不包含該功能。但我總是喜歡將一些好的東西提前分享給大家。蒙皮動畫解決開發者做柔體動畫的需求,無論是飄揚的紅旗還是隨風而動的戰袍,都可以通過蒙皮動畫解決。DragonBones Pro這個獨立骨骼動畫編輯器,實際上也即是設計師工具。它具備目前動畫師需要的幾乎所有功能,而除了上述的重要功能之外,DragonBones最大的特點毫無疑問是可視化編輯,如同PS一樣,動畫師在製作動畫的過程中能夠做到所見即所得。到現在DragonBones不只是單純用於製作遊戲動畫,也可以像Flash那樣製作廣告動畫和其它交互內容。事實上DragonBones年齡要比Egret大兩歲,在加入Egret之前,DragonBones第一個公開發布的版本是在2012年十月的1.4版本,它最主要的是打通了在Flash做動畫,然後搭建了從設計師(動畫)到開發者(遊戲)的工作流。接下來重要的是2.0版本,這個版本基於動畫功能做了大量的升級,譬如可以做動畫融和,動畫之間自動柔和的過渡。3.0版本正式加入到了Egret體系中,在推出DragonBones3.0基礎是JS版本,不過他全面支持各類語言,譬如C++版本支持Cocos、C#支持Unity,而它的核心是製作移動遊戲的動畫體系。今年推出的4.1版本推出了極速模式,其性能比同類產品提升了30%左右,譬如Spine,並且其包體容量在同類產品可能是最小的。到目前位置,DragonBones的程序庫很多修改維護仍來源於社區貢獻,與此同時,我們也一直在與設計師進行溝通反饋,時刻了解設計師在使用過程中的需求與反饋。內部是我們最容易接觸的第一手渠道,其次我們會關注來自QQ群,論壇和開發者沙龍上所搜集的反饋,根據需求指定功能,隨後確定優先級,逐一完善。一開始已經說過,DragonBones一直圍繞動畫服務,在未來,設計師做的動畫,不僅僅可用於遊戲。同時還可以應用於其他領域。譬如,可以直接打包發布,增加互動類功能,可以通過DragonBones製作動畫效果豐富的互動類廣告。在遊戲動畫製作這個方向上,給予功能和性能上的全面提升,並且在性能上全面支持WebGL,提供硬體加速。對於不同維度用戶,DragonBones會提供常用的模板,同時跟雲端的服務相結合,打通白鷺商城,使得美術素材、模板無縫結合。文章的最後,還想提及一個事情,我們非常希望動畫設計師能夠體驗使用我們的產品,給予我們更多的反饋。而近期,我們白鷺開發者服務平臺推出了一項尋找「精英動畫師,優秀動畫DEMO徵集」的活動,與此同時,D5Power 、CGjoy也其平臺和論壇推出了基於DragonBones製作作品的專項賽事。歡迎動畫師們使用DragonBones製作動畫,時下DragonBones正在徵集優秀DEMO,希望動畫師或開發者們提供優秀作品。我更希望開發者與動畫師們一起參與到DragonBones未來的產品設計中來,這也是白鷺時代一直堅持的理念。http://www.egret.com/products-dragonbones白鷺引擎微信號