ฉันจะใช้การก่อตัวกลุ่มใน 3D RTS ได้อย่างไร


14

ฉันจัดการเพื่อให้การค้นหาเส้นทางทำงานสำหรับหน่วยเดียวและฉันจัดการเพื่อหลีกเลี่ยงการชนกันของตัวแทนตัวแทน แต่ตอนนี้ฉันต้องสามารถส่งกลุ่มตัวแทนไปยังสถานที่บางแห่ง

นี่คือการตั้งค่าของฉันจนถึงตอนนี้:

  • การหาตำแหน่ง Waypoint
  • ระยะห่างต่ำสุดระหว่างสองโหนดนั้นใหญ่กว่ารัศมีวงรอบขอบเขตที่ใหญ่ที่สุดเพียงเล็กน้อยที่ได้รับอนุญาตสำหรับเอเจนต์
  • ตัวแทนหลีกเลี่ยงการชนกับตัวแทนอื่น ๆ โดยทำพฤติกรรมการขับขี่บางอย่างที่ฉันใช้บนเส้นทางที่ชัดเจน

ดังนั้นตอนนี้ฉันต้องส่งตัวแทนของฉันที่ไหนสักแห่งในกลุ่ม ฉันได้อ่านบางข้อความที่บอกว่าวิธีหนึ่งในการทำนั้นคือการสร้างหัวหน้ากลุ่มและให้หน่วยอื่น ๆ ลดตำแหน่งลง

แต่ปัญหาคือถ้าการก่อตัวของกลุ่มไม่สามารถทำได้? เช่นคุณต้องการสร้างสี่เหลี่ยมผืนผ้า แต่ที่ตำแหน่งเป้าหมายมีโครงสร้างใกล้เคียงซึ่งป้องกันไม่ให้คุณสร้างการตั้งค่าสี่เหลี่ยมผืนผ้า


2
ฉันอยู่ที่ทำงานดังนั้นฉันไม่มีเวลาเขียนคำตอบที่เหมาะสม แต่นี่คือจุดศูนย์สองเซ็นต์ของฉัน: ใช้อัลกอริทึม flocking Boids แล้วแสดงถึงสิ่งกีดขวางเป็นวัตถุที่ Boids ถูกผลักออกมา
Nailer

@Nailer เขา flocking อัลกอริทึมจะทำงานตราบใดที่พวกเขากำลังเคลื่อนไหว แต่แล้วฉันจะตรวจสอบได้อย่างไรว่าตำแหน่งสุดท้ายของพวกเขาคือ "โอเค" และแจ้งให้พวกเขาทราบว่าพวกเขาสามารถหยุดเคลื่อนไหวได้หรือไม่ ไม่ต้องกังวลฉันสามารถรอคำตอบของคุณได้)
xcrypt

คำตอบ:


13

จริงๆแล้วมีบทความที่ดีเกี่ยวกับเรื่องนี้ที่ Gamasutra และครอบคลุมหัวข้อต่าง ๆ เช่นการก่อตัวและการแก้ไขการชนกัน:

ป้อนคำอธิบายรูปภาพที่นี่

และบทความอื่นจากพวกเขาในหัวข้อเดียวกันซึ่งสั้นกว่าเล็กน้อย แต่มีตัวอย่างโค้ดหลอกเพิ่มเติม:

ป้อนคำอธิบายรูปภาพที่นี่

สุดท้ายเป็นสิ่งที่ดีที่จะคิดเกี่ยวกับเมื่อใช้ระบบของคุณเป็นความคิดของ "การไหลของสนามที่" ผู้บัญชาการทหารสูงสุด 2 งานนี้ ; และขึ้นอยู่กับการวิจัยCrowd Flows ของ Crowd Flows


ขอบคุณฉันได้เห็นฝูงชนที่ต่อเนื่องกันไม่ออกจากผู้บัญชาการทหารสูงสุด แต่ฉันคิดว่าฉันจะยึดติดกับสิ่งที่ฉันมี ฉันจะลองว่าเมื่อฉันได้รับประสบการณ์มากขึ้นเพราะใช่มันดูดีจริงๆ D
xcrypt

2

ฉันคิดว่าคุณสามารถมี "เอนทิตี้ของฝูง" ที่มองไม่เห็นนั่นคือเจ้านายของการสร้างและทำให้สัตว์อื่น ๆ วางตำแหน่งตัวเองสัมพันธ์กับเอนทิตีนี้ หากเอนทิตีนี้สามารถหมุนได้ตำแหน่งที่เกี่ยวข้องจะหมุนได้เช่นกัน

... oopos .. คุณทำไปแล้ว

เกี่ยวกับสิ่งนี้:

ทำไมคุณไม่สามารถคำนวณตำแหน่งใหม่สำหรับเอนทิตีที่ชนกันได้? ฉันไม่จำเป็นต้องแฟนซีบางทีอาจจะแค่เขียนบทจากจุดเริ่มต้นที่ต้องการและหัวหน้าและย้ายตำแหน่งที่ต้องการไปยังกึ่งกลางของบรรทัดนี้ ทดสอบอีกครั้งสำหรับการชนกัน


นั่นคือสิ่งที่ฉันพูดในคำถามของฉัน: D ส่วนที่ยุ่งยากคือวิธีจัดการกับการก่อตัวของภูมิประเทศ / สิ่งกีดขวาง / สิ่งก่อสร้าง
xcrypt

ขออภัยฉันได้อัปเดตคำตอบของฉันด้วยแนวคิดใหม่แล้ว
Tei

ฉันไม่เข้าใจคุณจะลดขนาดของเวกเตอร์ออฟเซ็ตลงครึ่งหนึ่งและตรวจสอบอีกครั้งว่านี่เป็นตำแหน่งปลอดการชนหรือไม่ ซึ่งน่าจะล้มเหลวในหลายกรณี
xcrypt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.