當前位置:
首頁 > 知識 > 萬字長文:關於遊戲尋徑設計的思路解構分析

萬字長文:關於遊戲尋徑設計的思路解構分析

尋徑方法的現狀


當前所有電子遊戲AI模塊都是使用數年前的模型製作而成的。相對於當今電子遊戲其他軟體的飛速發展來說,這其中有些模塊已經算是歷史悠久了。


例如,我甚至沒有找到任何詳細說明人們何時開始首次執行Navigation Mesh(或Navmesh),我只能說這一模式至少從2004年時就開始使用了。它與Bavigation Grid這一使用最普 遍實際上也是最先進的方法一樣含有為電子遊戲製作路徑的圖表。

儘管如此,Waypoint Natigation仍然、運用於大量簡單的遊戲,甚至年代比Navmesh還要久遠。如果我們比較AI模塊與圖像模塊(這裡是指渲染遊戲的圖像模型)的進步,就會發 現當人們首次使用路徑點導航時,圖像已處於CGA技術的水平。這些年來圖像模塊方面的進步甚為驚人。


你可能會說計算機圖像的進步很大程度上得益於硬體的進化。但這裡仍然存在一個問題:在過去10年中,如果我們不提OCC模型(與智能代理相關的心理方法)以及其他基於代理的 方法,實際上仍然未被電子遊戲所用,我們也無從見識到可以稱這真正新穎或者強大、可共享的進步。


原因?大部分是因為,儘管認知科學興起,對於內行人而言,關於人工智慧話題的方法在過去數十年幾乎從未發生變化。未來電子遊戲的尋徑方法將是什麼模樣?它有沒有可能是 在我們過去數十年的模型上製作模塊?


我個人認為,未來電子遊戲將與當代電子遊戲截然不同。對於開發者來說,這裡的問題並不在於這些遊戲將呈現什麼面貌,而是如何建設AI來支持新功能。我有一個關於「智能」 話題的不同方法。我這一方法始於人類並非從天降落的物種,完全不同於大自然其他物種這個意識開始。這促使我去了解進化心理學,我相似它有助於AI開發首個真正的虛擬人類 。

萬字長文:關於遊戲尋徑設計的思路解構分析



AI in Blood Bowl(from bloodbowlgame)


問題:什麼是智能?


對電子遊戲來說,什麼是智能?智能不過是一個用於提升人類管理世界的能力的工具。它是地球自然選擇的一個最強大的工具,但仍然只是同象牙,或者我們與其他靈長動物共享的對生拇指一樣的工具。進化心理學將稱為進化適應。這方面有許多研究和發現,神經科學和心理學領域已經指出情感會影響人類(動物)智能,如果沒有它單純的邏輯就是無用之物。

這種對於智能的思考極大改變了你在電子遊戲,以及任何其他人類或動作模擬物中所發現問題的解決方法。例如,我對於尋徑問題的解決方法就是考慮人類(動物)擁有自己的記 憶地圖這個現實。但這種記憶的結果通常不會與實際的地圖對應起來。


即便是創建圖表的導航方法也是截然不同的。在我看來,這應該考慮到我們如何向一個實體目標前進。這個方法帶有相對於當前所採用方法的數個新功能和表現性能提升。


首個話題——-創新遊戲導航


請先想想《I am alive》、《Spiderman》、《古墓麗影》、《波斯王子》、《刺客信條》或其他需要玩家角色攀爬、跳躍以及做出其他不尋常動作的遊戲。在這類題材幾乎所有的 遊戲中,都有一些由NPC所做的不自然行為。最明顯的一個證據就是當NPC想抓住/殺死玩家時,「決定」不攀爬追隨玩家。他們只想讓玩家完成攀爬動作以便攻擊他,或者在攀爬過程中從可行走的區域將其擊斃。


