[Unreal_블루프린트]#30_Behavior Tree, Tracing
Unreal 블루프린트 개발 중 "Behavior Tree" 구현을 진행합니다.
"블루 프린트" 활용에 대한 내용입니다.
Behavior Tree
1. 세팅
- Behavior Tree의 기본 세팅과 각 노드의 기능들은 위 링크를 참조해주세요!
2. Blackboard 키 세팅
- Player -> 월드 내 BP_Player 객체
- Location -> BP_Player 객체가 인지 범위 안에 없을 시 AI가 이동할 무작위 위치
3. AI Controller 클래스
- AIController 유형의 블루프린트 클래스를 생성합니다.
- AI Perception 컴포넌트를 추가합니다.
4. AI Controller::AIPerception 설정
- Sense Config 배열 추가
- Perception을 수행할 매개체를 지정합니다(Hearing, Sight, Touch,...)
- Detection By Affiliation 설정을 Detect Neutrals로 설정합니다.
5. AIPerception::On Perception Updated 이벤트 구현
- AIPerception::Get Currently Perceived Actors : AIPerception 컴포넌트를 통해 현재 인식되는 Actor 배열 반환
- Get Currently Perceived Actors가 반환하는 배열 항목 중 "BP_Player"에 캐스팅되는 값들을 Key값에 설정합니다.
- Set Value As Object : Blackboard에서 미리 생성한 Player 키 값(BP_Player 객체)을 설정합니다.
6. 결과 화면
- Debugging을 위해 플레이 중 " ' "를 누르고, 숫자 패드 4번을 눌러줍니다.
- AIPerception 컴포넌트를 통해 AI가 인식하는 BP_Player 객체 위에 "구체"가 렌더링 됩니다.
커스텀 서비스
1. BTService_Trace
2. BTService_Trace::Receive Tick AI 함수
- Max Radius 값과 AI < -> BP_Player 간의 거리 비교를 통해 추적 여부를 결정합니다.
- BP_Player가 Max Radius 범위 안에 없을 시 Player 키 값을 설정하지 않습니다!
- Get Random Point Navigable Radius를 통해 Max Radius 안에 존재하는 무작위 위치를 Location 키에 저장합니다.
BTTask_TraceAttack
1. BTTask_TraceAttack::Receive Execute AI 함수
- Montage Play: 활성화 시 재생할 Anim Montage를 설정합니다.
Behavior Tree
1. Tracing 예제 구현
- Selector + BTService_Trace: Player 키 + Location 키 설정 여부를 체크
- Sequence + Decorator(Blackboard): Player 키 값의 설정 여부에 따라서 수행되는 컴포짓 노드
- Attack(BTTask_TraceAttack): 해당 노드 활성화 시 BTTask_TraceAttack 테스크가 활성화됩니다.
결과 화면
'게임개발 > Unreal 블루프린트' 카테고리의 다른 글
[Unreal_블루프린트]#31-2_Environmental Querying System(EQS), EnvQueryContext (0) | 2022.10.10 |
---|---|
[Unreal_블루프린트]#31-1_Environmental Querying System(EQS), Grid (0) | 2022.10.05 |
[Unreal_블루프린트]#29_Multiple Damage Problem (0) | 2022.09.29 |
[Unreal_블루프린트]#28_Change Targeting (0) | 2022.09.29 |
[Unreal_블루프린트]#27_Targeting (0) | 2022.09.27 |