首先,要給AI一個8方向的基礎移動動畫,
之前已經做了一個了,就是我們所控制人物的八個方向的移動,直接復制用就行了
就下面這個
做了些調整,首先把 Ai的最大移速改成了600,然后在180處添加了八個方向的走路動畫,把跑步的動畫移到了360處。
找到之前為AI設置idel的動畫藍圖,
刪掉,新建一個狀態機
把剛剛的弄好的混合空間拖進來,
雙擊打開,需要傳入兩個變量,速度和方向
在事件藍圖里把這兩個值設置一下
然后拖出來一個nav碰撞體,在盒子里,AI是有導向的,也就是AI只能在這個大盒子里移動,在盒子外無法移動。
在Ai的藍圖里,先把最大移動速度改到360,目前這個邏輯就是讓他一直向右運動。
把昨天寫的傷害流血音效之類的整理一下,右鍵重疊到節點
新建一個變量,類型為character,用來存放AI的目標character(一般就是玩家)
然后使用find look at rotation節點,通過兩個坐標值計算出方向(起點是AI,終點是target character)
然后就是要讓AI 知道,誰是target character
在Ai里添加一個角色感知,PawnSensing
添加這個事件,on see pawn,我們把Ai第一個看到的角色設置為target character
所以,綜合一下,這個藍圖 的效果就是,
AI一直面向我們player
AI一直向右走
結合就是AI 面向我們轉圈
(感覺自己是太陽,他倆是行星...)
這兩個AI一次死盯着我們,如果想改變一下,讓他們慢慢轉向我們,可以用一個類似 lerp 的節點 rinterp to
比較一下AI自己和目標的距離,如果大於10米,就把AI的最大速度改到360(跑步狀態),如果小於10米,就設為180(走路狀態)
發現切換速度的時候比較僵硬,是從180一下到了360
所以也加一個逐漸減少的過程
沒有問題了,把后面關於改變移動速度的打包成一個節點
另,這是當看不到目標時 隨機移動的藍圖
delay3秒是因為要讓他每3秒重新選一個點移動,因為最開始的事件是event tick嘛