Apply Root Motion 勾選的話就會使用動畫片段自帶的位移
Update Mode (動畫重新計算骨骼位置轉向縮放的數值):
- Normal : 隨Update走,每次Update都計算
- Animate Physics :與 fixed Update() 同步(與物理系統交互)
- UnScaled Time: 不受游戲 time scale影響,與 Update 同步
Culling Mode(剔除)
設置這里的Multiplier可以改變動畫的播放速度(絕對值大于1是加速,值小于0是倒放)
Write Defaults(默認開啟):勾上了writeDefaults的State中不被該motion修改的值都會變為默認值。最關鍵的一點,這個默認值是什么這里沒有給出答案。(抽象)
講解視頻:【Unity動畫系統詳解 九】Unity在動畫系統里貼心的為我們準備了Write Defaults,但這東西卻分分鐘變成定時炸彈【Unity開發入門教程17】_嗶哩嗶哩_bilibili
?文章:[Unity] AnimatorStates中的write defaults詳解:https://blog.csdn.net/rickshaozhiheng/article/details/77838379
avatar替身系統 與 動畫復用
免費動畫下載網站:Mixamo
這個網站下載的動畫文件的話,一般是Generic 格式的,動畫文件內容描述的骨骼的描述方式是骨骼的位置及旋轉。但是不可能所有模型骨骼都是一致的,那么怎么復用動畫文件呢?
?在這里設置 Animaition Type,設置為 Hunanoid ,生成一套 avator
Unity 使用Avatar系統來識別布局中的特定動畫模型是否為人形,以及模型的哪些部分對應于腿、手臂、頭和軀干。
由于不同人形角色之間骨骼結構的相似性,可將動畫從一個人形角色映射到另一個角色,允許__重定位__和__反向運動學 (IK)__。
將動畫對骨骼的描述轉換為對avator 的描述,就可以實現動畫復用(但是精度不高,經常出現動畫變形的問題 -- 簡單的可以自己調整avator解決)
AvatarMask-部分動畫的應用
很多時候,我們希望只改變角色的部分動畫。
你只需要選擇在這一個動畫層中,哪些骨骼需要動就可以。
?Root Motion?
給方塊制作一個位移動畫,設置第一幀的位置,設置第二幀的位置。開啟動畫之后方塊會在兩個位置之間來回。當開啟Root Motin 之后方塊會連續的向上移動,不會回到動畫記錄的第一幀的位置
開啟了Root Motion 之后動畫會通過動畫文件中記錄的絕對坐標和方向以及物體的縮放比例(兩個同樣的物體同樣的動畫,縮放比例不一樣,位移也不一樣)計算出相對位移和旋轉
物體添加腳本,腳本里面寫 OnAnimatorMove() 函數的話就會將移動控制權從動畫轉移到腳本
Generic 動畫的 RootMotion
如果動畫中沒有對位移的直接描述,那么我們怎么利用RootMotion 來進行角色的移動
---- >? 選中一個骨骼,把 Generic 動畫對這根骨骼的位移旋轉描述當成對整個游戲對象的位移和旋轉的描述
IK
參考:【Unity】Avatar與AvatarMask系統介紹(TPS.番外篇)_unity avatar-CSDN博客
人形Avatar - Unity 手冊