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