Unity中用Timeline實(shí)現(xiàn)動(dòng)畫(huà)特寫(xiě)(上)

作者:Truly
(說(shuō)明:本系列文章可以跟上篇文章:用Unity實(shí)現(xiàn)彈反效果?配合食用)
在游戲戰(zhàn)斗中經(jīng)常會(huì)出現(xiàn)動(dòng)畫(huà)特寫(xiě),例如終結(jié)時(shí)的斬殺鏡頭。
這次通過(guò)使用Timeline來(lái)實(shí)現(xiàn)動(dòng)畫(huà)特寫(xiě),實(shí)現(xiàn)最終效果如下:

主要了實(shí)現(xiàn)幾個(gè)功能:
1.角色播放動(dòng)畫(huà)并位移
2.子彈時(shí)間
3.鏡頭切換
4.觸發(fā)鏡頭抖動(dòng)和特效播放
5.切換釋放目標(biāo)
本篇介紹Timeline的一些基本用法以及實(shí)現(xiàn)主角的動(dòng)畫(huà)播放,余下功能會(huì)在下篇里實(shí)現(xiàn)。
一、前期準(zhǔn)備
1.這次用到的部分功能需要Unity2019.1以上版本。
2.菜單欄 > Window > Pakage Manager,安裝Timeline和Cinemachine。

3.Asset Store > 搜索并下載Default Playables。

Default Playables提供了常用功能的軌道腳本,導(dǎo)入后能在Timeline中添加對(duì)應(yīng)功能的Track(軌道),此外還能通過(guò)菜單欄 > Window > Timline Playable Wizard的方式生成腳本框架,有助于快速編寫(xiě)自定義軌道。
二、部分面板介紹與基礎(chǔ)操作(速覽即可)
1.創(chuàng)建Timeline
(1)Asset文件夾內(nèi)右鍵 > Create > Timeline,創(chuàng)建TimelineAsset。
(2)把建好的TimelineAsset拖到HierarcHy窗口內(nèi)或者GameObject上,被拖進(jìn)的對(duì)象會(huì)自動(dòng)添加Playable Director組件(相當(dāng)于播放器)。

①Playable:屬性框內(nèi)的Timeline Asset是播放的片段,也是接下來(lái)我們編輯的動(dòng)畫(huà)片段。
②Update Method(更新模式):一般使用Game Time(游戲引擎的DeltaTime,受時(shí)間縮放影響),有更高要求的可以使用DSP Clock。
③Play On Awake:勾選時(shí)啟動(dòng)自動(dòng)播放(建議取消勾選)。
④Wrap Mode:播完后的操作。
Hold:停在最后一幀。
Loop:循環(huán)播放。
None:恢復(fù)播放前狀態(tài)。
⑤Initial Time:延遲N秒播放。
2.添加Track(軌道)
(1)雙擊TimelineAsset,打開(kāi)Timeline的編輯窗口。
(2)在編輯窗口空白處右鍵可以添加Track,導(dǎo)入Default Playables后會(huì)新增一些常用的功能Track(藍(lán)色框)提供選擇。

3.Timeline編輯界面簡(jiǎn)介
在編輯界面選中播放TimelineAsset對(duì)應(yīng)的GameObject,左側(cè)部分對(duì)象框才會(huì)顯示,如下圖:

每一種Track(橙色框)可以理解為對(duì)應(yīng)一種功能,分為左右兩半:
左側(cè)是執(zhí)行該Track的對(duì)象。
右側(cè)可以添加的Clip(片段),Clip可以是動(dòng)畫(huà)也可以是功能邏輯。
舉個(gè)例子:如橙色框里的Animation Track,左邊放的是播放這些動(dòng)作的角色的Animator組件,右邊放的是需要播放的動(dòng)作片段。

三、動(dòng)畫(huà)播放
1.設(shè)置使用動(dòng)畫(huà)位移
這次特寫(xiě)需要應(yīng)用動(dòng)畫(huà)(Humanoid類(lèi)型)的水平位移,因此需要以下幾個(gè)操作:
(1)Assets文件夾選中需用動(dòng)畫(huà) > Inspector窗口 > Animation > Root Transform Positon(XZ)>?取消勾選Bake Into Pose:把動(dòng)畫(huà)的XZ平面上的移動(dòng)拷貝進(jìn)Root Motion。

