맵에서 절차 적으로 생성 된 2D 곡선 도로


9

작업중인 게임에 대한 로드맵을 자동으로 생성하는 알고리즘을 실험하고 있습니다.

멋진 맵을 가지고 있기 때문에 " Kingdom Rush "게임을 참조 점으로 사용하고 있습니다.

게임 "Kingdom Rush"의 로드맵 예

나는 절차 적 콘텐츠 생성에 익숙하지 않으며 여기에 누군가가 포인터를 가지고 있는지 궁금합니다. 몇 가지 입구 / 소스 노드, 여러 개의 내부 노드 (포크 및 병합) 및 일부 출구 싱크 노드와 같은 임의의 도로 토폴로지를 생성 한 다음 그래프 레이아웃 알고리즘을 사용하여이 정보를 기반으로 실제 로드맵을 생성하는 실험을했습니다.

다음 은 도로 레이아웃에 Fruchterman-Reingold 알고리즘 을 사용하는 예입니다 .

PCG 생성 맵 1

파란색 그래프는 무작위로 생성 된 베 지어 제어점을 사용하여 가장자리가 덜 똑바로 보이도록합니다.

다음은 동일한 알고리즘이지만 다른 난수를 사용하여 생성 된 다른 예입니다.

PCG 생성 맵 2

문제는 대부분의 결과가 상당히 비슷해 보이기 때문에 절차 적으로 생성 된 맵의 제어 가능성과 다양성을 개선하기 위해 어떤 규칙을 추가 할 수 있는지 잘 모르겠습니다.

모든 조언을 부탁드립니다.


멋진 질문입니다. 참조 이미지는 지금까지 시도한 것들을 포함하여 많은 도움이됩니다. '제어 성'의 의미에 대해 좀 더 자세히 설명해 주시겠습니까? 제어 할 수있는 많은 것들이 있습니다 . 몇 가지 예가 도움이 될 것입니다.
Pikalek

안녕! 답변 주셔서 감사합니다. 제어 가능성에 따라 특정 규칙을 작성할 수 있습니다 (예 : 교차점을 서로 특정 거리보다 가깝게 배치하지 말고 x 각도보다 날카로운 각도를 허용하지 마십시오) 생성 알고리즘이 이러한 제약 조건을 준수합니까? 또한 이러한 규칙이 다양한 흥미로운지도를 생성하는 알고리즘의 기능을 방해해서는 안됩니다. 그래도 당신의 격려는 마음을 사로 잡습니다. 나는 이것이 작동하게하는 세부 사항에 좌절하기 시작했습니다!
SixTwoOne

답변:


2

예제 도로에는 생성 된 도로가 아닌 교차로 사이의 선분에 곡선이 있습니다. 도로에 "중복"제어점을 더 추가해 보셨습니까?

루프 수를 생성 매개 변수로 사용하는 것은 어떻습니까? 또한 "curviness"(중복 제어점 수) 이탈 수는 다른 것입니다.

교차점에 두 배의 제어점을 주면 도로를 끝낼 수 있다고 생각합니다. 교차로가 더 좋아 보이게해야합니다.


중간 제어점 제안이 좋다고 생각합니다! 현재 사용하고있는 그래프 레이아웃 알고리즘은 직선 만 생성하지만 다른 두 노드 사이에 "곡선 벤드"노드를 배치하고 휴리스틱을 사용하여 제어점을 근처에 배치하여 예쁘게 보일 수 있습니다. 더 잘 보이는 교차로를 만드는 것과 관련이 있기 때문에 더 자세히 살펴볼 필요가 있습니다.
SixTwoOne
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.