패스트캠퍼스 환급챌린지 34일차 : RPG 전투 플레이 프로젝트로 배우는 언리얼 엔진 5 게임 개발 강의 후기

2025. 5. 4. 17:33자기계발

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

 

 

 

이번에는 언리얼 엔진의 Behavior Tree 시스템을 활용해 몬스터의 Chase행동을 구현해보았다. 이전까지는 단순히 블루프린트에서 AIController를 이용해 이동 명령만 주던 수준이었지만, Behavior Tree를 도입하면서 AI의 상태를 보다 명확하고 구조적으로 나눌 수 있게 되었다.

먼저 몬스터의 AI가 기본적으로 수행할 수 있는 상태들을 나열해보고, 그 중에서 플레이어가 일정 범위 안에 들어왔을 때 쫓아가는 행동을 중점적으로 구현했다. 이를 위해 Blackboard에 플레이어의 위치를 저장할 수 있는 Key 값을 만들고, Behavior Tree에서는 플레이어 위치를 추적하고 해당 위치로 Move To 시키는 로직을 구성했다. 플레이어의 위치는 AI Perception 시스템을 통해 획득하고, 이를 블랙보드에 전달하는 방식으로 연동했다. 이렇게 하면 AI가 시야 안에 있는 동안만 Chase 상태로 전환되며, 시야를 벗어나면 다시 Patrol 상태로 복귀할 수 있도록 트리 설계를 했다.

 

 


Behavior Tree를 통해 추격 행동을 구현해보면서 가장 좋았던 점은 AI 로직의 흐름을 한눈에 파악할 수 있다는 것이다. 기존에는 블루프린트 내부에서 분기문으로 조건을 체크하고 행동을 시키는 방식이 복잡해지기 쉬웠는데, 트리 구조를 활용하니 조건과 행동을 명확하게 나눌 수 있었고, 디버깅 시에도 어떤 노드에서 멈췄는지 확인이 쉬웠다.

또한, Blackboard를 통해 AI 상태와 데이터를 체계적으로 관리할 수 있다는 점도 매우 유용했다. 예를 들어, 플레이어가 사라졌을 때 마지막 위치를 저장해두고 그쪽으로 이동하게 하는 등의 응용이 가능하다는 점에서, Behavior Tree의 활용도는 매우 높다고 느꼈다.

저번 시간에 patrol을 끝으로 AI 수업이 끝난 줄 알았는데 아직 chase 파트가 남아 있었다. 이번엔 정말로 Behavior Tree 강의가 끝이 났고 다음에는 본격적으로 EQS 강의를 듣게 될 것 같다.

 

 

 

 

https://abit.ly/lisbva

 

Abit.ly 다운받기

 

abit.ly