這並不是一個符合邏輯和生物學行為,因為除非所有NPC都像了解自己的鞋子一樣了解周圍的建築,他們不能確定玩家能夠從自己手上逃脫。為了重製一個正確的人類行為,NPC應 該使用類似鉗子的策略:有些NPC追隨攀爬的小偷/敵人/玩家,而有些NPC則試圖跑去阻斷玩家的出路。但要如何實現這種操作呢,如果尋徑導航系統無法將牆體視為「可用區域呢?電子遊戲程序員很少賦予NPC攀爬和追隨爬行的玩家這種能力。這是因為要實現這一操作,他們必須定製尋徑模塊,令其更複雜,而這一模塊通常不可用於其他只需要玩家行走 和奔跑的電子遊戲。

我所謂的「生物尋徑」(BPF)這個新方法可以從根本上解決這個問題。遊戲中只能在兩個微場景相接的地方含有焦點(自然生成)。即使前進的路發生變化(因為它是一堵牆或者 其他「可攀爬」的表面時)也要有一個焦點。每個來自某個節點的線段都有相應權重(與一個A*方法對話),而這個權重可以根據每個「NPC類型」穿越這條路(遊戲邦註:例如通 過攀爬、游泳、行走等)的能力來計算。這個解決方法包含一個更普遍的NPC管理方式,它要求對NPC進行「物種」分類。


好消息在於,使用這一方法,你可以為每種NPC選擇不同的最佳路徑,而每個NPC又能夠根據自己的能力在平面上行動。相對於當前方法,它使用的節點數量較少,這就在路徑設計 上有了更大的進步。除非遊戲使用大量不同類型的NPC(我還沒有見過這種遊戲),否則其線下的路徑設計所需投入時間應該不會超過當前的方法,但會給予我們更多功能和更廣泛的解決方案。


沒錯,這遠比一個純粹的路徑那般系統更複雜。儘管如此,現在的電子遊戲已經遠比《太空入侵者》或《吃豆人》更先進了,我們可以確定地說所有RPG、MMORPG、射擊和戰略題材 的主流遊戲本身就非常複雜了,所以也應該毫不猶豫地為NPC採用新功能。


節省運行時間

在過去數年中,越來越多電子遊戲包括大型關卡。很顯然關卡越大,就越難以保持NPC計算其到達目標的可接受表現,以並且NPC數量也更多了。


我知道有些電子遊戲開發者已經意識到這個問題是開發過程中最消耗時間的環節之一。實際上,我們對於涉及人類模擬的問題的思考還是太邏輯性了。如果我們用人類來取代NPC, 會從人類角度去想尋徑問題,從心理學角度來考慮。


當人類嘗試思考一個更大的區域,以及如何到達目標地時,他通常會在腦中形成一些最重要的圖像,場景的部分環節(例如城市的模塊),然後將每個區域想像成一個黑匣子。這 種方法甚至對我們的尋徑問題來說都很有幫助,因為它可避免計算最大程度的細節。Lynch已經在1960年做過關於更好地分析路徑問題的人類心理研究。


有些遊戲已經使用了二維尋徑方法。事實上,作為直接源於人類行為心理研究的工具之一,它適用於整個生物尋徑方法。


這個方法允許你僅執行自己所需的計算,並以此來節省時間。實際上,你確定NPC會穿過所有路徑呢?NPC在半路上被殺死,或者說找到一個新路徑,做出一些不尋常之舉的機率有 多大?在這些情況下,大型關卡中的整體路徑計算都是無效的。應該廣泛使用將大型計算分解成數個更小的由NPC執行的計算,因為它是有利於強化表現性能的好方法。這可以讓 NPC更具「人性化」而無需執行大量的整體運行表現。


BPF使用了尋徑的兩個層面:District和Zone尋徑方法。前者是我在之前章節解釋過的內容,後者就用於解決在更短的路徑穿行,以便到達更近的目標,或者通過由District尋徑方 法所發現的「正確」(未必是最佳!)大路徑退出區域。


即便在這個層面上,這個方法也與尋常方法截然不同。它盡量最小化人們需要考慮的微路徑數量。人類實際上會通過查看目標(或者它的方向),並檢查最近的首個焦點上的路徑 來決定要使用哪條路徑,以便向較近的目標前進。


創造圖表


