前往
大廳
主題

【遊戲開發日誌 #22】AI 雛形

サンエックス | 2023-06-30 19:19:03 | 巴幣 3302 | 人氣 370

Hitbox 關聯的區塊可以說是大致上完成了,製作了地形傷害判定可用的常駐型 Hitbox,以及只用來偵測並篩選特定目標的偵測型 Hitbox。
尤其後者基本上是角色 AI 物件的控制與互動核心,後面再來提及。

接下來的好幾周都會圍繞在角色 AI 的開發上,戰鬥系統上也會做出相當程度變動,手邊的待辦事項清單已經列出不少東西了

老樣子開發中且項目較為零散,還有一些太過於抽象的,能寫多少算多少。

◆【偵測型 Hitbox】

AI 用以偵測,進而產生指令分支的變種 Hitbox。
Δ 設置於 AI 指令條件區塊

上圖是用於 AI 其中一種攻擊指令的範本,屬於根據不同 AI 角色來量身訂製的。
而 AI 還包含數個固有的偵測 Hitbox:防守偵測用、索敵察覺用…等


偵測時亦會篩選目標的狀態,如:角色隊伍關係、朝向、當前片段、發射物及其來源…
運行期間,多個偵測 Hitbox 堆疊起來長這樣:
● 角色碰撞體(白框):地形碰撞、受擊判定用,不屬於偵測碰撞體。
● 指令偵測(小綠框:單個自訂的指令偵測範圍,圖中為攻擊偵測,其尺寸可與實際的攻擊範圍不同。
若當前片段無法進行攻擊指令時,該偵測 Hitbox 會自動隱藏。
● 防禦偵測(中綠框:當有可能的威脅進入時,AI 用以決定進行防禦指令的偵測範圍。
普遍上會較角色碰撞體大上數倍,讓 AI 得以應付較為動態的威脅,像是迎面而來的發射物。
● 察覺偵測(大綠框:AI 察覺或丟失敵人的偵測範圍,會隨 AI 當前狀態還有地形而有所程度上的變動。

拿防禦偵測 Hitbox 來說,當其他判定型 Hitbox 進入 AI 的偵測範圍時,會先檢查來源的角色隊伍,再來是攻擊/防禦的方向,隨後再根據 AI 其設置的防守觸發率,決定是否要執行防禦的指令。

最後,則是根據產生判定的時間差,來讓 AI 決定進行防禦的時間點。
因為攻擊用的 Hitbox 是在攻擊片段開始的瞬間就產生的了,以玩家來說大致上就是輸入攻擊鍵的當下。而從該時間點到攻擊生效的這段區間,即是讓 AI 決定是否要防禦的反應時段,又因為該區間的長短會因不同的攻擊動作而異,故 AI 必須抓取攻擊來源 Hitbox 的判定時間來進行防禦。
若攻擊無法被防禦,AI 可以再進而採取其他行為,像是躍起、閃避。 (←這次的進度還沒有完全實裝)

承上,為了避免出招的時間過短,讓 AI 甚至玩家無法反應,之後戰鬥系統得做出相對的調整。
Δ 攻擊開始到產生判定只有 0.04 秒,無論是玩家還是 AI 都不容易在這麼短的時間中應對吧?

Δ 常理上讓 AI 能夠進行防禦偵測的場合

◆【仇恨目標】

受 AI 角色鎖定以優先追擊的目標單位

仇恨的目標預設是透過先前所提到的察覺偵測 Hitbox 獲取,當有多個目標時,再根據其設置決定是否有個別的優先級。
如:上圖的最近目標、以敵人階級,亦或是 HP 最低的目標來決定。
當然,預設的情況下,AI 角色受擊後也會變更仇恨目標至攻擊來源。

AI 的察覺偵測,預設對來自於背後的目標會較為寬裕,無論是偵測的大小或是 AI 的反應時間,設計上會有利於玩家可以進行背刺的行動。

當沒有仇恨目標時,AI 角色可於場景中隨意移動,這邊稱之為「漫遊」模式。基本上就是於其所在地型來回踱步,碰到牆面或斷崖時會回頭這樣。
判定是否接觸了斷崖,或說是地形的落差處,沿用了先前的邊界牆設計,節省了不少時間。

至於 AI 於漫遊模式下,會有機率產生的隨機跳躍指令移除了,主要是避免不必要的跳躍,可能會導致 AI 跳到意料之外的地形,然後又跳不回來就尷尬了,畢竟邊界牆目前不會對浮空狀態中的單位起作用。


當 AI 產生仇恨目標時,普遍上會透過追蹤來拉近與目標的距離,直到到達鄰接有效間距為止。

移動積極度的程度越高,AI 在逼近目標的過程就更顯侵略性。
而「退守」的行為則是相反,是種改為遠離目標的行為。當目標處於無敵狀態,或是自身受到相當程度的傷害時,AI 進而產生的戰略性撤退,避免短時間內承受進一步的損失。

AI 本身還不夠完善,像是當前它們還沒有能夠追蹤有一定高低落差地形目標的能力,這就屬於接下來的進度了。
先寫到這吧。


繼上一篇,本來想說年底前要不要升級作業系統,結果過沒多久又看到微軟預告對 win10 的支援只到 2025。
現在這台 PC 的規格也不足以進而升到 win11,弄得我升級系統的念頭直接被打消。
加上還能穩定使用的情況下,就去組個新的也是浪費,就讓這 win8.1 再多陪我幾年吧,頂多就明年起不碰 steam。

說是這麼說,在我 steam 剩下的半年壽命期間至少想把收藏庫裡一些遊戲給破完,
黑魂 1~3 好像 2019 左右就開始慢慢入庫了,結果都沒時間去開來玩,至少讓我體驗下英高的善意吧。

開發進度還是會有的,如果慢了的話就怪宮崎老賊。

創作回應

蜥智(CizaHuang)
感覺超棒
2023-06-30 19:45:05
サンエックス
還不完整就是 [e19]
2023-07-01 00:52:57
樂小呈
每次看都覺得你編輯器超完善欸 [e17]
2023-06-30 20:08:04
サンエックス
自己是想確保過幾個月之後,再回去操作都能夠看得懂的程度https://truth.bahamut.com.tw/s01/202204/e2a352cd7115e33a406963c48f6a9e2d.PNG
2023-07-01 00:54:39
サンエックス
老實說還挺花時間的,但值得。
2023-07-01 00:55:00
YGSoto
好猛
2023-06-30 21:45:46
サンエックス
謝啦 [e12]
2023-07-01 00:53:22
追蹤 創作集

作者相關創作

更多創作