언리얼 엔진 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의 콘텐츠 팀입니다.
관련 포스트
비즈니스
언리얼 엔진 5 배우고 프리랜서 단가 3배 올렸습니다
유니티 프리랜서 개발자가 언리얼 엔진 5를 배워 일당 30만원에서 100만원으로 단가를 올린 실제 이야기입니다.
•5분 읽기
비즈니스
글로벌 게임잼 대상 수상! 언리얼 엔진 5가 우승의 비결이었습니다
대학생 팀이 언리얼 엔진 5로 48시간 만에 게임을 만들어 글로벌 게임잼에서 대상을 수상하고 게임 회사 스카웃까지 받은 이야기입니다.
•4분 읽기
비즈니스
대학생 인턴, 언리얼 엔진 5로 3개월 만에 정규직 전환 (연봉 5000만원)
게임 회사 인턴으로 시작한 대학생이 언리얼 엔진 5 실력으로 빠르게 인정받아 정규직으로 전환된 성공 스토리입니다.
•1분 읽기