2019-10-10 10:02 GameRes遊資網
在本系列的第一篇中,我探索了AI系統在遊戲中的運作方式,三大主要活動任務是如何生成的,以及開發人員如何才能讓伺服器承載所有的AI活動,合理分配資源。獲得Rare公司的邀請後,我有很多話題想討論。開發者就遊戲發行時的一些AI相關問題為我們做出了解答。首先,我們將探索在藏寶島上遊蕩的豬、蛇和骷髏:它們是如何運作的?骷髏AI行為背後有什麼樣的驚人秘密?除此之外,我們還會深入探究Rare利用虛幻4引擎創造出的獨特水上導航系統,以及了解一下阻止AI鯊魚遊到陸地上是一件多麼困難的事。
陸生動物的AI構建
讓我們先簡單查看下這些動物。就如系列第一篇所說的,《盜賊之海》的其中一種主要任務來自於靈魂秘社:你得去往一個或多個指定島嶼,殺掉高級別的骷髏,用他們的頭骨換取獎勵。這就要求遊戲在必要時將大量骷髏刷新在某個地點,但如果你這時已經取得了淘金者或商人聯盟的懸賞物,正在返程的途中,骷髏也會出現。
1.骷髏AI
那麼,這個系統是如何運作的?它依賴於一種叫做行為樹(behaviour trees)的常用AI範例,這是虛幻4引擎中自帶的AI工具。正如我在AI 101系列最新一集中說到的,行為樹的特點是可以擴展邏輯,形成多個分支,所以在特定的場景中,AI將做出一個或多個反映場景的決策。此外,他們可以對世界的變化做出快速反應,更新自己行為選擇以適應變化。我們在第一篇中說過,很多陸地活動角色,比如島上的骷髏、動物(我等會兒就展開)都是用虛幻4原本內置的AI工具鏈。但是骷髏有個特別的地方我想探究探究,自創辦《AI與遊戲》系列以來,我未曾見過如此獨特的設計。
當AI角色出現在遊戲中時,儘管你想要確保它們能夠使用某些與玩家角色相同的機制——尤其是類人AI角色——但當你構建AI時,通常的思維是角色會使用另一種運行方式的來執行這些行為,跟玩家的操作邏輯完全不同。你會有一個指示執行某個動作或行為的邏輯,在虛幻引擎中,你可以在藍圖中的行為樹編寫任務,邏輯通常會調用代碼中的現有函數——玩家會用這個函數來執行類似的指令。就拿《盜賊之海》舉例,你想要在受傷之後補血,這時你會打開物品欄,拿出一條香蕉,按下RT鍵或者滑鼠左鍵吃掉,這就觸發了玩家代碼庫中的Heal()函數。一般來說如果你想讓一個AI角色——比如骷髏——做一樣的事,你的邏輯或者是直接運行一樣的Heal()函數或者是運行一個為非玩家角色編寫的類似函數,並且你要確保吃香蕉動畫能夠讓玩家理解對方也在做同樣的事情。所以總結來說就是看起來是在做同樣的事情,但實際運行方式是完全不同的。