NavGrid或者NavMesh模型已經夠用和夠好了,在某些情況下無需任何定製選項。如果你想一次創造一款電子遊戲,即那種與他人相似的電子遊戲,那麼它們就很適合你。如果你的 遊戲中沒有多少NPC,你也不介意他們有時候(或者經常)做出一些人們在行走時根本不會出現的奇怪舉動,那麼你就沒有必要尋找更好的解決方案了。


但是,未來的電子遊戲不會使用含有不具有人類行為的NPC。更新的模型應該提供無需定製的新功能,從而實現更好的表現效果。


當前的Navgrid和Navmesh模型具有優勢,但劣勢則更明顯。這兩者在某些情況下的離線計算時間都過長了。如果你的遊戲中含有多名一起活動的NPC那就不可以使用這兩種模型了。


除此之外,針對更宏大並且需要建設高度的3D關卡,我也不建議使用Navgrid。在這種情況下使用Navgrid會增加關聯性,導致路徑計算更為複雜,從而產生明顯的運行問題。


現實中的路徑點:焦點


現實中的路徑點是否存在相似之物呢?要知道路徑點,或者任何形成導航地圖的多邊形都是NPC在關卡內移動的必需要素。也許你從來沒有想過人類和動物在現實中移動都有相似的 參照。真正的人類,會根據自己的需求在一條路上採用數量有點的「戰略性」位置。


請注意真正的路徑。例如,一棟建築內的路徑。你知道沒有任何人能夠真達自己的目標,除非他身處一個戶外區域。他需要更改方向。你是否認為我們能夠找到重製真正的人類必 須更改方向的位置這一規則呢?


微場景


如果你看一眼某個場景,尤其是人造的場景,你就會看到走廊窄於該場景相鄰環節(見圖1)。兩個牆體形成一個走廊從而創造了一個微場景,門柱是一個狹小的微場景,靠近另一 個柱子或牆體的柱子也形成了一個微場景。


我們有不同的Mental Map創造方法來區分微場景。其中一個更簡單(也更快)的方法可能就是場景中確定的一系列關鍵點所產生的線段。第一件事就是檢查相關點是否處於一個對 象內部 。此時只需要考慮位於外部的相關點。


這個解決方案會模擬我們首次踏上一條新路徑,記錄位置等一系列行為。在現實中,我們的大腦並不會記錄下我們所經過的所有位置。另一方面,我所提議方法還會模擬我們大腦 計算混亂局面之間的空間這種原始行為(擁有眼睛的所有動物也有這個特點)。


我們應該能夠長度、寬度和高度上製作這個行為。但儘管如此,它還是要取決於關卡複雜度以及開發者。

萬字長文:關於遊戲尋徑設計的思路解構分析



圖1(from gamedev.net)


焦點


焦點對於人類來說有另一個重要性。因為我們的大腦不能像視頻一樣持續記錄一條路徑,它只能記錄一些重要的地點。Kevin Lynch曾在其著作中提到心理地圖(對於某城市的心理 地圖)的研究:「我們對於一座城市的認知通常不是持續性的,而是局部性,分裂式的,會混雜其他考慮因素。幾乎會運用到每種感官,而該圖像卻是與所有感官相反的。」


他在對於城市心理表徵的研究中提到,心理地圖應該包含以下類型的數據:


*路徑:街道,人行道,軌道以及其他人們會行走的通道。


*邊緣,例如牆體、建築和海岸線等邊界物。


*地區,由一些標誌或特點所區分出的較大城市部分。


*節點、焦點和交叉點。


*地標,可以作為外部參照點的可辨識性物體。


一個極為可靠的模擬物應該考慮到Lynch所提到的所有數據。當然,這樣就會創造出無法在任何遊戲中執行的龐大演算法。一個好方法就是針對模擬人類和動物採用最重要的標識。


我們應該將焦點布置在微場景中的哪個地方?我們應該將其布置於微場景的每個入口。這些位置是一條真正路徑的節點,也將成為我們心理地圖的節點。每個微場景必須擁有一兩 個入口。準確的位置應該是介於創造了微場景的物體之間的中心點。


