系列目錄

【Unity3D基礎(chǔ)】讓物體動(dòng)起來①--基于UGUI的鼠標(biāo)點(diǎn)擊移動(dòng)

【Unity3D基礎(chǔ)】讓物體動(dòng)起來②--UGUI鼠標(biāo)點(diǎn)擊逐幀移動(dòng)

時(shí)光煮雨 Unity3D讓物體動(dòng)起來③—UGUI DoTween&Unity Native2D實(shí)現(xiàn)

時(shí)光煮雨 Unity3D實(shí)現(xiàn)2D人物動(dòng)畫① UGUI&Native2D序列幀動(dòng)畫

時(shí)光煮雨 Unity3D實(shí)現(xiàn)2D人物動(dòng)畫② Unity2D 動(dòng)畫系統(tǒng)&資源效率

原理

看過前篇的朋友,一定能猜到這篇的內(nèi)容了,2D人物動(dòng)畫,這是一個(gè)老生常談的話題,很多人都寫過或者提供過類似的代碼,本文還是遵守著重原理,代碼次之的原則。下面是根據(jù)以前自己學(xué)習(xí)的時(shí)候?qū)W習(xí)“深藍(lán)色右手”WPF游戲教程的“WPF/Silverlight動(dòng)畫及游戲系列教程”,先結(jié)合Unity3d技術(shù)改編的原理文字

動(dòng)態(tài)實(shí)現(xiàn)2D人物角色動(dòng)畫目前有兩種主流方法,下面我會(huì)分別進(jìn)行介紹。
      第一種方法我稱之為圖片切換法,準(zhǔn)備工作:首先通過3DMAX等工具3D渲染2D的方法制作出角色,然后將角色每個(gè)動(dòng)作均導(dǎo)出8個(gè)方向每方向若干幀的系列圖片(如果是有方向的魔法圖片,很多2D-MMORPG往往會(huì)導(dǎo)出16個(gè)方向的系列幀圖片以求更為逼真),即將每個(gè)人物每個(gè)動(dòng)作的各方向的每幀均存成一張圖片,如下圖僅以從破天一劍游戲中提取的素材為例:

(特別申明:本系列教程所使用的如有注明歸屬權(quán)的圖片素材均來源于網(wǎng)絡(luò),請(qǐng)勿用于商業(yè)用途,否則造成的一切后果均與本人無關(guān)。)

1

從上圖可以看到,我將人物向右方跑步共8幀圖片通過Photoshop分別將畫布等比例擴(kuò)大成150*150象素圖片(因?yàn)槭翘崛〉乃夭?,初始寬和高是不均衡值,所以必須擴(kuò)大成自己的需求,這樣人物會(huì)在圖片中居中,并且為后期加入武器或坐騎留好余地。稍微的偏離也可以在后期進(jìn)行微調(diào)),并將他們從開始到結(jié)束分別命名為0.png,1.png,2.png,3.png,4.png,5.png,6.png,7.png,然后將這8張圖片保存到相關(guān)目錄下,到此準(zhǔn)備工作終于結(jié)束了

這里在WPF中有一個(gè)UI線程級(jí)別的定時(shí)器DispatcherTimer,而Unity中沒有提供類似的機(jī)制(或許是我不知道),Unity主要是心跳來控制的也就是Update函數(shù)了,但是這里的原理就是幀動(dòng)畫,每個(gè)多少幀變化一下player的動(dòng)作圖片即可,但我們知道幀就是和時(shí)間相關(guān)的。

簡單的說:就是定義一個(gè)圖片數(shù)組,然后實(shí)現(xiàn)一個(gè)定時(shí)器,時(shí)間到了就獲取數(shù)組里的一張圖,替換精靈的背景圖片。

1(1)

實(shí)現(xiàn)

網(wǎng)友評(píng)論