最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

游戲策劃ai設(shè)計(jì)學(xué)習(xí)03---基于角色分配的戰(zhàn)術(shù)ai設(shè)計(jì)

2023-09-06 17:03 作者:蕪湖擊劍客  | 我要投稿

上一篇中講了戰(zhàn)術(shù)ai的選點(diǎn)策略,但在上一篇中只解決了ai在戰(zhàn)斗中如何選點(diǎn),如何評(píng)價(jià)每個(gè)點(diǎn)的價(jià)值的問題

基于選點(diǎn)策略的戰(zhàn)術(shù)ai設(shè)計(jì)

在實(shí)際游戲過程中,npc為什么要移動(dòng),什么情況下會(huì)移動(dòng),移動(dòng)時(shí)如何處理,攻擊行為在什么時(shí)候進(jìn)行這類具體的行為還沒有進(jìn)行設(shè)計(jì),但其實(shí)以傳統(tǒng)的行為樹設(shè)計(jì)思路也已經(jīng)可以實(shí)現(xiàn)了,即給每個(gè)npc一個(gè)行為樹/狀態(tài)機(jī)對(duì)各種需要應(yīng)對(duì)的情況進(jìn)行預(yù)設(shè)方案,然后用上一篇中的選點(diǎn)策略輔助npc的移動(dòng)行為。

這一篇中將會(huì)提出另一種ai戰(zhàn)術(shù)行為的解決方案,基于角色分配的方案

基于角色分配

首先理解何為角色,這里的角色也可以理解為職能,在游戲中有各種各樣的職能,有的是策劃定義好的職業(yè),有的是玩家游玩過程中的分工,這里統(tǒng)一將他們稱謂某種“角色”。舉個(gè)例子,在moba中有法師,有戰(zhàn)士,這些是基于策劃設(shè)定好的天生職業(yè),而在fps中有人充當(dāng)架槍的狙擊手,有人充當(dāng)沖點(diǎn)的沖鋒手,也有人進(jìn)行火力掩護(hù)等等,這些則是玩家根據(jù)情況需要自行分工并進(jìn)行的相對(duì)應(yīng)的行動(dòng)。

在ai設(shè)計(jì)中我們可以將這些所有的角色進(jìn)行進(jìn)一步抽象,他們都代表著某一個(gè)或某一套具體動(dòng)作,如法師在遠(yuǎn)處使用技能,戰(zhàn)士靠近玩家使用普攻,狙擊手在遠(yuǎn)處瞄準(zhǔn),沖鋒手沖入并持續(xù)攻擊。我們可以將這些行為制作成行為樹或是狀態(tài)機(jī),并以這樣的角色對(duì)他們進(jìn)行命名。這里為了舉例就以經(jīng)典的戰(zhàn)法牧角色分工為例設(shè)定一下三種角色和對(duì)應(yīng)的簡單行為樹:

  1. 戰(zhàn)士:積極靠近敵人,并使用普攻進(jìn)行傷害

  2. 法師:盡可能遠(yuǎn)離敵人,并使用技能進(jìn)行傷害

  3. 牧師:盡可能遠(yuǎn)離敵人,并使用技能為最低血量的角色進(jìn)行恢復(fù)

至此我們已經(jīng)完成了角色的設(shè)定,然后就來到了“分配”這也是和傳統(tǒng)行為樹設(shè)計(jì)不太一樣的部分,我們并不會(huì)將戰(zhàn)法牧的行為樹直接分配給具體的某一個(gè)npc,我們需要一種動(dòng)態(tài)的分配策略,這里就需要增加一個(gè)“控制者”可以是由關(guān)卡或其他更高的全局層面發(fā)起(因?yàn)樾枰@取很多數(shù)據(jù)進(jìn)行戰(zhàn)術(shù)判斷)

動(dòng)態(tài)分配控制者

這里我們假設(shè)即將開始一場(chǎng)遭遇戰(zhàn),我方有五個(gè)npc對(duì)方是五個(gè)實(shí)際玩家,基于我們的動(dòng)態(tài)角色分配方案,在游戲開始我們并不會(huì)給npc任何的默認(rèn)ai,只是在場(chǎng)上生成了五個(gè)具象的npc,這時(shí)候我們需要控制者對(duì)角色進(jìn)行初次分配,以讓每個(gè)npc可以行動(dòng)起來。初次分配規(guī)則可以根據(jù)項(xiàng)目具體情況和關(guān)卡需求進(jìn)行設(shè)定,這里做一個(gè)簡單的通用規(guī)則

  1. 首先分配X個(gè)法師(具體根據(jù)需要)

  2. 然后分配Y個(gè)戰(zhàn)術(shù)

  3. 將剩余角色分配為牧師

