언리얼 엔진 5 AI 시스템 완벽 가이드: Behavior Tree부터 NPC까지

게임 AI를 처음 만드는 사람도 따라할 수 있는 언리얼 엔진 5 AI 시스템 완벽 가이드입니다.

럿지 AI 팀
3분 읽기

AI 시스템 완벽 마스터



AI 구성 요소



**필수 4요소:**
1. **AI Character:** AI가 제어할 캐릭터
2. **AI Controller:** AI의 두뇌
3. **Behavior Tree:** 행동 패턴
4. **Blackboard:** 데이터 저장소

1단계: AI Character 생성



``blueprint
1. Character Blueprint 생성: BP_AICharacter
2. AI Controller Class 지정
3. Mesh와 애니메이션 설정
`

**기본 설정:**
- Movement Component: 이동 속도 설정
- Capsule Collision: 충돌 크기

2단계: AI Controller 생성



`blueprint
1. AI Controller Blueprint 생성: BP_AIController
2. Event BeginPlay에서 Behavior Tree 실행
`

**핵심 노드:**
- Run Behavior Tree
- Blackboard 참조

3단계: Blackboard 설정



**Blackboard란?**
AI의 메모리 (변수 저장)

**생성:**
1. AI 폴더 우클릭 → Artificial Intelligence → Blackboard
2. 이름: BB_AICharacter

**키 추가:**
- TargetLocation (Vector)
- TargetActor (Object → Actor)
- PatrolIndex (Int)
- State (Enum: Patrol, Chase, Attack)

4단계: Behavior Tree 구조



**Behavior Tree란?**
AI의 의사결정 구조

**생성:**
1. AI 폴더 우클릭 → Artificial Intelligence → Behavior Tree
2. 이름: BT_AICharacter

**기본 구조:**
`
Root
└── Selector (우선순위 선택)
├── Sequence (공격)
│ ├── Condition: 플레이어 가까이?
│ └── Task: 공격
├── Sequence (추격)
│ ├── Condition: 플레이어 시야?
│ └── Task: 쫓아가기
└── Sequence (순찰)
└── Task: 순찰 포인트 이동
`

주요 노드 설명



Selector (선택자)


- 자식 노드를 순서대로 실행
- 하나 성공하면 멈춤
- 우선순위 행동에 사용

Sequence (시퀀스)


- 자식 노드를 순서대로 실행
- 하나 실패하면 멈춤
- 조건 체크 후 실행에 사용

Task (작업)


- 실제 행동 구현
- C++ 또는 Blueprint

Decorator (조건)


- 노드 실행 조건
- 예: "적이 가까이 있는가?"

실전: 순찰 AI 만들기



**1. 순찰 포인트 배치**
`blueprint
1. Actor 생성: BP_PatrolPoint
2. 맵에 여러 개 배치
3. Tag 추가: "PatrolPoint"
`

**2. Behavior Tree**
`
Sequence (순찰)
├── Task: 다음 순찰 포인트 찾기
├── Task: 해당 위치로 이동
└── Task: 2초 대기
`

**3. 이동 Task**
- Move To 노드 사용
- Acceptable Radius: 100

실전: 추격 AI 만들기



**1. 시야 감지**
`blueprint
Pawn Sensing Component 추가
- Sight Radius: 2000
- Peripheral Vision Angle: 90
`

**2. Behavior Tree**
`
Sequence (추격)
├── Decorator: Blackboard의 Target이 있는가?
└── Task: Target 위치로 이동
`

**3. 이벤트**
`blueprint
On See Pawn → Blackboard에 Target 저장
On Lost Pawn → Blackboard의 Target 제거
`

최적화



**거리별 업데이트:**
`blueprint
IF 플레이어와 거리 < 1000:
Tick Interval = 0.1 (빠름)
ELSE IF < 3000:
Tick Interval = 0.5 (중간)
ELSE:
Tick Interval = 2.0 (느림)
``

**LOD AI:**
- 가까운 AI: 정교한 행동
- 먼 AI: 단순한 행동

100명 NPC 배치



**성능 유지 비결:**
1. Instanced Static Mesh (시각)
2. 거리별 AI 업데이트 주기
3. 화면 밖 AI 업데이트 중지
4. Navigation Mesh 최적화

실전 프로젝트



**8주 완성:**
언리얼 엔진 5 스파르타 클래스

**구현 내용:**
- 순찰 AI
- 추격/공격 AI
- 교통 AI (차량)
- 100+ NPC 최적화

---

**태그**: #언리얼엔진 #UE5 #AI시스템 #BehaviorTree #게임AI #NPC제작

L

럿지 AI 팀

AI 기술과 비즈니스 혁신을 선도하는 럿지 AI의 콘텐츠 팀입니다.