Làm cách nào để tôi có thể làm cho rơi xuống địa hình 3D 3D như Animal Crossing?


15

Animal Crossing có cách cuộn bản đồ thế giới độc đáo: Khi nhân vật di chuyển xuống, thế giới cuộn quanh và trên đỉnh, giống như nó bị mắc kẹt vào một ống các tông:

Animal Crossing là thế giới hình trụ

Video này cho thấy cách nó di chuyển.

Làm thế nào tôi có thể tạo hiệu ứng này?


1
Không giống như một hiệu ứng đối với tôi, nó trông giống như một thế giới 3D rất đơn giản mà máy ảnh đang theo dõi.
James

Việc hack trò chơi có thể tạo ra một sự cố va chạm cho phép bạn đi vào đại dương nơi thế giới kết thúc. Bạn có thể thấy các bit của thế giới được biểu hiện "cong lại" trong sự trống rỗng ngoài rìa thế giới. Video tại đây .
Anko

Câu trả lời:


6

Tôi đã thử nghiệm một chút sau khi chơi Deathspank, có hiệu quả tương tự. Mặc dù tôi chưa bao giờ đào sâu vào nó đủ để xem liệu nó có thể được điều chỉnh để hoạt động siêu tốt hay không, một khả năng là chỉ sửa đổi các mục trong trình tạo bóng đỉnh của bạn dựa trên độ sâu. Một ánh xạ chức năng cos (độ sâu) để sửa đổi trục Y hoạt động. Bạn có thể điều chỉnh nó sao cho thế giới không chỉ rơi xuống từ xa mà còn nếu nó ở gần hơn một số độ sâu, khiến thế giới cảm thấy đặc biệt tròn trịa. Bạn có thể làm tương tự cho giá trị trục X để làm cho nó có vẻ hình cầu hơn. Tôi không chắc đây có phải là cách những trò chơi như vậy thực sự làm điều đó không; các thí nghiệm của tôi đã cho kết quả không đạt yêu cầu nhưng tôi đã không chơi với các tỷ lệ nhiều, vì vậy có thể đơn giản như thay đổi tỷ lệ giảm để làm cho nó tốt hơn.


+1 vì đây là cách tôi sẽ làm. Tuy nhiên, bạn có thể muốn làm rõ ý của bạn bằng 'độ sâu'. Nó có thể là khoảng cách từ máy ảnh, hoặc khoảng cách từ nhân vật. Tôi nghĩ sẽ tốt khi thử nghiệm với cả hai.
DaleyPaley

Xin lỗi, tôi đến bữa tiệc muộn - như trễ 6 năm - nhưng trong trường hợp AC, 'độ sâu' được tính dựa trên khoảng cách từ máy ảnh ... nhưng vì vị trí máy ảnh dựa trên vị trí nhân vật, mọi thứ đều giống kết nối.
lvictorino

5

Có vẻ như nó chỉ lấy một "thế giới phẳng" và ánh xạ tới tọa độ hình trụ . Chủ yếu bao bọc thế giới trên một hình trụ. Tôi đã làm một cái gì đó tương tự với một thế giới phẳng, nhưng tôi bọc nó vào một quả cầu:

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

Cách tôi đã làm cho một quả cầu tương tự như cách bạn làm nó cho một hình trụ. Chọn một bán kính phù hợp (hoặc "rho" theo tọa độ hình trụ) cho thế giới của bạn. Đối với mỗi đỉnh, lấy tọa độ XZ của thế giới của bạn (giả sử Y là chiều cao), sau đó chuyển sang tọa độ hình trụ bằng XZ và bán kính cộng với Y. Nếu bạn không thêm Y, bạn sẽ có một hình trụ phẳng. Sau đó chuyển đổi trở lại tọa độ Cartesian để vẽ trong trò chơi.


3
Một điều khác cần đề cập, kích thước Y của thế giới trong Animal Crossing lớn hơn nhiều so với chu vi của hình trụ (chỉ bằng cách nhìn nó, bởi vì đường chân trời rất gần). Do đó, một phần của bản đồ thế giới bị cắt chỉ thành các khu vực gần nhất với nhân vật và khu vực bị cắt đó được quấn quanh toàn bộ hình trụ. Nó tương tự như cắt xén bản đồ dựa trên gạch 2D thành các phần có thể nhìn thấy.
ChrisC

Điểm tuyệt vời. Tôi tưởng tượng rằng nó cũng có thể được sử dụng để giữ cho dung lượng bộ nhớ nhỏ bằng cách tải / dỡ thế giới khi cần thiết.
MichaelHouse

5

Bạn muốn đi từ một thế giới phẳng, đến một thế giới hình trụ.

Một vòng quay quanh trục x (theo tọa độ đồng nhất) trông như thế này:

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

Ở đâu:

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

Để tính góc, nhìn vào hình ảnh. Số pi / 2 hủy bỏ và bạn còn lại:

angle = offset_from_character.z - radius

Ngoài ra, nhìn vào hình ảnh. Góc của điểm chiếu phụ thuộc vào khoảng cách ngang từ ký tự, khoảng cách từ quả cầu phụ thuộc vào phương thẳng đứng.

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

hãy chắc chắn để loại bỏ những thứ ở phía chân trời, nếu không cả thế giới sẽ bao bọc xung quanh.

Tuyên bố miễn trừ trách nhiệm: Tôi chưa thử nghiệm điều này và tôi không phải là chuyên gia toán học, nhưng câu trả lời là như thế này. Ai đó làm ơn sửa tôi nếu tôi sai.

thế giới hình cầu

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.