這個(gè)分配方案目的是確保npc團(tuán)隊(duì)能夠有足夠多的輸出,有富余的情況下再進(jìn)行回復(fù)的基礎(chǔ)戰(zhàn)術(shù)策略。然后遭遇戰(zhàn)開始,在戰(zhàn)斗過程中會(huì)出現(xiàn)以下幾種情況會(huì)讓控制者對(duì)角色進(jìn)行再次分配

  1. npc不適合再進(jìn)行此角色的行為:如牧師或法師來到了玩家身旁(主動(dòng)或被動(dòng)),此時(shí)會(huì)由控制者分配給他們戰(zhàn)士的角色,從而達(dá)到,玩家靠近時(shí)會(huì)切換成近戰(zhàn)攻擊的邏輯的效果

  2. npc無法再擔(dān)任此角色:npc被擊殺,此時(shí)原有的分配比例就會(huì)缺失,需要控制者進(jìn)行彌補(bǔ),即團(tuán)隊(duì)中只有兩個(gè)戰(zhàn)士坐前排,而此時(shí)兩個(gè)戰(zhàn)士都死了,就再將戰(zhàn)士角色分配給后排的法師和牧師保持戰(zhàn)術(shù)隊(duì)形。(這里需要策劃進(jìn)行判斷規(guī)則的補(bǔ)充,后面會(huì)詳細(xì)補(bǔ)充)

  3. npc無法再進(jìn)行角色的職能行為:如法師放技能沒藍(lán)了,放不了技能了,此時(shí)npc會(huì)歸還法師的角色,變成空角色,而控制者重新分配新的合適的角色給此npc

控制者在整個(gè)流程中起到兩個(gè)作用:①在戰(zhàn)斗初期根據(jù)策劃預(yù)設(shè)的比例給“不確定人數(shù)”的實(shí)際npc團(tuán)隊(duì)初始人數(shù)配給,這里的意義在于配置了通用規(guī)則后,不管npc團(tuán)隊(duì)是10人還是100人都能以一定規(guī)則獲得比較符合策劃預(yù)期的職能架構(gòu);②在戰(zhàn)斗中根據(jù)實(shí)際情況切換或重新分配戰(zhàn)場(chǎng)的角色安排,從而讓每個(gè)npc都能在合適的情況下進(jìn)行合適的行為

但看到這里會(huì)發(fā)現(xiàn),其實(shí)以上內(nèi)容用傳統(tǒng)行為樹也可以做到,只需要讓每個(gè)npc的行為樹中都配置三種職能,然后設(shè)置切換條件等也可以實(shí)現(xiàn)大致相同的效果。

到這里其實(shí)我們可以將角色分配的概念進(jìn)一步抽象,來強(qiáng)化表現(xiàn)“控制者-角色”這一體系的特點(diǎn)。我們可以將更細(xì)節(jié)的行為設(shè)定為角色,如攻擊,我們可以將攻擊這一行為變成“攻擊者”這一角色,這意味著只有當(dāng)npc拿到攻擊者這一角色時(shí)才可以進(jìn)行攻擊。

此處有一個(gè)隱含的規(guī)則,角色并不是單一的,就像現(xiàn)實(shí)和游戲中都是如此,一個(gè)人可以是父親也可以同時(shí)是老師是納稅人是男性,每個(gè)具體npc都可以同時(shí)擁有多個(gè)角色,而每個(gè)角色都是一部分的行為樹,具體的npc根據(jù)自己被分配到的角色(行為樹)拼接出他實(shí)際的行為

通過攻擊者這一設(shè)定,我們可以用這套體系實(shí)現(xiàn)很多rpg中的群毆戰(zhàn)斗,如在中土世界中,有大量的怪物圍著你,但只有幾個(gè)會(huì)進(jìn)行攻擊;在鬼泣中屏幕外的怪物不會(huì)攻擊你等等,我們只需要配置攻擊者的賦予規(guī)則和賦予上限,就可以達(dá)到不管場(chǎng)上有多少npc,玩家所承受的輸出難度和被攻擊程度是恒定符合設(shè)計(jì)預(yù)期的。

同樣的攻擊者也會(huì)存在無法履行職責(zé)的情況,如fps中,存在10個(gè)npc,賦予其中3個(gè)npc攻擊者的角色,他們進(jìn)行開火,而當(dāng)其中有npc沒子彈時(shí)會(huì)進(jìn)行換彈,此時(shí)他已經(jīng)無法履行攻擊者的職責(zé),歸還了攻擊者的角色,而控制者需要保證嘗試有3個(gè)npc被分配攻擊者的角色,從而將另一個(gè)npc分配為攻擊者。這樣就達(dá)成了從玩家視角看來的幾個(gè)npc交替開火互相掩護(hù)換彈,持續(xù)保持輸出火力的集體戰(zhàn)術(shù)行為。

設(shè)計(jì)架構(gòu)

結(jié)構(gòu)特點(diǎn)

