《The Last Of Us》的同伴AI(四):其它AI的細節&總結

《The Last Of Us》的同伴AI(四):其它AI的細節&總結

來自專欄兔四的遊戲攻略書16 人贊了文章

第五章 其它同伴AI的細節

讓艾麗的動作更加連貫

我們充分打磨了艾麗在Traversal AP上的一些動作。Traversal AP這個概念在前面我有提到,就是那些允許玩家爬上爬下、翻窗戶、開門關門的行動。我跟動畫組的同事John一起,花了好幾周的時間去仔細調整了艾麗在使用Traversal AP過程中的動畫,使艾麗在這個過程中變得更加順滑。

比如說,以前當艾麗從一個箱子上跳下來時,都會有一個很短暫的停頓,然後才繼續下一個動作,而現在我們讓艾麗可以很連貫的完成從箱子跳下然後立刻接跑動的動作。

艾麗的對話邏輯

我們在遊戲里大概給艾麗設計了數千條不同的語句,不同的觸發點會觸發不同的對話。比如說你開槍把一個感染者殺掉了,艾麗可能會說「天吶!這太噁心了吧!」,比如說你在潛行的過程中已經很靠近敵人了,艾麗可能就會說「敵人就在附近」來提示你,又比如說如果艾麗成功殺死一個敵人,就有可能對喬爾說「我真是太厲害了!還不快謝謝我?」

這些對話實際上會使艾麗這個角色更加生動,並且會加固玩家對於艾麗這個角色的印象,當然你也可以理解成艾麗在刷存在感,同時有些語句的確會在戰鬥中對玩家有所幫助。

然後艾麗在遊戲過程中的語氣也是有所變化的,玩家一周目的平均時長如果是16小時左右的話,那麼其中就會有12小時是有艾麗陪伴著。並且艾麗在一開始是一個相對膽小的小女孩,但隨著遊戲進程發展,艾麗在後面會慢慢變得自信,跟喬爾的關係也會越來越好,玩家會明顯感覺艾麗在後期會更開心、更信任喬爾。這些微妙的變化就是通過對話內容和語氣來展示給玩家。

最後一點是艾麗在語言上的模仿,艾麗有時候會模仿喬爾說過的話。比如說你把一個燃燒瓶丟到敵人那兒把敵人炸開花來,喬爾就會說「holy shit!」,過幾秒之後艾麗可能也會跟著說一句「holy shit!」。在我看來,艾麗有時候其實是玩家在這個遊戲世界裡的化身、是玩家的另一個視角,艾麗所看到的世界也是玩家看到的一部分,使用這種對話邏輯可以加強這種體驗。這種體驗非常微妙,但的確有點用。

艾麗的呼叫邏輯

接下來要介紹的是艾麗的呼叫邏輯。總的來說就是艾麗會在危險來臨之前提醒喬爾,雖然玩家有很多時候都是能夠在敵人發現前躡手躡腳藏得很好,但總有一些危險很難注意到,呼叫邏輯可以使玩家的體驗變得更好。

有些敵人會正好處於玩家的視角盲點,會藏在一些位置相當不錯的掩體背後,或者從玩家身後慢慢接近。我們設定艾麗在大部分情況下都能發現這些危險,然後艾麗會用一些方式來告知喬爾。

具體方式就是艾麗身邊會有一個明顯的輪廓出現來提示玩家。你們肯定會知道《最後生還者》里的UI數量是相當之少,特別是在戰鬥中時,所以艾麗身上這個突然出現的UI就會起到很好的提示作用。這種做法實際上就是給玩家提供額外的戰鬥信息,讓玩家能夠更容易去得知敵人的位置,遊戲里的聆聽模式也是起到這個作用。當然了,我們會確保呼叫邏輯的準確性,確保當玩家發現艾麗呼叫後,能夠快速找到敵人並加入戰鬥,否則這個邏輯就失去了原先的預期體驗。

當呼叫邏輯生效之後,玩家還會有這樣的體驗:遊戲內這些信息都是百分百有效的,玩家不會從艾麗身上獲得一些假情報。

進而,喬爾漸漸就會感激艾麗所做的一切,因為艾麗的確是在很多方面幫助了喬爾,這同樣能夠加固兩人之間的關係。比方說當你在掩體後方觀察前面敵人時,艾麗忽然大喊說「你後面好像有什麼東西!」然後你轉過頭來,發現一個跑者(感染者的一種,特點是跑得很快)正朝你衝過來,接著你就趕緊起來抵擋住了攻擊。多虧了艾麗,否則自己可能就會被偷襲了。這的確是我們想要的體驗。

艾麗會與環境互動

除此之外我們還讓艾麗去跟環境互動,這部分跟喬爾沒啥關係,但能夠在一些細節上使艾麗看起來更像真人。比如她平時會整理自己的頭髮,如果她撿到一把刀的話就會偶爾擦擦刀刃,在一些地方停留時艾麗可能會系一下鞋帶之類。我們有一次還讓一個同事去錄了一段口哨聲,然後讓艾麗也能在遊戲中吹口哨。

