언리얼 엔진

Unreal AI - Behavior Tree Task 종류 및 커스텀 구현 가이드

로안님 2025. 4. 7. 06:54

Unreal Engine Behavior Tree Task 종류 및 커스텀 구현 가이드

이 문서는 Unreal Engine의 Behavior Tree에서 사용되는 다양한 Task 노드들을 설명하고, 각 Task의 일반적인 활용 방식과 함께 커스텀 구현이 필요한 상황 및 장점에 대해서도 정리한 자료입니다. 블로그 포스트나 실무 개발에 참고할 수 있도록 구성하였습니다.


커스텀 Task를 구현해야 하는 이유

언제 커스텀 Task가 필요한가?

  • 기본 제공 Task로 처리하기 어려운 복합적인 조건 및 로직이 필요한 경우
  • 프로젝트 고유의 시스템과 동작을 정밀하게 제어해야 하는 경우
  • Blueprint만으로 구현하기 어려운 비동기, 성능 최적화, 디버깅 제어가 필요한 경우

커스텀 Task의 장점

  • 정교한 로직 작성: Blueprint 또는 C++에서 유연하게 구현 가능
  • 불필요한 기능 제거 및 최적화: 프로젝트에 꼭 맞는 동작만 구현
  • 디버깅 편의성: 로그, 분석, 조건 분기 등을 직접 제어 가능
  • 확장성과 유지 보수성: 팀 또는 프로젝트 구조에 맞춰 유연하게 대응 가능

주요 Task 설명 및 커스텀 활용 사례

1. Finish with Result

  • 설명: 현재 Task를 성공(Succeeded) 또는 실패(Failed)로 종료시킵니다.
  • 용도: 조건 검사 후 결과에 따라 AI 흐름을 조절할 때 사용.
  • 커스텀 예시: 외부 API 호출 또는 내부 상태 계산 후 결과에 따라 Task 종료.

2. Make Noise

  • 설명: AI가 주변에 소음을 발생시켜 다른 AI가 이를 인식할 수 있도록 합니다.
  • 용도: 은신 감지, 경계 유도 등 상황 전파용.
  • 커스텀 예시: 사운드 강도, 범위, 유형 등을 AI 성향에 따라 조정.

3. Move Directly Toward

  • 설명: 단순한 직선 경로를 통해 목표 지점으로 이동.
  • 용도: 장애물 고려 없이 최단 거리 이동.
  • 커스텀 예시: 물리 기반 이동, 속도 가속도 제어, 부딪힘 조건 포함 등.

4. Move To

  • 설명: 내비게이션 시스템을 사용해 목표 위치 또는 Actor로 이동.
  • 용도: 경로 탐색 및 이동 처리.
  • 커스텀 예시: NavMesh가 없거나 드론, 수중, 공중 이동 등 별도 로직 적용.

5. Move to Target

  • 설명: Blackboard의 Target 항목을 따라 이동.
  • 용도: 타겟 추적, 자동 추종 AI 등에 사용.
  • 커스텀 예시: 예측 이동, 타겟이 이동 중일 때 예상 위치로 향하는 AI 구현.

6. Play Animation

  • 설명: Animation Asset 또는 Montage 재생.
  • 용도: 상호작용, 전투, 감정 표현 등 다양한 연출.
  • 커스텀 예시: 루트모션 조건 분기, 특정 조건에서 중단 가능하도록 구현.

7. Play Sound

  • 설명: 사운드 큐(Sound Cue)를 실행.
  • 용도: 대화, 경고음, 반응 등 음향 효과 연출.
  • 커스텀 예시: 재생 후 대기 시간 삽입, 사운드 종류에 따른 추가 행동 연결.

8. Push Pawn Action

  • 설명: PawnAction을 실행하고 AI가 이를 수행하도록 지시.
  • 용도: 복합 행동이나 액션 스택 기반 AI 제어.
  • 커스텀 예시: 액션 우선순위 조절, 중첩 처리 방식 변경.

9. Rotate to Face BBEntry

  • 설명: Blackboard에 등록된 대상 방향으로 회전.
  • 용도: 시선 고정, 타겟 응시 등.
  • 커스텀 예시: 회전 속도, 자연스러운 전환 애니메이션, 타이밍 제어.

10. Run Behavior

  • 설명: 다른 Behavior Tree를 실행.
  • 용도: 하위 트리 구성 및 모듈화.
  • 커스텀 예시: 실행 전 조건 검사, 트리 간 상태 공유 로직 포함.

11. Run Behavior Dynamic

  • 설명: 런타임에 동적으로 Behavior Tree를 설정 및 실행.
  • 용도: 상황별로 다른 트리 구조 실행.
  • 커스텀 예시: AI 성격, 게임 이벤트에 따라 동적 분기.

12. Run EQSQuery

  • 설명: EQS(Environment Query System)를 실행하여 환경 조건 평가.
  • 용도: 안전한 위치 탐색, 적 탐지 등.
  • 커스텀 예시: 결과 점수 재가공, 사용자 정의 필터링.

13. Set Tag Cooldown

  • 설명: 특정 Gameplay Tag에 쿨다운을 부여.
  • 용도: 능력 재사용 제한.
  • 커스텀 예시: 다중 태그 동시 제어, 외부 쿨다운 데이터 연동.

14. Use Ability

  • 설명: Gameplay Ability System(GAS)을 이용한 능력 실행.
  • 용도: 스킬, 특수 능력, 버프/디버프 발동.
  • 커스텀 예시: 발동 조건 제어, 능력 트리거나 연출까지 Task에서 처리.

15. Wait

  • 설명: 지정된 시간 동안 대기.
  • 용도: 행동 간 시간 조절.
  • 커스텀 예시: 랜덤 대기, 외부 상태 변화 조건 대기.

16. Wait Blackboard Time

  • 설명: Blackboard 변수로 설정된 시간 동안 대기.
  • 용도: 동적 시간 조정 대기.
  • 커스텀 예시: 대기 중 조건 감시, 실시간 시간 갱신 반영 등.

마무리

위에서 소개한 기본 Task 노드들은 AI Behavior Tree 설계에서 가장 자주 사용되는 핵심 요소입니다. 하지만 프로젝트 규모가 커지고 시스템이 복잡해질수록 커스텀 Task의 필요성과 중요성도 함께 증가하게 됩니다.