在這套設(shè)計(jì)中我們可以將行為樹和狀態(tài)機(jī)細(xì)分成具體某一個(gè)行為的小型執(zhí)行器,將其封裝為一個(gè)角色,后續(xù)都對(duì)角色進(jìn)行操作。而將傳統(tǒng)行為樹中對(duì)情況的判斷,升格成一個(gè)全局的“控制者”根據(jù)不同情況將不同角色分配給具體npc,整體和傳統(tǒng)行為樹類似,但不同在于

  1. 通過全局的“控制者”這一概念,讓所有npc的行動(dòng)有了集體性,如開火的例子中,通過全局的分配規(guī)則讓輸出行為更加符合群體交錯(cuò)火力的概念

  2. 通過封裝角色這一概念,策劃和程序的實(shí)現(xiàn)其實(shí)更加便利,在實(shí)際的關(guān)卡實(shí)踐中,不需要策劃再去一個(gè)個(gè)行為樹設(shè)計(jì),而是從源頭設(shè)計(jì)出多種“角色”然后制定分配規(guī)則。當(dāng)策劃想要加一個(gè)通用行為時(shí),不再需要去修改所有的行為樹,而是實(shí)現(xiàn)這個(gè)新行為,然后在全局的“控制者”中增加此角色的賦予規(guī)則

第二點(diǎn)中可以舉一個(gè)例子,以fps為例,我們以這一套體系設(shè)計(jì)了一套基礎(chǔ)的npcai,然后在游戲后期,我們?cè)黾恿送稊S物,如閃光彈,燃燒瓶,手雷等。這個(gè)時(shí)候我們希望ai也能學(xué)會(huì)扔手雷,通過這套體系,我們不需要去修改任何一顆具體的行為樹,而是設(shè)計(jì)出什么情況下扔什么投擲物(即設(shè)計(jì)各種擲彈者的角色),然后在控制者中對(duì)這些角色的分配規(guī)則進(jìn)行設(shè)定,就完成了將擲彈邏輯加入到所有npc的行為中的配置內(nèi)容

分配角色和交還角色

在上述描述中,不難發(fā)現(xiàn),角色的分配,其實(shí)是雙向,當(dāng)npc不能開槍時(shí)他會(huì)主動(dòng)交還攻擊者的角色,也可以理解為他向控制者申請(qǐng)將這個(gè)角色收回。

這里的運(yùn)行邏輯其實(shí)可以用狀態(tài)機(jī)進(jìn)行理解會(huì)更加符合,每一個(gè)角色都是一套狀態(tài)機(jī),狀態(tài)機(jī)存在一個(gè)脫出的條件,即以射擊為例,沒彈藥了就是其中之一的脫出條件,npc被分配到了攻擊的角色(狀態(tài)機(jī)),執(zhí)行過程中沒彈藥了,觸發(fā)了狀態(tài)機(jī)的脫出條件,就從攻擊狀態(tài)中脫離出來

總結(jié)

這套設(shè)計(jì)還并不是很完全,更多時(shí)候還是要和別的設(shè)計(jì)搭配在一起,如之前的選點(diǎn)策略,這一篇的設(shè)計(jì)更加聚焦于具體的行為,和行為間如何切換的判斷。

而在角色設(shè)定上其實(shí)可以根據(jù)實(shí)際需求更加diy設(shè)定,主要核心還是全局的控制者去控制各種角色分配,從而讓一群npc看起來像是有組織有紀(jì)律而不是自己打自己的

在控制者的設(shè)置上,因?yàn)檫@一層是偏向全局的,可以根據(jù)需要設(shè)定更多限制,甚至于上一篇中的選點(diǎn)邏輯也可以在控制者中進(jìn)行一定的限制或傾向。

同時(shí)在一些大型游戲的制作中,控制者的全局設(shè)置也可以進(jìn)行模糊設(shè)置,即設(shè)定范圍或保底量,上限值等,意義在于確保整個(gè)游戲龐大的流程中游戲體驗(yàn)是統(tǒng)一的,但統(tǒng)一之中又可以給每個(gè)關(guān)卡具體的設(shè)計(jì)師就有設(shè)計(jì)的空間

比如在全局中我設(shè)定了攻擊者人數(shù)的上限是20,就意味著整個(gè)游戲最強(qiáng)的火力輸出也不會(huì)大于這個(gè)點(diǎn),而具體是多少則由具體關(guān)卡的設(shè)計(jì)者根據(jù)需要進(jìn)行設(shè)定


游戲策劃ai設(shè)計(jì)學(xué)習(xí)03---基于角色分配的戰(zhàn)術(shù)ai設(shè)計(jì)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
乌拉特后旗| 桃园县| 楚雄市| 淄博市| 西丰县| 天峨县| 大名县| 香河县| 建水县| 紫金县| 莱州市| 宣城市| 二连浩特市| 永济市| 泗阳县| 唐山市| 阿城市| 杭锦旗| 塔河县| 久治县| 日土县| 南阳市| 冀州市| 广饶县| 沅陵县| 山阴县| 双鸭山市| 宜兰县| 广德县| 永城市| 宁夏| 淮北市| 应用必备| 军事| 庆阳市| 米易县| 南皮县| 铜川市| 孙吴县| 秭归县| 九寨沟县|