팀프로젝트 준비
NPC 성향 맹인 주인공이 파악하는 단서
| NPC 성향 | 맹인 주인공이 파악하는 단서 |
| 보호형 | 몬스터 쪽으로 뛰어가는 발소리, “뒤로 가!” 같은 대사 |
| 안내형 | 길 설명, 위험 구역 경고 |
| 겁쟁이 | 떨리는 목소리, 멀어지는 발소리 |
| 이기적 | 문 잠그는 소리, 숨죽이는 소리 |
| 배신형 | 일부러 틀린 길 안내, 몬스터를 부르는 소리 |
| 약탈형 | 가방 뒤지는 소리, 아이템 무게 변화 |

AIController
-> NPC 조종.
ex)
저기로 이동해/플레이어를 따라가/문을 닫아/도망쳐/몬스터를 막아
Behavior Tree
-> AI의 행동 순서표.
-> 어떤 조건일 때 어떤 행동을 할지를 시각적으로 짜는 시스템.
ex) 겁쟁이 NPC인 경우.
몬스터를 봤는가?
→ 봤다
→ 도망갈 장소가 있는가?
→ 있다
→ 도망간다
ex) 보호형 NPC인 경우.
플레이어가 위험한가?
→ 위험하다
→ 몬스터에게 접근한다
→ 시간을 번다
Blackboard
-> AI가 참고하는 메모장.
-> Behavior Tree가 판단하기 위해서는 정보가 필요함.
-> Behavior Tree는 Blackboard 값을 보고 판단함.
ex)
PlayerActor = 현재 플레이어
MonsterActor = 근처 몬스터
CurrentState = Escape
NPCType = Coward
TargetLocation = 숨을 장소 위치
Finite Statr Machine, FSM
-> 상태기계.
-> 햔재 상태를 정해놓고 상태에 따라 다르게 행동하는 방식.
-> NPC가 지금 무슨 모드인지를 관리하는 구조.
ex) NPC 상태
Idle
Talk
Follow
RunAway
Hide
CloseDoor
Report
Loot
ex) 겁쟁이 NPC
Idle 상태
↓ 몬스터 발견
RunAway 상태
↓ 숨을 곳 도착
Hide 상태
ex) 배신형 NPC
Idle 상태
↓ 플레이어가 도둑질하는 걸 봄
Report 상태
↓ 몬스터에게 위치 전달
RunAway 상태
NPC Base Class
-> 모든 NPC가 공통으로 쓰는 기본 설계도.
NPC 종류마다 클래스를 따로 만드는 상속구조보다는
NPC클래스는 하나만 만들고, 성향 데이터로 행동을 바꾸는 데이터 기반으로 채택.
Environment Query System, EQS
-> AI용 위치 추천기.
-> AI가 환경을 평가하여 최적의 위치를 선택하는 시스템.
플레이어가 NPC 근처 접근
↓
ANPCBase가 상호작용 감지
↓
NPCPersonalityData 확인
↓
현재 상황 판단
몬스터 있음? / 도난 목격? / 플레이어 위험?
↓
FSM 상태 변경
↓
Behavior Tree가 행동 실행
↓
NPC 행동
도망 / 숨기 / 문 닫기 / 신고 / 약탈 / 안내 / 보호
정리
ANPCBase
- 공통 기능
NPCPersonalityData
- 성향 데이터
ENPCState
- 현재 상태
NPC_AIController
- AI 실행
Blackboard
- 판단용 정보 저장
Behavior Tree
- 행동 선택
'내일배움캠프' 카테고리의 다른 글
| 내일배움캠프 언리얼트랙 35일차 - TA 1강 (0) | 2026.06.11 |
|---|---|
| 내일배움캠프 언리얼트랙 34일차 - 과제04 (0) | 2026.06.10 |
| 내일배움캠프 언리얼트랙 32일차 - 과제 03 (0) | 2026.06.09 |
| 내일배움캠프 언리얼트랙 31일차 - 과제03 (0) | 2026.06.05 |
| 내일배움캠프 언리얼트랙 30일차 - 과제03 발제 (0) | 2026.06.04 |