오늘의 목표
ch3 팀 프로젝트 회의
언리얼 마스터 라이브세션 수강
ch3 팀 프로젝트
언리얼 마스터 과제 4번 (~5/7)

팀 프로젝트 <Last Artemis>
맡은 역할: 아군 AI 만들기
구현할 것 목록
- 아군 캐릭터 구현
- **- [ ] 체력/방어력 시스템 (base 캐릭터 상속)** **- [ ] 피격/사망 처리**
- 적 AI 탐지
- 적 AI 추적
- 공격 범위 내 공격
- NavMesh 기반 경로 탐색
- 장애물 회피
추가 구현 가능 요소
- 아군→플레이어 서포트
- 체력 회복
- 오염도 회복 etc…
상속구조
BaseCharacter
ㄴ아군AI
(나중에 적군 AI와 공통되는 부분 묶어서 BaseAI 만들기로 함)
- PerceptionSystem(적/아군 인식)
- 어떤 캐릭터를 적/아군으로 인식할지 설정해서 쓰게 하면 될 것 같음 아마도(확인필요)
- Blackboard + BehaviorTree
AI 기억과 판단
1. 아군이 존재하는 목적부터 정의하기
- 아군이 플레이어와 함께 싸우는가, 아니면 독립적으로 싸우는가?
- 독립적으로.
- 플레이어가 없을 때 아군은 어떻게 행동해야 하는가?
- 플레이어가 멀리 있을 때 → 플레이어 가까이로 이동
- 플레이어가 죽었을 때 → 게임오버되므로 상관 X
- 아군이 죽으면 어떻게 되는가?
- 그냥 죽음 vs 부활?
(고민됨)일단 전자로 결정
- 그냥 죽음 vs 부활?
2. 세부 기획
감지
- 아군은 적을 어떻게 발견하는가?
- 라인 트레이싱으로 감지
- 발견한 대상이 적인지 아군인지 어떻게 구별하는가?
- 감지한 대상의 태그 확인?
이동
- 아군은 평소에 어디에 있는가?
- 게임 첫 시작 - 특정 위치에서 스폰
- 플레이어와 특정 거리 내에서 랜덤으로 이동?
- 적을 발견했을 때 어디로 이동하는가?
- 적이 사정거리 내에 들어올 때까지 적이 있는 쪽 방향으로 장애물을 피하면서 이동
- (일단은 직선이동으로 구현부터 하는게 나을듯)
- 플레이어가 멀어지면 어떻게 하는가?
- 플레이어가 특정 거리 내에 들어올때까지 장애물을 피하면서 이동
- (마찬가지로 직선이동 구현부터)
전투
- 적과의 거리에 따라 행동이 어떻게 달라지는가?
- 적이 보이지 않으면 플레이어와 특정 거리를 유지하면서 맵을 랜덤으로 돌아다니며 적을 찾음
- 적을 발견했고, 적과의 거리가 사정거리보다 길면 가까이 접근.
- 사정거리 내에 적이 들어오면 공격
- 가장 거리가 가까운 적부터 공격
- 공격 타이밍은 어떻게 결정하는가?
- 적이 사정거리 내에 들어오면 바로 공격
- 아군이 피격당하면 행동이 바뀌는가?
- 아군이 피격당하면 아군을 공격한 적을 우선적으로 공격? 아니면 플레이어가 피격당하면 플레이어를 공격한 적을 우선적으로 공격…근데 생각해보니까 좀 웃기다…다같이 우르르 몰려가서 패기
- 아군이 피격당해서 체력이 특정 수치 이하로 떨어지면 서포트?수치는 조정가능
- 서포트가 트리거되었을 때 플레이어 근처로 이동 후 발동.
- 여기서 서포트란: 플레이어 체력이 특정 수치 (30%) 이하로 내려갔을 때 힐 / 오염도가 특정 수치 이상 (70%) 올라갔을 때 오염도 해소
판단
- 위 상황들 중 우선순위는 어떻게 되는가?
- 조건 충족 시 → 플레이어한테 이동 → 힐/오염도 해소
- 적 감지 → 사정거리까지 이동 → 공격
- 피격 시 → 공격자로 타겟 전환
- 적 없음 → 플레이어 주변 랜덤 이동
- 플레이어 멀어짐 → 플레이어 쪽으로 이동
- 1순위 — 서포트 판단
- 동시에 여러 상황이 발생하면 무엇을 먼저 하는가?
- 플레이어 체력이 특정 수치 이하일 때 서포트하는 것이 최우선.
- 그다음 가장 가까이 있는 적 or 피격당한 적부터 때림
- 그다음 이동
3. 구현 순서 고민해보기
어떤 걸 먼저 만들어야 나머지가 자연스럽게 연결될까요?
힌트: 감지가 없으면 전투가 시작될 수 없고, 판단이 없으면 이동 목적지가 결정되지 않습니다.
감지부터
감지
감지 범위…흠 일단 1000?
시야각 제한: 130도
감지 주기: 0.1초
아군에게 ‘Ally’ 태그 부여해서 감지→Ally태그 확인→공격 여부 판단
플레이어에는 ‘player’ 태그 부여하면 될듯
서포트
플레이어 체력이 특정 이하로 떨어지면 or 오염도가 특정 수치 이상으로 증가하면 Support Event 트리거
→ 트리거되면 가장 가까운 아군이 서포트하는 방식으로?
델리게이트로 구현하면 된다는데 안써봐서 공부해야된다
일단 BaseCharacter 상속받아서 기본 체력/방어력/피격/사망 처리부터 ㄱㄱ
체력:
방어력: 퍼센트로 곱해서 처리할 것인지 상수값을 공격력에서 빼서 적용시킬것인지…
'Unreal5 공부 > TIL' 카테고리의 다른 글
| 2026/5/6 TIL (0) | 2026.05.06 |
|---|---|
| 2026/5/4 TIL (0) | 2026.05.04 |
| 2026/04/29 TIL (1) | 2026.04.29 |
| 2026/04/28 TIL (0) | 2026.04.28 |
| 2026/04/27 TIL (0) | 2026.04.27 |