unity 在使用 animator時,可以決定要不要讓該動畫的位置、角度來實際影響場景中的物件,就是藉由 Apply Root Motion的enble與否和動作data中的bake into pose來決定
那些root motion實際的作用狀況可以參考
此篇
而這篇文章重點是在Animator.deltaPosition,這個是可以讓開發者來自行計算要怎麼讓動畫中的那些root transform position 來實際影響場景中的物件的position,而不是讓unity來計算。但最重要的是這個功能在升級到2018.3後一定要把Apply Root Motion給enable,把Apply Root Motion給enable,把Apply Root Motion給enable,這很重要因此要講三次,為什麼很重要,因為會想要自己計算root motion的工程師,會很直覺地把那個 Apply Root Motion 給disable
,因此就掉進了
孔明的陷阱,造成deltaPosition是完全不會讀取到任何值。這個改動讓我把專案升級到2018.3之後的版本後,出了很大的問題,也花了不少時間來處理這個Bug,最後才發現原來是這邊的功能更改了,才會讓那些原本沒問題的動作每個都壞了。