看板 FireEmblem 關於我們 聯絡資訊
大家好,又到了週末發廢文時間,今天要來談的是飛空城的AI研究。 因為飛空防守隊的關係,越來越多人在問為什麼再動會跑去打人,不會再動隊友。為什麼 A會先動,而不是B...等等 之前有版大分享AI 行為模式研究,不過原文實在太長了所以很難看得下去,而且那時沒 有飛空城大家不是很在意,小弟去年底飛空城跨季17連敗的時候,真的受不了仔細的去給 他研究了一番,從此飛空城直上21階,考試都考100分了呢,所以不要再問為什麼了,來 看看 AI的行動原理吧! 我的知識都是根據Verve大推算出來的規則來的,原來Verve大的已經寫得很清楚了(我最 下面有大概中譯) 也感謝 saulesmeitas 之前的AI研究文章,我就是從那邊開始的 這篇我試著把大家比較關心的重點節錄出來,講的越簡單淺顯越好,要細節的再自己拉到 最後 。 1. 首先AI的行動原理是好幾個迴圈,他會把每一個角色,針對每一個隊手,造成的傷害 都先計算出來,也會把每一個角色針對每一個隊友進行的輔助結果也計算,根據的規則決 定他要走哪一步(哪一個角色,做哪一個動作-可能是攻擊,輔助或移動),然後做完該動 作後,再全部重來一次,再重新依走完的狀況分析一次,再決定一個動作,再重頭分析, 以此類推。 所以AI不會去考量他下一步後要怎麼走用這一步來布局,完全是根據現況規則決定他這一 步怎麼走,走完再重新用一樣的規則,再全部評估一次,一直循環,直到所有人走完。 2. AI 迴圈評估行動的順序,會先根據現況評估一次 『I. 移動順序評估』--> 『II.評估攻擊範圍』--> 『III.評估戰鬥結果』 然後進行行動,行動的順序是: --> 『IV. 戰鬥前輔助』--> 『V. 攻擊』--> 『VI. 戰鬥後輔助』--> 『VII. 移動』 也就是說 : IV 能戰鬥前輔助的會先輔助,然後回到II, 再評估,再看看有沒有能輔助的 V. 再來能攻擊的先攻擊 打完回到II, 找下一個 VI 沒有能攻擊的了 再來戰鬥後輔助 VII 沒有能輔助的了 再來移動 最後回合結束 (註:每一次的行動,就只會走一個人,不管是輔助、攻擊,那人走完後,就會回到 II -> III -> IV….再重走流程一次) 接下來講細節: 3. 『IV. 戰鬥前輔助』 (摘錄重點):戰鬥前輔助指還至少還有一個隊友,攻擊範圍內有 對手的。 誰會先輔助對友,誰又會自己衝上去打? 3.1 首先要符合資格的人才會在戰鬥前輔助, 資格包括 i 自己戰鬥無法打死對方。 ii 自己戰鬥中無法至少給與對方 5 點傷害。 iii 支援對象還未行動,而且支援對象範圍內有敵人,或是在敵人範圍內。 iV 而且Buff至少能給與2點Buff(單項)。 否則這個角色就不會進行支援。完整的支援者資格,跟被支援者資格,可以看最下面 Chart A / B。 3.2 如果同時有幾個人可以支援,誰會先支援?根據下列順序決定輔助者優先順序: i. 非移動系輔助技能>移動系 ii. 無武器 > 有武器 iii. 與最近敵人距離:最遠最優先 iv. 非移動系輔助技能順序:再動>補血 = 休息 = 應援 v. 位置編號:越低越優先 (編隊最左邊的) 也就是說,如果打不死打不痛人的,帶支援技能的,會先支援範圍內有敵人的隊友,讓他 們吃了再上。 如果同時有複數可以支援的,會依3.2的順序支援。 要注意一旦第一個人支援後,全部就要依照支援後的情勢重新評估(回到步驟II),而不是 第一個人支援完第二個馬上支援,因為第一個支援後,第二個可能就可以打死對手,或傷 5滴以上,那第二個就不會再支援,會攻擊。 4. 『V. 攻擊』 (摘錄重點) 攻擊時誰會先上,誰又會打誰? 攻擊時,每角色每一個範圍內的對手對戰結果都會先計算出來。 假如有2個角色,範圍內各有3個對手,那2x3=6種對戰結果都會計算出來。 根據對戰結果,選出最佳的來決定哪個角色對哪個對手。 根據下列順序,決定攻擊者優先順序: i. 戰鬥結果:勝>平>輸 (贏=打死對方, 輸=被打死, 平 = 雙方都沒死) ii. 能夠debuff對手至少2點防或抗 或給予額外傷害(死息 疼痛) iii. 攻擊比例: 越高越優先 (攻擊比例 = 對方失血x3 - 自己失血) iv. 自身移動範圍: 越大越優先 v. 戰鬥後對手奧義CD增加: 是>否 (對手發動奧義後CD還原也算增加) vi. 對手隊伍順序:越高(後面)越優先 vii. 隊伍優先順序:越高(後面)越優先 也就是說,能打死人的會先走,能打死人又能debuff的會更先。 如果都可以,打最多血自己失血最少的先,如果都一樣,那移動範圍大的先...以此類推 。 一樣要注意,最先的那個人打完之後,戰況改變,一切回到II.重新評估(有可能變成又要 戰鬥前輔助,然後重新評估後,才會再攻擊)。 5. 『VI. 戰鬥後輔助』(未行動的隊友攻擊範圍內沒有敵人了) 這時Buff上完了,打也打完了,主要是AI會把在敵人攻擊範圍內隊有拉出來。 要特別注意的是弓女兒的未來之瞳(等同替換),是在戰鬥後才會發動的輔助技, 發動的條件是範圍內的隊友必須: ‧ 已經行動過 ‧ 在敵人攻擊範圍內 ‧ 而且可以被該移動輔助移動到更少敵人的範圍內 要設計弓女兒的行動的,可以參考。 6. 最後是『VII 移動』: 當能輔助、能打的都打完了,最後就是純移動了。移動的條件如下。 依下列順序決定『移動順序』: i. 無輔助 > 有輔助技能 ii. 近戰 > 遠程 > 無武器 iii. 距離敵人 近 > 遠 iv. 位置編號:越小越優先 很重要的一點,近戰會比遠程先走,也就是說 比如範圍內都沒敵人,比如飛空城對方殺 了一隻之後全軍徹退,結果你就看到你的再動(舞孃)先走了,然後你的主攻手(法師)才走 。兩個都變箭靶。原因就是舞孃是近戰,法師是遠程。 如果要讓主攻先走,舞孃再走,就要拔舞孃武器,或是換法師再動(如果兩個都遠程,那 就要比距離跟隊伍編號) 基本上根據這些邏輯大概可以解釋你飛空城的貓AI,也可以根據這些做調整。 比如你想讓誰先打,誰再上,有問題的話,我相信提出來,套上面的邏輯都可以解釋得了 。 至於有一些細節的,可以去看原文的Plain Text,或是我自己打(到一半)的中譯本… 原文:https://vervefeh.github.io/FEH-AI/textguide.html 中譯:https://drive.google.com/open?id=1Gm8nMOmFBfEAlLjVI-IOXUrrjoAHD_OK 還有一些有趣的知識,我補充一下: 比如AI在攻擊或輔助時,會選擇站哪一格進行?答案是: i. 防禦地形:有>無 ii. 被敵人威脅:最少的位置最優先 iii.是否需要"傳送": 是>否 iv. 特殊地形:高山>森林>馬溝>一般 v. 移動格數:越少越優先 vi. 格子優先順序:越高越優先 也就是他會挑有防禦地型的先走,再來挑被最少敵人攻擊範圍重疊的位置,如果是要傳送 的位置跟不需要傳送的位置比,會優先挑要傳送的(淺藍格 - 空導、飛導、救援、特技飛 行...),然後再來是地形…. 這些在安排飛空城的陰人流的時候,很多人已經在用了,不知道為什麼,這就是原因。 然後這篇文章我打了兩個小時 = = 明明我之前就整理過了。希望至少傳承換我歐= = -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.104.101.98 ※ 文章網址: https://www.ptt.cc/bbs/FireEmblem/M.1553261211.A.712.html
drefly: 先推以免別人以為我們看不懂…03/22 21:29
diefish5566: 猛03/22 21:30
mimikuX: 其實沒有很複雜啦 看過一輪之後 有點概念後 越看AI 你03/22 21:35
mimikuX: 會越懂03/22 21:35
arbalest712: 推,整理得更簡要了03/22 21:35
kyle87222: 先推03/22 21:40
Radisu: 推 03/22 21:41
kramasdia: 推 03/22 21:43
mimikuX: 我好像太強調迴圈的觀念 重複了好幾次 變得很繁瑣呵呵03/22 21:46
mimikuX: 待會來修飾一下 03/22 21:47
※ 編輯: mimikuX (106.104.101.98), 03/22/2019 21:49:35
momojj: 推,經歷飛空城的摧殘看了有感覺 03/22 22:25
beckwon: 我總覺得傳承水的AI跟其他再動不一樣 他的攻擊優先權好像 03/22 22:32
beckwon: 設的比較低 就算放個紅色不會反擊的角色在他攻擊範圍內他 03/22 22:33
beckwon: 都有可能不理會 03/22 22:33
killerj466: 會不會是她沒裝武器(X 03/22 22:35
mimikuX: 基本上比較特別的輔助技能 就是治癒之手(藍米媽) 跟休息 03/22 22:36
mimikuX: + 因為狀態異常會觸發 傳水悠悠搖曳我看來就跟跳舞一樣 03/22 22:36
mimikuX: 簡單說你希望傳水不要打人要再動 就是要拔武器不然就是 03/22 22:39
mimikuX: 壓攻到打人不到5滴 她就不符合戰前輔助的條件 03/22 22:39
mimikuX: 對方會不會反攻不是重點 重點還是在能打幾滴 不過傳水 03/22 22:41
mimikuX: 攻44 如果紅色要被打5滴以內抗要48左右 你是不是遇到光 03/22 22:41
mimikuX: 伊敦之類XD 03/22 22:41
aurorahuangh: 簡單來說我方AI就是貓在操控的就能理解了﴿ 03/22 23:18
KingOfAsk: 推 03/22 23:36
a000000000: 移動那邊可以用i2來釣弓角走出再動範圍 03/22 23:41
kisakisa: 不好意思 有幾個不懂的 第4點vi和vii隊伍順序 是指 03/23 00:39
kisakisa: 編隊最右邊的優先嗎? 03/23 00:40
kisakisa: 還有最後補充的地方 vi. 格子優先順序 這個是指什麼呢? 03/23 00:41
kisakisa: 感謝麥特大發文教學 03/23 00:42
mimikuX: vervefeh.github.io/FEH-AI/glossary.html 03/23 00:46
mimikuX: https://i.imgur.com/9octDDs.png 03/23 00:48
mimikuX: 格子優先順序Tile Priority 最右上的(數字大的)優先 03/23 00:49
mimikuX: https://i.imgur.com/qf0WcBL.png 03/23 00:49
mimikuX: 隊伍順序Slot Order 通常前面的先動 後面的先被支援 先 03/23 00:51
mimikuX: 攻擊 不過這是在其他條件都一樣情況下 必須用Slot Orde 03/23 00:51
mimikuX: r 來決定的時候 才會成立 03/23 00:51
mimikuX: 教主你講什麼我怎麼看不懂@@ 03/23 00:52
a000000000: 啊我的意思是說 我都用i2之類的飛角 03/23 01:14
a000000000: 騙馬琳之類的走出對方再動的範圍 03/23 01:15
a000000000: 例如再動一開始站馬琳右邊 然後i2放左下角 03/23 01:15
a000000000: 開打的時候馬琳往左邊跑 再動就摸不到馬琳 03/23 01:16
a000000000: 大概4這種概念 03/23 01:16
kisakisa: 原來格子還有這樣的優先順序@@ 感謝麥特大 學到好多 03/23 01:33
saulesmeitas: 我之前也有想翻譯那網站 但就懶病發作XD 03/23 01:37
turelord: 推整理 03/23 10:36
mimikuX: 我去年底就翻譯好了 也是懶病發作 昨天突然心血來潮QQ 03/23 10:39
mimikuX: 教主i2不會被馬琳射爆嗎@@ 現在飛空城防守應該很少這種XD 03/23 11:14
mimikuX: 大家都會算好好的 一定會再動到的(拿出你的洛基) 03/23 11:14
k820109x: 用打帶跑的話還是會有這種喔 03/23 11:24
k820109x: 被剋的角色的位置會影響AI移動方向 03/23 11:25
k820109x: 激化被剋的話更明顯 一定選最短路徑往臉上衝 03/23 11:26
a000000000: 就還在馬琳射程外 03/23 11:39
a000000000: 應該這樣講 例如對方有中二妹再動馬琳 03/23 11:39
a000000000: 胖雞去中二妹打的到但是馬琳打不到的地方 03/23 11:40
a000000000: 如果馬琳目標是胖雞的話會被在動然後去打胖雞 03/23 11:40
a000000000: 但是i2在反方向 馬琳會想去抓i2 就跑到再動範圍外 03/23 11:41
unzap: 只能推 03/23 12:09
ratadune: 大推 03/23 12:12
mimikuX: 喔教主的意思是利用對手會『朝最短距離往敵人前進』的特 03/23 12:23
mimikuX: 色 在攻擊範圍外 把馬琳跟再動分別調開 03/23 12:23
a000000000: 應該是朝傷害最大的敵人前進這事 03/23 13:14
a000000000: 我也不確定我對不隊 可是看到馬琳就想這樣幹@@ 03/23 13:15
bubunana: 請問胖雞是誰呢? 03/25 05:54
a000000000: 聖誕法 03/25 09:45