使用行為樹需確保目標(biāo)藍(lán)圖繼承自Character基類,然后根據(jù)本文下面的流程操作即可。
1.創(chuàng)建AIController
首先需要在角色自身藍(lán)圖之外創(chuàng)建一個(gè)新的藍(lán)圖,繼承自AIController:
2.掛載AIController
找到角色自身藍(lán)圖類設(shè)置中的Pawn一欄,掛載剛剛創(chuàng)建的控制器藍(lán)圖:
3.創(chuàng)建行為樹文件
創(chuàng)建行為樹文件,添加Sequence節(jié)點(diǎn),可以單擊New Task創(chuàng)建自定義任務(wù)節(jié)點(diǎn),便于初期上手使用。
掛載剛剛創(chuàng)建的自定義Task節(jié)點(diǎn):
4.綁定行為樹啟動
回到剛剛創(chuàng)建的控制器類,鏈接節(jié)點(diǎn)Run Behavior Tree以啟動行為樹。
5.綁定行為樹節(jié)點(diǎn)事件
接下來為自定義節(jié)點(diǎn)添加事件,需要注意接收事件后,需要主動調(diào)用函數(shù)Finish Execute告訴行為樹該節(jié)點(diǎn)調(diào)用完成了,并且需要返回Success變量,以確認(rèn)該任務(wù)是否完成,完成后才會往下執(zhí)行后面的節(jié)點(diǎn)。
6.測試
運(yùn)行場景測試后,會發(fā)現(xiàn)節(jié)點(diǎn)正常執(zhí)行。
7.添加延遲
但我們不需要這么高頻率的調(diào)用,可以在后面加一個(gè)Wait節(jié)點(diǎn):
這樣行為樹就會1秒鐘執(zhí)行一次。文章來源:http://www.zghlxwxcb.cn/news/detail-607527.html
Tips:文章來源地址http://www.zghlxwxcb.cn/news/detail-607527.html
- Sequence節(jié)點(diǎn) - 從左往右執(zhí)行,當(dāng)一個(gè)節(jié)點(diǎn)執(zhí)行成功且結(jié)束,則執(zhí)行下一個(gè),當(dāng)一個(gè)節(jié)點(diǎn)執(zhí)行失敗,則跳出。
- Selector節(jié)點(diǎn) - 從左往右執(zhí)行,當(dāng)一個(gè)節(jié)點(diǎn)執(zhí)行失敗,則執(zhí)行下一個(gè),只要有一個(gè)節(jié)點(diǎn)執(zhí)行成功,則跳出,且 Selector節(jié)點(diǎn)算作執(zhí)行成功。
- 行為樹不是每幀執(zhí)行的,而是隔幾幀執(zhí)行,也沒有接口可以改為每幀執(zhí)行。
- Event Receive Tick AI - 只有在Receive Execute節(jié)點(diǎn)沒有執(zhí)行Finish Execute時(shí),才會進(jìn)入Receive Tick事件的調(diào)用,調(diào)用時(shí)整個(gè)行為樹是阻塞的,直到調(diào)用了Finish Execute。另外Receive Tick事件測試過,是每幀都調(diào)用。然后,Receive Tick如果要跳出,不想阻塞,就在Tick里調(diào)用一次Finish Execute就可以結(jié)束阻塞。(而用在Parallel節(jié)點(diǎn)下時(shí)是例外,會一直執(zhí)行Tick)
- 事件后帶不帶AI后綴的區(qū)別是參數(shù)不一樣,其余執(zhí)行邏輯都是相同的。
- Decorator 裝飾器節(jié)點(diǎn),不可掛載于根Sequence、Selector、Parallel節(jié)點(diǎn)上,掛載不起作用。
- Decorator裝飾器節(jié)點(diǎn)可以做敵人受擊等行為的被動打斷監(jiān)聽,需要在行為樹面板中的節(jié)點(diǎn)上設(shè)置Observe aborts到Self,設(shè)置正確后所有子節(jié)點(diǎn)會變色。
- Service服務(wù)節(jié)點(diǎn),可以掛載到當(dāng)前節(jié)點(diǎn)上,用于更新黑板的變量或做一些偏后臺的Tick操作。
- Receive Abort 節(jié)點(diǎn)可以響應(yīng)Abort中斷事件,事件觸發(fā)時(shí)要調(diào)用Finish Abort函數(shù)提示結(jié)束,否則會一直阻塞。
到了這里,關(guān)于UE4/5 行為樹使用教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!