Unity3D中的AI架構模型

2022-03-22 20:47:50 字數 1222 閱讀 8380

我們都知道現在ai(由人工製造出來的系統所表現出來的模擬人類的智慧型活動)非常的火,可以說是家喻戶曉。當然,在遊戲中,ai也是到處可以找到的,對於ai,我們應該關注的問題是如何讓遊戲角色能夠向人或動物那樣「感知」、「思考」和「行動」,讓遊戲中的角色看上去具有真實的人或動物的反應。

實際上,對於遊戲中的ai角色,可以認為它們一直處於感知(sense)->思考(think)->行動(act)的迴圈中。

儘管每種遊戲需要的ai技術都有所不同,但絕大多數現代遊戲中對ai的需求都可以用三種基本能力來概括。如下:

運動:移動角色的能力。

決策:做出決策的能力。

戰略:戰略戰術思考的能力。

在這個模型中,將ai任務劃分為三個層級,分別為運動層、決策層及戰略層。運動與決策層包含的演算法是針對單個角色的,戰略層是針對小隊乃至更大規模群體的。需要注意的是,這只是一種基本的ai架構模型。實際中,根據遊戲的種類與需求,可能會有所細化或增刪。例如,棋類遊戲就只有戰略層,因為這種遊戲中的角色不需要自己做出決定,也不用考慮如何移動。而其他許多非棋類遊戲中,就不包含戰略層,可能反應遲鈍,只需要每個角色做出簡單的決定,並且依次行動,而不需要角色之間協調工作。下面來分別分析這三層的任務。

運動層在運動層中的主要任務一般是導航和尋路,它們決定了角色的移動路徑,當然,具體的移動行為還需要動畫層的配合才能完成。例如:我們在遊戲中可能會遇到這種情況:在某遊戲關卡出,當敵人(此處指電腦)看到你時,他需要召集隊友,那麼他要拉警報,這就需要他們先移動到最近的固定的警鈴,當這個鈴較遠時,他需要避開障礙物和你才能到達,這就需要較複雜的導航與尋路演算法。

決策層決策層的任務是決定角色在下一時間步該做什麼。決策層的功能可以利用有限狀態機或行為樹等技術實現,也可以採用更加複雜的ai技術,如模糊狀態機、神經網路等技術實現。例如:當角色看不到玩家時,就進行巡邏,否則就進行攻擊,在攻擊的決策中還可以帶有扔手雷、加大火力壓制等等附加決策。

戰略層戰略指的是一組角色的總體行為,這時ai演算法並不是只控制單個角色,而是會影響到多個角色的行為。小組中的每個角色都可以有他們自己的決策層和運動演算法,但總體上,它們的決策層會受到團隊戰略的影響。

其實,即使遊戲中只有運動層和決策層,也可以實現很複雜的功能。事實上,大部分基於行為的遊戲也只是用到了這兩層,但是,如果需要團隊協作,那麼好酒需要某些戰略ai。

本文屬於原創,**須註明:

參考:unity 3d人工智慧程式設計精粹

Unity3D如何編寫AI

1.unity3d 簡單ai編寫 由於這次介紹的ai 很簡單,直接貼上,ai分成四個狀態 思考,轉身,移動,攻擊,這裡只是初步實現,所以想實現簡單點的操作,就像自動範圍內隨機移動,鎖敵攻擊,超出距離復位,近距離察覺等。1 enemy ai.js 2 3 private var regression ...

Unity3D 指令碼架構

lateupdate 如果啟用,會在每一幀中被呼叫。在所有update函式被呼叫之後才執行。有利於程式的有序執行。例如 跟隨攝像機就應該在lateupdate執行,因為它跟隨的物件也許需要在update中執行 onprecull 攝像機在場景中剔除物件前被呼叫。剔除確定哪些物件是在攝像機中是可見的。...

Unity3D模型製作規範

unity3d模型製作規範 一.單位,比例統一 在建模型前先設定好單位,在同一場景中會用到的模型的單位設定必須一樣,模型與模型之間的比例要正確,和程式的匯入單位一致,即便到程式需要縮放也可以統一調整縮放比例。統一單位為公尺。二.模型規範 所有角色模型最好站立在原點。沒有特定要求下,必須以物體物件中心...