Unity GameAI-(8)Path Following

Path Following

路徑跟隨

  • 原理:
    • Path following 行為產(chǎn)生一個(gè)操控力,使交通工具沿著構(gòu)建路徑的一系列路點(diǎn)(Waypoint)移動(dòng)。
    • 路徑類型
    • 線性-有起點(diǎn)和終點(diǎn)
    • 循環(huán)型- 封閉路徑
Paste_Image.png
  • wander也可以用這種方式來(lái)實(shí)現(xiàn),即把這些路徑點(diǎn)讓智能體來(lái)隨機(jī)選取進(jìn)行移動(dòng)。

實(shí)現(xiàn)的原理

  • 判斷下一個(gè)節(jié)點(diǎn)是不是終點(diǎn),如果是終點(diǎn)就采取arrival行為,不是終點(diǎn)就將target的節(jié)點(diǎn)數(shù)組++然后采取Seek行為。
Paste_Image.png

Unity 中的代碼實(shí)現(xiàn)

  • 首先我們需要在場(chǎng)景中為智能體添加路徑點(diǎn)(transform)
Paste_Image.png
  • 接著給智能體添加pathFollowing的腳本,并且為腳本添加需要使用到的字段
Paste_Image.png
  • 將場(chǎng)景中的wayPoint添加到pathPoints的數(shù)組里
Paste_Image.png
  • 接著進(jìn)行操控力的獲取
Paste_Image.png
  • 如果當(dāng)前的目標(biāo)點(diǎn)已經(jīng)是最后一個(gè)點(diǎn)了,進(jìn)行arrival行為,從而開(kāi)始進(jìn)行判斷,智能體是否到達(dá)了減速半徑以內(nèi)如果沒(méi)有到達(dá)就用Seek,到達(dá)了減速半徑則使用arrival(arrival里直接包括了Seek行為)。

  • 如果不是最后一個(gè)目標(biāo)點(diǎn)

Paste_Image.png
  • 通過(guò)使用dist(距離向量)的模小于0.2f(假設(shè)值)來(lái)判斷已經(jīng)到達(dá)了當(dāng)前目標(biāo)點(diǎn),數(shù)組下標(biāo)++,重置target,繼續(xù)Seek行為。

  • 通過(guò)獲得的操控力控制智能體移動(dòng)

Paste_Image.png
  • 演示:
3.gif

Interpose(插入)

  • Interpose行為返回一個(gè)操控力操控角色移到2個(gè)智能體(或空間兩點(diǎn),或一個(gè)智能體與一個(gè)點(diǎn))的中點(diǎn)。
  • 預(yù)測(cè)(猜測(cè))算法:得到連接兩智能體當(dāng)前位置的線的中點(diǎn),計(jì)算:從交通工具到該點(diǎn)的距離/交通工具的最大速度=交通工具走完這段距離的時(shí)間T;使用T推斷2個(gè)智能體未來(lái)位置,得到兩智能體未來(lái)位置的線的中點(diǎn),最后交通工具使用arrive行為移向該點(diǎn)。

原理圖:

Paste_Image.png

C++偽代碼:

Paste_Image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 上一節(jié)介紹了Seek以及Flee,和Seek相對(duì)應(yīng)的還有Arrival操控力行為 Arrival 和Seek的區(qū)別...
    Levi_Wan閱讀 662評(píng)論 0 1
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評(píng)論 19 139
  • 最后 bosco演噶Sheldon俾成雙毒死,而成雙俾Emma捅死。 阿Tim少同Maple系埋一起, Carme...
    芥末飛瘸鹿閱讀 260評(píng)論 0 0
  • 書(shū)名:《接納不完美的自己》 作者:【美】黛比·福特 書(shū)籍介紹 榮格曾問(wèn),你究竟愿意做一個(gè)好人,還是一個(gè)完整的人?每...
    自我迭代的小喆閱讀 2,120評(píng)論 1 4
  • 凡520當(dāng)天預(yù)約六月份韓式裱花,翻糖蛋糕,糖霜餅干課程的同學(xué)們,咱們立減520.任不任性,哈哈~預(yù)約課程以付定金為...
    狗頭君閱讀 303評(píng)論 0 0

友情鏈接更多精彩內(nèi)容