Animal Crossing memiliki cara unik untuk menggulir peta dunia: Ketika karakter bergerak ke bawah, dunia berguling-guling di bagian atas, seperti tersangkut di tabung karton:
Video ini menunjukkan bagaimana ia bergerak.
Bagaimana saya bisa membuat efek ini?
Jawaban:
Saya bereksperimen sedikit setelah bermain Deathspank, yang memiliki efek serupa. Meskipun saya tidak pernah menggali cukup dalam untuk melihat apakah itu bisa disetel agar bekerja dengan sangat baik, satu kemungkinan adalah hanya memodifikasi item di vertex shader Anda berdasarkan kedalaman. Fungsi pemetaan cos (kedalaman) ke modifikasi sumbu Y bekerja. Anda dapat menyesuaikannya sedemikian rupa sehingga dunia tidak hanya turun di kejauhan tetapi juga jika lebih dekat dari beberapa kedalaman, membuat dunia terasa bulat. Anda dapat melakukan hal yang sama untuk nilai sumbu X untuk membuatnya tampak lebih bulat. Saya tidak yakin apakah ini benar-benar permainan seperti itu; eksperimen saya memberikan hasil yang tidak memuaskan, tetapi saya tidak bermain dengan banyak rasio, jadi mungkin semudah mengubah tingkat falloff untuk membuatnya lebih baik.
sumber
Sepertinya itu hanya mengambil "dunia datar" dan memetakan ke koordinat silindris . Pada dasarnya membungkus dunia dengan sebuah silinder. Saya melakukan sesuatu yang mirip dengan dunia yang datar, tetapi saya membungkusnya dengan bola:
Cara saya melakukannya untuk bola mirip dengan cara Anda melakukannya untuk sebuah silinder. Pilih radius yang sesuai (ρ atau "rho" dalam koordinat silindris) untuk dunia Anda. Untuk setiap titik, ambil koordinat XZ dari dunia Anda (dengan asumsi Y adalah tinggi), lalu diam-diam ke koordinat silinder menggunakan XZ dan jari-jari ditambah Y. Jika Anda tidak menambahkan Y, Anda akan mendapatkan silinder datar. Kemudian konversikan kembali ke koordinat Cartesian untuk menggambar di dalam game.
sumber
Anda ingin pergi dari dunia planar, ke dunia silindris.
Rotasi di sekitar sumbu x (dalam koordinat homogen) terlihat seperti ini:
Dimana:
Untuk menghitung sudut, lihat gambar. Pi / 2 dibatalkan dan Anda dibiarkan dengan:
Juga, lihat gambar. Sudut titik yang diproyeksikan tergantung pada jarak horizontal dari karakter, jarak dari bola tergantung pada vertikal.
pastikan untuk menyisihkan hal-hal yang ada di cakrawala, jika tidak seluruh dunia akan membungkusnya.
Penafian: Saya belum menguji ini dan saya bukan ahli matematika, tetapi jawabannya adalah seperti ini. Seseorang tolong perbaiki saya jika saya salah.
sumber