Delta3d中的AI技術分析。

2021-06-19 16:44:12 字數 1466 閱讀 3564

首先。先介紹下delta3d的ai大體狀態機制。其主要分為三種基類iconditional,operator,istatevariable。

iconditional作為條件,通過從維護全域性狀態的worldstate中獲得狀態資訊來判斷條件是否成立,

operator則是具體行為,同樣他需要通過worldstate中獲得狀態資訊來對狀態進行改變。 最

後istate

variable就是不同狀態的具體資訊。

現在我們從乙個例子開講,例子主要講的是。乙個人為了填飽肚子,

首先會去打**問奶奶做什麼菜。然後去超市把材料買了,

最後把菜做出來。然後吃掉填飽肚子。

現在我來介紹一下planner,和plannerhelp的基類。

plannerhelp主要維護了乙個operator的list的,乙個當前的狀態。

worldstate是基類用來維護,全部的狀態的。最後就是上述的倆個重要元素。remainingcost

是控制當前執行到哪一狀態的方法,isdesiredstate是維護最期待狀態的。

在本例子中他就是保持我們的npc不要餓到。

planner維護了乙個plannerhelp和乙個對planner的配置方法,plannerconfig。

這裡不再具體介紹。接下來我具體介紹iconditional。

像我在前文說的。iconditional是條件,當他滿足時則執行operator。

然後是operator

然後是istatevariable他維護了關於選單的具體資訊。

最後要做的就是將上述設計好的operator註冊到operatorlist中,以及istatevariable註冊到worldstate中。

就可以執行了如圖

關於例子的**。在delta3d的原始碼中可以找到。

Delta3D 原始碼 之 dtCore Base

dtcore base解析 table of contents 1 dtcore base類 1.1 概述 dtcore base主要作用 1.設定訊息結構messagedata 2.作為收發訊息的基類,乙個類要想在onmessage中接收別類發來的訊息,就要繼承base base class to...

delta3d與ode物理引擎的結合。

使用delta3d有些日子了,對物理引擎這塊沒有細看過,最近研究了一下。主要分為兩大部分,第一在dtcore中對ode的封裝,第二通過dtphysics,使用pal phys abstract layer 對三種物理引擎 bullet ode phys的封裝。這裡先介紹下dtcore中對delta3...

Halcon中的3D技術

對於檢測一些產品的3d資訊,我們通過3d相機能獲取其點雲資料或一張帶有高度資訊的影象。這邊我們用smartray相機,獲取到一張16位的png影象。實際上就是一張高度資訊圖。這邊x y縮放比例為0.019,z方向為0.0016,意思就是你xyz乘這係數就是相對距離。在那個相機軟體中能看到如上的3d圖...