我們有不同焦點定義的關卡。例如,像圖1左半部分,就僅針對每個內部物體的單個維度定義焦點。或者像圖1右半部分那樣,同時針對寬度和長度定義焦點。而開發了高度的關卡 還需要通過查看高度來找到焦點。


前提


根據我在執行BPF方面的一點經驗,這裡必須定在一些前提條件,即你要很好地執行這個模型所需用到的規則。鑒於文章篇幅所限,我無法在些描述我所搜集到的所有前提條件。以 下僅簡述我認為比較重要的前提條件:


1.入口


我們在每個微場景中可以有1至2個入口。


2.可視性


3.兩者合一


如果微場景很小,涉及一個中間NPC(例如介於兩根柱子之間)的垂直或縱向維度,而不是創造兩個焦點時,演算法就只會創造一個焦點。最終兩個被刪除的焦點中間區域就會產生一 個焦點。例如,看看圖1中的兩個門柱,你就可以看到這種前提的結果。


4.靜態物體的半徑距離


要考慮關卡中靜態物體和表面局限性之間由用戶定義的半徑距離。這有助於避免產生與靜態物體碰撞的焦點之間產生的線段。


5.追隨最後一個可視的焦點

萬字長文:關於遊戲尋徑設計的思路解構分析



看看上圖。位於建築左部的綠色圓圈就是NPC出現的位置,而橙色圓圈則是它的目標。更粗的綠線是NPC所會使用的路徑,而較細的紫色線段則是被選擇的路徑。紫色線段標識著可行的變化,只有能夠跳躍的NPC能夠看到它們。


正如你所見,NPC會考慮的第二個焦點並非所選擇路徑上的第二個,而是第三個焦點。NPC會使用的第三個焦點則是其所選擇路徑上的第五個。這是因為之前所提到的規則。在這個規則中,運行時間會要求NPC不可因為跟隨所選擇路徑上的焦點而浪費時間。NPC會使用所選擇路徑,而NPC在當前焦點只能看到「最遠但仍具可視性」的焦點。


想像一下在身處於NPC相同的情境中真正人類的行為。拋棄所有的路徑和節點,想像他在這種情況下是何表現。如果他決定跟隨我們的NPC會用到的路徑,他當然就會直走,直到碰到建築中的障礙為止。之後他會開始轉向並再次直走,直到建築又出現障礙,或者到達他的目標為止。


創新遊戲的尋徑模式應該是怎樣的?


回到關於這個話題的普遍討論,我們可以說創新遊戲在不久的將來將擁有更多功能和更好的性能。此外,我們還應該在無需向(並不提供這些功能的)AI模型疊加過多複雜性的前 提下實現這些表現性能。


詳細來說,創新型的尋徑模型應該提供:


*更快速的單個圖表離線計算*;


*賦予NPC使用多類路徑的能力,例如允許NPC在路徑上行走和奔跑,甚至是跳躍、攀爬、游泳等;


*根據每種NPC種類的生理特徵,賦予不同NPC選擇不同路徑的能力;


*更快速的「可信最佳路徑」運行時間計算」**;


*在不添加複雜性的前提下解決路徑上的動態物體問題;


*找到同種NPC的多個目標(例如,掩體和笨重的物體)***;


*當牆體和大型物體更改其位置時動態調整圖表;


*總是考慮到每個NPC的心理地圖可能與實際地圖並不相同****。


(*)相對於運行時間計算來說,這並非一個強制要求。


(**) 正如心理學所示,我們無法:1)像手上拿著地圖那樣清楚地記住地圖,尤其是在該區域已有一段時間並不「呈現」在NPC面前的時候;2)要避免那種情緒以及快速作出混亂推 理的需求,之後確定的路徑通常不會是邏輯所提議的選擇。


(***) 我想「明智」的遊戲會採用自然的NPC人類,以便更好的使用下一代尋徑解決方案和創新型決策制定系統的新功能。


(****) 心理學顯示人類還可能忘記部分已經用過的路徑,或者忘記焦點的準確序列。


可信的路徑選擇


區域最佳路徑選擇


