Status
작업 완료
분류
전투
설명
AI들의 상태와 턴을 기준으로 구현된 행동 정리
딤당자
U
UntitledU
UntitledU
UntitledU
Untitled최종 편집 일시
Jul 2, 2024 9:09 AM
최종 편집자
U
Untitled‣
1. 적 유닛 정의
1.1. 적 유닛 상태 정의
미인식 상태
- 시야 내에 적대 유닛이 없는 상태
- 일반적으로 소음 발생 타일(목표 타일)이 없음
- 소음 발생 타일(목표 타일)이 있더라도
- 그 타일로 이동하지 못한 경우
- 시야 밖에서 공격한 대상이 있으나 별견 못한 경우
- 시야 방향을 가리키는 화살표가 회색으로 되어있음.
추적 상태
- 알람으로 인해 적 위치를 인식했으나, 공격 가능 범위 내에 적이 없는 상태.
- 시야 방향을 가리키는 화살표가 주황색으로 되어있음.
- 실제 시야에는 방향성이 사라지고, 전 방위를 보게 됨 (화살표는 상태 변경에 대한 인지 목적으로만 사용)
- 시야가 공격 범위 대체
인식 상태
- 알람으로 인해 적 위치를 인식했으며, 공격 가능 범위 내에 적이 있는 상태.
- 시야 방향을 가리키는 화살표가 붉은색으로 되어있음.
- 실제 시야에는 방향성이 사라지고, 전 방위를 보게 됨 (화살표는 상태 변경에 대한 인지 목적으로만 사용)
- 시야가 공격 범위 대체
1.2. 적 유닛 행동 정의
History | 상황 분류 | 적 유닛 상태 | 동작 | 비고 |
---|---|---|---|---|
적 진영 턴 시작 | ||||
적 개인 턴 시작 | ||||
적 개인 턴 시작 | 이후 지형지물에 한해 공격 가능 | |||
적 개인 턴 시작 | 각 유닛 별 [탐색 스킬 목록]에 등록된 스킬 중 가장 앞의 스킬 시행 | |||
적이 PC 발견 | 자신도 알람을 들은 것으로 판정(즉시 추적) 알람으로 인한 즉시 추적일 경우 무시 | |||
적이 PC 발견 | ||||
적이 PC 발견 |
2. 알람 시스템
2.1. 알람 시스템 정의
적 유닛 기준, 적대적 대상을 인식했을 때 주변의 아군을 불러모으는 현상
2.2. 발동 조건
플레이어 적대 유닛 중
미인식 상태의 유닛의 시야 내에
적대 관계에 있는 유닛이 진입
2.3. 발동 효과
발동 조건 달성 시점의 타일에 정지 후 알람 애니메이션 출력
진입한 유닛은 목표 유닛이 됨
알람 범위
- 알람이 효과를 가지는 범위
- 알람 범위가 n이면 TP n을 소모해서 이동할 수 있는 거리 전체를 의미
- 즉, 벽이 있을 경우 벽을 통과하지 못함
- 문이 있을 경우, 열림/닫힘 상태와 무관하게 통과하여 판정
- 기본 알람 범위 : 7
- 단, 스컬커에 한하여 10으로 적용
동시에 여러 유닛이 알람 사용 조건을 만족하는 경우,
가까운 순서대로 위 절차 수행
알람을 이미 들은 상태라면 알람 시행하지 않음
3. 길찾기 규칙
3.1. 목표 유닛/타일
3.1.1. 목표 유닛
- 유닛이 [즉시추적], [공격을 하지 않을 때] 행동하는 기준
- 동시에 하나씩만 존재하며, 이미 존재할 경우 새로 설정하면 덮어씌움
설정 조건
- 시야 내 적이 없던 상태에서 적을 발견
- 알람으로 적을 공유받음
해제 조건
- 해당 유닛 사망
3.1.2. 목표 타일
- 유닛이 [즉시 추적], [공격을 하지 않을 때] 행동하는 기준
- 동시에 하나씩만 존재하며, 이미 존재할 경우 새로 설정하면 덮어씌움
설정 조건
- 목표 유닛이 사망(해당 위치로)
해제 조건
- 해당 타일을 시야로 확인
3.2. 적 유닛 동작
3.2.1. 적 유닛 동작 정의
공격 준비
- 목표 유닛과 각 목표 유닛을 칠 수 있는 위치를 파악
- 모든 칠 수 있는 위치에 대해 경로 탐색
- 다음의 기준에 따라 경로 우선순위 설정
- FacingTile(시야 방향)이면 가장 우선
- 자신으로부터 가까운 위치
- 낮은 HP
- 가능한 경로가 없다면, 목록의 다음 스킬로 진행
- 목록 내 모든 스킬을 1~4를 진행하며 검사했으나 이동에 실패했다면 [추적]
낮은 비용
칠 수 있는 목표 중 가장 높은 타겟 우선순위
3.2.2. 조건 별 적 유닛 동작
History | 조건 | 조건 상세 | 동작 |
---|---|---|---|
- | 시작 조건을 동시에 만족할 때 | ||
동작 중복 | 동작 시행 중 다른 동작의 시작 조건이 만족될 때 | ||
자신의 턴 | 적 AI의 소속 턴에서 해당 유닛이 움직일 차례가 되었을 때 | ||
소음 반응 | 소음 범위 내 적 AI 유닛이 존재할 때 | ||
알람 반응 | 알람을 들었을 때 | ||
피격 | 스킬 타겟이 되었을 때 | ||
적 최초 발견 | 적을 처음 발견했을 때 |
3.3. 길찾기 순서
3.3.1. 길찾기 로직
History | 판단 순서 | 행동 분류 | 판단 기준 | 동작 |
---|---|---|---|---|
0 | ||||
1 | 상태 체크/외부 원인 | 기본 상태가 DisableState, DisableMove | ||
2 | 상태 체크/외부 원인 | [알람]에 의한 즉시 추적 | ||
3 | 자기 턴 행동 | 시야 내 적이 있다면 | ||
4 | 자기 턴 행동 | 목표 [유닛 / 타일]이 존재하는 경우 | ||
5 | 자기 턴 행동 | 위 조건을 모두 만족하지 않는다면 |
3.3.2. AI Position
3.4. 경로 판정
3.4.1. 경로 판정 로직
History | 경로 차단 매개 | 동작 |
---|---|---|
없음 | ||
변종문방어벽플레이어 | ||
벽 |
3.4.2. 경로 판정 노드
목적지
- 가려는 타일
- 목표 유닛을 쫓을 경우, 해당 유닛의 위치
거리
- 노드 간 비교 용도로만 사용
- 그리드 거리 우선 기준
- 그리드 거리가 같다면 직선 거리가 짧은 쪽 우선
- 목적지가 여럿이라면 → 모든 목적지에 대해 계산 후 가장 낮은 값을 사용한다.
최적거리
- 도착지 거리가 이 값 미만이면 목적지에 달성한 것으로 보고 해당 노드에서 더 이동하는 경로를 찾지 않는다.
- 타일을 목표로 삼고 이동할 때 = 1 (해당 타일에 도착 했을 때)
- 유닛을 목표로 삼고 이동할 때 = 1.4 (인접한 타일까지 인정 - 유닛이 점유한 타일에 함께 위치할 수 없으므로)
비용
- 기본적으로 이동에 필요한 타일 수
- 도중에 Breakable이 있을 시 +0.5
- TP제한 이하는 동일한 것으로 취급
도착지
- 경로의 마지막 위치와 목적지 까지의 거리
- 벽을 제외한 다른 유닛이 존재하더라도 도착지가 될 수 있다.
- 도착지 거리는 최적 거리 미만이 될 수 없다. (= 둘중 높은 값으로 맞춰짐)
정지 위치
- 잠적인 경로는 존재하지만, 도중에 멈춰야 하는 위치와 목적지까지의 거리
- 통과 할 수 없는 장애물 이 있을 경우, 경로 중 장애물 직전 위치가 된다.
- 경로 길이가 TP제한보다 길 경우, 제한만큼만 이동한 위치가 된다.
- 통과할 수 있는 장애물이 있을 경우, 경로 중 마지막 빈칸이 된다.