類似神秘海域、刺客信條那種,NPC能自由攀爬、跳躍、並且戰鬥的AI是如何實現的,有哪些相關參考資料?

動作遊戲AI


題主的標題讓我想起了一篇文章,是一個華人開發者Allen Chou在頑皮狗公司開發神秘海域4時候的一些雜記。裡面很大篇幅介紹了他參與的AI部分實現細節。

我的Uncharted 4開發雜記

可以管中窺豹(但願不是盲人摸象)式地體會下當今AAA大作的AI是怎麼實現的。


補充一下:

題主原意想問「在垂直和不連續的表面,如何實現尋路?例如,攀爬或者從一根柱子跳到另一根柱子。」

這種情況下,都是在每一個扶手位或者落腳點設置一個 reference node(其實就是空的 GameObject)。

當玩家開始跳躍時,算出從現在的 node 到下一個 node 的距離。根據距離長度,播放出適當的動畫。

==================================

你表面上看到的「攀爬、跳躍、戰鬥」其實都只是在播了個動畫,而我們只是把幾個動畫根據數值 blend 在了一起。

而什麼時候播什麼動畫,業界現在比較通用的就是用 Behavior Tree 控制。

上面這些,都是由團隊裡的 Gameplay Programmer 負責。只是業餘興趣好奇的話,可以看 YouTube 上這段視頻:https://www.youtube.com/watch?v=PNpxtl8KRegeg

如果是專業想學如何開發的話,參考 @Milo Yip 給的書單:遊戲程序員的學習之路 - 知乎專欄,Gameplay Programmer 主要對應的分支是 AI 和 Physic and Animation。


強答一波

最簡單的辦法是NPC屬性增加範圍參數,當玩家移動坐標和範圍參數重疊,觸發NPC尋跡,當然NPC尋跡路徑肯定是最優演算法:即追上你的最短距離路徑。

你需要跳躍的地圖,NPC播放動畫,你以為你真的是跳,或者攀爬?只不過是地圖上設置斷點觸發事件而已,至於峭壁上尋跡路基就是另一張地圖了。

3D戰鬥AI,你可以從設置NPC回合制行動方式,NPC攻擊都有效,其他回合行動都受傷害有效,也可以再細化一些,這些都是慣用的,戰鬥AI真正牛的是格鬥,會根據你輸入指令時間長短類型來判斷對於屬性和時間更短的指令。

一般動作類遊戲NPC不會做這種設計,否則一個小兵,你都崩潰了...

即時動作指令的基礎還是回合制,你可以參考一篇游研社的文章,名字大概是,FTG遊戲中你遇到的大神是AI,大概是這個題目。

戰鬥過程中還是觸發事件,舉個例子,敵方角色連招

就是你攻擊指令判斷無效,NPC判斷你下一次指令回合事件觸發間隔時間長短,判斷對策,這個就是所謂的AI,一般策劃會根據角色設定來降低AI設計難度,比如,迅捷型,或者動作緩慢攻擊強的角色。

我們項目用是這種低成本的回合制基礎的所謂AI,對方動作是根據玩家角色每次指令執行的時間間隔,其實玩家說的CD時間。

還有更高級的,還沒有琢磨透...


動作是分開做好的,然後由程序並在一起,包括攀爬之類的實際上一個攀爬有5到10.個動作用哪個取哪個,AI也是,模塊化的,動作是分開取,比如你要開雙人機關,那麼會給玩家狀態給一個判定,然後按設定好的動作去行動,所以人工智障也很常見,比較簡單的可以參考在RPG製作大師里的,製作一個簡單的巡邏邏輯,網上有教程,可以搜來看


GDC上一個關於ai設計的分類,內容是關於各個熱門遊戲AI設計的故事,或許能解答題主的疑問。


havok 套件


一切都是假象!


簡單來說,這些功能是用一個較複雜的狀態機實現的。


額。。它們和其它遊戲的區別不就只有攀爬跳躍嗎。。加上這個的難度我看不太出來。。


推薦閱讀:

實況足球的名字是怎麼起的?
世嘉公司會不會重回主機業?以及生產DC 2的可能?
如何評價機核在理想音樂節的「核聚變lite」?
為了《塞爾達曠野之息》買switch值嗎?

TAG:家用主機遊戲 | 遊戲開發 | 單機遊戲 |