몬스터 AI / 패턴 작성완료구현밸런싱미완료
본 문서는 몬스터의 인지·상태 머신·전투 행동 패턴을 정의한다. 시야/청각 기반 인지 트리거와 PDF의 3단계 인지 모델을 코드의 상태 머신과 정렬한다.
플레이 흐름 (상태 머신)
섹션 제목: “플레이 흐름 (상태 머신)”flowchart LR subgraph CALM [비전투] U[Unaware] end subgraph SUSPECT [의심] A[Alert] R[Return 귀환] end subgraph COMBAT [전투] W[Aware] C[Chase 추격] AT[Attack 공격] CF[Confront 대치] end subgraph HIT [피격 후] H[Hitted · Stun · Groggy · FatalHit] end D[Dead] U -->|소리·실루엣| A U -->|강한 자극·피격| W A -->|시야·재소음·피격| W A -->|일정 시간 무사건| R R --> U W --> C W --> AT W --> CF C --> AT CF --> AT AT --> CF W -->|완전 이탈 100m| R W -.피격.-> H H --> W W --> D classDef calm fill:#bbf7d0,stroke:#16a34a,stroke-width:2px,color:#14532d classDef alert fill:#fef3c7,stroke:#d97706,stroke-width:2px,color:#78350f classDef combat fill:#fed7aa,stroke:#ea580c,stroke-width:2px,color:#7c2d12 classDef hit fill:#fce7f3,stroke:#be185d,stroke-width:2px,color:#831843 classDef dead fill:#fecaca,stroke:#dc2626,stroke-width:2.5px,color:#7f1d1d class U calm class A,R alert class W,C,AT,CF combat class H hit class D dead
핵심 원칙
섹션 제목: “핵심 원칙”| 원칙 | 규칙 | 의미 |
|---|---|---|
| 3단계 인지 | 비전투 / 의심 / 전투 3단계 + 세부 행동 타입 | 단순한 이분법이 아닌 점진적 반응 |
| 단일 상위 상태 | 동시에 둘 이상의 상위 상태를 가지지 않는다 | 상태 충돌 없는 명확한 행동 |
| 청각 + 시야 트리거 | 청각 임계 30dB / 시야 120도 + 거리 3m | 소음 관리와 위치가 생존 핵심 |
| 그룹 어그로 | isLinked = true이면 한 명 어그로 시 전체 어그로 | 은밀 접근의 중요성 |
| 공통 상태 머신 | 상위 상태 머신은 공통, 공격 패턴은 몬스터별 개별 | 확장성 있는 구조 |
1. 몬스터 상태 목록
섹션 제목: “1. 몬스터 상태 목록”코드(MonsterState) 기준 14개 상태.
| 상태 | 그룹 | 의미 |
|---|---|---|
None | — | 초기/미할당 |
Unaware | 비전투 | 플레이어 미인지. 일상 패턴 (Idle, 정찰) |
Alert | 의심 | 이상 감지. 응시 / 천천히 이동 |
Return | 의심 | 비전투 거점으로 귀환 중 |
Aware | 전투 | 명확한 적 인지 |
Chase | 전투 | 추격 |
Attack | 전투 | 공격 패턴 수행 |
Confront | 전투 | 대치 (사정거리 밖) |
Cancel | 전투 | 액션 캔슬 — 패링 성공 또는 그로기 게이지 가득 참 |
Hitted | 피격 후 | 일반 피격 모션 |
Stun | 피격 후 | 스턴 |
Groggy | 피격 후 | 자세 풀림 (패링·강인함 0) |
FatalHit_Front | 피격 후 | 앞잡 피격 |
FatalHit_Back | 피격 후 | 뒤잡 피격 |
Dead | 종료 | 사망 |
2. 인지 전환
섹션 제목: “2. 인지 전환”비전투 → 의심
섹션 제목: “비전투 → 의심”다음 중 하나 발생 시 Unaware → Alert.
- 일정 거리 이내에서 소음 발생 (청각 임계 초과 — 몬스터별 차등).
- 시야 범위 안에서 실루엣 순간 포착.
비전투 → 전투 (의심 건너뛰기)
섹션 제목: “비전투 → 전투 (의심 건너뛰기)”다음 중 하나로 즉시 Unaware → Aware.
- 강한 자극 (강력한 폭발·스킬 등).
- 직접 피격.
- 매우 근거리에서 플레이어 갑작스러운 등장.
의심 → 비전투 복귀
섹션 제목: “의심 → 비전투 복귀”Alert → Return → Unaware 조건: 일정 시간(n초) 동안 추가 소리·시야 정보 없음 + 천천히 이동 중 미발견.
의심 → 전투
섹션 제목: “의심 → 전투”Alert → Aware 조건: 플레이어 시야 진입 / 의심 중 피격 / 의심 중 소리 재청취.
전투 → 비전투
섹션 제목: “전투 → 비전투”플레이어 완전 이탈(거리 100m 이상) 또는 전투 종료 판정 시간 경과 시 Return → Unaware.
3. 청각
섹션 제목: “3. 청각”3.1 청각 모델
섹션 제목: “3.1 청각 모델”- 소음은 음원에서 발생하며 거리에 따라 감쇠.
- 수신 소음이 **청각 기준(고정값)**보다 크면 인지된다.
- 청각 기준은 캐릭터 스테이터스가 아니라 고정 수치 (코드·PDF 일치).
3.2 소음 발생원
섹션 제목: “3.2 소음 발생원”| 발생원 | 소음 비율 |
|---|---|
| 걷기 | 기본 ×30% |
| 일반 이동 | 기본 |
| 질주 | 기본 ×150% |
| 무기 소리 (공격·휘두름) | 액션 종속 |
| 오브젝트 파손 | 추후 추가 예정 |
3.3 시야 인지 기준
섹션 제목: “3.3 시야 인지 기준”- 몬스터 전방 120도 내에 있을 때.
- 몬스터 주변 3m 근처에 있을 때 (시야 무관).
4. 상태별 행동 패턴
섹션 제목: “4. 상태별 행동 패턴”비전투 (Unaware)
섹션 제목: “비전투 (Unaware)”| 행동 타입 | 설명 | 비율 |
|---|---|---|
| Idle 1 (정지 대기) | 서성거림·둘러보기·하품·앉았다 일어나기 | 30% |
| Idle 2 (좁은 공간 이동) | 정해진 경로 천천히 이동 | 70% |
의심 (Alert)
섹션 제목: “의심 (Alert)”| 행동 타입 | 설명 | 비율 |
|---|---|---|
| 응시 | 소리·움직임 방향으로 몸 돌려 주시 | 30% |
| 천천히 이동 | 걷기 속도로 조심스럽게 접근 | 70% |
전투 (Aware → Chase / Attack / Confront)
섹션 제목: “전투 (Aware → Chase / Attack / Confront)”| 행동 타입 | 조건 |
|---|---|
Attack (공격) | 사정거리 내에서 패턴 실행 |
Confront (대치) | 사정거리 밖에서 좌우 이동·타이밍 탐색 |
Chase (추격) | 사정거리 진입까지 이동 |
피격 후
섹션 제목: “피격 후”| 상태 | 트리거 |
|---|---|
Hitted | 일반 피격 |
Stun | 스턴 임계 도달 |
Groggy | 패링 당함 또는 강인함 0 |
FatalHit_Front | 그로기 + 정면 45도 공격 |
FatalHit_Back | 무자각 상태 + 후면 공격 |
5. 몬스터 그룹 어그로
섹션 제목: “5. 몬스터 그룹 어그로”isLinked = true그룹: 한 명Aware전이 시 같은 그룹 전원 어그로 (MapModule.GetLinkedMonsters).isLinked = false그룹: 개별 어그로.
상세 그룹 데이터는 맵 모듈 §5 참조.
6. 몬스터 종별
섹션 제목: “6. 몬스터 종별”| 클래스 | 컨셉 | 특이사항 |
|---|---|---|
MonsterMan | 인간형 일반 | — |
MonsterAshigaru | 아시가루 (보병) | — |
MonsterBandit | 산적 | — |
MonsterDog | 짐승류 | 치명타 액션 없음 |
공통 상태 머신은 동일하나 공격 패턴·이동·인지 임계·치명타 액션 유무는 종별 차이.
연결 시스템
섹션 제목: “연결 시스템”| 시스템 | 연결 지점 |
|---|---|
| 전투 | Attack 패턴, 피격·스턴·그로기·치명타 처리. |
| 캐릭터 스테이터스 | 몬스터 RuntimeStat·AttackRating·Defense. |
| 맵 모듈 | MonsterGroup·핀 좌표·어그로 연동. |
| 아이템·루팅·드랍 | 몬스터 tier·착용 아이템. |
| 감지 시스템 | 시야·청각 인지 트리거 상세. |
열린 질문
섹션 제목: “열린 질문”Chase↔Confront전이 임계와 거리 — 보류.Return상태에서 재인지 시 처리 (재추격 vs Alert 다운그레이드) — 보류.- 청각 dB 값·소음 발생원별 dB 표 (시트 미관리, 몬스터별 차등 확정).
- Idle 패턴 (잡담·환경 오브젝트 사용) 도입 시점.
- 그룹 어그로 전파 거리·시간 지연 여부.