欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Unity Blend Tree動(dòng)畫(huà)混合樹(shù)使用入門教程

 更新時(shí)間:2021年11月17日 11:53:52   作者:akuojustdoit  
這篇文章主要為大家詳細(xì)介紹了Unity Blend Tree動(dòng)畫(huà)混合樹(shù)使用入門教程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

介紹

在動(dòng)畫(huà)與動(dòng)畫(huà)的切換過(guò)程中,常因?yàn)閮蓚€(gè)動(dòng)畫(huà)之間的差距過(guò)大,而顯得動(dòng)畫(huà)的切換很不自然。
這時(shí)候就需要動(dòng)畫(huà)混合樹(shù)Blend Tree這個(gè)功能。使用混合樹(shù)可以將多個(gè)動(dòng)畫(huà)混合在一起,例如在處理角色的移動(dòng)中,走動(dòng)畫(huà)與跑動(dòng)畫(huà)切換的時(shí)候,在走動(dòng)畫(huà)與跑動(dòng)畫(huà)中生成多個(gè)過(guò)渡用的插值動(dòng)畫(huà)以達(dá)到平滑得切換的功能。

創(chuàng)建混合樹(shù)

在Animator窗口的空白處右鍵,Create State > From New Blend Tree,然后雙擊Blend Tree進(jìn)入混合樹(shù)。筆者使用的是unity2019.4的版本,現(xiàn)在混合樹(shù)有5種類型,可以在右側(cè)展開(kāi)Blend Type看到。

分別為:

  • 1D
  • 2D Simple Directional
  • 2D Freeform Directional
  • 2D Freeform Cartesian
  • Direct

1D

1D混合只有一個(gè)參數(shù),比如如果使用混合樹(shù)去制作人物從站立到走到跑的混合,就比較適合使用1D混合。右鍵點(diǎn)擊混合樹(shù)根節(jié)點(diǎn),點(diǎn)擊Add Motion添加結(jié)點(diǎn),或者直接在右側(cè)菜單點(diǎn)擊加號(hào)來(lái)添加動(dòng)畫(huà)。

添加后

這里筆者添加了三個(gè)動(dòng)畫(huà)。

第一個(gè)是idle,站立不動(dòng),只有微弱的呼吸起伏

第二個(gè)是run

第三個(gè)是帶著武器沖刺sprint的姿勢(shì)

根據(jù)threshold的不同,可以產(chǎn)生出不同的融合動(dòng)畫(huà)效果
現(xiàn)在我們已知idle的threshold設(shè)定為0,run是0.5,sprint是1
參數(shù)是0到1,那我們就可以通過(guò)控制參數(shù)的大小來(lái)控制動(dòng)畫(huà)的播放。
比如,我們現(xiàn)在要取一個(gè)介于sprint和run中的動(dòng)畫(huà),控制參數(shù)在0.5到1之間。
我們可以拖動(dòng)上方的紅線,預(yù)覽融合后的動(dòng)畫(huà)。

現(xiàn)在紅線的位置大約在0.75多一點(diǎn)的位置。

可以看到是介于上面圖二和圖三的某種動(dòng)畫(huà)



這幅圖中倒數(shù)第二列,小表下面的1是控制動(dòng)畫(huà)的播放速度,最后一列小人下面勾選的話,表示動(dòng)畫(huà)鏡像播放。
之后我們就可以使用Animator.SetFloat(“Blend”,float a)來(lái)播放你想要播放的動(dòng)畫(huà)。

2D

2D的三種融合方式,官方手冊(cè)上是這么說(shuō)的
官方文檔關(guān)于2D融合樹(shù)的描述:

2D Simple Directional:最好在運(yùn)動(dòng)表示不同方向(例如“向前走”、“向后退”、“向左走”和“向右走”或者“向上瞄準(zhǔn)”、“向下瞄準(zhǔn)”、“向左瞄準(zhǔn)”和“向右瞄準(zhǔn)”)時(shí)使用。根據(jù)需要可以包括位置 (0, 0) 處的單個(gè)運(yùn)動(dòng),例如“空閑”或“瞄準(zhǔn)”。在 Simple Directional 類型中,在同一方向上_不_應(yīng)該有多個(gè)運(yùn)動(dòng),例如“向前走”和“向前跑”。

2D Freeform Directional:運(yùn)動(dòng)表示不同方向時(shí),也使用此混合類型,但是您可以在同一方向上有多個(gè)運(yùn)動(dòng),例如“向前走”和“向前跑”。在 Freeform Directional 類型中,運(yùn)動(dòng)集應(yīng)始終包括位置 (0, 0) 處的單個(gè)運(yùn)動(dòng),例如“空閑”。

2D Freeform Cartesian:最好在運(yùn)動(dòng)不表示不同方向時(shí)使用。憑借 Freeform Cartesian,X 參數(shù)和 Y 參數(shù)可以表示不同概念,例如角速度和線速度。一個(gè)示例是諸如“向前走不轉(zhuǎn)彎”、“向前跑不轉(zhuǎn)彎”、“向前走右轉(zhuǎn)”、“向前跑右轉(zhuǎn)”之類的運(yùn)動(dòng)。

區(qū)別于1D融合樹(shù),2D的融合樹(shù)參數(shù)變成兩個(gè)。Pos X和Pos Y
紅點(diǎn)表示參數(shù)當(dāng)前的值,灰點(diǎn)托入動(dòng)畫(huà)會(huì)變成藍(lán)點(diǎn)。當(dāng)參數(shù)點(diǎn)紅點(diǎn)離某個(gè)藍(lán)點(diǎn)越近,動(dòng)畫(huà)就越趨向于表現(xiàn)此藍(lán)點(diǎn)的值。
查閱了一些文章,還是沒(méi)有徹底搞懂這三種融合方式的區(qū)別,但是就現(xiàn)在的了解程度來(lái)說(shuō):

當(dāng)這個(gè)player進(jìn)行前后左右移動(dòng)四種動(dòng)畫(huà),但是player本身的朝向并不改變的話,可以使用2D Simple Directional,將紅點(diǎn)放置在(0,0),四個(gè)動(dòng)畫(huà)分別放在上下左右。通過(guò)獲取Vertical和horizantol的值去改變pos Y和pos X的大小。

當(dāng)這個(gè)player要進(jìn)行相對(duì)復(fù)雜的運(yùn)動(dòng),比如轉(zhuǎn)身,左前傾,右前傾等等??梢允褂?D Freeform Cartesian,即一個(gè)參數(shù)表示移動(dòng)速度,一個(gè)參數(shù)表示轉(zhuǎn)向這種感覺(jué)。

Direct

精確控制所混合的各種動(dòng)畫(huà)而不是只使用一個(gè)或兩個(gè)參數(shù)來(lái)間接混合
比如人物從某一個(gè)表情到某一個(gè)表情的過(guò)渡動(dòng)畫(huà),就由direct模式制作。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論