BP_Ant를 BT 없이 유지하면서도 흐름을 만들면서 했던 Try&Error를 기록했다.


1. Ant AI를 EventGraph만으로 유지하려다 상태 전환이 꼬였다

문제는 기존 구조가 BeginPlay, BeginOverlap, AttackRange, AnyDamage, Montage 종료 지점에서 각각 행동을 직접 실행하는 방식이었다는 점이다.

이 방식은 처음에는 빠르게 보이지만, 실제로는 다음 문제가 바로 발생했다.

  • MoveRandom이 BeginPlay에서 한 번 시작된 뒤 상태 복귀 없이 끊김
  • 공격 범위에 들어갔을 때 AttackChase가 동시에 상태를 바꾸려 함
  • Boss는 Delay나 Montage 중에도 다시 공격 실행선에 들어갈 수 있음
  • Montage 종료 시점이 아니라 중간 bool 토글로 공격 상태를 끊고 있었음

즉, Overlap 이벤트가 행동을 직접 실행하는 구조에서는 상태 전환이 한 곳에서 관리되지 않아서, 한 번 그래프가 커지기 시작하면 금방 꼬인다.

2. 처음 시도한 방식들

2-1. MoveRandom을 BeginPlay에 두는 구조

처음에는 MoveRandom이 BeginPlay에서 시작되도록 유지한 채, 감지하면 Chase, 공격 범위면 Attack으로 바꾸는 방식을 썼다.

이 구조는 초반에는 정상처럼 보였다. 이유는 BeginPlay에서 MoveRandom이 한 번 실행되면 실제로 개미가 움직이기 때문이다. 하지만 이건 루프가 아니라 시작점일 뿐이었다.

한 번 ChaseAttack으로 넘어가면 다시 MoveRandom으로 복귀하는 명확한 진입점이 필요했는데, 기존 그래프에는 그 부분이 분산되어 있었다. 결국 MoveRandom은 "처음만 되는 이동"이 되고, 이후에는 상태가 끊겼다.

2-2. Tick 없이 Overlap에서 직접 처리하는 구조

다음으로는 감지 범위와 공격 범위 Overlap에서 바로 ChaseAttack을 실행하는 방식을 유지해 보았다. 하지만 이 방식도 안정적이지 않았다.

문제는 Overlap은 "사실"만 알려줘야 하는데, 여기서 바로 행동까지 실행시키면 다음 상태를 어디서 복구해야 하는지가 분산된다는 점이다.

예를 들면:

  • 감지 시작: Target 발견 -> Chase
  • 공격 범위 진입: Attack
  • 공격 범위 이탈: Return
  • 피격: Chase

이런 식으로 각 이벤트가 직접 행동을 실행하면, 결국 같은 프레임이나 인접 프레임에 서로 다른 실행선이 같은 변수를 덮어쓴다.

2-3. 몽타주 재생 중 bAttackAnim 제어 문제

Boss 공격은 처음에 Play Montage 또는 Play Anim Montage 뒤에 bool 토글을 덧붙이는 식으로 시도했다. 하지만 이 구조는 공격 상태를 "몽타주 종료"가 아니라 "중간 분기"에서 끊고 있었기 때문에 재생이 끝났는지 여부와 상태값이 어긋날 수 있었다.

실제로는 아래 같은 문제가 쉽게 생긴다.

  • 공격 시작 전에 bAttackAnim = true
  • Montage가 재생 중인데도 다음 공격 판정이 다시 들어옴
  • 같은 Montage를 연속으로 다시 재생해서 프리즈처럼 보임
  • 혹은 Montage가 끝났는데도 bAttackAnim이 남아 있음

그래서 bAttackAnim은 임의의 Branch나 NotifyName 비교로 끊는 게 아니라, 실제 Montage 종료 지점에서만 내려가야 한다.

3. 오늘 정리한 방향

MoveRandom, Attack을 Tick에서 분기해야 한다.
현재처럼 IsChasing, IsAttacking, bAttackAnim만으로는 부족하다. 최소한 보조 상태가 더 있어야 한다. 기존 구조에서 확장하려니까 코드가 꼬인다

  • Ant Attack 안정화 (BT 고려)
  • 무기 추가

'TIL' 카테고리의 다른 글

Rendering : Forward, Deferred  (0) 2026.05.04
TEXT RPG 2  (0) 2026.04.29
TEXT RPG 1  (0) 2026.04.28
3인칭 캐릭터를 1인칭으로 사용할 때 얼굴 가림 문제  (0) 2026.04.23
UE5 FPS 총 발사, 이펙트, 사운드, HUD 간단 구현 정리  (0) 2026.04.22