Root Motion深度解析 Unity

2021-07-11 10:01:46 字數 1060 閱讀 9196

在很多動畫當中,模型的位置、角度往往會發生變化,我們需要決定是否將模型再動畫中發生的這些變換應用到實際模型。unity中有兩個跟這個有關的設定。

這裡如果看官方文件,理解起來會比較繞,特別是這兩個設定的地方會相互影響。當然如果要是弄明白了裡面的機制就好理解了。

我們首先來看這個「bake into pose".在untiy中將動畫中的變換分成兩種,body transform和root transform,我們可以設定動畫中的關於模型的一些變換(平移、旋轉等)是屬於body transform(pose)還是root transform(

trajectory

)的一部分。

這裡的bake into pose 也就是將變換設定為body transform(pose)的一部分。,

然後我們來重點再看看這裡的」

".這裡他會起到兩個作用,

首先最重要的是,

決定是否應用root transform

,如果應用的話,那麼在動畫的同時,模型的位置和角度會同時跟著變化。如果這裡不勾選的話,那麼就是說不應用root transform,這樣我們所有的root transform都將不起任何作用。(也就相當於於所有沒有bake into pose 的變換都沒有用了)。

第二個作用是在動畫結束後,

將body transform中的變化應用到模型(注意,這裡是結束的時候才應用,也就是說動畫的時候,模型的position、rorate等引數是不變的,當動畫結束之後,開始新的動畫之前才會改變,注意這裡跟前面提到的root transform的區別)

上面就是關於root motion的理論,然後我們來個幾個實際的場景。

比如說我們有乙個人物行走的動畫,我們來考慮一下幾種情況(這裡以「root transform position(xz)為例)

參考:

Root Motion深度解析 Unity

在很多動畫當中,模型的位置 角度往往會發生變化,我們需要決定是否將模型再動畫中發生的這些變換應用到實際模型。unity中有兩個跟這個有關的設定。2 這裡如果看官方文件,理解起來會比較繞,特別是這兩個設定的地方會相互影響。當然如果要是弄明白了裡面的機制就好理解了。上面就是關於root motion的理...

Const 深度解析

物件導向是c 的重要特性.但是c 在c的基礎上新增加的幾點優化也是很耀眼的 就const直接可以取代c中的 define 以下幾點很重要,學不好後果也也很嚴重 1.const常量,如const int max 100 優點 const常量有資料型別,而巨集常量沒有資料型別。編譯器可以對前者進行型別安...

extern深度解析

c語言中extern用法 對於全域性變數來說,extern關鍵字可以在乙個模組中使用在另乙個模組中定義的全域性變數.只要extern宣告一下就好,但是變數只能定義一次,不然鏈結的時候會報錯.現代 編譯器一般採用按檔案編譯的方式,因此在編譯時,各個檔案中定義的 全域性變數 是互相不透明的。也就是說,在...