BPF與典型的「僅靠邏輯」式的方式截然不同,它不使用當前用於尋找更短路徑的演算法時會更管用。這裡就沒有必要追究細節方面的問題了。但是也有一些因素可以讓過濾器在無需 藉助其他演算法的情況下選擇單個路徑。例如,情感權重,心理地圖錯誤,NPC種類的特點,或者關卡的數量,通常有助於挑選出唯一的理想路徑。


例如,一個廣闊的關卡可能使用10個區域。通常情況下,每個區域都有4個其他與之相連接的區域(除非關卡還要開發高度)。除非該關卡是一系列區域,或者關卡極其龐大,否則一般目標與NPC之間的距離不會超過2個區域。通常情況下,我們沒有必要採用任何關於區域關卡的最佳路徑演算法。


這裡有一個可重製人類行為,用於限制路徑數量的簡單而有效的解決方案。其目標是避開所有首個區域距離NPC及其目標之間的直線過遠的路徑(假設NPC知道地圖)。之後你還要移除至少包括一個用於「避免」NPC類型的區域的路徑。


例如,在以下情況中,決策制定系統或者在設計過程中的開發者應該將該區域標註為「避開」類型:


*如果該區域充斥大量可能殺死NPV的危險怪物。


*如果該區域充滿不可行,或者不適用於該NPC類型的微場景。


*如果該路徑包括更黑暗的區域,以及NPC的個人特點將其視為沒有膽量進入的區域。


另一個過濾器就是每個路徑的「長度感」。這個過濾器應該難以執行,但卻真的很管用。它是我們大腦中最常用的過濾器之一。人類和最高智能的動物會考慮一條路徑的長度感。 生物體的長度感是由多個因素決定的。其中之一就是過去的旅程所發生的情緒(那種感覺越好,其想像的長度就越短)。


另一個就是路徑多為直線或曲折的這一現實。如果你想使用這個符合某些心理研究的過濾器,你甚至可以為任何焦點創造一兩個標註。你還可以創造其他過濾器,但我它是相對於 路徑類型來說最重要的一者。這個標註的職責就是存儲始於該焦點的微場景的類型。


從本文的圖片中可以看到,一個焦點可能僅靠近一個微場景(圖1),或者介於兩個微場景中間(圖4)。未被選中的標註意味著該迷你場景是直線的,而有被選中的標註則意味著 它是曲折的。該路徑上被選中的標註數量越多,NPC使用該路徑的可能性就越小。

萬字長文:關於遊戲尋徑設計的思路解構分析



圖4(from gamedev.net)


(圖4:焦點及其兩個標註指示兩個相鄰微場景的類型)


更進一步的過濾器就是NPC對於這些區域的認知。這是另一個精心設計的人類模擬方法所要考慮的重要功能。BPF可以隨機創造區域地圖的情況,製作每個NPC或物種。如果是長壽的 NPC,你就應該記錄每個NPC所行走過的地點。


通常情況下會產生1至2條路徑,最多只有3條。如果有多條路徑時應該使用哪個路徑呢?最應該選擇的是包含NPC走向目標時穿過最多次區域的路徑。但這個解決方案會被每條路徑 所包括的區域數量所抵消。


過濾器應考慮以下方面:


*只能選擇首個區域離NPC及其目標之間的直線不會過遠的區域路徑。


*只能選擇不含「避開」區域的路徑。


*考慮路徑的長度感。


*只能選擇含有已知區域的路徑。


如果這一篩選結果產生了一條以上的區域路徑:


*那就選擇擁有區域數量較少/或者NPC及其目標之間的直線被穿行過更多次的區域的路徑。


內部可信的路徑選擇


在確定要跟隨哪條區域路徑後,NPC就得開始解決在當前區域內部的尋徑問題。之後,在進入下一個區域時,再重複一遍這種做法。將關卡劃分為多個區域(方塊)通常會產生多個 可行(或者更管用)的表面連接兩個區域的情況。這意味著NPC在特定區域路徑上進入下一個區域可能有多個解決方法。


