一、UE4行為樹太弱
Behavior Tree (行為樹)是UnrealEnigne4(簡稱UE4)非常重要的一部分。它提供了一種直觀且易於理解的方式來管理AI,是UE4引擎中最重要的AI系統之一。也正因為如此,很多人都會認為UE4行為樹的表現太弱,無法應對複雜的AI邏輯,而需要通過複雜的CPP代碼才能實現玩家期望的邏輯。例如,在動作遊戲中,怪物AI往往需要跳、閃避、近戰、遠程攻擊等能力,但是由行為樹實現這些能力時則相對簡單。
那麼,如何彌補UE4行為樹的不足呢?
二、UE4行為樹Sequence
UE4的行為樹內建有Sequence節點,它可以使多個子節點的行為按順序執行。使用Sequence的好處在於可以充分利用行為樹的自定義功能,同時又能夠獲得加強的流程式控制制,而不是把所有內容都編寫在一個節點中。 比如,如果創建一個AI,使其在發現主角後進入警戒狀態,然後開始向主角移動,最後攻擊主角,使用Sequence節點能夠優化行為樹,分步驟控制AI的行動。
Action - Guard (警戒) | Action - MoveTo (移動) | Action - Attack (攻擊)
三、UE4行為樹服務
UE4行為樹提供了Service節點。Service節點可以在其它節點運行時執行,它可以用於更新黑板的數據、判斷玩家離AI的距離、檢查某個時間是否已經到達或監控其它節點。比如,我想要一個「持續且自適應」的尋路行為,我可以用一個Service節點來實現,使得它可以持續更新目的地坐標。
Action - MoveTo | Service - UpdatePosition
四、UE4行為樹未激活
一個常見的問題是:如果多個AI使用同一個行為樹,當某個AI不需要執行行為時,如何禁用它的行為?UE4行為樹內建的Decorator節點可以解決這一問題。通過使用Decorator節點,我們可以把條件邏輯與行為樹分離開來,以此實現行為的自動化管理。比如下面這個例子中,將AI的生命值與一個判斷節點相連,從而使AI在生命值較低時停止執行攻擊行為:
Decorator - CheckHealth | Action - Attack
五、UE4行為樹裝飾器
Decorator節點的另一個功能是用於修飾其它節點。比如我想讓行為樹僅在指定時間內運行,則可以使用裝飾器節點。裝飾器節點通過在其它行為樹節點周圍添加額外邏輯,實現了行為樹的重用,從而加速了行為樹的開發。比如我想設置AI只在晚上進行秘密行動,可以使用Sleep Decorator,來睡眠等待時間到達。
Decorator - Sleep | Action - MoveTo
六、UE4行為樹都有什麼
在UE4中,Behavior Tree有以下幾種節點:
- Composite: 根節點,也稱為插件節點,用於組合子節點
- Decorator: 在Behavior Tree的節點周圍添加額外邏輯,代表著建立在其它節點上的條件邏輯
- Service:在Behavior Tree運行時執行,可以更新黑板或監控其它節點狀態
- Action:是所有節點的基礎動作,代表著行為樹的基本單位
- Subtree: Behavior Tree的一個特殊節點,它可以在一個行為樹中包含另一個行為樹
七、UE4行為樹黑板更新頻率
UE4行為樹的黑板通常會用於傳遞數據和狀態。一旦一個值改變,所有使用該值的節點都會立即收到更新。但如果使用過於頻繁,則會影響遊戲性能,導致出現卡頓等問題。所以需要選擇合適的黑板更新頻率,以充分發揮行為樹的性能,同時又能夠保持遊戲的流暢度。
UE4行為樹內置了兩個黑板範圍:
- 只在執行Behaviour Tree期間可見,且所有節點均可見
- 大本地和全局使用,支持在許多不同的地方訪問
八、UE4行為樹任務節點執行次數
在Behavior Tree中,任務節點是執行行為的基本單元。不同的任務節點會執行不同的行為,例如處理輸入數據、執行運算、移動等。一個任務節點可能只執行一次,可能執行多次,所以我們需要了解不同任務節點的執行次數,以便於更好的控制行為樹。
在UE4中,Behavior Tree中的任務節點可以執行以下操作:
- 只執行一次,並返回結果
- 永久執行,直到恆定只返回
- 執行一定次數(通常是隨機或時間限制),並返回結果
- 以某種頻率循環執行任務,返回結果
九、UE4行為樹尋路到跟前然後攻擊
在UE4中,行為樹有很多用途,其中一個常用的用途是為AI提供自動化控制。例如,我們可以用UE4的行為樹構建一個簡單的打鬥系統,讓AI之間進行戰鬥。
在行為樹中,可能需要使用序列節點,使多個行為按照規定的順序執行。例如在下面的序列節點中,我們可以讓AI先尋路到玩家位置,然後開始攻擊。
Composite - Sequence | Action - MoveTo | Action - Attack
結束語
UE4行為樹是一種非常方便的工具,它可以提高遊戲開發的效率,同時還能通過不斷優化和完善,加強遊戲的表現力。在這篇文章中,我們從多個方面對UE4的行為樹進行了介紹和講解,希望對大家有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/180279.html