2017年4月23日 星期日

RVO測試

RVO要是用來做大量物件近距離閃避處理的一套函式庫,有好幾個版本,主要演變過程為
RVO =>HRVO =>ORCA,詳細資訊可以參考這個網站:

RVO2 Library

目前自己使用的為ORCA這個版本,有現成的C#版可用,雖然A* Pathfinding Project外掛也
有包含目前使用到的這個版本,但它跟Unity綁太深,還是自行使用這個乾淨的函式庫比較
好。

底層的架構是用KDTree來處理鄰居查找的問題,且也有用Thread做過優化,在紅米Note3上
跑,250 Agents效能還可以維持在56~60左右,算是相當穩定的,只可惜目前只有處理位移的
部份,沒考慮到轉向Smooth的問題,也會產生fall back,所以只好採取位移和旋轉拆開,並做
Smooth Rotate處理,但還是會有滑步的狀況…用在人的話,可以八方拆動作走,沒差,但交
通工具就麻煩了…。感覺上還是只能利用其鄰居的資料提前繞路,不要一直朝想要去的點
撞,如果還有問題的話,就交給RVO處理了…

這個Demo目前還沒有處理提前先繞路的部份,只有加入一些基本的AI行為(MoeToTarget,
EncircleTarget,Death…等),影片如下:



Dream continues in...

沒有留言:

張貼留言