智能感知
- 目前游戲中的智能感知并不是真正的智能感知,如NPC通常都是將敵人存放在一個數(shù)組中,然后設(shè)置一個距離,當(dāng)在這個距離觸發(fā)時口柳,遍歷對應(yīng)的敵人數(shù)組采取不同的行為實現(xiàn)(射線測試之類)。并沒有用到計算機視覺等高端AI技術(shù)踩寇,在設(shè)備和預(yù)算上也會成為十分大的代價啄清。
主要分為:
- 視覺感知
- 聽覺感知
- 觸覺感知
- 記憶感知
- 其他感知
通用的AI架構(gòu)模型
Paste_Image.png
較為復(fù)雜的信息感知系統(tǒng)
Paste_Image.png
感知的實現(xiàn)方式
- 輪詢方式(每隔一段時間去遍歷一次)
- 事件驅(qū)動----觸發(fā)器機制
- 這里的觸發(fā)機制并不是和unity中的Trigger一樣六水,而是主動觸發(fā)俺孙,在NPC上綁定一個感知器(Sensor),而在會觸發(fā)的對象上綁定Trigger掷贾,當(dāng)對象被感知到時睛榄,會通知到對象。
智能感知基礎(chǔ)類的搭建
觸發(fā)器類
感知器類
事件管理器
觸發(fā)器類
Paste_Image.png
- 視覺觸發(fā)器
Paste_Image.png
AI.png
Paste_Image.png
- 基類重寫想帅,更新位置
Paste_Image.png
感知器類
Paste_Image.png
- 視覺感知器
Paste_Image.png
事件管理器類(這里用單例會更好)
Paste_Image.png
Paste_Image.png
聽覺感知
聽覺觸發(fā)器基類
Paste_Image.png
- 聲音觸發(fā)器
Paste_Image.png
- 聲音感知類
Paste_Image.png
觸覺感知
- 在unity里面场靴,使用觸發(fā)器機制可以非常容易實現(xiàn)
- 添加碰撞體,并勾選isTrigger
- 碰撞兩者其中之一需要剛體組件(碰撞檢測的基本)
- 并調(diào)用觸發(fā)器的處理方法(OnTriggerEnter港准,OnTriggerStay旨剥,OnTriggerExit)
具體實現(xiàn)就是Trigger的碰撞檢測非常的簡單,這里不做介紹
記憶感知
- 實現(xiàn)思路: 設(shè)計一個SenseMemory類浅缸,其內(nèi)部具有一個記憶列表轨帜,列表中保存最近感知到的對象,感知類型衩椒,最后感知到該對象的時間蚌父,還應(yīng)該實現(xiàn)其能在記憶中保留的時間,當(dāng)有一段時間(超過記憶最長的時間)沒有感知到這個對象時毛萌,這個對象將會在記憶列表中刪除苟弛。
Paste_Image.png
Paste_Image.png
- 記憶List的更新過程
Paste_Image.png
其他感知-----(血包,寶物阁将,BUFF)
- 思路:
- 在血包膏秫,寶物,BUFF上設(shè)置Trigger
- 在Player上設(shè)置Sensor進行感知做盅。
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png