Unity-動(dòng)畫常見問題解答
一般問題
什么是“Mecanim”?
Mecanim 是我們集成到 Unity 中的動(dòng)畫軟件的名稱。在早期的 4.x 系列 Unity 中,它的功能與人形角色動(dòng)畫密切相關(guān),并具有許多特別適合此用途的功能;并且它獨(dú)立于我們舊的(舊版)集成動(dòng)畫系統(tǒng)。
Mecanim 集成了人形動(dòng)畫重定向、肌肉控制和狀態(tài)機(jī)系統(tǒng)。“Mecanim”的名稱源自法語詞“Mec”(意思是“Guy”)。由于 Mecanim 僅用于人形角色,因此 Unity 中的非人形角色動(dòng)畫以及其他基于關(guān)鍵幀的游戲?qū)ο髣?dòng)畫仍需要使用我們的舊版動(dòng)畫系統(tǒng)。
不過,我們此后開發(fā)并擴(kuò)展了 Mecanim,并將其與動(dòng)畫系統(tǒng)的其余部分集成,以便能夠在您的項(xiàng)目中用于動(dòng)畫的所有方面;因此,“Mecanim”與動(dòng)畫系統(tǒng)的其余部分之間并沒有太清晰的分界線。鑒于此原因,您仍然會(huì)在我們的文檔和整個(gè)社區(qū)中看到對(duì)“Mecanim”的引用,現(xiàn)在這些引用僅僅指的是我們的主動(dòng)畫系統(tǒng)。
動(dòng)畫 (Animation) 組件和 Animator 組件之間有何差異?
動(dòng)畫組件(Animation)是我們的舊版動(dòng)畫系統(tǒng)中用于動(dòng)畫的舊組件。它仍然保留在 Unity 中的目的是實(shí)現(xiàn)向后兼容,但不應(yīng)將其用于新項(xiàng)目。而應(yīng)使用最新的 Animator 組件。

Animation 窗口可讓您在 Unity 內(nèi)創(chuàng)建和編輯動(dòng)畫剪輯。您可以使用此窗口將 Inspector 面板中的幾乎每個(gè)屬性(游戲?qū)ο蟮奈恢?、材質(zhì)顏色、光照亮度、聲音音量,甚至您自己腳本中的值)用來制作動(dòng)畫剪輯。
Animator 窗口可讓您將現(xiàn)有動(dòng)畫剪輯資源組織到類似流程圖(稱為狀態(tài)機(jī))的系統(tǒng)中。
這兩個(gè)窗口都是我們當(dāng)前動(dòng)畫系統(tǒng)(而不是舊版系統(tǒng))的一部分。
因此動(dòng)畫組件是舊版,而 Animation 窗口是最新版?
正確。
我們正在使用舊版動(dòng)畫系統(tǒng)來處理角色動(dòng)畫。我們是否應(yīng)該改用最新的動(dòng)畫系統(tǒng) (Mecanim)?
一般情況下,是的。提供舊版動(dòng)畫系統(tǒng)只是為了向后兼容舊項(xiàng)目,與我們最新的動(dòng)畫系統(tǒng)相比,它的功能非常有限。使用它的唯一理由應(yīng)該是為了兼容使用舊系統(tǒng)構(gòu)建的舊版項(xiàng)目。
導(dǎo)入
為什么導(dǎo)入的網(wǎng)格附有 Animator 組件?
Unity 檢測(cè)到導(dǎo)入的文件在其時(shí)間軸中有動(dòng)畫時(shí),它將在導(dǎo)入時(shí)添加動(dòng)畫組件。您可以在資源的 Import Settings 中修改此設(shè)置,為此需要在 Rig 選項(xiàng)卡下的 Import Settings 中將“Animation Type”設(shè)置為?None。必要時(shí),可一次選擇多個(gè)文件執(zhí)行此操作。
層
層的排序是否重要?
是的。層的優(yōu)先級(jí)是按順序從上到下的。層設(shè)置為?override?將始終覆蓋先前的層(如果層有遮罩,則基于其遮罩)。
基礎(chǔ)層的權(quán)重值是否應(yīng)始終設(shè)置為 1?或者在使用其他層時(shí)權(quán)重是否應(yīng)為 0?
基礎(chǔ)層權(quán)重始終為 1,覆蓋層將完全覆蓋基礎(chǔ)層。
有沒有任何辦法可以從控制器獲取變量值而不使用名稱字符串?
您可以使用整數(shù)來標(biāo)識(shí)狀態(tài)和參數(shù)。使用?Animator.StringToHash?函數(shù)來獲取整數(shù)標(biāo)識(shí)符值。例如:
如果同步層中的狀態(tài)與基礎(chǔ)層中的相應(yīng)狀態(tài)相比具有不同的長度,會(huì)發(fā)生什么情況?
如果層具有不同長度,那么它們將變得不同步。啟用 Timing 選項(xiàng),從而對(duì)當(dāng)前層與源層上的狀態(tài)強(qiáng)制同步。
Avatar 遮罩
有沒有辦法創(chuàng)建除 LeftFoot、RightFoot、LeftHand、RightHand 之外的 AvatarIKGoal?
有,支持膝蓋和肘部 IK(反向動(dòng)力學(xué))。
有沒有辦法定義 Avatar 遮罩包含的變換組件?
有,對(duì)于通用剪輯,您可以定義是否導(dǎo)入某個(gè)變換動(dòng)畫。對(duì)于人形剪輯,始終導(dǎo)入所有人類變換,并可定義額外的變換。
動(dòng)畫曲線
具有曲線的動(dòng)畫如何與沒有曲線的動(dòng)畫混合?
如果一段動(dòng)畫具有曲線,而另一段動(dòng)畫沒有曲線,Unity 將使用連接到曲線的參數(shù)的默認(rèn)值來進(jìn)行混合。 您可以為參數(shù)設(shè)置默認(rèn)值,因此在具有?Curve?參數(shù)的狀態(tài)與沒有此參數(shù)的狀態(tài)之間進(jìn)行混合時(shí),將在曲線值和默認(rèn)參數(shù)值之間進(jìn)行混合。 要為參數(shù)設(shè)置默認(rèn)值,只需在 Animator Tool 窗口中設(shè)置其值(不能在 LiveLink 中)。