Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
Tags
- https://eo-oe.tistory.com/
- https://ji-han.tistory.com/
- https://hjmag1120.tistory.com/
- 태어난김에 보스까지
- https://mynameiskgws.tistory.com/
- 이리5조
- 스파르타코딩클럽
- https://vetenir.tistory.com/
Archives
- Today
- Total
info8995 님의 블로그
플레이어를 추적하는 AIController 구현 본문
1. 목표
- AI가 플레이어를 인지 → 추적 → 놓침 → 재추적/포기 등의 상태 전환 기반 행동을 하도록 구현
- 시야 기반 Perception 시스템을 사용하여 감지
- 거리 기반 Detection / Chase / LoseInterest 로직 포함
- 끊긴 NavMesh에서도 자동 점프 이동이 가능하도록 자동 네비게이션 링크 테스트 포함
🧠 2. 핵심 클래스 구성
▶️ AChaser_AIController
- AIController 상속
- 거리/상태 기반 추적 로직 구현
- UAISenseConfig_Sight를 통한 시야 감지 구성
▶️ 상태 머신: EAIState

⚙️ 3. 주요 변수 및 파라미터
변수명설명기본값
| DetectionRadius | 의심 상태 전환 거리 | 1500.0f |
| ChaseRadius | 추적 시작 거리 | 1000.0f |
| LoseInterestRadius | 추적 포기 거리 | 2000.0f |
| TargetActor | 추적 대상 (주로 플레이어) | ACharacter* |
| LastKnownLocation | 마지막 감지 위치 저장 | FVector |
👁️ 4. AI Perception (시야 감지)

- OnPerceptionUpdated 델리게이트로 감지 여부 콜백 처리
- 성공 감지 시: StartChasing, 실패 시: MoveTo LastKnownLocation → Suspicious 상태 전환
5. 상태 전환 로직

감지 거리 → 추적 거리 → 추적 종료 거리 → 다시 Idle 로 순환되는 구조
6. 디버깅 & 시각화
DrawDebugLine(GetWorld(), GetActorLocation(), TargetActor->GetActorLocation(), FColor::Red, false, -1, 0, 2.0f);
- 추적 중 디버그 라인 표시하여 AI의 시선 방향과 타겟 위치 시각화
🏃♂️ 7. 자동 네비게이션 링크 (점프 이동)
- RecastNavMesh → Runtime Generation → 자동 NavLink 활성화
- GeneratedNavLinksProxy 블루프린트에서 점프 처리 이벤트 그래프 작성
- 끊긴 NavMesh에서도 AI가 장애물을 뛰어넘어 이동 가능
배운 점 & 느낀 점
- 시야 기반 감지를 통해 자연스럽고 현실적인 AI 행동 구현 가능
- Perception + StateMachine + Distance Condition 조합은 매우 강력한 AI 로직 구성 방식
- NavLink 자동화를 통해 복잡한 맵에서도 AI가 부드럽게 이동할 수 있도록 구성 가능
- 상태 전환과 거리 체크를 계층적으로 구성하니 로직이 훨씬 안정적임
'TIL(Today I Learned) > Unreal Engine' 카테고리의 다른 글
| 언리얼 엔진 AI 애니메이션 블루프린트 및 스테이트 머신 구현 (1) | 2025.04.30 |
|---|---|
| AI에 애니메이션 시스템 적용하기 (0) | 2025.04.29 |
| Unreal Engine AI 구현 정리 (0) | 2025.04.22 |
| 언리얼 밤하늘 (0) | 2025.04.16 |
| 언리얼 기본 캐릭터 FBX로 변경하기 (0) | 2025.04.08 |