1.9 AI尋路
MOBA游戲的小兵、野怪、陪玩角色AI都需要用到尋路,SDF也能很好地處理這個問題。尋路算法可用經典的AStar或者JPS,通過修改探索函數,以SDF生成可行走的節點即可。而判斷探索節點的鄰節點位置是否可以行走,只需要判斷其是否滿足φ(x)≥r就行。
對于可行走對象尋完路徑之后在行進過程中遇到動態障礙物的情況,如果在已尋路徑中按照搖桿移動方式從當前節點向下一個節點行走,則會自動繞障礙物滑行,無須重新尋路。遇到前面提到的在凹形障礙物中走不出來(即前后位置無變化)的情況,再進行一次尋路即可。
基于SDF的AStar尋路,還能通過將φ加入代價評估中,從而非常容易地打破對稱性,通過修改行走對象的半徑r實現遠離或者貼近障礙物。