[深度文章] AI 攻擊目標邏輯
以下為百家號作者 – 手工星球盒子原作, 來源連結不明
整個夢幻模擬戰手游的AI系統在目標選擇上是沒有隨機性的,這個大家可能可以感覺到吧。整個邏輯只是多個技能可以使用時,會出現技能隨機性,在部分情況下會導致目標變化。
而AI選擇目標的原則也非常的簡單,對不同單位擁有的仇恨值不同。具體我們再來分析。一個單位對敵人的仇恨自身英雄和傭兵,與敵人的英雄和傭兵的兵種類型共同作用而成。
這裡假設以基礎仇恨值為0,己方英雄克制敵人英雄仇恨值加1,英雄克制敵人小兵仇恨值加1,小兵克制敵人英雄仇恨值加1,小兵克制敵人小兵加1,被克制則剛好相反,全部減1。例如槍兵英雄帶步兵,此時敵方騎兵對他的仇恨,跟對飛兵單位的仇恨值是一樣的。AI會優先攻擊仇恨值高的目標單位。
當仇恨完全相同的時候,敵人的遠程單位會優先攻擊近戰,而近戰會優先攻擊遠程,其中遠程包括了遠程技能,如氣刃,影襲,狙擊,懲戒等等。
但是不包括救贖,救贖應該算是近戰仇恨。和雷光迅雷等其他近戰技能一樣,會優先遠程單位,並且會優先在2格距離攻擊敵方遠程單位。
技能帶特效沒有額外仇恨,例如攜帶狙擊的飛弓兵單位不會優先攻擊飛兵,攜帶淨化的黑暗公主拉娜,也不會優先去打魔族。
當技能被沉默或者CD後,AI會不算技能,直接按本來的攻擊距離計算射程。例如攜帶氣刃的近戰敵人,如果被沉默,會變成近戰近戰,優先攻擊遠程。
當一個單位既有近戰技能,又有遠程技能時,如果2個技能都在射程內,他會隨機用一個,仇恨算法也根據對應的技能來計算。例如,飛馬露娜,帶狙擊和奔雷,如果他隨機釋放了奔雷,則按近戰來算,釋放了狙擊則按遠程來算。這就是為什麼克里斯的目標選擇總是飄忽不定的原因!
那麼當所有敵人仇恨值完全相同,並且敵人也都是遠程或者都是近戰的時候呢,敵人怎麼選擇目標呢?有什麼邏輯呢?
沒錯,正如大家猜的一樣,AI會優先打離得最近的目標!
最後,如果同時也離得一樣近呢?這個時候AI會以某一種特殊固定的原則來選擇目標,具體大家可以自己在遊戲中觀察觀察。
主要講單體目標選擇,基本都在這了,可以幫助大家預估所有怪物的目標選擇。
注意如有有什麼疑問,請通篇仔細閱讀,遊戲AI邏輯較為死板,有時候你需要把每一步驟都算進去,才能知道正確的結果。AOE技能,和其他非攻擊性技能此篇沒有介紹,下次再講。
這裡還是要說一下,當部隊血量大概低於總血量的20%之後,會被優先集火,這裡敵方方式,無視離得近的雪莉,直接攻擊了殘血的奶騎。有很多人不信,具體可以自己測算下,血量到底要低於多少會被優先打。
AI在仇恨值一樣的情況底下, 攻擊的優先次序 (如下圖)
圖片來源: https://bbs.nga.cn/read.php?tid=16665738