將路徑劃分為兩個關卡可以加快可信路徑選擇的運行時間,並迫使你將尋徑劃分為多個步驟。儘管如此,要正確使用這一方法,你還是需要應對一些新問題。


如果兩個區域之間有走廊,那就有兩個關於路徑設計時間闡述方面的問題:「死亡路徑」以及區域走廊的連接性。事實上,如果某個連接了兩個相鄰區域的可行路徑深入了無法穿 過下一站的區域,那麼NPC之前就該知道這個問題了。


為了修復這個問題,我們在設計時間應該為每個區域選擇從一個相鄰區域進入另一個區域的路徑。這可能會是一項很耗時間的計算,尤其是相鄰區域之間的走廊數量極多的時候。 此時可以人為更改區域,以免兩個區域之間存在太多聯繫。


無論如何,其演算法應該遵從以下原則:


A-選擇區域


A1-選擇某一邊至少有一個通向相鄰區域的區域。


A11-針對每個走廊檢查它是否存在可通向另一個相鄰區域的路徑。如果有,將該走廊標註為可同另一區域兼容的走廊。


這裡沒有必要計算每條路徑的長度了。


BPF的運行時間環節將使用與通向下個區域相關的可行走廊的數據,以便檢查該選擇哪條走廊走向下個區域。


如果這裡存在1條以上通下向個區域的走廊,就要由NPC來決定要走哪條路。你可以使用區域關卡尋徑所採用的同種過濾器來選擇。我建議考慮長度感以及相對於走向目標的直線走 廊距離來選擇。


要開始內部路徑運行時間選擇,你必須知道內部路徑以及通向下個區域的走廊的早期環節。前者是NPC進入區域的所在地,或者NPC所在位置。當你兩者兼具時,你應該選擇該路徑 走向下條路徑尋找目標。即使如此,你也要使用之前所提到的過濾器。但你可以決定要使用哪一種還是全部使用。


注意,如果你的項目是策略型戰爭遊戲那就不可以用這種NPC思維方式。策略型戰爭遊戲是每個NPC已經清楚路徑的少數遊戲類型。在這種情況下,比較好的解決方法仍然是僅靠邏 輯的方法。你應該添加的唯一過濾器就是目前NPC的情感覺醒水平(遊戲邦註:相當於音樂的音量)。但這並非直接由PF系統所管理的問題。


儘管如此,你還是很容易注意到生物尋徑方法遠比目前使用的尋徑方法速度更快。我之所以如此確定是因為BPF的執行方式更輕便。


總結


生物尋徑方法是一種不但對人類、殭屍、怪物和外星模擬物,甚至是智能動物都很有創新性的解決方法。


儘管如此,我們還是不可低估尋徑問題之下的情感因素。即使是決策的能力,也不是一種僅靠邏輯就可制定的功能。Plutchik稱情感是一切有機體在追求個體生存時所需要的基本 適應性。他認為6億年前的寒武紀中發生的自然選擇很大程度上與情感有關。這8種適應性是結合、拒絕、毀滅、保護、繁殖、機體重組、定向和探索。


這意味著,多種動物都具有心理導航的最重要過濾器。


所以,人類解決尋徑問題的方式與動物有何不同?其區別相當之小,主要與邏輯的使用相關。這也並不完全正確。但其中深刻原因我無法在此詳述,也難以用代碼重現。


多數動物無法通過訓練更好地駕馭自己的情感,也無法考慮1個以上的過濾器選擇。如果你想區分人與動物在尋徑選擇方面的行為(或者不同智能的動物行為),只要使用針對最簡 單動物的一個過濾器即可。之後,當你遇到人類(或者更高智能動物)時再運用其他過濾器。


你應該時時使用的唯一過濾器就是關於首個焦點指向目標方向的路徑選擇。


關於本文最後一個考慮就是:兩個(或多個)層次的尋徑方法要求你採用允許NPC具有更多目標層次的決策制定系統。這是你選擇BPF時需要牢記在心的另一個重要問題。


避開動態物體