動(dòng)圖解析如下:
留意動(dòng)圖角色腳下的標(biāo)識(shí),勾選Bake Into Pose后腳下的標(biāo)識(shí)沒(méi)有跟著角色移動(dòng),每次播放結(jié)束都會(huì)撤回到標(biāo)識(shí)處??梢岳斫鉃樗皇潜砻妫ü趋溃[了個(gè)Pose,Root并沒(méi)有真正的位移。

(2)Animator組件勾選Apply Root Motion:根據(jù)動(dòng)畫(huà)的Root Motion來(lái)移動(dòng)角色。

上兩步的邏輯:(1)把動(dòng)畫(huà)位移保存進(jìn)Root Motion => (2)根據(jù)Root Motion移動(dòng)角色
(3)設(shè)置?Apply Scene Offsets
添加Animation Track:右鍵 > Animation Track。
選中Animation Track > Inspector窗口> Track Offsets >?Apply Scene Offsets:把左側(cè)把綁定GameObject現(xiàn)在的位置作為該Track動(dòng)畫(huà)的起始位置。

動(dòng)圖解析如下:
Apply Scene Offsets:Track起點(diǎn)為角色現(xiàn)在的位置

Apply Transform Offsets:Track起點(diǎn)都為第一次位置

2.Clip設(shè)置
(1)添加對(duì)象與動(dòng)畫(huà)片段
把角色(帶Animator組件)拖進(jìn)Track左側(cè)對(duì)象框,以后可以用腳本賦值。
把需要播放的動(dòng)畫(huà)片段拖進(jìn)Track右側(cè)。(自行發(fā)揮想象選擇的兩三個(gè)動(dòng)作組成連續(xù)動(dòng)畫(huà))
(2)調(diào)節(jié)Clip
①調(diào)節(jié)片段長(zhǎng)度:鼠標(biāo)拖動(dòng)Clip左右兩端。如果動(dòng)畫(huà)片段很長(zhǎng),只需要播放其中一部分,那么就可以用這個(gè)操作“剪”出個(gè)小短片。
②調(diào)節(jié)每個(gè)Clip的開(kāi)播時(shí)機(jī)與混合:直接拖動(dòng)Clip,重疊部分會(huì)自動(dòng)混合(Inspector面板可調(diào)混合曲線)。

選中Clip,Inspector窗口中部分屬性作用(按需調(diào)節(jié)):
Speed Multipliter:播放倍速,1為正常速度。
Animation Extrapolation:Pre和Post分別代表Clip播放前后的操作,一般默認(rèn)Hold。
Blend Curves:Clip之間重疊部分的混合曲線。

③修正過(guò)渡時(shí)瞬移:因?yàn)榻巧诿總€(gè)Clip開(kāi)始時(shí)的位置可能不一樣,所以從上一個(gè)Clip過(guò)渡到下一個(gè)Clip時(shí)很容易發(fā)生角色瞬移的情況:

右鍵需要調(diào)節(jié)的Clip :
>Match Offsets To?Pervious Clips:往上一個(gè)Clip對(duì)齊
>Match Offsets To?Next Clip:往下一個(gè)Clip對(duì)齊
還能通過(guò)Inspector面板中的Clip Transform Offsets微調(diào):
進(jìn)行到這里,主角Animation Track的動(dòng)作連招調(diào)節(jié)就完成了(劃重點(diǎn):以上就是本篇文章最核心的知識(shí))。

3.利用Override Track 和 Mask“組合”動(dòng)畫(huà)
敵人需要一個(gè)被擊退的動(dòng)畫(huà),而手上并沒(méi)有對(duì)應(yīng)的資源,這個(gè)時(shí)候就可以利用Mask來(lái)完成。通過(guò)用Mask遮擋后退動(dòng)畫(huà)的上半身,取其下半身動(dòng)畫(huà)覆蓋到被攻擊的動(dòng)畫(huà)上:
受擊(上半身)+后退(下半身)=> 擊退

①添加并設(shè)置Override Track
右鍵Animation Track > Add?Override Track。
Animation Track 放被覆蓋動(dòng)畫(huà)Clip(受擊動(dòng)畫(huà))。
Override Track放覆蓋的動(dòng)畫(huà)Clip(后退動(dòng)畫(huà))。

②Asset文件夾中右鍵 > Create > Avatar Mask,創(chuàng)建遮罩。
雙擊Mask > Inspector窗口進(jìn)行設(shè)置。
Humanoid類(lèi)型的骨骼可以直接點(diǎn)擊圖來(lái)進(jìn)行設(shè)置,紅色表示不應(yīng)用該部分動(dòng)畫(huà)。

③打開(kāi)Override Track的Inspector窗口,勾選Apply Avatar Mask,把設(shè)置好的Mask拖進(jìn)Avatar Mask框內(nèi)。

敵人的擊退動(dòng)作也做好了,那么剩下就是調(diào)節(jié)擊退的位移,留待下篇再講。
結(jié)語(yǔ):這篇簡(jiǎn)單地介紹了Timeline的部分界面和基礎(chǔ)操作,并且通過(guò)設(shè)置Animation Track,實(shí)現(xiàn)了主角的的動(dòng)作播放。部分內(nèi)容是踩坑經(jīng)驗(yàn)所得,如果有任何問(wèn)題歡迎一起討論。
咱們的游戲開(kāi)發(fā)交流群也歡迎強(qiáng)勢(shì)插入:869551769
希望參與線下游戲開(kāi)發(fā)學(xué)習(xí)的,歡~~~~~~迎訪問(wèn):http://levelpp.com/