當前位置:名人名言大全網 - 端午節短信 - Unity動畫系列11動畫師記錄錄音和回放

Unity動畫系列11動畫師記錄錄音和回放

涉及

Unity-Animator深入系列-錄制和回放

學習筆記- Unity動畫系統

Animator自帶簡單的動畫錄制和回放功能。但遺憾的是,不支持持久數據輸出。因此,它不能保存為視頻。不過這種經常能出現在賽車和格鬥類遊戲結尾的遊戲回放還是有用的。

通過Animator Record,我們可以記錄角色在壹段時間內所做的所有動作,並在必要時回放這個動作。動畫師將記錄動作的執行、過渡和動畫參數。回放時,會在回放中再現Animator的動畫狀態、狀態轉換以及動畫參數值的變化。

如果在ApplyRootMotion的情況下錄制並回放動作,角色會回到原來的位置並執行錄制的動作,再次重現整套動作,以及動作引起的位移和角位移。在非ApplyRootMotion下錄制和回放動作時,角色不會被重置,而只會再現動作。

播放過程中,對Animator狀態機的任何修改都是無效的(動畫參數不能修改,狀態切換不能進行)。停止播放時,角色會在當前位置停止播放,並返回Animator的操作權限。

如果我們使用animator。StartRecording(0),recorderStartTime的值將為0,animator.recorderStopTime是錄制的動畫的長度。當動畫師。使用startrecording (int frame ),然後記錄器啟動time/animator。Recorder stoptime是最後壹幀對應的遊戲時間點。

動畫播放要求我們使用animator。StartPlayback();然後,根據錄音機開始時間/動畫。Recorder Stoptime,playbackTime在Upadte中自行修改,累加Time.deltaTime實現。

如果我們需要記錄animator回放速度的變化(animator.speed)並在回放中實際再現。我們可以實時記錄動畫參數中的速度值。我們在回放的時候,因為動畫參數的數值會再現,所以可以用回放方法累加Time.deltaTime時從動畫參數中得到的速度值乘以它,從而實現速度變化的記錄和回放再現。

同樣的思路也可以通過錄制和引用其他需要在回放中重現的屬性值的動畫參數來實現。