今天,有些遊戲開發者發現某物體與NPC當前路徑相關叉時,就會迫使自己的AI執行方法重新計算最佳路徑。所幸並非所有開發者都會採用這一做法。這一操作行為的結果,從NPC 的可信度和表現性能來看,無疑是消極的。


尋徑過程中的動態物體是一個陌生的問題,但在我看來根本就不是個問題。我們應該首先將這個問題劃分成兩種情況:


1.一個物體正向NPC當前路徑移動。


2.一個物體在移動並且被置於NPC的當前路徑。


應該採用不同方法對應這兩種情況。事實上,如果某物體是移動的,我們就得擔心NPC與該物體發生碰撞的可能性。儘管一個可能發生的碰撞永遠不能導致我們更改路徑,除非同個 地點有大量移動物體。如果這種情況發生了,你應該檢查自己的遊戲和模擬設置。事實上,如果某個地點含有大量移動物體,就應該在圖表上標出它擁有更高的權重。


當某物體(或者另一NPC)向NPC目前正在使用的路徑移動時,唯一的解決方法就是避開它。但這不可改變已經決定好的路徑設置。而針對某物體正在移動過程中被置於NPC當前路徑這種情況下,除非該物體大到足夠阻擋整個走廊,否則你就要用物體躲避演算法來解決問題了。


BPF的合理物體躲避演算法應該是怎樣的?這裡沒有什麼可考慮的參考或者防範措施。你只能在避開物體時使用該演算法。當NPC避開物體時,該演算法就必須中止了。之後尋徑系統將會 再次激活,該NPC會繼續走向其下個焦點。


如果物體過於寬大擋住了去路,無法掉頭了又該如何?我們是否需要另尋出路?我完全贊同避開這個解決方法。人類在遇到真正的問題時,並不會受邏輯所主宰。儘管這很難理解 ,但還是得承認情緒會操縱我們的行動。只有篩除了帶有情緒的事件後,我們才可能思考和使用邏輯。


如果是人類,開始走上一條路徑時,如果發現有問題就會試著想像(而非計算)這裡還存在一條有助於扭轉局面的分支路線,以便自己繼續走完同條路徑。在人類走完這條路的時 間有限的情況下,考慮改變路徑實現在太複雜了。只有發生危險才能改變這個方法,但它卻與尋徑系統沒有直接關係。


所以,即便是在最糟糕的情況下,也沒有必要開始從當前位置到目標的尋徑計算。合理的人類模擬的正確解決方法是找到從當前位置到超越該物體的首個焦點的「最簡單」次級路 徑,或者使用避開物體演算法。


在人類的尋徑問題解決方法中永遠不存在計算,只有估算。估算會考慮到轉折次數和焦點數量:在我們看來路徑上不存在(像視頻一樣)的持續記錄,只會有關於焦點的一些片斷 。因此,如果人類看到一張地圖,他會更好地估計每條路徑的長度。


任何焦點都會接近於一個微場景。這對我們有幫助,因為它讓我們知道一個物體不可能佔據一個以上的微場景(除非是一個巨大的物體)!


平順移動


尤其是在複雜或開闊路徑中,我認為網格和網眼導航並不會因為地圖上的節點數而給予NPC足夠的可信度。一條路徑上實際上有4個數量等級的節點:


1.節點太少,或者置於無意義的位置上:NPC不可能像人類一樣行走,因此它會產生不可預測的結果。


2.「焦點」上布置少量節點:NPC會像人類一樣作出反應(目前僅有生物尋徑法能夠做到)。


3.許多節點:NPC行業與人類大相庭徑。沒有良好的(有時候浪費時間)平順演算法,NPC會產生類似於醉漢的行為(當前的導航解決方案就可能出現這種問題)。


4.太多節點(數十倍乃至數百倍於焦點數量):NPC行為會同人類有所相似。但離線和運行時間計算非常棘手(NavGrid方法會產生這個問題)。


請看以下例子。

萬字長文:關於遊戲尋徑設計的思路解構分析



圖5(from gamedev.net)


