ถนนโค้ง 2 มิติที่สร้างตามขั้นตอนบนแผนที่


9

ฉันกำลังทดลองกับอัลกอริทึมเพื่อสร้างแผนที่ถนนสำหรับเกมที่ฉันกำลังทำอยู่โดยอัตโนมัติ

ฉันใช้เกม " Kingdom Rush " เป็นจุดอ้างอิงเนื่องจากมีแผนที่ที่สวยงาม

ตัวอย่างแผนที่ถนนจากเกม "Kingdom Rush"

ฉันใหม่สำหรับการสร้างเนื้อหาขั้นตอนและสงสัยว่าใครที่นี่มีตัวชี้ใด ๆ ฉันได้ทดลองสร้างโทโพโลยีของถนนแบบสุ่มเช่นโหนดทางเข้า / แหล่งที่มาไม่กี่โหนดด้านในหลายจุด (ทางแยกและผสาน) และโหนดตัวซิงค์ทางออกบางส่วนจากนั้นใช้อัลกอริธึมแบบกราฟเพื่อสร้างแผนที่ถนนจริงตามข้อมูลนี้

นี่คือตัวอย่างหนึ่งที่ใช้อัลกอริทึมของ Fruchterman-Reingoldสำหรับรูปแบบถนน:

แผนที่ที่สร้างจาก PCG 1

กราฟสีน้ำเงินใช้จุดควบคุมเบเซเยร์ที่สร้างขึ้นแบบสุ่มเพื่อให้ขอบดูตรงน้อยลง

นี่คืออีกตัวอย่างที่สร้างขึ้นโดยใช้อัลกอริทึมเดียวกัน แต่ตัวเลขสุ่มต่างกัน:

แผนที่ที่สร้างจาก PCG 2

ปัญหาคือผลลัพธ์ส่วนใหญ่ดูเหมือนจะคล้ายกันมากและฉันไม่แน่ใจว่ากฎใดที่ฉันสามารถเพิ่มเพื่อปรับปรุงความสามารถในการควบคุมและความหลากหลายของแผนที่ที่สร้างขึ้นโดยกระบวนการ

คำแนะนำใด ๆ ชื่นชม


คำถามที่น่ากลัว ภาพอ้างอิงช่วยได้มากเช่นเดียวกับสิ่งที่คุณได้ลองมา คุณช่วยอธิบายเพิ่มเติมเกี่ยวกับสิ่งที่คุณหมายถึง 'การควบคุม' ได้หรือไม่? มีหลายสิ่งที่คุณสามารถควบคุมได้ ตัวอย่างบางส่วนจะช่วย
Pikalek

Hi! ขอบคุณสำหรับคำตอบ ตามความสามารถในการควบคุมฉันหมายถึงเป็นไปได้ไหมที่จะเขียนกฎบางอย่าง (เช่นอย่าวางจุดตัดใกล้กว่าระยะทางที่กำหนดจากกันไม่อนุญาตให้ทำมุมที่คมชัดกว่า x องศา) และให้อัลกอริธึมการสร้าง นอกจากนี้กฎเหล่านี้ไม่ควรขัดขวางความสามารถของอัลกอริทึมในการสร้างแผนที่ที่น่าสนใจหลากหลายประเภท การให้กำลังใจของคุณนั้นเป็นสิ่งที่น่ายินดี ฉันเริ่มผิดหวังกับรายละเอียดของการทำให้สิ่งนี้เป็นจริง!
SixTwoOne

คำตอบ:


2

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

วิธีการเกี่ยวกับจำนวนลูปเป็นพารามิเตอร์รุ่น? นอกจากนี้ "ความโค้ง" (จำนวนจุดควบคุมซ้ำซ้อน) จำนวนการออกจะเป็นอีก

ฉันคิดว่าคุณสามารถจบถนนได้เมื่อพวกเขาชนสี่แยกโดยให้จุดควบคุมสองจุดกับพวกเขา นั่นควรทำให้จุดแยกดูดีขึ้น


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