UE4_簡易AI_基礎移動


首先,要給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嘛

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM