1. 程式人生 > 其它 >【虛幻】虛幻的動畫狀態機中導管的用法和任意狀態的實現

【虛幻】虛幻的動畫狀態機中導管的用法和任意狀態的實現

虛幻的動畫狀態機中導管的用法,以及如何實現Unity3D中那樣的AnyState

轉載請註明出處:http://www.cnblogs.com/shamoyuu/p/ue4_animation_any_state.html

一、導管用法

我們在設計狀態機的時候,狀態之間不應該直接相連(雖然大部分人都是這麼做的,但這是錯的),而是應該交給導管來做緩衝區,所有狀態都應該從導管出發,完成後回到導管,再進入下一個狀態。

舉一個例子,你的角色狀態機已經完成了,可以走跑跳攻擊,這個時候要優化一下動畫,要求角色不同狀態下要進入不同的動畫,比如受傷時、疲勞時、中毒時,它們的Idle,Walk,Roll都要不同,

如果不用導管,那簡直完犢子,連線得成蜘蛛網,但是如果像下圖這樣,只需要把Idle,Walk,Roll換成導管,再在下面加不同的動畫狀態,就輕輕鬆鬆。

這樣設計就能避免各種狀態之間互連的情況,極大地增加狀態機的可讀性,增刪改查都很方便。

二、任意狀態實現

在動畫狀態機中,有些狀態需要可以從任何狀態都能跳入,比如受擊,死亡之類的,這種一次性的可以用動畫蒙太奇來解決,

但是如果是下墜這種,迴圈的,而且需要從任意狀態進入,落地後又要切換到其他狀態的就不好處理。

Unity3D中有一個AnyState,而虛幻中並沒有,但是如果像上圖這樣使用導管的話,其實這個導管就是一個AnyState了(區別就是虛幻得先手動回到導管狀態,不過問題不大)。

完結,散花