遊戲AI 個體AI角色的操控行為 1

2021-09-24 14:45:59 字數 2302 閱讀 2286

1.靠近

建立乙個類steeringforseek繼承steering,將目標物體拖入target,我們的ai就會自動向target靠近。

重寫其中的force方法

在vehicle中會遍歷所有的steering的子類,我們實現的靠近類重寫的force就會被加入vehicle的力中來實現物體的移動

public class steeringforseek : steering 

public override vector3 force()

return (desiredvelocity - m_vehicle.velocity);}}

2.離開

相比於上面的seek,flee的desriedvelocity是反方向的。

將追逐此ai的物體拖入target,在target進入ai的危險感知範圍時,ai將進行逃跑

capsule追隨 sphere逃離

3.抵達

我們希望ai在到達目標的時候減小速度,避免衝過目標,ai進入停止半徑後,將逐漸減小預期速度,直到降為0.

如果距離大於減速半徑,將預期速度設為最大速度,如果ai進入減速半徑,ai將與其速度設定為目標距離減去當前速度,

4.追逐

追逐與arrive很相似,不過目標不再是靜止的,而是在移動的,最簡單的方法是,讓ai直接向目標位置靠近,但我們要讓ai**目標未來的位置,讓ai朝著目標未來的位置進行移動,通過乙個簡單地**器,來讓目標向目標未來位置進行移動.

public class steeringforpursuit : steering 

public override vector3 force()

//**時間的長短:正比於到目標位置的距離,反比與目標和ai的速度和

float lookaheadtime = totarget.magnitude / (target.getcomponent().velocity.magnitude

+ maxspeed);

//預期速度

desiredvelocity = (target.transform.position +

target.getcomponent().velocity * lookaheadtime -

transform.position).normalized * maxspeed;

return desiredvelocity - m_vehicle.velocity;

}// update is called once per frame

void update ()

}

普通的接近:

**未來位置後:

實現AI角色的自主移動 群體操控行為

群體操控行為,正如大多數人工生命 一樣,組行為是展示操控行為的乙個很好的例子,它的複雜度 於個體之間的互動,並遵循一些簡單的規則。模仿群體行為需要下面幾種操控行為 從上面幾種操控行為可以看出,每種操控行為都決定角色對相鄰的其他角色做出任何反應。為了實現組行為,首先需要檢測位於當前ai角色 領域 中的...

基於行為樹的ai

我們現在做的遊戲,包括手遊,網頁遊戲,ai部分策劃那邊的需求並不複雜 待機,巡邏,行走,逃跑,攻擊,被擊 而且ai需求定了,也不會有太大的改動。所以用狀態機是乙個不錯的選擇,因為狀態機確實很簡單 我們一直都是用狀態機 行為樹,實現ai的另外一種方式,先簡單介紹一下行為樹的概念,然後我們用行為樹的方式...

AI中的行為系統

內容都來自於此 這裡只是裡面的文章做了乙個總結 目錄 1.命令佇列 行為層實現方式 2.行為樹 決策層實現方式 節點分類 行為樹節點的特性 控制節點 行為節點 行為樹的輸入和輸出以及共享資料 外部前提的實現 ai系統的請求層 ai中的行為系統就是根據收集到的資訊和特定的輸入,經過乙個決策過程,做出具...