Behavior Tree是一種新概念的AI架構,他比傳統有線狀態機來的更加簡單易懂,製作好的NODE可以延續使用,而且只要將方法跟企劃說明後企劃也可以自行調整。
這邊要說明的是利用RainAI這個插件去製作AI的方法,會以FF15PE的角色為範例。
首先要先理解什麼是行為樹,行為樹的最頂端一定會有一個Root的節點,並且重複的自上往下的依序判定,符合條件的話就執行甚麼動作,這就是行為樹的基本原理。
在這之中(參考左圖)方形的節點屬於控制節點,負責判斷行為是否正確,並且回傳ture/false值,而圓形寫著A的節點就是行動節點,顧名思義就是負責執行行為的節點
控制節點大約有下列幾種
先繼承RAIN AI的類別,之後就會固定有Start、ActionResult、Stop三個Function需要被覆蓋,將想要執行的動作寫入其中即可。
不過這是最初級的版本,如果要讓程式可以更加泛用的話就需要追加參數。
在程式碼每,利用Expression來新增變數,這個變數可以是任一種型態的關係,需要再將他轉成相應的類別,算是一個小小不方便的地方
再將這個變數做判斷或是傳到動畫或是角色狀態的腳本上的話,就可以做出相應的反應了。