




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、游戲AI的架構(gòu)模型游戲AI的架構(gòu)模型運動層:AI的具體行為,比如移動決策層:決定AI下一時間步該做什么戰(zhàn)略層:從集體層面對個體AI進行控制除此之外,還要結(jié)合動畫系統(tǒng),物理引擎,感知系統(tǒng)等,共同組成人工智能個體AI表21操控行為術語中英文對服衰英文術培中文術語H義Seek靠近使角色靠近目籌Fles離開使用色離開目標Arrival抵達當角色接近目標時使它減速Plimuil追逐使捕貓者追逐貓物Erode逃避使獵物逃離捕貓者Wandtr瞳機徘制使角色隨機排翻PathFntlowil)g路也的使角色沿著某條削定路徑移動(MkHtHtleAy加dcini:巴避開障礙使角色避開障礙物GroupBfh,廿欣1
2、組行為多知色成組的操控行為HqrUr雷達探測周隅相鄰南色位置Sc|Mrali<Mi分離與春中等居庫特適當距離Al師m產(chǎn)nt隊列與群中鄰居保持朝向一致Cohiraioii聚集成群聚集在一起Seek是最常見的AI行為,最簡單的實現(xiàn)是給AI添加一個修正力使之向目標移動6中清花圖教肓wwA,IHtj.|U4dUU中加tfFlee和Seek相反,通常我們都要設置一個Distance范圍判斷結(jié)束行為。用Vector3.sqrMagnitude向量平方長度,計算會更快Arrival到達目標減速至停止,可設置一個StopDistance,距離大于停止距離時給一個Force移向目標Pursuit追逐會預測
3、Target的未來位置,比如預測t時間內(nèi)Target不會轉(zhuǎn)向,AI將計算未來位置朝之移動。另外還可以用點乘計算夾角,判斷雙方是不是面對面Evade逃避。與Pursuit反向Wander隨機徘徊。設置一個圓周半徑,每幀給Target附加隨機位移,比AI只按照預設好的路線移動更加真實FollowPath路徑跟隨。設置radius路點半經(jīng),讓AI在路徑間切換更加真實CollisionAvoidance避開障礙。向前射線檢測障礙物的包圍圈,產(chǎn)生一個排斥力。集體AI后中清花圖教肓組行為:分離:避免局部擁擠隊列:朝向附近同伴的平均朝向聚集:向附近同伴的平均位置移動Radar檢測附近的AI角色(數(shù)學/Tri
4、gger)Separation分離。搜索領域內(nèi)的其他鄰居,計算兩者間的向量并單位化,得到排斥力方向,排斥力大小與距離成反比Alignment隊列。將AI的朝向糾正為和鄰居一致,平均朝向減去當前朝向就是操控朝向Cohesion聚集。集體AI往往需要一個集體狀態(tài)機,負責判斷團隊整體狀態(tài)和動作各個角色則需要完成動作的多層狀態(tài)機設置,比如這層行動路線,下層具體行為,下層角度速度細節(jié)AIDirector導演系統(tǒng)控制整局游戲流程更多實例暫略A*尋路A*(A-Star)算法是一種靜態(tài)路網(wǎng)中求解最短路最有效的直接搜索方法,也是許多其他問題的常用啟發(fā)式算法。注意是最有效的直接搜索算法,之后涌現(xiàn)了很多預處理算法(
5、如ALT,CH,HL等等),在線查詢效率是A*算法的數(shù)千甚至上萬倍。歐幾里得/歐拉距離:多維空間兩點間的距離,即直線距離曼哈頓距離:估計到目標格子之間的水平和垂直方格的數(shù)量和,即不走斜路地圖,目標估計,代價,節(jié)點導航圖:將地圖用圖表示1、基于單元的導航圖將地圖劃分為多邊形單元組成的規(guī)則網(wǎng)格。易于動態(tài)更新,但時間空間消耗都大2、創(chuàng)建可見點導航圖先手工放置一些路徑點,然后若路徑點之間可視,就能以邊連接??梢栽O置一些特殊點,適(3中清熱圖教肓©中清ze圖教肓碑立,I0*gIU-4idtD庸tft合簡單的尋路3、創(chuàng)建導航網(wǎng)格NavMesh將可行走區(qū)域劃分為凸多邊形。可以是多種多邊形的組合,讓
6、網(wǎng)格劃分更加合理采用視線確定”方法,向前跳到視線最遠途經(jīng)點,對路徑進行后處理,得到更平滑的路徑效率高,空間小以基于單元的導航圖為例,執(zhí)行A*算法g(n):起始節(jié)點到當前節(jié)點n的代價h(n):當前節(jié)點n到目標節(jié)點的估計代價f(n尸g(n)+h(n)從初始狀態(tài)經(jīng)由狀態(tài)n到目標狀態(tài)的代價估計open表:待考察的結(jié)點的優(yōu)先級隊列,代價從低到高(可以不排序,只找最小值)closed表:已考查的結(jié)點列表開始時,Clos"表為空,而Open表僅包括起始節(jié)點由每次迭代中,A*算法將Opn表中具有最小代價值(即f值最小)的節(jié)點取出進行檢直,如果這個節(jié)點不是目標節(jié)點,那么考慮該節(jié)點的所有8個相鄰節(jié)點口對
7、于誨個相鄰節(jié)點按下列規(guī)則處理:(I)如果它既不在。p«n表中,電不在Clewed表中,則將它加入Oppn表中;(2)如果它已經(jīng)在Open表中.并且新的路徑具有更低的代價值,則更新它的信息:(3)如果它已經(jīng)在口必人表中,那么檢查新的路徑是否具有更低的代價值如果是,那么將它從Clmed表中移出.加入到Open表中,否則忽略口,第一步:取起始結(jié)點,將其8個鄰接點加入Open,并將各鄰接點的父節(jié)點設置為起始節(jié)點,起始點加入Close第二步:計算open表中結(jié)點的代價f=g+h,計算規(guī)則是:g:取父節(jié)點g值,根據(jù)n點和父節(jié)點的連接方式計算。如果是直角連接g+,對角連接g+=1.414h:采用歐
8、幾里得距離/曼哈頓距離不考慮障礙物根據(jù)f大小來確定open表中下一個要被檢查的節(jié)點第三步:取f最小結(jié)點,檢查8個鄰接點,障礙物點無視。e中清花圖教肓.IlQ*gIU*。工由Etfr-計算各鄰接點通過當前結(jié)點得到的新 規(guī)則同上g值)計算新結(jié)點加入open表已經(jīng)在open表的,若新g值比原值大,不需更新。若小于原值,則更新g,f,父節(jié)點,而不用更新h已經(jīng)在closed表的,按上圖文字處理第四步:對于具有相等的最小代價值f的結(jié)點,可任選一個計算。循環(huán)直到終點其他1 .對于已經(jīng)計算的(存在于open或closed表中)節(jié)點,無需再次計算,因為選擇那些節(jié)點只會繞遠2 .障礙物節(jié)點加入closed表,對于
9、被open或closed表包圍的節(jié)點)也加入closed表中和Dijkstra算法的區(qū)別:Dijkstra是BFS,不會去預估到終點的距離,因此在有多個權值相等的路徑時會搜索很多不必后中清花圖教肓要的結(jié)點。而且沒有考慮障礙物A*是按照啟發(fā)函數(shù),向著目標搜。很適合尋路Dijkstra會求出所有點的最短路徑,得到理論上的最優(yōu)解,而A*則只會找需要計算的點。結(jié)果是A*更快,但是不一定是最優(yōu)解Unity尋路AI使用NavMeshAgent組件如果要配合物理引擎使用,則AI需要有kinematic的剛體)表示剛體由nav控制和Animator配合使用的話)最好不要用rootmotion將地面勾選Navi
10、gationStatic)再打開Navigation視圖,點擊bake即可看到藍色可達區(qū)域NavigationArea可以設置object為不同Area,會用不同顏色表示可以在NavMeshAgent中修改其可以行走的AreaOffMeshLink添加跳躍點(手動路徑)默認的NaveMeshAgent組件上面是勾選了AutoTraverseOffMeshLink(自動通過OffMeshLink)選項的。這樣的意思是人物只要到了OffMeshLink的開始點,就會自動的移動至ijOffMeshLink的結(jié)束點。NavmeshObstacleenable時不可通行,false時可通行。此情況下物體
11、不會暫停尋路還有很多用法,這里就暫不詳述了AI感知事件AI往往要感知視覺、聽覺等信息來決策下一步的行為,其中又包括位置信息,對象屬性信息,自身信息等1、輪詢(主動查詢信息)輪詢類似編程中的switch-case,是AI周期性地查詢所需要的信息,輪詢非常常見,容易維護,但有效信息率低,花費性能較多輪詢中心(沒有必要每個AI都進行一遍查詢,而是集中處理需要查詢的信息)2、事件驅(qū)動(被動得知信息)事件是一種高效的消息傳遞機制,由事件分發(fā)者主動通知每個感興趣的AI,這樣就使AI準時獲得有效信息可以做一個中心檢測系統(tǒng)(事件管理器),記錄每個AI感興趣的事件,并通知他們,還方便了調(diào)試3、Trigger觸發(fā)
12、器觸發(fā)器其實和事件比較接近,相比之下,觸發(fā)器是事件的本源,比如監(jiān)聽聲音的聲音觸發(fā)器,檢測觀察物的視覺觸發(fā)器,等待時間的時間觸發(fā)器Trigger常用一個半徑計算檢測的范圍,Sensor感知器則定義了枚舉類型和變量,保存了事件管理器視覺感知:圓錐形探測聽覺感知:衰減范圍。而感知器也有對應的感知閾值觸覺感知:碰撞器記憶感知:記憶List+Time留存時間FSM有限狀態(tài)機finite-statemachine是表示有限個狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)移和動作等行為的數(shù)學模型。最簡單的用enum+switch即可實現(xiàn)在Unity中,我們可以用Animator或其他FSM框架實現(xiàn)可視化狀態(tài)機但是對于一些復雜的AI,用FSM圖十分繁瑣,效率低且容易出錯,對一般的AI來說,F(xiàn)SM就足夠了BehaviorTree行為樹行為樹是由行為節(jié)點組成的樹狀結(jié)構(gòu)對于FSM,每個節(jié)點表示一個狀態(tài),而對于BT,每個節(jié)點表示一個行為。行為樹層次清晰,易于模塊化,封裝性好,可重e中清花圖教肓用,是一種效果理想的AI編輯器在BT中,節(jié)點是有層次(Hierarchical)的,子節(jié)點由其父節(jié)點來控制。每個節(jié)點的執(zhí)行都有一個結(jié)果(成功Success,失敗Failure或運行Running),該節(jié)點的執(zhí)行結(jié)果都由其父節(jié)點來管理,從而決定接下來做什么,父節(jié)點的類型決定了不同的控制
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年江蘇三支一扶考試公共基礎知識真題預測與解析
- 土地流轉(zhuǎn)信息平臺建設協(xié)議
- 2025年物業(yè)管理師考試住宅小區(qū)物業(yè)服務行業(yè)分析試卷
- 軟件開發(fā)外包合同簽署備忘錄
- 2025年林可霉素項目規(guī)劃申請報告模板
- 2025年美容師(初級)職業(yè)技能鑒定實操試卷(美容店行業(yè)風險預警篇)
- 產(chǎn)品代理銷售協(xié)議細節(jié)說明與
- 2025年海外華人公務員錄用考試審計專業(yè)試卷
- 2025年消防安全知識培訓考試題庫:消防信息化建設網(wǎng)絡安全歷年真題
- 2025年電梯檢驗員資格考試試卷:電梯檢驗員電梯檢驗流程與規(guī)范試題
- 2025至2030年中國速凍豆角行業(yè)投資前景及策略咨詢報告
- (2025)交管12123駕駛證學法減分題庫含答案大全
- 學校食堂合同范本模板
- 2025年衛(wèi)生類事業(yè)單位(醫(yī)學基礎知識)公開招聘必刷題庫(300題)
- 淫羊藿甙項目可行性研究報告模板范文(立項備案項目申請)
- 下水改造合同協(xié)議
- 民爆培訓考試題及答案
- 三伏貼不良反應應急預案
- 簡陽市2024-2025學年五年級數(shù)學第二學期期末統(tǒng)考模擬試題含答案
- 華為績效考核華為績效管理制度
- 2025華陽新材料科技集團有限公司招聘(500人)筆試參考題庫附帶答案詳解
評論
0/150
提交評論