你可以由此看到由Navigation Grid做成的凸面多邊形數量,下圖則是由Mental Navigation所做的相同地圖,Navigation使用了BPF方法。你可以看到Navigation Map所能創造的節 點數量和相對線段比當前導航方法所能創造的更多。

萬字長文:關於遊戲尋徑設計的思路解構分析



圖6(from gamedev.net)


當前導航方法的另一個問題在於它們幾乎任何線段都要使用到平順演算法。對於可以開發高數量節點的方法,這只會惡化其表現效果。


Mental Navigation焦點之間的任何走廊也需要平順演算法。儘管如此,相比當前尋徑方法的整體執行時間而言,它的成本已經最小化了,因為其焦點數量較少。


這裡有必要再次提起BPF的另一個前提條件:如果非相鄰微場景的兩個節點之間存在一個靜態物體或深谷,NPC將會使用躲避物體演算法在這些焦點之間移動。


這個規則甚至可以被另一個方法所取代,即移動一個甚至兩個焦點的方法而不是使用避開物體演算法來克服這個問題。


心理地圖


心理地圖是一個考慮到人類(和動物)如何在大腦中建立導航地圖的方法。在之前的文章中我已經提到了這個模塊最重要的部分。儘管如此,我們還是要重申一下你在執行BPF之前應該考慮的一些因素。


正如我一再強調,人類智能並不只有邏輯。決定智能的因素還包含其他比邏輯更重要的因素。正如一些生物和神經學發現的證據所示,智能並非人類的專利。


所有的靈長目動物都有高智能。例如黑猩猩可能會使用250個文字的語言。而海豚和狗等其他動物則有中度智能。但在所有這些物種之中,它們的智能基礎幾乎都是相同的。但人類開發出了大量動物無法擁有的「心理適應性」。


我想說的是邏輯僅是生物智能的尖端,但它並非一種獨特的元素。情感和其他數種因素是智能的最基本構成元素,如果沒有這些因素我們無法理解周圍的世界。


這種推理的結果是什麼?兩個事實:A)人類的某種或多種情緒過高或過低時,就會產生非邏輯的行為;B)動物在尋徑方法上,當遇到路徑選擇或避開一個物體時幾乎也會採用相同的做法。


目前我們還沒有能夠代表整個世界智能的完整模型。我是指在整個智能世界中,包括情緒、心情、感情、信仰和個性特徵,更別提年齡差異、社會規則和激素的模型。這不難推測 出,BPF的執行目前還難以發揮其最佳功效。


總結


那麼,我們已經能夠處理尋徑過程中的情緒問題,以便更好地模擬人類行為?也許還沒有那麼快,但已經有一些人正嘗試創建可靠的AI模型。我認為推出一個以更高可信度模擬人 類和動物行為的解決方案不久就會來臨。


不論如何,你甚至可以創建一個並不用到情緒的BPF執行方法。


關於生物尋徑的話題目前仍局限於研究領域,雖然你已經從這些文章發現了一些成功執行的基礎。我希望能夠推出一個關於BPF的開源項目,加快這種新方法的研發速度。


請您繼續閱讀更多來自 遊戲邦 的精彩文章:

科幻射擊遊戲中那些令玩家興奮的的武器聲音是如何設計的?居然這麼複雜!

TAG:遊戲邦 |

您可能感興趣

萬字長文,用戶類型與遊戲設計定向之間的相互影響分析
漢字設計技巧!解構與重構
3D英文字母設計欣賞
3D立體英文字母設計欣賞
被誤解了的二戰蘇聯坦克設計思路
創意英文字體設計欣賞
字體設計:PS路徑工具製作變體流線字
「什麼是工業設計」——10款經典設計案例解析設計真諦!
教你學會設計配色!思路+技巧
玉雕佛像的構思與設計
關於樓梯的巧妙設計
盆景造型的構思與設計
小郵差看世界:俞敏洪和文廚對話設計之神原研哉
地理設計思想演變
美術字設計步驟詳解教程一
三分鐘帶你了解配飾設計!
腦洞設計集中營:瑞典冷戰奇葩坦克設計項目全解析
3D英文字體創意設計!
四個方面分析醫療器械產品的設計及設計需求