1 簡(jiǎn)介
2D動(dòng)畫(huà)、人體模型及動(dòng)畫(huà)、人物跟隨鼠標(biāo)位置中介紹了 Aniamtion、Animator、人體模型、人體骨骼、人體動(dòng)畫(huà)等基礎(chǔ)知識(shí)及人體動(dòng)畫(huà)的應(yīng)用,本文將進(jìn)一步介紹動(dòng)畫(huà)混合。
實(shí)現(xiàn)動(dòng)畫(huà)混合有混合樹(shù)(Blend Tree)和動(dòng)畫(huà)圖層(Layers)兩種方式:
- 混合樹(shù):將多個(gè)動(dòng)畫(huà)片段以位置、速度、角速度為依據(jù)經(jīng)行線(xiàn)性混合;
- 動(dòng)畫(huà)圖層:每一個(gè)動(dòng)畫(huà)圖層只對(duì)動(dòng)畫(huà)主體的部分進(jìn)行控制,其他部分通過(guò)遮罩屏蔽,如:邊走邊喊動(dòng)畫(huà)可以劃分為 2 個(gè)圖層,一個(gè)圖層控制步行動(dòng)畫(huà),一個(gè)圖層控制喊叫動(dòng)畫(huà)。
動(dòng)畫(huà)混合的作用主要有:
- 可以生成新的動(dòng)畫(huà);
- 可以通過(guò)調(diào)整混合動(dòng)畫(huà)的參數(shù),實(shí)現(xiàn)控制多個(gè)動(dòng)畫(huà)播放。
2 通過(guò)混合樹(shù)實(shí)現(xiàn)動(dòng)畫(huà)混合
1)創(chuàng)建混合樹(shù)
在 Animator 窗口的空白處右鍵,依次選擇【Create State→From New Blend Tree】創(chuàng)建混合樹(shù),選中 Blend Tree,在 Inspector 窗口可以重命名。

補(bǔ)充:選中 Blend Tree 后右鍵,再依次選擇【Create State→From New Blend Tree】,可以為 Blend Tree 再添加子混合樹(shù)。
2)添加動(dòng)畫(huà)片段
雙擊 Blend Tree,再選中 Blend Tree,進(jìn)入 Blend Tree 配置頁(yè)面,按以下步驟添加動(dòng)畫(huà)片段:

3)設(shè)置混合類(lèi)型
點(diǎn)擊 Blend Type 下拉菜單,選擇混合類(lèi)型,如下:

- 1D:1 維混合,混合參數(shù)只有一個(gè);
- 2D Simple Directional:2 維混合,所有被混合的動(dòng)畫(huà)方向不一致;
- 2D Freeform Directional:2維混合,需要一個(gè)沒(méi)有方向的動(dòng)畫(huà)(如:站立 idle 動(dòng)畫(huà));
- 2D Freeform Cartesian:2維混合,對(duì)方向不做要求;
- Direct:用戶(hù)直接控制每個(gè)節(jié)點(diǎn)的權(quán)重。
4)配置閾值計(jì)算參數(shù)
動(dòng)畫(huà)閾值是指從一個(gè)動(dòng)畫(huà)切換到下一個(gè)動(dòng)畫(huà)的中間值,這個(gè)中間值怎么計(jì)算?有什么依據(jù)?Unity3D 提供了以下 6 種計(jì)算閾值的參數(shù),如:當(dāng)采用 Speed 作為計(jì)算閾值的參數(shù),會(huì)根據(jù)動(dòng)畫(huà) Speed 對(duì)動(dòng)畫(huà)進(jìn)行劃分,再使用模糊數(shù)學(xué)的理論進(jìn)行線(xiàn)性混合。

5)2D混合
按以下步驟創(chuàng)建 2D 混合。2D 混合需要通過(guò) 2 個(gè)參數(shù)混合。

3 通過(guò)動(dòng)畫(huà)圖層實(shí)現(xiàn)動(dòng)畫(huà)混合
本節(jié)將通過(guò)一個(gè) “邊走變喊” 的案例講解通過(guò)動(dòng)畫(huà)圖層實(shí)現(xiàn)動(dòng)畫(huà)混合。邊走邊喊動(dòng)畫(huà)可以劃分為 2 個(gè)圖層,一個(gè)圖層控制步行動(dòng)畫(huà),一個(gè)圖層控制喊叫動(dòng)畫(huà)(抬左臂到嘴邊呼喊)。
1)創(chuàng)建動(dòng)畫(huà)圖層

2)創(chuàng)建骨骼遮罩
在 Assets 窗口右鍵,依次選擇【Create→Avatar Mask】創(chuàng)建骨骼遮罩,并重命名為 ShoutMask,單擊 ShoutMask 文件,配置遮罩如下:

3)綁定骨骼遮罩
按以下步驟將骨骼遮罩 ShoutMask 添加到 Shout Layer 中。

聲明:本文轉(zhuǎn)自【Unity3D】動(dòng)畫(huà)混合