Deteksi dan gerakan tabrakan FPS

11

Bagaimana pendeteksian dan gerakan tabrakan biasanya ditangani dalam FPS, khususnya menangani sedikit perubahan ketinggian tanah seperti tangga (baik pada kemiringan maupun penurunan)?

Jason Kozak
sumber

Jawaban:

12

Entitas biasanya diwakili oleh kapsul (silinder dengan bola di ujungnya) terhadap geometri dunia (atau mesh tumbukan yang disederhanakan) untuk tumbukan kelas dunia.

Tangga biasanya tidak bertabrakan dengan jalan yang tidak terlihat, atau di bawah ketinggian tertentu yang biasanya Anda naikkan sebagai efek samping dari resolusi tabrakan. (Anda akan mendapatkan interpenetrasi dengan gerakan sebagai bagian dari ukuran langkah, dan resolusi akan muncul ke atas sebagai bidang terdekat)

Saya pikir inilah cara Unreal 3 bekerja, tetapi saya bisa saja salah. Saya ingat pernah melihat hierarki kotak pembatas di Sumber, tapi saya tidak ingat apakah itu hanya untuk pertempuran. bagaimanapun, kapsul itu sederhana dan cepat

Aaron Brady
sumber
1

Dalam Unity 3D, cara termudah adalah memiliki pengontrol orang pertama. Biasanya karakter harus melompat jika ketinggian langkah lebih tinggi dari langkah offset. Tetapi cara lain untuk melakukannya adalah menambahkan kotak collider dan memutarnya sehingga karakter dapat menaiki tangga dengan mudah, seolah-olah itu jalan.


sumber
0

Jawaban Brady baik, tetapi jika Anda ingin cara hacky untuk melakukannya, Anda bisa melempar sinar ke geometri tabrakan dasar Anda, mencari tahu apa segitiga itu hits, dan kemudian menggunakan rata-rata tertimbang dari ketinggian verts of triangle untuk mencari tahu ketinggian tanah.

BigSandwich
sumber
Bagaimana jika itu adalah segitiga miring yang besar? Tidak bisakah kamu menemukan titik persimpangan sinar?
Gustavo6046
Anda sudah tahu posisi di pesawat, Anda hanya perlu ketinggian, itulah sebabnya saya menentukan rata-rata tertimbang. Saya sarankan Anda mengambil buku tentang deteksi tabrakan jika Anda benar-benar ingin melangkah lebih jauh. Ini bukan format terbaik untuk belajar matematika.
BigSandwich
Oh ya. Rata-rata tertimbang . Saya pikir saya agak salah membaca itu. Salahku.
Gustavo6046