艾麗的搜尋AI

當玩家控制喬爾要在一個相對較大的區域內搜索時,比如找出口、找梯子,諸如此類,艾麗不會待在原地想靜靜,而是會有一些行為來幫助玩家去搜索。

類似下面這張圖,我們在場景內都會設定一些坐標,這些坐標上可能有能觸發動畫的物件,可能有可供玩家收集的道具,也可能是通過關卡的出口等等,艾麗在某些時刻就會跑到這些坐標前做搜尋狀,有時還會呼喚玩家過來看。我們的關卡策劃們很喜歡這個設定,我們做出來之後他們就馬不停蹄地把所有關卡都布上了這些坐標點。

艾麗的視線

還有一個小細節,就是艾麗的視線。很多遊戲里都沒有設計類似的邏輯,但它其實能提升不少體驗。大致上來說就是當喬爾在做某些事情、或者環境發生一些變化時,艾麗會扭頭過來看一眼,很簡單的一個邏輯。比如說艾麗正在看著某個方向,然後喬爾在另一邊打開了一個鐵櫃準備搜刮東西,艾麗就會回頭看一眼喬爾,然後再把頭轉回去剛剛看的方向。又比如說喬爾跑著步在艾麗身邊擦肩而過,艾麗也會把頭轉過來看下喬爾。

多同伴邏輯

最後一點是多個同伴同時存在時的邏輯,比如在《神秘海域》里也會有山姆和亨利兩個人同時跟隨主角的情況,《最後生還者》里也會有類似的設定。多人跟隨的邏輯其實比較簡單,我們會先讓一個角色A去跟隨玩家,然後讓角色B去跟隨角色A,以此類推。偶爾如果角色之間互相擋住了的話,比如角色B擋在了角色A要往玩家這邊移動的方向,並且沒有地方可以繞過來時,我們會暫時性地關掉角色B的阻擋,讓角色A穿過角色B。這個過程會很快,玩家一般不太能察覺到。

第六章 總結

最後我們來總結一下。

艾麗的同伴AI我們遵循幾個原則。我們會把艾麗看作是一個真正具有生命力的角色,我把艾麗幾乎是看作是我第二個女兒,我們團隊所做的一切都是基於艾麗是世界裡的一個真實角色這一點而定的,在製作過程中我會盡量假裝自己就是一個十四歲的女孩,從而來考慮一個這樣年紀的女孩應該會如何思考和行動,雖然我永遠不能回到十四歲。同時,我們盡量不會讓艾麗給玩家帶來挫折或者困擾,而且艾麗應該是有用的,對玩家有幫助的

然後我們在AI的設計過程中有幾個重要的點,其中最重要的是讓艾麗盡量保持在喬爾身邊。就算我們來不及做其它的AI,只要讓同伴盡量保持在玩家周圍活動,玩家去哪他們就會跟著去哪,這種同伴的體驗其實已經就足夠了。

第二點是我們調整了很多很多AI的細節,就是上文我們講到各種各樣的AI。我們很難去斷定這些細節到底多有用,很難去衡量這個設計到底提升了玩家多少體驗,但整個頑皮狗都會這些細節非常非常看重,細節就是搭建起我們遊戲的基石。

第三點是長時間間隔的行為。比如我們之前提到戰鬥支援邏輯,我們後來的設定是大約每3小時才會觸發一次這個邏輯,而我們遊戲一周目的平均遊戲時長僅為16小時,所以觸發次數很少很少。但是,如果艾麗在戰鬥中真的這樣做了、並且因此幫助到玩家的話,玩家就會對這一幕印象很深,並且還會跟身邊的人說「哇嗷!這個小女孩剛剛救了我!」如果這種行為出現得太頻繁,反而就達不到我們想要的效果。

以及第四點,永遠防止艾麗去打破玩家的潛行狀態。我們製作這款遊戲當然是希望儘可能貼近真實,但我們還是會把玩家的遊戲體驗放在第一位。因為同伴AI的失誤而導致玩家預期的遊戲行為被打破,這並不是我們想要的體驗。這可能是我們團隊在這款遊戲的設計上做過最艱難的決定之一了。

(演講的正文到這裡就結束了,後面是Max跟觀眾聊天和Q&A的環節,這邊就不繼續翻譯了,有興趣的讀者可以到GDC的官網上看原演講的視頻。)

感謝大佬的分享!


推薦閱讀:

遊戲透鏡第35期:《光明大陸》
策略論---策略遊戲的設計方法論RTS篇(四)
遊戲透鏡第30期:《神仙道2》
遊戲透鏡第15期:《誅仙》
揭露「東館方案」里的那些事(四)

TAG:遊戲 | 遊戲AI | 遊戲設計 |