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