系列目錄
【Unity3D基礎】讓物體動起來①--基于UGUI的鼠標點擊移動
【Unity3D基礎】讓物體動起來②--UGUI鼠標點擊逐幀移動
時光煮雨 Unity3D讓物體動起來③—UGUI DoTween&Unity Native2D實現(xiàn)
時光煮雨 Unity3D實現(xiàn)2D人物動畫① UGUI&Native2D序列幀動畫
時光煮雨 Unity3D實現(xiàn)2D人物動畫② Unity2D 動畫系統(tǒng)&資源效率
原理
看過前篇的朋友,一定能猜到這篇的內(nèi)容了,2D人物動畫,這是一個老生常談的話題,很多人都寫過或者提供過類似的代碼,本文還是遵守著重原理,代碼次之的原則。下面是根據(jù)以前自己學習的時候?qū)W習“深藍色右手”WPF游戲教程的“WPF/Silverlight動畫及游戲系列教程”,先結(jié)合Unity3d技術改編的原理文字
動態(tài)實現(xiàn)2D人物角色動畫目前有兩種主流方法,下面我會分別進行介紹。
第一種方法我稱之為圖片切換法,準備工作:首先通過3DMAX等工具3D渲染2D的方法制作出角色,然后將角色每個動作均導出8個方向每方向若干幀的系列圖片(如果是有方向的魔法圖片,很多2D-MMORPG往往會導出16個方向的系列幀圖片以求更為逼真),即將每個人物每個動作的各方向的每幀均存成一張圖片,如下圖僅以從破天一劍游戲中提取的素材為例:(特別申明:本系列教程所使用的如有注明歸屬權(quán)的圖片素材均來源于網(wǎng)絡,請勿用于商業(yè)用途,否則造成的一切后果均與本人無關。)
從上圖可以看到,我將人物向右方跑步共8幀圖片通過Photoshop分別將畫布等比例擴大成150*150象素圖片(因為是提取的素材,初始寬和高是不均衡值,所以必須擴大成自己的需求,這樣人物會在圖片中居中,并且為后期加入武器或坐騎留好余地。稍微的偏離也可以在后期進行微調(diào)),并將他們從開始到結(jié)束分別命名為0.png,1.png,2.png,3.png,4.png,5.png,6.png,7.png,然后將這8張圖片保存到相關目錄下,到此準備工作終于結(jié)束了
這里在WPF中有一個UI線程級別的定時器DispatcherTimer,而Unity中沒有提供類似的機制(或許是我不知道),Unity主要是心跳來控制的也就是Update函數(shù)了,但是這里的原理就是幀動畫,每個多少幀變化一下player的動作圖片即可,但我們知道幀就是和時間相關的。
簡單的說:就是定義一個圖片數(shù)組,然后實現(xiàn)一個定時器,時間到了就獲取數(shù)組里的一張圖,替換精靈的背景圖片。