콘텐츠로 이동
GameDesign

몬스터 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이면 한 명 어그로 시 전체 어그로은밀 접근의 중요성
공통 상태 머신상위 상태 머신은 공통, 공격 패턴은 몬스터별 개별확장성 있는 구조

코드(MonsterState) 기준 14개 상태.

상태그룹의미
None초기/미할당
Unaware비전투플레이어 미인지. 일상 패턴 (Idle, 정찰)
Alert의심이상 감지. 응시 / 천천히 이동
Return의심비전투 거점으로 귀환 중
Aware전투명확한 적 인지
Chase전투추격
Attack전투공격 패턴 수행
Confront전투대치 (사정거리 밖)
Cancel전투액션 캔슬 — 패링 성공 또는 그로기 게이지 가득 참
Hitted피격 후일반 피격 모션
Stun피격 후스턴
Groggy피격 후자세 풀림 (패링·강인함 0)
FatalHit_Front피격 후앞잡 피격
FatalHit_Back피격 후뒤잡 피격
Dead종료사망

다음 중 하나 발생 시 UnawareAlert.

  • 일정 거리 이내에서 소음 발생 (청각 임계 초과 — 몬스터별 차등).
  • 시야 범위 안에서 실루엣 순간 포착.

비전투 → 전투 (의심 건너뛰기)

섹션 제목: “비전투 → 전투 (의심 건너뛰기)”

다음 중 하나로 즉시 UnawareAware.

  • 강한 자극 (강력한 폭발·스킬 등).
  • 직접 피격.
  • 매우 근거리에서 플레이어 갑작스러운 등장.

AlertReturnUnaware 조건: 일정 시간(n초) 동안 추가 소리·시야 정보 없음 + 천천히 이동 중 미발견.

AlertAware 조건: 플레이어 시야 진입 / 의심 중 피격 / 의심 중 소리 재청취.

플레이어 완전 이탈(거리 100m 이상) 또는 전투 종료 판정 시간 경과 시 ReturnUnaware.

  • 소음은 음원에서 발생하며 거리에 따라 감쇠.
  • 수신 소음이 **청각 기준(고정값)**보다 크면 인지된다.
  • 청각 기준은 캐릭터 스테이터스가 아니라 고정 수치 (코드·PDF 일치).
발생원소음 비율
걷기기본 ×30%
일반 이동기본
질주기본 ×150%
무기 소리 (공격·휘두름)액션 종속
오브젝트 파손추후 추가 예정
  • 몬스터 전방 120도 내에 있을 때.
  • 몬스터 주변 3m 근처에 있을 때 (시야 무관).
행동 타입설명비율
Idle 1 (정지 대기)서성거림·둘러보기·하품·앉았다 일어나기30%
Idle 2 (좁은 공간 이동)정해진 경로 천천히 이동70%
행동 타입설명비율
응시소리·움직임 방향으로 몸 돌려 주시30%
천천히 이동걷기 속도로 조심스럽게 접근70%

전투 (Aware → Chase / Attack / Confront)

섹션 제목: “전투 (Aware → Chase / Attack / Confront)”
행동 타입조건
Attack (공격)사정거리 내에서 패턴 실행
Confront (대치)사정거리 밖에서 좌우 이동·타이밍 탐색
Chase (추격)사정거리 진입까지 이동
상태트리거
Hitted일반 피격
Stun스턴 임계 도달
Groggy패링 당함 또는 강인함 0
FatalHit_Front그로기 + 정면 45도 공격
FatalHit_Back무자각 상태 + 후면 공격
  • isLinked = true 그룹: 한 명 Aware 전이 시 같은 그룹 전원 어그로 (MapModule.GetLinkedMonsters).
  • isLinked = false 그룹: 개별 어그로.

상세 그룹 데이터는 맵 모듈 §5 참조.

클래스컨셉특이사항
MonsterMan인간형 일반
MonsterAshigaru아시가루 (보병)
MonsterBandit산적
MonsterDog짐승류치명타 액션 없음

공통 상태 머신은 동일하나 공격 패턴·이동·인지 임계·치명타 액션 유무는 종별 차이.

시스템연결 지점
전투Attack 패턴, 피격·스턴·그로기·치명타 처리.
캐릭터 스테이터스몬스터 RuntimeStat·AttackRating·Defense.
맵 모듈MonsterGroup·핀 좌표·어그로 연동.
아이템·루팅·드랍몬스터 tier·착용 아이템.
감지 시스템시야·청각 인지 트리거 상세.
  • ChaseConfront 전이 임계와 거리 — 보류.
  • Return 상태에서 재인지 시 처리 (재추격 vs Alert 다운그레이드) — 보류.
  • 청각 dB 값·소음 발생원별 dB 표 (시트 미관리, 몬스터별 차등 확정).
  • Idle 패턴 (잡담·환경 오브젝트 사용) 도입 시점.
  • 그룹 어그로 전파 거리·시간 지연 여부.