3D RTS'de grup oluşumlarını nasıl uygularım?


14

Tek bir birim için yol bulma işini başardım ve ajan-aracı çarpışmasını önlemeyi başardım, ancak şimdi bir konuma bir grup ajan gönderebilmem gerekiyor.

Bu benim kurulumum:

  • Yol noktası bulma
  • İki düğüm arasındaki minimum mesafe, bir ajan için izin verilen en büyük sınırlayıcı küre yarıçapından biraz daha büyüktür.
  • Aracılar, açık yola dayalı bazı yönlendirme davranışları yaparak diğer ajanlarla çarpışmayı önler

Şimdi ajanlarımı grup içinde bir yere göndermem gerekiyor. Bunu yapmanın bir yolunun bir grup lideri oluşturmak ve diğer birimlere ofset pozisyonunu vermek olduğunu söyleyen bazı yazıları okudum.

Ancak sorun şu ki, grup oluşumu sağlanamazsa ne olur? Örneğin, bir dikdörtgen oluşturmak istiyorsunuz, ancak hedef konumda bir dikdörtgen kurulumu oluşturmanızı engelleyen bir yapı var.


2
İşte uygun bir cevap yazmak için zamanım yok, ama işte benim sıfır nokta iki sent: Bir Boids akın algoritması kullanın ve sonra Boids itiraz nesneler olarak engelleri temsil.
Nailer

@Nailer akın algoritması hareket ettikleri sürece çalışır, ancak son konumlarının "iyi" olup olmadığını nasıl tespit edebilirim ve hareket etmeyi durdurabileceklerini nasıl bildirebilirim? Endişelenme, cevabını bekleyebilirim;)
xcrypt

Yanıtlar:


13

Aslında bu konuda Gamasutra'da oldukça güzel bir makale var. Oluşumlar ve çarpışmaların çözümü gibi konuları kapsar:

resim açıklamasını buraya girin

Ve aynı konuda onlardan başka bir makale , ki bu biraz daha kısa ama daha sahte kod örnekleri var:

resim açıklamasını buraya girin

Son olarak, sisteminizi uygularken düşünmeniz gereken bir şey, "Akış Alanı" Yüksek Komutanı 2'nin bunu kullandığı fikridir ; Ve Washington Eyalet Üniversitesi'nin Crowd Flows araştırmasına dayanıyor .


Teşekkürler, üst düzey komutandan bir şeyler bulan süreklilik kalabalıkları gördüm, ama sanırım atm'ımla uğraşacağım. Biraz daha exp aldığımda bunu deneyeceğim, çünkü evet gerçekten şık görünüyor; D
xcrypt

2

Ben oluşumun patronu görünmez bir "sürü varlık" olabilir düşünüyorum, ve böylece diğer yaratıklar kendini bu varlık göre konumlandırmak yapmak. Bu varlık dönebiliyorsa, göreli konum da dönecektir.

... oopos .. bunu zaten yapıyorsun.

Peki buna ne dersin:

Neden çarpışan varlıklar için yeni pozisyonlar hesaplayamıyorsunuz? Süslü olmam gerekmiyor, belki sadece istenen orijinal noktadan ve liderden bir çizgi dram ve istenen pozisyonu bu çizginin ortasına taşıyın. Çarpışma için tekrar test edin.


Benim
sorumda

Üzgünüm !, Cevabımı yeni bir fikirle güncelledim.
Tei

Anlayamıyorum, sadece ofset vektörünün büyüklüğünü yarıya indirip, bunun çarpışmadan bağımsız bir konum olup olmadığını kontrol etmeye devam eder misiniz? Bu büyük olasılıkla birçok durumda başarısız olur
xcrypt
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.