[UNSEEN프로젝트][언리얼] CPathFinding 플러그인 분석과 개조 아이디어

윤태웅·2024년 6월 20일
0

UNSEEN

목록 보기
3/6

지난 포스팅에서는 공간을 Voxel 구조로 분할하면 3D 길찾기가 가능하다는 사실을 조사하고 이미 개발된 언리얼 플러그인을 찾아보는 이야기를 다뤘습니다.
이번 포스팅에서는 해당 언리얼 플러그인을 제 프로젝트에 추가하고 체험해보는 과정과 새로운 주제방향성에 관한 이야기를 작성해보도록 하겠습니다.

프로젝트에 추가하기

언리얼에 플러그인을 추가하는 방식은
1. 언리얼엔진이 설치된 경로에 플러그인을 설치
2. 언리얼 프로젝트 폴더에 Plugins폴더를 생성해서 플러그인 설치
이렇게 2가지가 있습니다. 1번 방법의 경우 플러그인이 해당 버전의 언리얼 에디터에 전역적용이 되게 되고 2번 방법의 경우 플러그인이 특정 언리얼 프로젝트에만 종속되게 된다는 특징이 있습니다. 저는 플러그인 코드를 개조하는 계획을 가지고 있었기 때문에 한 프로젝트에서 버전관리가 가능한 2번 방법을 채택했습니다.

(Plugins/CPathfinding) -> 프로젝트에 포함된 플러그인

플러그인 기능 체험


플러그인 기능을 이용해서 고정된 지점까지의 네비게이션을 시각화한 결과입니다. 언리얼엔진의 자체 collision코드를 기반으로 Overlapped된 영역과 Free영역으로 구분해서 Free영역에 대해서는 A*알고리즘을 적용하는 방식입니다.

프로젝트 방향성 변경

프로젝트 주제를 선정할때만 해도 3D 길찾기를 구현하는 것 자체를 목표로 삼고있었습니다. 하지만, 추가적인 조사결과 Voxel기반으로 3D 길찾기를 구현하는 것은 이미 많은 사람들에게 의해서 개발이 마무리된 영역이었기 때문에 구현 자체를 목적으로 하는 것은 의미가 없다는 생각을 했습니다.
그래서 새로운 목표를 선정하게 되었습니다.


새로운 아이디어는 바로 최적의 3D 길찾기 입니다. 제가 다운받아 분석한 언리얼 플러그인의 경우 3D공간상의 최단거리를 구할 수 있는 기능을 제공합니다. 그렇지만, 실제 게임에서는 3D상의 최단경로가 아니라 별도의 경로계산을 요구하는 경우가 존재합니다.

예를 들어서 젤다의 전설 야생의 숨결/왕국의 눈물 같은 게임이 있습니다.


이 게임에서는 패러세일을 이용해서 고도를 서서히 낮추면서 날아가는 이동기가 존재하고 어떠한 벽이든 올라타서 등반을 할 수 있는 기능을 갖추고 있습니다. 이런 게임에서 네비게이션 기능을 개발한다면 다음과 같은 상황을 해결해야 할 것 입니다.


위 그림에서 이미 패러세일을 타고 활공하는 캐릭터는 초록색 경로로 진행하는 것과 주황색 경로로 진행하는 것 중에 어떤 경로가 최적의 경로일까요?
날아가는 속도가 걷는 속도보다 빠르다면 초록색 경로가 가장 시간이 적게걸리는 경로가 될 것이고 그렇지 않다면 주황색 경로가 가장 최적의 경로가 될 것입니다.
그래서 이러한 상황에서 거리상으로는 최단거리가 아니지만, 초록색 경로를 안내해 줄 수 있는 네비게이션 기술을 만들어보자는 목표를 세웠습니다.


이번 포스팅에서는 CPathFinding 언리얼 플러그인을 설치해보고 분석해본 내용과 새롭게 선정한 프로젝트 목표에 관해서 다뤘습니다. 다음 포스팅에서는 새로운 목표를 달성하기 위해서 고민한 내용들과 개발내용들을 작성해보도록 하겠습니다.

0개의 댓글