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)?

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


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.


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.


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.