當你把某個物件的動畫 bake 之後 (edit->keys->bake simulation), 你會發現動畫的每一個 frame 都會有 key. 如果這是你的final animation (雖然在 production 時幾乎沒有所謂的"final") 那就沒什麼問題. 如果你之後還需要改變動畫, 你就會發現你的 animation curve 都是塞滿 key, 要對它做修改的話好像乾脆重做都比較快 :sad:.
沒關係,Maya的 graph editor 裡就是有個功能專用來處理這種事. 這功能叫做 Curves->Simplify curve. 它可以把"不必要"的 key 刪掉,只留下真正對一個curve 有"貢獻"的keys.神奇吧!
話不多說,我們就來用看看!
-> 首先在maya裡產生一顆球與一個平面.
-> 把球變成一個 active rigid body (選取球然後執行 Soft/Rigid Bodies -> Create Active Rigid Body)
-> 把平面變成一個 passive rigid body (選取平面然後執行 Soft/Rigid Bodies -> Create Passive Rigid Body)
-> 加 gravity 在球身上(選取球然後執行 Fields->Gravity)
執行到這裡,你把animation 往前跑的話 球就會在平面上彈跳.我們現在要把球彈跳的動畫bake 成 keyframe.
-> 選取球的 translate channels, 然後執行 Edit->Keys->Bake Simulation []
-> maya 把動畫bake 完之後,打開 graph editor. 在 translateY 的 animation curve 你會發現每一個 frame 都有 key的. 我們現在要做的是減少這些 key 的數量並且可以維持 animation curve 的形狀.
-> 執行 Curves->Simplify Curve[]
simply curve 的演算法有兩種 :classic & Dense data. 建議使用 Dense data,因為 Dense data 比較適合對密集 keyframe 狀況 做簡化.
time tolerance : 數值越高,出來的key數量就越少,形狀差異越大.
-> 按下 apply 或 simplify
出來的結果, key 數量果然減少了,而且球的動畫根原來的相較之下差異並不大.之後要修動畫的時候,這種 animation curve 就好修多了.
一個知道卻不知從哪下手的小技巧。3Q~
回覆刪除請問閣下是從哪悟得這些東西呀!