AI,如何實現NPC的聽覺

2021-07-05 05:47:51 字數 1143 閱讀 1009

npc(非人類角色)的聽覺是指npc對於身邊聲音環境的感知,比如你從背後接近npc,如果不收斂腳步聲,他就會發現你的行動,那麼你將無法刺殺他。

對於實現聽覺系統,可以考慮如下一些因素

a 障礙物是否會減弱聲音的傳輸,如牆體或樹木是否會阻礙聲音的傳播

b 聲音傳輸距離與聲音衰減的關係,是否衰減,如果衰減,是線性的衰減,還是非線性的衰減

c 殭屍的聽力,弱,中,強。那麼殭屍的聽力如何作用

當然越逼真則需要消耗的效能就越多,**量也會增加。

下面給出幾個設計方案(僅供參考)

(一) a 殭屍的聽覺為球形,聽覺強的殭屍球大,弱的球小。

b 聲音不衰減,並且免疫障礙物阻礙,但可以限定聲音的傳播距離。

c 如果音源在殭屍聽覺球內,且二者距離沒有超過聲音的最大傳輸距離,則殭屍受到聲音刺激。

d 此方法簡單粗暴,只需要判斷幾個距離值就ok

(二) a 殭屍不需要有聽覺球

b 聲音線性的衰減,但免疫障礙物阻礙,同時給出聲音的傳播範圍。

c 如果殭屍和音源距離小於聲音傳輸範圍,依據此時聲音的剩餘能量與殭屍的聽力,來進一步判斷殭屍是否收到聲音刺激。

d 此方法需要設計乙個聲音衰減函式,還需要額外的邏輯處理聽覺與聲音的關係。

(三) 同二。但要進一步考慮聲音的衰減與障礙物之間的關係。有時兩者距離雖然很近,但畢竟隔著一道牆,玩家不會期望此時殭屍已經被聲音刺激了。

那麼如何考慮障礙物與聲音的衰減關係。

a 比較精確的做法就是a star 尋路。音源(玩家)與殭屍之間的最短路徑,聲音依據此距離進行衰減,如果路徑很長那麼雖然直線距離近也不受影響。

b 比較簡便的做法就是分割槽,比如地圖的某一片區域只能聽見該區域的聲音,牆左邊是一片區域,右邊一片區域,左邊的聲音無法影響右邊。

最後乙個需要注意的問題,是否啟用模糊邏輯。殭屍聽力與聲音的遠近或者大小,以什麼邏輯來表述。

是精確的邏輯,即音源距離<=100m或是聲音的振幅》=20db才能聽見。

另外,在精確邏輯下,也可以附加以概率模型,比如10m內100%聽見,20-50m 50%聽見等。

還是模糊邏輯,普通聽力的殭屍中等距離應該能聽見,遠距離可能聽不見。

【參考文獻】

[1]遊戲程式設計精粹7,設計真實且統一的**感知模型

[2]遊戲人工智慧程式設計案例精粹

【致謝】

AI是如何發揮威力的

ai並不是孤立存在的,就像網際網路也不是孤立存在的,網際網路是資訊革命的具體表現形式,網際網路的發展加快了資訊的交流,儲存,收集和利用。目前在ai領域都形容資料就是生命,就像血液,就像石油。資料就是資訊,是資訊革命的產物。但是資料需要分析和建模才有價值,就像石油必須經過冶煉和提純,才能利用一樣。在資...

Unity3D學習之(NPC頭頂文字的實現)

今天介紹乙個npc 的實現 效果圖 如下 主攝像機物件 private camera camera npc名稱 private string name 奧莉 npc模型高度 private float npcheight void start camera camera.main 得到模型原始高度 ...

解決AI大難題 如何降低AI執行對能源的消耗?

編譯 科技行者 就當下來看,ai領域實現突破性進展的深度學習模型,其規模越大,能耗和成本也隨之增加。自然語言處理模型gpt 3就是個典型的例子,為了能夠在準確性與速度方面與人類相匹敵,該模型包含1750億個引數 占用350 gb記憶體並產生高達1200萬美元的模型訓練成本。而且單從成本來看,大家應該...