天天看點

遊戲AI車輛(Auto Mobile City)項目開發日志(2021.10.18)前言今天實作的内容:接下來的計劃:

文章目錄

  • 前言
  • 今天實作的内容:
        • 樣條線控制的車輛AI原型
        • PID控制器
      • 紅綠燈系統
  • 接下來的計劃:

前言

這是一個ai車輛項目,将包含幾種不同行為模式的AI車輛在城市交通場景中運作,你可以了解我我計劃做出GTA等城市場景開放世界遊戲中的NPC車輛及交通,這個項目将成為本人的畢設及實習training。

今天實作的内容:

準确來說,這個項目8月我就開始上手了,但是當時沒有寫日志,今天的日志就記錄一下以前的成果。

樣條線控制的車輛AI原型

我最簡單的構思,就是通過樣條線将道路路徑描述出來,AI車輛要能開走隻需要跟随樣條線就行。原型已經用UE4藍圖做出來了。按照這個油管視訊作者的系列教程做的。

Seredias

在此基礎上,可以加入簡單的紅綠燈,還可以通過在車前放一個觸發器的辦法來檢測前方的障礙物,不過更好的辦法是使用UE4提供的sensor。

PID控制器

這是實習項目給的參考資料。

How to implement vehicle AI in UE4

PID控制器,我也不太懂,據懂的人說,這是一種水多加面,面多加水的設計思路,給出目的地就能讓AI汽車計算出合适的運作行為。因為我們的AI車不是直接讓車輛産生位移,而是控制車輛的油門,方向盤。使用PID控制器能讓AI車一點一點“蹭”到正确方向,如果參數得當,車輛的運作看起來就非常真實。

很可惜,我看不懂,計時我能讓源代碼跑起來,由于參數不好,我的AI車的運動蠻奇怪。如果我能夠更好的實作PID控制器,也許在可能會用到的小範圍移動時能夠使用PID控制器,希望不會用到。

紅綠燈系統

作為交通的一部分,紅綠燈是很重要的一環,所有我實作的早,實作方法是,首先安排一個bool表示目前是紅燈還是綠燈。然後給AI Car做個Stop函數來設定刹車,在紅綠燈下面放一個觸發器,一旦車輛開進去,觸發觸發器的On Component Begin Overlap函數,就開始判斷目前是紅燈還是綠燈,如果是紅燈就讓該函數調用車輛的Stop函數,綠燈則調用Drive函數。

然後讓表示紅綠燈的bool參數每隔一段時間變一下就行。

接下來的計劃:

之前我應該是實作了使用UE4的PawnSensing來讓車輛識别前方的障礙物,不過礙于今天回到公司,發現電腦打不開,浪費了一些時間讓IT大哥來修,導緻沒時間看(bushi。

接下來的工作,就是車輛障礙物識别,速度限制啥的,然後就可以出一代原型(prototype 1.0)了。

繼續閱讀