臨西企業(yè)做網(wǎng)站百度官方客服電話
SmartObject是UE5新出的一項(xiàng)針對(duì)AI的功能,可為開發(fā)者提供如公園長(zhǎng)椅、貨攤等交互對(duì)象的統(tǒng)一外觀封裝,如UE的CitySample(黑客帝國(guó)Demo)中就運(yùn)用到了SmartObject。
但SmartObject實(shí)踐起來(lái)較為繁瑣,主要依賴于AI及行為樹,并且在UE5.3中這個(gè)模塊更換了Claim接口,使其無(wú)法在純藍(lán)圖配置中跑起來(lái),因此本文將用一個(gè)簡(jiǎn)化的案例并配合UE5.2版本演示該模塊使用。
1.SmartObject配置
(1)首先打開插件SmartObject、GameplayBehaviorSmartObjects:
(2)右鍵可創(chuàng)建SmartObjects的定義:
(3)添加一個(gè)Slot并設(shè)置Behavior Definitions:
這個(gè)設(shè)置類似于給公園長(zhǎng)椅設(shè)定座位位置,該位置可以是大概位置,因?yàn)榫唧w邏輯可以在觸發(fā)時(shí)進(jìn)行處理。
Behavior Definitions的參數(shù)必須填寫,目前是強(qiáng)綁定關(guān)系。
(4)新建空Actor藍(lán)圖,添加SmartObject組件并設(shè)置剛剛配置的資產(chǎn)。
(5)將該Actor放置于場(chǎng)景任意位置。
2.AI配置
接下來(lái)需要配置一個(gè)簡(jiǎn)單的AI角色,以觸發(fā)SmartObject。
AI角色以及行為樹的創(chuàng)建請(qǐng)看這篇文章:
https://blog.csdn.net/grayrail/article/details/130389966
(1)配置好后,創(chuàng)建如下3個(gè)對(duì)象,其中行為樹可以先不急著創(chuàng)建具體節(jié)點(diǎn):
(2)打開行為樹,創(chuàng)建一個(gè)AI Task用于處理SmartObject的查找和觸發(fā):
(3)重寫節(jié)點(diǎn)Receive Execute AI,編寫AI Task執(zhí)行邏輯:
上述邏輯通過(guò)節(jié)點(diǎn)Find Smart Objects查找場(chǎng)景中2000左右范圍的SmartObjects對(duì)象,并返回為數(shù)組。
(4)繼續(xù)編寫B(tài)ranch右側(cè)邏輯:
這里通過(guò)關(guān)鍵節(jié)點(diǎn)Claim預(yù)定該SmartObject的使用,防止別的使用者也查找到該SmartObject。通過(guò)Claim Handle可以拿到該Slot進(jìn)行下一步處理,例如這里就將AI位置設(shè)置給了Slot。
網(wǎng)上教程用節(jié)點(diǎn)Use Claimed Gameplay Behavior Smart Object比較多,該節(jié)點(diǎn)可以調(diào)用AI移動(dòng)至目標(biāo)點(diǎn),然后觸發(fā)Behavior,但需要布置尋路網(wǎng)格比較麻煩,因此這里直接設(shè)置位置表示觸發(fā)完成。
(5)最后,使用完Claim Handle后,調(diào)用Release接口,釋放占用: