ฉันจะให้ตัวแทน AI ขยับไปตามทางโค้งได้อย่างไร


12

ในปัจจุบันกรอบ AI ขั้นพื้นฐานของฉันมีตัวแทนที่ย้ายไปตามเส้นทางที่ขรุขระซึ่งประกอบไปด้วยจุดต่าง ๆ

เส้นทาง nav

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


พวกเขาจะเลือกประเด็นต่อไปได้อย่างไร
FxIII

@FxIII ขออภัยฉันไม่เห็นความคิดเห็นนี้มาก่อน - คุณหมายถึงพวกเขาเลือกเป้าหมายการค้นหาใหม่หรือไม่หรือพวกเขาเลือกจุดถัดไปในการค้นหาได้อย่างไร
SirYakalot

คำตอบ:


4

คุณตามเส้นทางที่ราบเรียบ แน่นอนว่า bummzack ชี้ให้เห็นว่าคุณต้องการให้แน่ใจว่าเส้นทางใด ๆ ที่ทำให้คุณราบรื่นในการดำเนินการทางกฎหมายสำหรับตัวแทนของคุณ

บทความจาก Gamasutra นี้อธิบายทุกสิ่งที่คุณจำเป็นต้องรู้มากมายรวมถึงการทำให้เส้นทางเรียบการหมุนตามกฎหมายและอัลกอริทึมการเลี้ยวที่สมจริง

อีกทางเลือกหนึ่งซึ่งง่ายกว่าเล็กน้อยคือการใช้พฤติกรรมการค้นหาที่มีวงกลม / ทรงกลมเล็ก ๆ เพื่อตรวจสอบว่าตัวแทนอยู่ที่หรือใกล้กับจุดถัดไปในเส้นทาง


7

เนื่องจากคุณทราบจุดควบคุมของคุณแล้วคุณเพียงแค่ต้องอัปเดตรหัสการแก้ไขของคุณเพื่อใช้อัลกอริทึมสำหรับความโค้ง (Hermite หรือ Cosine เป็นต้น)

เว็บไซต์เหล่านี้มีคำอธิบายที่ดีและรหัสตัวอย่างที่คุณควรเริ่มต้น:

วิธีการแก้ไข Paul Bourke

โซล :: บทเรียน - เทคนิคการแก้ไข


ถ้าเส้นโค้งที่สร้างขึ้นชนกับสิ่งกีดขวางในทันใด
bummzack

นี่เป็นเพียงการเคลื่อนไหวของตัวแทนต่อเฟรม การตรวจจับการชนกันแบบเดิมยังคงใช้ เมื่อตรวจพบการชนกันให้เปลี่ยนจุดควบคุมเพื่อหลีกเลี่ยงวัตถุ (ยาก) หรือเริ่มใช้การเคลื่อนไหวอื่นชั่วคราว
Doug.McFarlane

@ bummzack นั่นเป็นจุดที่ดีและคำตอบก็คือใช้ตาข่ายนำทางและทำให้เส้นโค้งของคุณราบรื่น แต่ตอนนี้ฉันจะทำให้กราฟทำงานง่าย ๆ แล้วฉันจะแก้ปัญหานี้โดยการปรับให้เรียบเท่านั้น เส้นทางเล็กน้อย
SirYakalot

@bummzack: เพิ่มพฤติกรรมการบังคับเลี้ยวเพื่อหลีกเลี่ยงอุปสรรคด้านบนของอัลกอริทึมการสร้างเส้นทางโค้ง
imre

0

ฉันจะไปเทียบกับเมล็ดข้าวที่นี่และแนะนำว่าแทนที่จะสร้างเส้นโค้งของคุณไว้ก่อนจัดการกับมันทีละเฟรมโดยใช้ (ตัวอย่าง) ตรรกะเดียวกับที่คุณใช้เพื่อสร้างบ้าน -missile

สิ่งนี้จะง่ายขึ้นมากและอาจเป็นจริงมากขึ้นเพราะคุณไม่จำเป็นต้องมีคดีพิเศษเมื่อมีกำแพงกั้นระหว่างสองจุด - คุณเพียงจัดการการตรวจจับการชนตามปกติ

ข้อเสียคือการเคลื่อนไหวจะดูย่อยที่สุด วัตถุจะใช้เส้นทางที่ตรงที่สุดจากจุดหนึ่งไปยังอีกจุดหนึ่งความหมายซึ่งแตกต่างจากเส้นโค้งเขาจะไม่เริ่มหันไปทางจุด 3 จนกว่าเขาจะผ่านจุดอ้างอิง 2 ไปแล้วขึ้นอยู่กับสถานการณ์ของคุณ แก้ไขได้โดยการปรับจุดอ้างอิงของคุณ (หากเป็นปัญหา)


1
นี่เป็นพฤติกรรมการแสวงหาที่ฉันแนะนำ
Ray Dey

0

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

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

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