版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
8.1Mecanim概述Unity的動(dòng)畫系統(tǒng)由以下幾部分組成,即Animator(動(dòng)畫編輯器)、AnimatorController(動(dòng)畫控制器)、Animation(動(dòng)畫片段)、Avatar(骨骼模型)。為人形角色提供簡易的工作流和動(dòng)畫創(chuàng)建能力。Retargeting(運(yùn)動(dòng)重定向)功能,把動(dòng)畫從—個(gè)角色模型應(yīng)用到另一個(gè)角色模型上。針對(duì)AnimationClips(動(dòng)畫片段)的簡易工作流,即針對(duì)動(dòng)畫片段以及它們之間的過渡和交互過程的預(yù)覽能力。下一頁返回8.1Mecanim概述這樣可以使動(dòng)畫師更加獨(dú)立地進(jìn)行工作,而不用過分地依賴于程序員,從而在編寫游戲邏輯代碼之前即可預(yù)覽動(dòng)畫效果。一個(gè)用于管理動(dòng)畫間復(fù)雜交互作用的可視化編程工具如圖8.1所示。通過不同邏輯來控制不同身體部位運(yùn)動(dòng)的能力。上一頁返回8.2Animator組件8.2.1AnimatorControllerAnimatorController是將動(dòng)畫和模型綁定的東西,可以通過在Project視圖中依次選擇Create→AnimatorController菜單命令來創(chuàng)建NewAnimatorController。此時(shí)在項(xiàng)目工程的Assets文件夾內(nèi)生成一個(gè).controller文件,且以圖標(biāo)的形式在Project視圖中顯示。當(dāng)設(shè)置好運(yùn)動(dòng)狀態(tài)機(jī)以后,就可以在Hierarchy視圖中將該NewAnimatorController拖入一個(gè)具備Avatar角色的Animator組件上,。下一頁返回8.2Animator組件
AnimatorController視圖包括:AnimationLayer組件;事件參數(shù)組件;狀態(tài)機(jī)自身的可視化窗口。8.2.2動(dòng)畫狀態(tài)機(jī)在游戲中一個(gè)角色往往擁有多個(gè)運(yùn)動(dòng)動(dòng)畫,如在空閑狀態(tài)時(shí)站立、跑步動(dòng)畫、攻擊動(dòng)畫等。通過腳本控制這些運(yùn)動(dòng)狀態(tài)的切換和過渡,如果是早期的動(dòng)畫系統(tǒng)會(huì)比較麻煩。Mecanim系統(tǒng)借用了計(jì)算機(jī)科學(xué)中的狀態(tài)機(jī)概念來簡化對(duì)角色動(dòng)畫的控制。1.狀態(tài)機(jī)基礎(chǔ)狀態(tài)機(jī)的基本思想是使角色在某一給定時(shí)刻進(jìn)行一個(gè)特定的動(dòng)作,常用的動(dòng)作有待機(jī)、走路、跑步、攻擊和跳躍等,其中每一個(gè)動(dòng)作被稱為一種狀態(tài)。上一頁下一頁返回8.2Animator組件
一般來說,角色從一個(gè)狀態(tài)立即切換到另一個(gè)狀態(tài)是需要一定限制條件的,比如角色只能從跑步狀態(tài)切換到跑跳狀態(tài),而不能直接由靜止?fàn)顟B(tài)切換到跑跳狀態(tài)。上述限制條件稱為狀態(tài)過渡條件??傊?,狀態(tài)集合、狀態(tài)過渡條件以及記錄當(dāng)前狀態(tài)的變量放在一起,就組成一個(gè)最簡單的狀態(tài)機(jī)。2.Mecanim狀態(tài)機(jī)Mecanim的動(dòng)畫狀態(tài)機(jī)提供了一種縱覽角色所有動(dòng)畫片段的方法,并且允許通過游戲中的各種事件來觸發(fā)不同的動(dòng)畫效果。動(dòng)畫狀態(tài)機(jī)可以通過Animator視圖來創(chuàng)建,這是一個(gè)簡單的動(dòng)畫狀態(tài)機(jī),一般而言,動(dòng)畫狀態(tài)機(jī)包括動(dòng)畫狀態(tài)、動(dòng)畫過渡和動(dòng)畫事件;而復(fù)雜的狀態(tài)機(jī)還可以含有簡單的子狀態(tài)機(jī)。上一頁下一頁返回8.2Animator組件
新的動(dòng)畫狀態(tài)中。當(dāng)在Animator視圖中選擇一個(gè)動(dòng)畫狀態(tài)時(shí),就能在Inspector視圖中查看到該動(dòng)畫的屬性。Speed:動(dòng)畫的播放速度?!馦otion:當(dāng)前狀態(tài)下的動(dòng)畫片段?!馞ootIK:是否使用FootIK?!馱riteDefaults:是否對(duì)沒有動(dòng)畫的屬性寫回默認(rèn)值?!馦irror:鏡像?!馮ransitions:當(dāng)前狀態(tài)的過渡列表,可能包含當(dāng)前上一頁下一頁返回8.2Animator組件
動(dòng)畫的上一個(gè)動(dòng)畫和過渡的下一個(gè)動(dòng)畫。為了添加新的動(dòng)畫狀態(tài),可以在Animator視圖的空白處右擊,選擇快捷菜單中的CreateState→Empty命令。也可以將Project視圖中的動(dòng)畫拖入Animator視圖中,從而創(chuàng)建一個(gè)包含該動(dòng)畫片段的動(dòng)畫狀態(tài)。新創(chuàng)建的AnimatorControl都會(huì)自帶3種動(dòng)畫狀太。如圖8.9所示。4.AnimationTransitions(動(dòng)畫過渡)動(dòng)畫過渡是指由一個(gè)動(dòng)畫狀態(tài)過渡到另一個(gè)時(shí)發(fā)生的行為事件。需要注意,在一個(gè)特定時(shí)刻只能進(jìn)行一個(gè)動(dòng)畫過渡。兩個(gè)動(dòng)畫的過渡連線可以在Animator視圖里,右鍵單擊其中一個(gè)動(dòng)畫,選擇快捷菜單中的MakeTransition命令,把線連到另一個(gè)動(dòng)畫狀態(tài)上。上一頁下一頁返回8.2Animator組件
單擊兩個(gè)動(dòng)畫狀態(tài)之前的過渡線,在Inspector視圖窗口可以查看過渡的屬性。HasExitTime:當(dāng)前的動(dòng)畫過渡不能被中斷,即上一個(gè)動(dòng)畫沒結(jié)束之前是不能切換到下一個(gè)動(dòng)畫狀態(tài)的。Conditions:動(dòng)畫過渡條件。一個(gè)Condition包括一個(gè)事件參數(shù)、一個(gè)可選的條件、一個(gè)可選的參數(shù)值。還可以通過拖動(dòng)重疊區(qū)域的起始值和終止值來調(diào)節(jié)兩個(gè)動(dòng)畫的過渡動(dòng)作情況。上一頁下一頁返回8.2Animator組件
5.AnimationParameters(動(dòng)畫參數(shù))AnimationParameters是動(dòng)畫系統(tǒng)中用到的變量,可以通過腳本來進(jìn)行訪問和賦值??梢栽贏nimator窗口左上角的Parameters工具欄中進(jìn)行創(chuàng)建、刪除和設(shè)置,如圖8.14所示,參數(shù)值有以下4種基本類型?!馞loat:浮點(diǎn)數(shù)?!馡nt:整數(shù)?!馚ool:返回布爾值?!馮rigger:觸發(fā)器。參數(shù)可以通過在腳本中使用Animator類函數(shù)來賦值,包括SetTrigger、SetFloat、SetInteger和SetBool。上一頁返回8.3應(yīng)用示例這里有一套《英雄聯(lián)盟》里趙云人物的一系列動(dòng)作,總共6個(gè)動(dòng)作,即站立、跑、兩個(gè)攻擊、技能、死亡。把它導(dǎo)入到Unity中,通過上面講的知識(shí)點(diǎn),用代碼來控制趙云動(dòng)畫的播放。(1)把趙云的模型導(dǎo)入U(xiǎn)nity,這里是fbx格式的文件,里面已經(jīng)帶了貼圖和動(dòng)畫,所以直接把fbx文件拖到Unity即可。(2)新建一個(gè)地形,把趙云的模型放到地形上面,隨便一個(gè)模型都可以,因?yàn)樗械膭?dòng)畫是用一套模型的。這里拖到場景的是攻擊動(dòng)作模型text@attack1。(3)創(chuàng)建一個(gè)動(dòng)畫控制器AnimatorControl,重命名為animator,把動(dòng)畫控制器賦值給模型身上的Animator組件。下一頁返回8.3應(yīng)用示例
(4)雙擊animator打開動(dòng)畫控制器窗口,把模型的站立動(dòng)作Idel和移動(dòng)動(dòng)作Move拖到動(dòng)畫控制器窗口,動(dòng)畫入口Entry默認(rèn)連接的是第一個(gè)拖入的動(dòng)畫,也可以把光標(biāo)移動(dòng)到動(dòng)畫片段上,右鍵單擊SetasLayerDefaultState來改變默認(rèn)動(dòng)畫。(5)設(shè)置站立和走路動(dòng)畫的切換,首先設(shè)置兩個(gè)動(dòng)畫的過渡,將光標(biāo)放到idle動(dòng)畫上面右鍵單擊,選擇快捷菜單中的MakeTransition命令,把過渡線連接到move動(dòng)畫上,這樣就實(shí)現(xiàn)了站立動(dòng)畫到移動(dòng)動(dòng)畫的過渡,進(jìn)行同樣的操作把move動(dòng)畫過渡到idle動(dòng)畫。上一頁下一頁返回8.3應(yīng)用示例
(6)在左邊的條件添加窗口添加一個(gè)Bool類型的變量,來控制兩個(gè)動(dòng)畫的過渡。(7)創(chuàng)建好條件后,單擊兩個(gè)動(dòng)畫間的過渡線,把條件添加上去。由站立動(dòng)作idel切換到移動(dòng)動(dòng)作move時(shí)把move值設(shè)置為true;相反地,從move動(dòng)畫切換到idel時(shí)把move值設(shè)置為false。設(shè)置完后運(yùn)行游戲,模型默認(rèn)執(zhí)行的是站立idel動(dòng)畫。(8)新建一個(gè)C#腳本AnimationCtrl.cs,在代碼里控制模型的移動(dòng)和動(dòng)畫播放。使用Animator里封裝的SetBool(“move”,true)來切換動(dòng)畫。代碼通過查看水平、垂直的虛擬軸的值來判斷是移動(dòng)還是站立。上一頁下一頁返回8.3應(yīng)用示例
(9)運(yùn)行游戲,通過鍵盤上的方向鍵或者WSAD可以切換是站立還是移動(dòng)動(dòng)畫,但是,idel和move動(dòng)畫只播放一次,所以需要先把兩個(gè)動(dòng)畫設(shè)置為循環(huán)播放。對(duì)于兩個(gè)動(dòng)畫間的過渡,可以把“HasExitTime”復(fù)選框的勾選去掉,這樣兩個(gè)動(dòng)畫間的切換不需要等一個(gè)動(dòng)畫播完,而是條件一滿足就可以直接播放下一個(gè)動(dòng)畫。在腳本里加幾行代碼,以控制模型的移動(dòng)和轉(zhuǎn)向。保存腳本運(yùn)行游戲并測(cè)試效果。上一頁下一頁返回8.3應(yīng)用示例
(10)回到Animator窗口,新建一個(gè)動(dòng)畫層,重命名為Battle,同時(shí)設(shè)置Battle層的權(quán)重,設(shè)置為1,Blending屬性設(shè)置為Additive,這層用來做與戰(zhàn)斗相關(guān)的動(dòng)畫。創(chuàng)建一個(gè)empty,作為Battle層動(dòng)畫的入口,把a(bǔ)ttack1和attack2兩個(gè)攻擊動(dòng)畫拖到Animator窗口,連接好動(dòng)畫過渡,在左邊條件窗口添加一個(gè)Trigger類型的條件變量attack,讓它作為攻擊動(dòng)作的切換條件。在腳本里添加代碼,當(dāng)空格鍵按下時(shí)播放攻擊動(dòng)作。上一頁下一頁返回8.3應(yīng)用示例
這里動(dòng)畫間的過渡時(shí)間有點(diǎn)長,可以做一些調(diào)整,如圖8.30所示,調(diào)整兩個(gè)動(dòng)畫間的過渡長度。取消“HasExitTime”復(fù)選框的勾選,讓它一觸發(fā)就執(zhí)行下一個(gè)動(dòng)作。同理,把a(bǔ)ttack1→attack2、attack1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年安徽省能源集團(tuán)有限公司中層副職管理人員社會(huì)招聘筆試備考試題及答案解析
- 2026廣西職業(yè)師范學(xué)院第一批自主招聘人員筆試備考題庫及答案解析
- 2026遼寧鞍山市海城市融媒體中心公益性崗位招聘2人筆試模擬試題及答案解析
- 2026年南平市建陽區(qū)教育局編外人員招聘2人筆試參考題庫及答案解析
- 2026福建南平市公路應(yīng)急保障中心招聘1人筆試備考試題及答案解析
- 2026江蘇蘇州東吳財(cái)產(chǎn)保險(xiǎn)股份有限公司重客業(yè)務(wù)部社會(huì)招聘筆試備考試題及答案解析
- 2026吉林長春光機(jī)所招聘1人筆試參考題庫及答案解析
- 2026年1月內(nèi)蒙古建元能源集團(tuán)有限公司招聘206人筆試模擬試題及答案解析
- 高低壓配電安裝工程施工方案方案
- 2026年河北旅游職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試備考試題有答案解析
- 安全保密管理專題培訓(xùn)課件
- 農(nóng)產(chǎn)品采購合同2025年協(xié)議
- 2025年江蘇省公務(wù)員錄用考試行測(cè)題A類答案及解析
- 道路危險(xiǎn)貨物運(yùn)輸企業(yè)安全隱患排查與治理制度
- 京東物流合同范本
- 養(yǎng)老機(jī)構(gòu)安全生產(chǎn)責(zé)任制清單
- 《紅巖》中考試題(解析版)-2026年中考語文名著復(fù)習(xí)核心知識(shí)梳理與專項(xiàng)訓(xùn)練
- 非洲鼓基礎(chǔ)知識(shí)培訓(xùn)課件
- 2026-2031中國釀酒設(shè)備行業(yè)市場現(xiàn)狀調(diào)查及投資前景研判報(bào)告
- KET考試必背核心短語(按場景分類)
- 2025四川產(chǎn)業(yè)振興基金投資集團(tuán)有限公司應(yīng)屆畢業(yè)生招聘9人筆試歷年難易錯(cuò)考點(diǎn)試卷帶答案解析2套試卷
評(píng)論
0/150
提交評(píng)論