본문 바로가기
Programming/ETC

Recast & Detour Navigation System - 1. 솔루션 설치

by MeisterTJ 2022. 10. 5.
 

GitHub - recastnavigation/recastnavigation: Navigation-mesh Toolset for Games

Navigation-mesh Toolset for Games. Contribute to recastnavigation/recastnavigation development by creating an account on GitHub.

github.com

RecastNavigation은 한 제작자가 만든 강력한 네비게이션 시스템이다.

외부에서 추출한 Level Geometry를 Import하여 NavMesh를 자동으로 생성할 수도 있고,

Detour라는 경로찾기 키트를 통해 NavMesh 상에서의 길찾기를 수행할 수 있다.

 

RecastNavigation의 가장 강력한 기능은 NavMesh를 자동으로 생성해준다는 것에 있다.

 

Unity, Unreal에서도 Recast & Detour를 사용하고 있는데, 그대로 사용한다기 보단 엔진에 맞게 추가되거나 변형된 부분들이 꽤 많다. 

 

특히 Unreal은 Detour의 TileCache 구조를 그대로 사용하지 않고, 독자적인 TileCache 시스템을 새로 구축했는데, 

이 부분에 있어서 기존 라이브러리와 큰 차이를 보인다.

 

RecastNavigation의 가장 큰 단점은 정보가 없어도 너무 없다는 것이다.

공식 Document도 없고, 제대로 구조를 분석한 글도 거의 없다.

 

라이브러리를 그대로 사용한다면 딱히 상관이 없지만, 튜닝이 필요하다던가, 

언리얼, 유니티 클라이언트에서 추출한 네비메시를 서버의 Recast에 올리고 싶다던가 할 경우에는

RecastNavigation의 구조를 이해할 필요가 있는데, 정보가 너무 없어서 사실상 코드를 분석할 수 밖에 없게 된다.

 

그래서 이 글의 작성을 시작하게 되었는데.. 작성자 본인도 코드를 완벽히 분석한 것은 아니라서 얼마나 잘 설명할 수 있을지는 모르겠다.

 

적어도 언리얼 커스터마이징 구조의 TileCache 기반 네비메쉬를 추출하고, RecastNavigation에서 이를 Import 하고 사용하는 것까지는 성공했기 때문에, 이를 토대로 설명할 것은 좀 있을 것이다.


RecastNavigation 설치

위의 Github에서 recastnavigation을 다운받을 수 있다.

RecastNavigation의 솔루션 파일을 생성해야 하는데, 이를 위해서는 해야하는 작업이 두 가지가 있다.

 

[1. SDL 라이브러리 세팅]

https://github.com/libsdl-org/SDL

 

GitHub - libsdl-org/SDL: Simple Directmedia Layer

Simple Directmedia Layer. Contribute to libsdl-org/SDL development by creating an account on GitHub.

github.com

SDL을 다운받아서 RecastDemo/Contrib 에 압축을 푼다.

 

[2. premake로 솔루션 생성]

https://premake.github.io/

 

Premake

Generate project files for Visual Studio, GNU Make, Xcode, CodeLite, and more across Windows, Mac OS X, and Linux. → See the full list

premake.github.io

premake를 다운받아서 RecastDemo 폴더에 위치시킨다.

 

cmd에서 RecastDemo 폴더로 가서 premake5를 실행시키면 된다.

 


RecastDemo 실행

설치가 완료되면 RecastNavigation 솔루션 파일이 생긴 것을 볼 수 있다. 이를 실행

 

실제로 라이브러리를 사용할때는 RecastDemo는 쓰지 않는다.

RecastDemo는 Recast 및 Detour를 테스트하기 위해 만들어진 툴이라고 보면 된다.

 

RecastDemo를 Start Project로 세팅하고 실행하자.

 

이 창이 나왔으면 성공. 다음 포스팅에 계속

'Programming > ETC' 카테고리의 다른 글

(VS) Component too big for incremental LTCG with 32-bit toolset  (0) 2023.03.27