지금까지는 플레이어 캐릭터 움직임, 상호작용, UI 개발을 다뤘습니다. 하지만 게임 세계를 완성하려면 플레이어와 상호작용하는 인공지능(AI) 캐릭터가 필요합니다. 언리얼 엔진은 복잡한 AI 동작을 설계/구현할 수 있도록 비헤이비어 트리(Behavior Tree)를 제공합니다.
이번 장에서는 AI 시스템 구축의 핵심 요소인 비헤이비어 트리를 중심으로 정리합니다.
AI 시스템(AI System)은 게임 내에서 플레이어가 아닌 캐릭터(NPC: Non-Player Character)가 마치 지능을 가진 것처럼 행동하도록 만드는 모든 로직과 기술을 포함합니다. NPC는 단순히 정해진 경로를 이동하는 것부터, 플레이어를 추적하고 공격하며, 전술적으로 움직이는 등 다양한 행동을 보여줄 수 있습니다.
비헤이비어 트리(Behavior Tree)는 이러한 NPC의 복잡한 의사결정 및 행동 패턴을 계층적인 트리 구조로 시각적으로 표현하고 관리하는 도구입니다. 마치 순서도나 의사결정 트리처럼, NPC가 특정 상황에서 어떤 행동을 할지, 그리고 그 행동의 우선순위와 조건은 무엇인지를 정의합니다.
비헤이비어 트리가 필요한 이유비헤이비어 트리는 여러 종류의 노드들이 계층적으로 연결되어 NPC의 행동을 지시합니다. 주요 노드 유형은 다음과 같습니다.
Move To, Play Animation, Attack, Wait 등)아래 다이어그램은 비헤이비어 트리가 한 번 판단할 때 어떤 순서로 조건을 보고 행동을 실행하는지 정리한 것입니다.
비헤이비어 트리의 기본 이해에서 노드 흐름, 값 전달, 실행 결과를 정리한 것입니다.
비헤이비어 트리는 AI의 두뇌 역할을 하지만, 실제 게임플레이 데이터(플레이어의 위치, NPC의 체력, 현재 목표 등)를 직접 저장하지는 않습니다. 이러한 데이터는 블랙보드(Blackboard)라는 별도의 데이터 저장소에 저장되며, 비헤이비어 트리의 노드들은 이 블랙보드에서 필요한 정보를 읽거나 씁니다.
TargetLocation, TargetActor, IsAggro, CurrentHealth 등의 변수를 블랙보드 키로 설정하고, 비헤이비어 트리의 서비스, 데코레이터, 태스크 노드에서 이 키의 값을 사용하거나 변경합니다.인공지능(Artificial Intelligence) > 비헤이비어 트리(Behavior Tree)를 선택합니다.BT_EnemyAI)BT_EnemyAI 비헤이비어 트리를 생성할 때, 함께 사용할 블랙보드를 생성할지 묻는 대화 상자가 나타납니다. 블랙보드 생성(Create New Blackboard)을 선택합니다.BB_EnemyAI)BT_EnemyAI 비헤이비어 트리 에디터를 엽니다.블랙보드(Blackboard) 드롭다운 메뉴에서 BB_EnemyAI를 선택하여 연결합니다.AIC_Enemy)AIC_Enemy 에디터를 엽니다.Event BeginPlay 뒤에 Run Behavior Tree 노드를 추가합니다.BTAsset 핀에 여러분이 만든 BT_EnemyAI를 연결합니다.BP_EnemyCharacter)를 엽니다.폰(Pawn) 섹션의 AI 컨트롤러 클래스(AI Controller Class)를 AIC_Enemy로 설정합니다.이제 BP_EnemyCharacter가 스폰되면 자동으로 AIC_Enemy가 컨트롤하고, 이 컨트롤러가 BT_EnemyAI를 실행하여 NPC의 행동을 제어하게 됩니다.
비헤이비어 트리는 언리얼 엔진에서 복잡한 AI를 구현하는 가장 강력하고 권장되는 방법입니다. 다음 절에서는 이 비헤이비어 트리와 블랙보드를 이용한 기본적인 AI 행동 구현 방법을 구체적인 예시와 함께 다루겠습니다.
처음 설정할 때는 트리 자체보다 컨트롤러, 블랙보드, NPC 폰 연결이 빠지기 쉽습니다. 아래 점검표로 실행 경로를 따라가면 AI가 멈춰 있는 원인을 더 빠르게 찾을 수 있습니다.
AI가 움직이지 않을 때는 비헤이비어 트리 노드만 보지 말고, 컨트롤러가 트리를 실행했는지, 블랙보드 키가 갱신되는지, 폰에 컨트롤러가 붙었는지를 함께 추적해야 합니다.
이번 절에서는 언리얼 엔진 AI 시스템의 핵심인 비헤이비어 트리의 기본 개념과 블랙보드와의 관계, 그리고 기본적인 설정 방법에 대해 알아보았습니다. 비헤이비어 트리는 복잡한 AI 로직을 시각적이고 체계적으로 관리하는 데 필수적인 도구입니다.
마지막으로 비헤이비어 트리를 읽을 때 Selector, Sequence, Blackboard Key의 판단 단위를 정리합니다.
비헤이비어 트리의 기본 동작은 입력 이벤트, 상태 변경, 실행 위치, 디버그 기준으로 점검합니다.
비헤이비어 트리의 기본 이해에서 놓치기 쉬운 기준은 보충 점검 항목으로 다시 확인합니다.