發(fā)布時間:2024-08-16 16:02:12 瀏覽量:229次
前言
開發(fā)游戲AI的目標之一是要找到一個簡單,可擴展的編輯邏輯的方案,從而加速游戲開發(fā)的迭代速度。在行為系統(tǒng)圖中,行為系統(tǒng)響應游戲中的各種信息,進行決策以挑選接下來將要執(zhí)行的行動并且監(jiān)控該行動的執(zhí)行。
知識模型是對游戲世界中各種信息的抽象。
在行為系統(tǒng)中,有限狀態(tài)機最為經典,有限狀態(tài)機模型的優(yōu)勢之一是簡單。但是有限狀態(tài)機需要用轉換連接狀態(tài),因此,狀態(tài)失去了模塊性。
什么是行為樹
一個例子
上圖中,3號Sequence節(jié)點有3個子節(jié)點,分別是:
4號Condition節(jié)點
5號Action節(jié)點
6號Wait節(jié)點
而3號節(jié)點的父節(jié)點是2號的Loop節(jié)點。
先補充下各節(jié)點類型的執(zhí)行邏輯:
序列節(jié)點:順序執(zhí)行所有子節(jié)點返回成功,如果某個子節(jié)點失敗返回失敗。
循環(huán)節(jié)點:循環(huán)執(zhí)行子節(jié)點到指定次數后返回成功,如果循環(huán)次數為-1,則無限循環(huán)。
條件節(jié)點:根據條件的比較結果,返回成功或失敗。
動作節(jié)點:根據動作結果返回成功,失敗,或運行。
等待節(jié)點:當指定的時間過去后返回成功。
執(zhí)行說明
如果4號條件節(jié)點的執(zhí)行結果是成功,其父節(jié)點3號節(jié)點則繼續(xù)執(zhí)行5號節(jié)點,如果5號動作節(jié)點返回成功,則執(zhí)行6號等待節(jié)點,如果6號節(jié)點返回成功,則3號節(jié)點全部執(zhí)行完畢且會返回成功,那么2號節(jié)點繼續(xù)下個迭代。
如果4號條件節(jié)點的執(zhí)行結果是失敗,其父節(jié)點3號節(jié)點則返回失敗不再繼續(xù)執(zhí)行子節(jié)點,并且2號節(jié)點繼續(xù)下個迭代。
進階
聰明的讀者可能會問,上面的例子中只講了成功或失敗的情況,但如果動作要持續(xù)一段時間呢?如果5號節(jié)點,Fire需要持續(xù)一段時間呢?
節(jié)點的執(zhí)行結果可以是“成功”,“失敗”,或“運行”。
對于持續(xù)運行一段時間的Fire動作,其執(zhí)行結果持續(xù)返回“運行”,結束的時候返回“成功”。
對于持續(xù)運行一段時間的Wait動作,其執(zhí)行結果持續(xù)返回“運行”,當等待時間到達的時候返回“成功”。
行為樹的內部“知道”該節(jié)點是在持續(xù)“運行”的,從而在后續(xù)的執(zhí)行過程中“直接”繼續(xù)執(zhí)行該節(jié)點,而不需要從頭開始執(zhí)行,直到該運行狀態(tài)的節(jié)點返回“成功”或“失敗”,從而繼續(xù)后續(xù)的節(jié)點。
另一個例子
如上圖,為了清晰說明運行狀態(tài),來看另一個例子。在這個例子中,Condition,Action1,Action3是3個函數。
0號節(jié)點是個Loop節(jié)點,循環(huán)3次。
1號節(jié)點是個Sequence節(jié)點
2號節(jié)點模擬一個條件,直接返回成功。
3號節(jié)點Action1是一個動作,直接返回成功。
4號節(jié)點Action3同樣是一個動作,返回3次運行,然后返回成功。
行為樹的基本概念:
執(zhí)行每個節(jié)點都會有一個結果(成功,失敗或運行)
子節(jié)點的執(zhí)行結果由其父節(jié)點控制和管理
返回運行結果的節(jié)點被視作處于運行狀態(tài),處于運行狀態(tài)的節(jié)點將被持續(xù)執(zhí)行一直到其返回結束(成功或失敗)。在其結束前,其父節(jié)點不會把控制轉移到后續(xù)節(jié)點。
其中理解運行狀態(tài)是理解行為樹的關鍵,也是使用好行為樹的關鍵。
其他
上文另一個例子中“demo_running”的例子在安裝包及源碼里都有提供。最好查看源碼,編譯運行,自行嘗試體會。
熱門資訊
探討游戲引擎的文章,介紹了10款游戲引擎及其代表作品,涵蓋了RAGE Engine、Naughty Dog Game Engine、The Dead Engine、Cry Engine、Avalanche Engine、Anvil Engine、IW Engine、Frostbite Engine、Creation引擎、Unreal Engine等引擎。借此分析引出了游戲設計領域和數字藝術教育的重要性,歡迎點擊咨詢報名。
2. 手機游戲如何開發(fā)(如何制作傳奇手游,都需要準備些什么?)
?如何制作傳奇手游,都需要準備些什么?提到傳奇手游相信大家都不陌生,他是許多80、90后的回憶;從起初的端游到現在的手游,說明時代在進步游戲在更新,更趨于方便化移動化。而如果我們想要制作一款傳奇手游的
3. B站視頻剪輯軟件「必剪」:免費、炫酷特效,小白必備工具
B站視頻剪輯軟件「必剪」,完全免費、一鍵制作炫酷特效,適合新手小白??靵碓囋?!
游戲中玩家將面臨武俠人生的掙扎抉擇,戰(zhàn)或降?殺或放?每個抉定都將觸發(fā)更多愛恨糾葛的精彩奇遇?!短烀嬗肪哂卸嗑€劇情多結局,不限主線發(fā)展,高自由...
5. Bigtime加密游戲經濟體系揭秘,不同玩家角色的經濟活動
Bigtime加密游戲經濟模型分析,探討游戲經濟特點,幫助玩家更全面了解這款GameFi產品。
6. 3D動漫建模全過程,不是一般人能學的會的,會的多不是人?
步驟01:面部,頸部,身體在一起這次我不準備設計圖片,我從雕刻進入。這一次,它將是一種純粹關注建模而非整體繪畫的形式。像往常一樣,我從Sphere創(chuàng)建它...
7. 3D動畫軟件你知道幾個?3ds Max、Blender、Maya、Houdini大比拼
當提到3D動畫軟件或動畫工具時,指的是數字內容創(chuàng)建工具。它是用于造型、建模以及繪制3D美術動畫的軟件程序。但是,在3D動畫軟件中還包含了其他類型的...
?三昧動漫對于著名ARPG游戲《巫師》系列,最近CD Projekt 的高層回應并不會推出《巫師4》。因為《巫師》系列在策劃的時候一直定位在“三部曲”的故事框架,所以在游戲的出品上不可能出現《巫師4》
想讓你的3D打印模型更堅固?不妨嘗試一下Cura參數設置和設計技巧,讓你輕松掌握!
10. Unity3D入門:手把手帶你開發(fā)一款坦克大戰(zhàn)的游戲
Unity工程創(chuàng)建完成后如圖所示: 接下來應該導入此項目所需的Unity Package文件,要用到的Unity package文件大家可以去Unity3D的官方網站下載(地址:ht...
同學您好!