เครื่องยนต์ Godot ที่รองรับ: 4.3 (v1.2.0+) | 4.2 (รุ่น v1.1.x)
LimboAI เป็นปลั๊กอิน C++ แบบโอเพ่นซอร์สสำหรับ Godot Engine 4 ซึ่งมีการผสมผสานระหว่าง Behavior Trees และ State Machines ซึ่งสามารถใช้ร่วมกันเพื่อสร้างพฤติกรรม AI ที่ซับซ้อนได้ มันมาพร้อมกับเครื่องมือแก้ไขแผนผังพฤติกรรม เอกสารในตัว ดีบักเกอร์แบบภาพ โครงการสาธิตที่ครอบคลุมพร้อมบทช่วยสอน และอื่นๆ อีกมากมาย! แม้ว่าจะมีการใช้งานในภาษา C++ แต่ก็รองรับ GDScript อย่างสมบูรณ์สำหรับการสร้างงานและสถานะของคุณเอง
หากคุณสนุกกับการใช้ LimboAI โปรด พิจารณาสนับสนุน ความพยายามของฉันด้วยการบริจาคบน Ko-fi ? การมีส่วนร่วมของคุณจะช่วยให้ฉันพัฒนาและปรับปรุงต่อไป
แผนผังพฤติกรรมเป็นโครงสร้างลำดับชั้นที่มีประสิทธิภาพซึ่งใช้ในการจำลองและควบคุมพฤติกรรมของตัวแทนในเกม (เช่น ตัวละคร ศัตรู) ได้รับการออกแบบมาเพื่อให้ง่ายต่อการสร้างพฤติกรรมแบบโมดูลาร์ที่หลากหลายสำหรับเกมของคุณ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับแผนผังพฤติกรรม โปรดดูบทนำเกี่ยวกับแผนผังพฤติกรรมและโปรเจ็กต์สาธิตของเราซึ่งรวมถึงบทช่วยสอน
โครงการสาธิต อยู่ในโฟลเดอร์
demo
และมีจำหน่ายแยกต่างหากใน Releases เรียกใช้demo/scenes/showcase.tscn
เพื่อเริ่มต้น นอกจากนี้ยังมีบทช่วยสอนที่แนะนำแผนผังพฤติกรรมผ่านตัวอย่างที่แสดงให้เห็น
วิดีโอ YouTube ที่ผลิตโดยผู้สร้างต่างๆ
ต้นไม้พฤติกรรม (BT):
แผนกระดานดำ: กำหนดตัวแปรในทรัพยากร BehaviorTree และแทนที่ค่าในโหนด BTPlayer
เครื่องมือแก้ไขแผน: จัดการตัวแปร ประเภทข้อมูล และคำแนะนำเกี่ยวกับคุณสมบัติ
ขอบเขต Blackboard: ป้องกันความขัดแย้งของชื่อและเปิดใช้งานเทคนิคขั้นสูง เช่น การแบ่งปันข้อมูลระหว่างเอเจนต์หลายราย
พารามิเตอร์กระดานดำ: ส่งออกพารามิเตอร์ BB ซึ่งผู้ใช้สามารถระบุค่าหรือผูกเข้ากับตัวแปรกระดานดำ (สามารถใช้ในงานที่กำหนดเองได้)
การสนับสนุนตัวตรวจสอบสำหรับการระบุตัวแปรกระดานดำ (ตัวแก้ไขแบบกำหนดเองสำหรับคุณสมบัติ StringName
ที่ส่งออกที่ลงท้ายด้วย "_var")
สร้าง แก้ไข และบันทึกทรัพยากร BehaviorTree
ในตัวแก้ไขได้อย่างง่ายดาย
ดำเนินการทรัพยากร BehaviorTree
โดยใช้โหนด BTPlayer
สร้างพฤติกรรมที่ซับซ้อนโดยการรวมและซ้อนงานในลำดับชั้น
ควบคุมโฟลว์การดำเนินการโดยใช้งานคอมโพสิต มัณฑนากร และงานเงื่อนไข
สร้างงานที่กำหนดเองโดยขยายคลาสหลัก: BTAction
, BTCondition
, BTDecorator
และ BTComposite
เอกสารประกอบการเรียนในตัว
ระบบกระดานดำ: แบ่งปันข้อมูลระหว่างงานต่างๆ ได้อย่างราบรื่นโดยใช้ Blackboard
ใช้งาน BTSubtree
เพื่อรันแผนผังจากไฟล์ทรัพยากรอื่น ส่งเสริมการจัดระเบียบและการนำกลับมาใช้ใหม่
Visual Debugger: ตรวจสอบการทำงานของ BT ในฉากที่กำลังรันอยู่เพื่อระบุและแก้ไขปัญหา
แสดงภาพ BT ในเกมโดยใช้โหนด BehaviorTreeView
(สำหรับเครื่องมือในเกมแบบกำหนดเอง)
ตรวจสอบประสิทธิภาพของทรีด้วยมอนิเตอร์ประสิทธิภาพแบบกำหนดเอง
เครื่องสถานะแบบลำดับชั้น (HSM):
ขยายคลาส LimboState
เพื่อใช้ตรรกะสถานะ
โหนด LimboHSM
ทำหน้าที่เป็นเครื่องสถานะที่จัดการอินสแตนซ์และการเปลี่ยน LimboState
LimboHSM
เป็นสถานะและสามารถซ้อนกันภายในอินสแตนซ์ LimboHSM
อื่นๆ ได้
ตามเหตุการณ์: การเปลี่ยนผ่านจะเชื่อมโยงกับเหตุการณ์และจะถูกทริกเกอร์โดยเครื่องสถานะเมื่อมีการส่งเหตุการณ์ที่เกี่ยวข้อง ซึ่งช่วยให้สามารถแยกการเปลี่ยนจากตรรกะของรัฐได้ดีขึ้น
รวมเครื่องสถานะเข้ากับแผนผังพฤติกรรมโดยใช้ BTState
สำหรับ AI เชิงโต้ตอบขั้นสูง
ตัวเลือกการมอบหมาย: การใช้ vanilla LimboState
มอบหมายการใช้งานให้กับฟังก์ชันการโทรกลับของคุณ ทำให้เหมาะสำหรับการสร้างต้นแบบอย่างรวดเร็วและติดขัดในเกม
- หมายเหตุ: การตั้งค่าเครื่องสถานะและการเริ่มต้นต้องใช้รหัส ไม่มีโปรแกรมแก้ไข GUI
ทดสอบแล้ว: งานแผนผังพฤติกรรมและ HSM ครอบคลุมโดยการทดสอบหน่วย
GDExtension: LimboAI สามารถใช้เป็นส่วนขยายได้ ไม่จำเป็นต้องสร้างเครื่องยนต์แบบกำหนดเอง
การสาธิต + บทช่วยสอน: ลองดูโครงการสาธิตที่ครอบคลุมของเรา ซึ่งรวมถึงการแนะนำแผนผังพฤติกรรมโดยใช้ตัวอย่าง
ปฏิบัติตามคำแนะนำขั้นตอนแรกเพื่อเรียนรู้วิธีเริ่มต้นใช้งาน LimboAI และโปรเจ็กต์สาธิต
LimboAI สามารถใช้เป็นโมดูล C++ หรือเป็นไลบรารีที่ใช้ร่วมกันของ GDextension เวอร์ชัน GDextension ใช้งานได้สะดวกกว่า แต่มีคุณสมบัติค่อนข้างจำกัด ไม่ว่าคุณจะเลือกใช้แบบใด โปรเจ็กต์ของคุณก็จะเข้ากันได้กับทั้งสองแบบ และคุณสามารถสลับจากที่หนึ่งไปยังอีกที่หนึ่งได้ตลอดเวลา ดูการใช้ GExtension
สำหรับบิวด์ล่าสุด ให้ไปที่ การดำเนินการ → บิลด์ทั้งหมด เลือกบิลด์จากรายการ และเลื่อนลงจนกว่าคุณจะพบส่วน สิ่งประดิษฐ์
สำหรับรุ่นรุ่น ให้ตรวจสอบ รุ่น
ดาวน์โหลดซอร์สโค้ด Godot Engine และใส่ซอร์สของโมดูลนี้ลงในไดเร็กทอรี modules/limboai
ศึกษาเอกสารประกอบของ Godot Engine เพื่อดูคำแนะนำเกี่ยวกับวิธีการสร้างจากซอร์สโค้ด
หากคุณวางแผนที่จะส่งออกเกมโดยใช้โมดูล LimboAI คุณจะต้องสร้างเทมเพลตการส่งออกด้วย
หากต้องการดำเนินการทดสอบหน่วย ให้คอมไพล์เอ็นจิ้นด้วย tests=yes
และรันด้วย --test --tc="*[LimboAI]*"
คุณจะต้องใช้เครื่องมือสร้าง SCons และคอมไพเลอร์ C++ ดูเพิ่มเติมที่การคอมไพล์
รัน scons target=editor
เพื่อสร้างไลบรารีปลั๊กอินสำหรับแพลตฟอร์มปัจจุบันของคุณ
SCons จะโคลนพื้นที่เก็บข้อมูล godot-cpp/ โดยอัตโนมัติ หากไม่มีอยู่ในไดเรกทอรี limboai/godot-cpp
ตามค่าเริ่มต้น เป้าหมายที่สร้างขึ้นจะถูกวางไว้ในโครงการสาธิต: demo/addons/limboai/bin/
ตรวจสอบ scons -h
เพื่อดูตัวเลือกและเป้าหมายอื่นๆ
เอกสารออนไลน์: เสถียร ล่าสุด
ขั้นตอนแรก
รู้เบื้องต้นเกี่ยวกับแผนภูมิพฤติกรรม
การสร้างงานที่กำหนดเองใน GDScript
การแชร์ข้อมูลโดยใช้กระดานดำ
การเข้าถึงโหนดในแผนผังฉาก
เครื่องจักรของรัฐ
การใช้ GExtension
การใช้ LimboAI กับ C#
การอ้างอิงชั้นเรียน
ยินดีบริจาค! โปรดเปิดประเด็นสำหรับรายงานข้อผิดพลาด คำขอคุณสมบัติ หรือการเปลี่ยนแปลงรหัส สำหรับคำแนะนำโดยละเอียดเกี่ยวกับการร่วมเขียนโค้ดหรือเอกสาร โปรดดูที่หน้าการร่วมให้ข้อมูลของเรา
หากคุณมีแนวคิดสำหรับงานแผนผังพฤติกรรมหรือคุณลักษณะที่อาจเป็นประโยชน์ในโปรเจ็กต์ต่างๆ ให้เปิดประเด็นเพื่อหารือเกี่ยวกับประเด็นนั้น
ต้องการความช่วยเหลือ? เรามีเซิร์ฟเวอร์ Discord: https://discord.gg/N5MGC95GpP
ฉันเขียนเกี่ยวกับการพัฒนา LimboAI บน Mastodon: https://mastodon.gamedev.place/@limbo
การใช้ซอร์สโค้ดนี้อยู่ภายใต้ใบอนุญาตแบบ MIT ซึ่งสามารถพบได้ในไฟล์ LICENSE หรือที่ https://opensource.org/licenses/MIT
โลโก้ LimboAI และเนื้อหาภาพโครงการสาธิตได้รับอนุญาตภายใต้ใบอนุญาต Creative Commons Attribution 4.0 International ที่สามารถดูได้ที่ https://creativecommons.org/licenses/by/4.0/