윈도우11 환경에서 작성된 글입니다.

 

게임서버 개발을 하다가 서버사이드에서 몬스터의 움직임을 어떻게 처리해야할까 고민하다 RecastNavigation 이라는 오픈소스 라이브러리를 알게돼서 이것을 설치하고 Demo를 실행해보고, 언리얼에서 만든 맵을 해당 데모에서 열고 navmesh를 생성, 길찾기 알고리즘을 확인해봤다.

이 글은 그것을 기록하기 위한 글입니다.

 

아래 링크의 빌드 가이드 글을 보면서 작성한 글입니다.

 

recastnavigation/Docs/_2_BuildingAndIntegrating.md at main · recastnavigation/recastnavigation

Industry-standard navigation-mesh toolset for games - recastnavigation/recastnavigation

github.com


1. premake5 설치

가이드에서 cmake에 익숙치 않다면 premake를 사용하라고 추천하고있어서 그렇게 했다.

 

Download | Premake

Download Premake Premake is a self-contained, single file command line executable which should build and run pretty much everywhere. See Using Premake for usage instructions and help getting started. The latest released version is v5.0.0-beta8. See all rel

premake.github.io

아래 링크에서 Pre-Build 파일을 다운로드 받는다. exe파일 하나를 준다.

이것을 cmd 창에서도 호출할 수 있도록  "C:\Windows\System32" 에 복사해준다. 아니면 이 파일이 있는 경로를 PATH에 추가해줘도 되는데 복사해주는게 더 편하고 깔끔하다.

C:\Users\*****>premake5 --version
premake5 (Premake Build Script Generator) 5.0.0-beta8

cmd창에서 버전을 확인해 잘 됐는지 본다.


2. 깃허브에서 RecastNavigation 다운로드 및 압축해제

 

GitHub - recastnavigation/recastnavigation: Industry-standard navigation-mesh toolset for games

Industry-standard navigation-mesh toolset for games - recastnavigation/recastnavigation

github.com

 

아무 위치에 다운로드, 압축해제 해줬다.


3. SDL2 설치

해당 데모에서는 SDL을 아래 이미지처럼 그래픽으로 맵을 보여주고 설정값들을 조작하고 테스트해볼 수 있게 만들려고 사용했다. 크로스 플랫폼 이라서 이걸 사용한듯? 게임엔진은 아니고 게임엔진의 기반으로 쓰이곤 하는 라이브러리라고 한다.

아무튼 그런 이유로 설치해야한다.

아래 SDL 사이트에서

 

Simple DirectMedia Layer - Homepage

About SDL Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. It is used by video playback software, emulators, and popula

www.libsdl.org

Download 탭의 SDL Releases 링크를 누르면 나는 3.4.10 버전이 나온다.

 

하지만 Demo에서는 SDL 2 버전을 요구하기 때문에 아래 Releases를 또 눌러서 2.30.12 버전을 찾아서 받아준다.

SDL2- 어쩌구 - VC 버전으로 받아준다.

 

이제 이것을 압축해제하고, 폴더를 통째로

recastnavigation-main\RecastDemo\Contrib

위치로 이동시킨 뒤에 폴더 이름을 SDL로 변경한다.

Contrib 폴더가 위와 같이 준비됐다.


4. VisualStudio 솔루션 생성

recastnavigation-main\RecastDemo 에서 cmd 열고 아래 명령어를 입력한다

VS 버전에 따라 뒤에 숫자는 달라지니 유의.

premake5 vs2026

 

이렇게 하면 Build 폴더 안에 vs2026 폴더가 생성되고 그 안에 이런저런 파일들이 들어있다.

recastnavigation.slnx 파일을 열어 vs로 프로젝트을 열고 F5를 눌러 실행하면 Recast Demo가 실행된다.

 

우측 창에서 Sample과 Input Mesh를 지정하고, 맨 아래 Build 를 누르면 파란색으로 네비게이션 메시가 생성된다.

쉬프트 클릭으로 시작지점, 클릭으로 도착지점을 지정하면 즉시 이동경로를 계산해서 보여준다.


5. 언리얼 맵 Export 해서 Demo에서 확인하기

언리얼 에디터 아웃라이너에서 지형에 해당하는 부분을 선택하고 File - Export Selected를 눌러 obj파일 확장자로 export 해준다.

 

그리고 언리얼에서는 단위가 cm이고, RecastDemo에서는 m이기 때문에 크기차이가 100배로 난다. 이것을 위해서 object 파일 내의 모든 정점 좌표 단위를 100분의 1 시켜줘야한다. 이건 클로드 AI에게 맡겼는데 잘 해줬다.

 

기존

v -2500.0024 -400.5001 -4999.9994
v -5000.0024 -400.5001 -4999.9994

...

변환 이후

v -25.0000 -4.0050 -50.0000
v -50.0000 -4.0050 -50.0000

...

 

이제 변환된 파일을 아래 위치로 옮긴다. 보면 아까 확인했던 던전처럼 다른 오브젝트들도 있다.

recastnavigation-main\RecastDemo\Bin\Meshes

 

이제 Demo를 다시 실행해서 보면 InputMesh에 내가 추가한 BasicLevel_scaled.obj 파일이 보인다.

확인해보면 잘 되는걸 볼 수 있다.

'기타' 카테고리의 다른 글

티스토리에 움짤 올리기  (0) 2025.09.26

+ Recent posts