Animal Crossing과 같은 3D 지형을 어떻게 "떨어지게"할 수 있습니까?


15

Animal Crossing 은 세계지도를 스크롤하는 독특한 방법을 가지고 있습니다.

동물의 횡단은 실린더 세계

이 비디오 는 어떻게 움직이는 지 보여줍니다.

이 효과를 어떻게 만들 수 있습니까?


1
나에게는 효과처럼 보이지 않지만 카메라가 따라 오는 매우 간단한 3D 세계처럼 보입니다.
제임스

게임을 해킹하면 충돌이 발생하여 세계가 끝나는 바다로 들어갑니다. 당신은 세상의 가장자리 너머의 공허함에서 "곡선 된"세계 조각들을 볼 수 있습니다. 여기 비디오 .
Anko

답변:


6

나는 Deathspank를 연주 한 후에 약간의 실험을했는데 비슷한 효과가 있습니다. 잘 작동하도록 조정할 수 있는지 충분히 조사하지는 않았지만 한 가지 가능성은 깊이를 기준으로 정점 셰이더의 항목을 수정하는 것입니다. cos (depth)를 Y 축 수정에 매핑하는 함수가 작동합니다. 거리가 멀어 질뿐만 아니라 깊이보다 가까워지면 세상이 특히 둥글게 느껴지도록 조정할 수 있습니다. X 축 값에 대해 더 구형으로 보이도록 동일한 작업을 수행 할 수 있습니다. 이것이 그러한 게임이 실제로 어떻게하는 것인지 잘 모르겠습니다. 내 실험은 만족스럽지 못한 결과를 얻었지만 비율을 많이 사용하지 않았으므로 감소율을 변경하여 더 좋게 만드는 것만 큼 간단했을 수 있습니다.


이것이 내가하는 방식이기 때문에 +1. 그러나 '깊이'의 의미를 명확히하고 싶을 수 있습니다. 카메라와의 거리 또는 문자와의 거리 일 수 있습니다. 둘 다 실험 해 보는 것이 좋을 것 같습니다.
DaleyPaley

6 년 늦게 파티에 늦어서 미안하지만 AC의 경우 '깊이'는 카메라와의 거리를 기준으로 계산되지만 카메라 위치가 문자 위치를 기반으로하므로 모든 것이 종류입니다. 연결되었습니다.
lvictorino

5

그냥 "평평한 세계"를 가져 와서 원통형 좌표에 매핑하는 것처럼 보입니다 . 기본적으로 실린더에 세계를 포장합니다. 나는 평평한 세상과 비슷한 것을했지만 구체에 감쌌습니다.

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오

구체에 대해 한 방법은 실린더에 대한 방법과 유사합니다. 세계에 적합한 반지름 (원통 좌표의 ρ 또는 "rho")을 선택하십시오. 각 정점에 대해 월드의 XZ 좌표 (Y는 높이라고 가정)를 취한 다음 XZ와 반지름 + Y를 사용하여 원통형 좌표로 은밀합니다. Y를 추가하지 않으면 평평한 원통이됩니다. 그런 다음 직교 좌표로 다시 변환하여 게임에 그립니다.


3
동물 횡단에서 세계의 Y 치수는 원통의 둘레보다 훨씬 큽니다 (수평선이 매우 가깝기 때문에 시선으로 볼 때만). 따라서 세계지도의 일부는 캐릭터와 가장 가까운 영역에만 잘리고 그 잘린 영역은 전체 실린더를 감싸게됩니다. 2D 타일 기반 맵을 보이는 부분 만 자르는 것과 비슷합니다.
ChrisC

훌륭한 지적입니다. 필요에 따라 월드를로드 / 언로드하여 메모리 풋 프린트를 작게 유지하는 데 사용할 수 있다고 생각합니다.
MichaelHouse

5

평면 세계에서 원통형 세계로 가고 싶습니다.

x 축을 중심으로 한 회전 (동일한 좌표)은 다음과 같습니다.

     | 1   0   0   0 |
Rx = | 0  ca  -sa  0 |
     | 0  sa   ca  0 |
     | 0   0    0  1 |

어디:

ca = cos(angle) and sa = sin(angle)

각도를 계산하려면 이미지를보십시오. pi / 2가 취소되고 다음이 남습니다.

angle = offset_from_character.z - radius

또한 이미지를보십시오. 투영 된 점의 각도는 문자와의 수평 거리에 따라 다르며 구와의 거리는 수직에 따라 다릅니다.

new_position = character_position - vec3(0,radius,0) + Rx * vec3(0,radius+_old_position.y,0)

지평선 너머에있는 물건을 잡아야합니다. 그렇지 않으면 전 세계가 감쌀 것입니다.

면책 조항 : 나는 이것을 테스트하지 않았으며 수학 전문가는 아니지만 대답은 다음과 같습니다. 내가 틀렸다면 누군가 나를 수정하십시오.

구형 세계

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.