피드로 돌아가기
AStarGrid2D in Godot 4: the gotchas, and an interactive sandbox
Dev.toDev.to
Frontend

Godot 4 AStarGrid2D의 API 함정과 최적 경로 설계를 위한 구현 가이드

AStarGrid2D in Godot 4: the gotchas, and an interactive sandbox

Vav Labs2026년 6월 21일1intermediate

Context

Godot 4 AStarGrid2D API의 낮은 가시성으로 인한 구현 오류 빈발 상황 분석. 단순 메서드 호출과 실제 엔진 내부 동작 간의 괴리로 인한 경로 탐색 실패 및 비정상적 유닛 이동 문제 발생.

Technical Solution

  • update() 호출 시 기존 point data가 초기화되는 특성에 따른 데이터 재설정 순서 정의
  • 벽면 코너 컷팅 방지를 위한 DIAGONAL_MODE_ALWAYS 대신 ONLY_IF_NO_OBSTACLES 모드 채택
  • jumping_enabled 활성화 시 weight scale 무시 현상을 고려한 Jump Point Search(JPS) 적용 제어
  • 8방향 그리드 환경에서 Manhattan 거리 계산의 과대평가 문제를 해결하기 위한 Octile 거리 함수 도입
  • Godot 4.0부터 4.7까지의 API 변경 사항을 반영한 버전별 호환성 검증 및 샌드박스 기반 시각화 검증

- AStarGrid2D 설정 변경 후 반드시 update()를 호출하고 이후에 solid/weight 데이터를 재설정할 것 - 대각선 이동 시 장애물 통과 여부를 결정하는 Diagonal Mode 설정을 프로젝트 요구사항에 맞게 검토할 것 - 가중치 기반 지형 탐색이 필요할 경우 JPS(jumping_enabled) 옵션의 비활성화 여부를 확인할 것 - 8방향 이동 그리드에서는 최단 경로 보장을 위해 Heuristic 함수를 Octile로 변경할 것

원문 읽기