Bagaimana cara menerapkan formasi grup dalam RTS 3D?

14

Saya berhasil mendapatkan pekerjaan pathfinding untuk satu unit, dan saya berhasil menghindari tabrakan agen-agen, tetapi sekarang saya harus dapat mengirim sekelompok agen ke beberapa lokasi.

Ini adalah pengaturan saya sejauh ini:

  • Penelusuran jalur jalan
  • Jarak minimum antara dua node sedikit lebih besar dari radius sphere terbesar yang diizinkan untuk suatu agen.
  • Agen menghindari tabrakan dengan agen lain dengan melakukan beberapa perilaku kemudi I berdasarkan clearpath

Jadi sekarang saya perlu mengirim agen saya ke suatu tempat dalam grup. Saya telah membaca beberapa posting yang mengatakan bahwa beberapa cara untuk melakukannya adalah dengan membuat pemimpin grup dan memberikan unit lain untuk posisinya.

Tetapi masalahnya adalah, bagaimana jika pembentukan kelompok tidak dapat dicapai? misalnya Anda ingin membentuk persegi panjang, tetapi pada posisi target ada struktur di dekatnya yang mencegah Anda membuat pengaturan persegi panjang.

xcrypt
sumber
2
Saya sedang bekerja jadi saya tidak punya waktu untuk menulis jawaban yang tepat, tetapi di sini adalah nol poin saya dua sen: Gunakan algoritma berkelompok Boids dan kemudian mewakili hambatan sebagai objek yang ditolak oleh Boids.
Nailer
@ Nailer dia berkelompok algoritma akan bekerja selama mereka bergerak, tetapi kemudian bagaimana saya mendeteksi jika posisi akhir mereka "oke", dan memberi tahu mereka bahwa mereka dapat berhenti bergerak? Jangan khawatir, saya bisa menunggu jawaban Anda;)
xcrypt

Jawaban:

13

Sebenarnya ada artikel yang cukup bagus tentang ini di Gamasutra. Dan mencakup topik-topik seperti formasi dan menyelesaikan tabrakan:

masukkan deskripsi gambar di sini

Dan artikel lain dari mereka tentang topik yang sama, yang sedikit lebih pendek tetapi memiliki lebih banyak contoh kode semu:

masukkan deskripsi gambar di sini

Akhirnya, hal yang baik untuk dipikirkan ketika menerapkan sistem Anda adalah gagasan tentang "Field Flow" yang digunakan oleh Panglima Tertinggi ini ; Dan ini didasarkan pada penelitian Crowd Flows Washington State University .

MichaelHouse
sumber
Terima kasih, saya telah melihat kerumunan orang menemukan jalan dari komandan tertinggi, tapi saya pikir saya akan tetap dengan apa yang saya miliki. Saya akan mencobanya ketika saya mendapatkan exp lebih banyak, karena ya itu terlihat sangat bagus; D
xcrypt
2

Saya pikir Anda dapat memiliki "kawanan" entitas yang tidak terlihat yang merupakan bos formasi, dan menjadikan demikian makhluk lain memposisikan dirinya relatif terhadap entitas ini. Jika entitas ini dapat berputar, maka posisi relatif akan berputar juga.

... oopos .. kamu sudah melakukan itu.

Bagaimana dengan ini:

Mengapa Anda tidak dapat menghitung posisi baru untuk entitas yang bertabrakan? Saya tidak perlu menjadi mewah, mungkin hanya memainkan garis dari titik asli yang diinginkan, dan pemimpin, dan memindahkan posisi yang diinginkan ke tengah garis ini. Tes lagi untuk tabrakan.

Tei
sumber
Nah itu cukup banyak apa yang saya katakan dalam pertanyaan saya: D Bagian yang sulit adalah bagaimana menangani tabrakan formasi dengan medan / hambatan / struktur
xcrypt
Maaf !, saya telah memperbarui balasan saya dengan ide baru.
Tei
Saya tidak mengerti, Anda hanya akan membagi dua besarnya vektor offset dan terus memeriksa apakah ini adalah posisi bebas tabrakan? Itu kemungkinan besar akan gagal dalam banyak kasus
xcrypt