‫สวัสดีและยินดีต้อนรับ.
‫ในการบรรยายนี้ เราจะคอยจับตาดูผู้ติดตามและนำทางไปทั่วโลก หลีกเลี่ยงอุปสรรคและมักจะสร้างความรำคาญเล็กน้อย
‫มาดูกันว่ามันเป็นไปได้อย่างไร
‫ดังนั้น จิ๊กซอว์ชิ้นต่อไปที่ชัดเจนและชัดเจนที่สุดที่เราต้องแก้ตรงนี้คือการทำให้ตาของเราเคลื่อนเข้าหาเรา
‫มันไม่ดีที่พวกเขายืนอยู่ที่นั่น
‫พวกเขายังต้องเคลื่อนไหวและจากนั้นพวกเขาจะต้องยิง
‫ก่อนอื่น มาคิดกันก่อนว่าเราจะเคลื่อนไหวได้อย่างไร
‫เวลาที่คุณเคลื่อนไหวด้วยสายตาจำเป็นต้องรู้เกี่ยวกับสิ่งกีดขวาง มันจำเป็นต้องทำสิ่งที่เรียกว่าการค้นหาเส้นทาง
‫เพราะพูดว่า ฉันซ่อนตัวอยู่ในทางเดินนี้ และมันต้องการมาหาฉัน
‫ต้องรู้ว่าไม่สามารถเคลื่อนที่ทะลุกำแพงได้
‫มันจะต้องวางแผนเส้นทางเพื่อหลบสิ่งกีดขวางและเข้ามาหาฉัน
‫วิธีการทำงานโดยทั่วไปในเกมโดยทั่วไป และโดยเฉพาะใน Unreal ที่นี่คือ เราสร้างเมชที่บอกเราว่าตำแหน่งใดที่สามารถเดินได้ภายในระดับ
‫แล้วใช้อัลกอริธึมต่างๆ ซึ่งหนึ่งในนั้นเรียกว่าการค้นหาเส้นทางของดวงดาว
‫คุณสามารถนำทางบนตาข่ายนี้และสร้างแผนเส้นทาง จากนั้น AI จะใช้แผนเส้นทางนี้เพื่อก้าวต่อไป
‫นั่นคือโครงร่างของกระบวนการ
‫โชคดีที่มีหลายอย่างที่ทำเพื่อเรา
‫เราไม่ต้องเขียนโค้ดนี้ตั้งแต่เริ่มต้น
‫สิ่งที่เราต้องทำคือ อย่างแรกเลย คือสามารถเห็น nav mesh ได้
‫และในขณะนี้เราไม่สามารถมองเห็นตาข่ายได้เพียงบางส่วนเพราะไม่มีตาข่าย
‫สิ่งที่เราต้องทำคือดูในหน้าต่างนักแสดงที่เราวางไว้ที่นี่ หรือดังนั้นเราจึงไปที่หน้าต่างและมองหานักแสดงที่วางไว้
‫เราจำเป็นต้องค้นหา nav mesh และกำลังมองหา nav mesh bounds
‫ตอนนี้มันสร้างวอลลุ่ม ชนิดของกล่อง และทุกอย่างภายในกล่องนั้นจะถูกตรวจสอบว่านำทางได้อย่างไร
‫โดยพื้นฐานแล้ว ไม่ว่าจะแบนราบหรือไม่สูงชันเกินไป
‫โดยพื้นฐานแล้ว ที่ซึ่งมีกำแพงอยู่นั้น คุณไม่สามารถทะลุกำแพงได้ คุณไม่สามารถเดินข้ามกำแพงได้ เพราะมันสูงชันเกินไป
‫ดังนั้น หากเราลากปริมาตรของ nav mesh bounds และนำมันมาที่นี่แล้ววางผ่านพื้นเล็กน้อยเพื่อให้พื้นเป็นส่วนหนึ่งของการคำนวณการนำทางนั้น
‫สิ่งที่เราต้องทำคือทำให้มองเห็นได้ ตาข่าย NAV
‫คุณสามารถทำได้โดยคลิกที่ปุ่มแสดงที่ด้านบนซ้ายของวิวพอร์ตของคุณ จากนั้นคลิกที่การนำทางหรือใช้ทางลัด
‫P ดังนั้นฉันจะใช้ทางลัด
‫P และเมื่อเลือกได้ดีแล้ว คุณไม่จำเป็นต้องเลือกขอบเขตของเสียงด้วยซ้ำ
‫คุณจะเห็นตาข่ายสีเขียวปรากฏขึ้นในปริมาตรของขอบเขตทันที ซึ่งบอกเราว่านี่คือพื้นที่ที่เดินได้
‫ดังนั้นถ้าเรามีศัตรูอยู่ในพื้นที่นี้และเป้าหมายของเขาอยู่ในพื้นที่ด้วย มันก็จะพบเส้นทางตามตาข่ายนี้
‫ตอนนี้เรามาดูกันว่าจะเกิดอะไรขึ้นถ้าเราย้ายสิ่งนี้ไปยังที่ที่มีอุปสรรค
‫คุณจะเห็นได้ว่าตาข่ายตัดออกรอบสิ่งกีดขวางนี้
‫สิ่งที่เราอยากทำจริงๆ คือ ให้เล่มนี้ครอบคลุมระดับทั้งหมดของเรา และคุณสามารถเลือกไม่ทำหรือทำเฉพาะในบางเซกเมนต์
‫แต่วิธีที่ง่ายที่สุดคือเพียงเพิ่มขอบเขตของไดรฟ์ข้อมูลนี้ ซึ่งคุณทำได้
‫หากคุณไปที่บานหน้าต่างรายละเอียดทางด้านขวา แสดงว่ามีการตั้งค่าแปรง และคุณสามารถเปลี่ยนขนาดของแปรงได้
‫เพื่อให้คุณเห็นว่าเราสามารถทำให้มันใหญ่ขึ้น เราสามารถทำให้มันกว้างขึ้น และเป็นสีแดงเมื่อมีการคำนวณใหม่
‫คุณจะเห็นว่ามันกำลังสร้าง nav mesh และยิ่งมีขนาดใหญ่เท่าใด การสร้าง
‫nav mesh ก็ยิ่งยากขึ้นเท่านั้น
‫แต่คุณจะเห็นว่าสิ่งนี้ใช้ได้ผล
‫มันตัดทางเดิน
‫มันตัดสิ่งกีดขวางที่เราเดินไปมาไม่ได้
‫ส่วนที่สองของปริศนานี้คือการทำให้ตาของเราสามารถทำอัลกอริธึมการรูตบนตาข่ายนี้ได้
‫เอาล่ะ ไปเปิดการควบคุมการมองของ BP Shooter กัน เพราะฉันต้องการแสดงให้คุณเห็นบางอย่างที่อยู่ในนี้
‫ฉันจะเปิดโปรแกรมแก้ไขพิมพ์เขียวฉบับสมบูรณ์ที่นี่ และดูที่นี่
‫มีองค์ประกอบที่เรียกว่าองค์ประกอบตามเส้นทาง
‫ส่วนประกอบนั้นมีหน้าที่ในการค้นหา F mesh จากนั้นให้เราสร้างเส้นทางและติดตามพวกมันและเคลื่อนที่โดยอัตโนมัติ
‫ดังนั้นเราจึงไม่ต้องสร้างฟังก์ชันใด ๆ ขึ้นมา
‫สิ่งที่เราต้องทำคือใช้ฟังก์ชันที่มีอยู่ในตัวควบคุม AI ของเรา
‫หากคุณไปค้นหาตัวควบคุม AI H และมองหาฟังก์ชันย้ายไปที่ ให้ย้ายไปด้วยวงเล็บเปิด
‫แล้วมีสองสามตัวเลือกที่นี่
‫เรามีหนึ่งที่จะย้ายเพื่อขอ
‫มีตัวเลือกอื่น ๆ ที่นี่เช่นกัน แต่จริง ๆ แล้วพวกเขาใช้ชื่ออื่น
‫ตอนนี้ ใน Unreal เวอร์ชันต่อมา เราได้ย้ายไปยังนักแสดง และเราได้ย้ายไปยังตำแหน่ง ซึ่งมีความแตกต่างเช่นเดียวกับจุดเน้นการตั้งค่าของเรา
‫คุณสามารถตั้งโฟกัสไปที่บางสิ่งที่เคลื่อนไหวเหมือนนักแสดง หรือคุณสามารถตั้งค่าโฟกัสไปที่ปลายทางเฉพาะ
‫เช่น จุดอ้างอิงในเส้นทางการลาดตระเวนของคุณ เช่น อาจเป็นการย้ายไปยังตำแหน่ง
‫ดังนั้นฉันอยากให้คุณลองพยายามย้ายไปเป็นความท้าทายของคุณ
‫ดังนั้นให้นำตาข่ายนำทางมาใช้ในฉากของคุณ ทำให้มันครอบคลุมฉากได้มากเท่าที่คุณต้องการเพื่อให้คุณสามารถเคลื่อนที่ไปมาและมี
‫ฉันติดตามคุณในทุกสถานที่แล้วเรียกย้ายไปยังการกระทำหรือย้ายไปยังตำแหน่ง
‫คุณเป็นผู้ตัดสินใจว่าโรงแรมใดจะเริ่มเล่นเพื่อให้ AI ไล่ตามเรา
‫หยุดวิดีโอชั่วคราวแล้วไปกันเลย
‫ตกลง.
‫ยินดีต้อนรับกลับ.
‫มาลองดูกัน
‫ดังนั้นสิ่งแรกก่อน
‫เราจะมี ฉันจะใช้การย้ายไปยังนักแสดงและเราจะต้องกำหนดเป้าหมายนักแสดง
‫ไปที่มือปืนของเรา ฉันควบคุม CP และในนั้นเริ่มเล่นเราสามารถย้ายไปเป็นนักแสดงและเราได้นักแสดงแล้วผู้เล่น
‫- ซึ่งเราได้จากการบรรยายครั้งที่แล้วลองดูกัน
‫มีคุณสมบัติที่เป็นประโยชน์อื่น ๆ ที่นี่หรือไม่?
‫เรามีรัศมีการยอมรับ
‫ในขณะนี้ไม่มีรัศมีการยอมรับ
‫โดยพื้นฐานแล้วมันเข้าใกล้มากที่สุดเท่าที่จะทำได้
‫ฉันคิดว่ามันอาจจะเป็นการบุกรุกเล็กน้อย
‫ฉันจะให้รัศมีการยอมรับเป็นสองเมตร ดังนั้นมันจะพยายามเข้าไปภายในสองเมตรจากเรา
‫ไปข้างหน้าและสร้างสิ่งนั้น
‫เสร็จแล้วก็เข้าเครื่องได้เลย
‫และมาดูกัน
‫ฉันจะไม่ขยายปริมาณการตีกลับที่นี่เพียงเพื่อให้คุณได้ทราบว่าเหตุใดเราจึงต้องการปริมาณการตีกลับในตอนแรก
‫มาเริ่มกันด้วย alt p
‫และนี่คือเรา
‫เราอยู่บนเครือข่ายนำทาง และผู้ชายคนนี้ได้เคลื่อนเข้ามาหาเราโดยอัตโนมัติ
‫แต่ถ้าฉันออกจากระบบนำทางนั้น เขาจะเข้าใกล้ฉันไม่ได้อีกต่อไปเพราะเขาหาเส้นทางไม่เจอ
‫เขาไม่สามารถหาทางเข้าหาฉันได้
‫สิ่งที่เราจะทำคือในความเป็นจริง เราไม่แน่ใจว่าเป็นสิ่งที่เกิดขึ้นจริงที่นี่ เพราะบางทีสิ่งที่เกิดขึ้นคือเขาอยู่ในรัศมีการยอมรับของฉัน
‫และพวกเขาจะไม่ลองอีกครั้ง
‫วิธีหนึ่งที่จะตรวจสอบได้ก็คือ ลบรัศมีการยอมรับออกแล้วคอมไพล์ใหม่ จากนั้นเราจะไปดูกันว่าเกิดอะไรขึ้น
‫ใช่ เขาเข้ามาหาฉันทันที ถ้าฉันย้ายออกไป
‫โดยพื้นฐานแล้วเขาลืมคำสั่งนั้นไป
‫สิ่งที่เราอยากทำคือทำสิ่งนี้ใน tic เพราะโดยพื้นฐานแล้ว เมื่อเขามาถึงฉัน เขาจะเลิกคิดที่จะไล่ตามฉัน
‫ลองย้ายไปที่ tic
‫นี่ไม่ใช่วิธีที่เหมาะที่จะทำ แต่นั่นคือสิ่งที่เรากำลังจะทำ
‫ตอนนี้ฉันกำลังจะคัดลอกลายเซ็นของ Tic จากนักแสดง H และฉันรู้ว่ามันอยู่ในส่วนสาธารณะ ดังนั้นฉันจะสร้างส่วนสาธารณะที่ด้านบน
‫คัดลอกลายเซ็น ทำให้มันแทนที่ แค่ความปลอดภัย แล้วนำไปใช้ใน C++ และย้ายตัวแสดงการเคลื่อนไหวของเราเข้าไปที่เครื่องหมาย
‫และรัศมีการยอมรับยังคงเป็นสองเมตรที่ลองทำตอนนี้ และเห็นได้ชัดว่ามันบ่นว่าเราไม่มี ผู้เล่น
‫-- ตรงนั้น
‫ไปกันเถอะ และทำให้แน่ใจว่าเรากำลังทำซ้ำบรรทัดนี้ที่ได้รับผู้เล่นคนแรก
‫- ในห้องใต้หลังคาเช่นกัน
‫และตอนนี้ เราควรจะสามารถทดสอบมันได้ถูกต้อง ทำ alt pig ในโลกนี้
‫เขามาและรับเราภายในสองเมตร
‫ฉันถอยห่างจากเขาและฉันจะดูสิ่งนั้น
‫ครั้งนี้เขาไม่ได้เล็งมาที่ผมอย่างถูกต้องด้วยซ้ำ แต่เขาพยายามทำตาม
‫แต่ทันทีที่ฉันออกจากเครือข่ายนำทางนั้น เขาก็ไม่รู้ว่าจะหาฉันเจอได้อย่างไร
‫งั้นเรามาแก้ไขกันดีไหม?
‫เราจะไปที่ปริมาณการตีกลับของ nav mesh
‫ถ้าเลือกได้.
‫เราจะไปที่นั่น.
‫จากนั้นเราต้องการที่จะซูมออกที่นี่จริง ๆ เพื่อพยายามรวมระดับทั้งหมดของเรา
‫ภายนอกระดับนี้ดูสกปรกไปหน่อย แต่นั่นเป็นเพียงวิธีที่สิ่งต่าง ๆ มักจะทำงาน
‫นั่นคือคุณสร้างระดับเพื่อดูจากภายใน ไม่ใช่จากภายนอก
‫เรามาทำให้มันกว้างกว่านี้กันเถอะ
‫ทำให้มันสูงขึ้นมากเพื่อให้ครอบคลุมทุกระดับแล้วลากมันออกมาเพื่อให้ครอบคลุมขอบเขตทั้งหมดของระดับที่นี่
‫แค่ทำให้กว้างขึ้นอีกนิด ยาวขึ้นอีกนิดด้วย และตรวจสอบให้แน่ใจว่าทั้งหมดนี้ถูกรวมไว้อย่างสมบูรณ์
‫และคุณจะเห็นสีเขียวปรากฏขึ้นเมื่อคำนวณตาข่ายนำทาง
‫และให้ตรวจสอบให้แน่ใจว่าการวัดการนำทางลดลงจนครอบคลุมขอบเขตที่ต่ำที่สุดในแผนที่ของเราซึ่งดูเหมือนว่าจะครอบคลุมอยู่ในขณะนี้
‫ดังนั้นถ้าเราไปข้างหน้าและเราสามารถซ่อนและนำทางได้ในขณะนี้ที่เราได้ตั้งค่าทั้งหมดและเราสามารถทำ alt
‫p เพื่อไปข้างหน้าและเล่นและเขาสามารถหาเราและติดตามเราได้ทุกที่ที่เราไปถึงในระดับนี้
‫คุณจะเห็นได้ว่าผู้รับใช้ที่ภักดีที่ไว้ใจได้ของเรากำลังตามหลังเราไปทุกที่ที่เราเลือกไป
‫เขาแค่ไล่ตามเราและตามเรา ซึ่งน่ารำคาญมาก
‫แต่เขาสามารถทำเช่นนั้นได้
‫บางสิ่งบางอย่าง
‫ดังนั้นในการบรรยายครั้งนี้ เราได้เห็นวิธีที่เราสามารถสร้างมาตรการ NAV ของเรา และวิธีที่เราสามารถใช้มาตรการเหล่านี้เพื่อให้อากาศของเราติดตามเราไปทั่วระดับ
‫การบรรยายครั้งต่อไป เราจะวนกลับไปรอบ ๆ เพื่อแก้ไขจุดบกพร่องและตรวจแนวสายตา
‫เพื่อที่เราจะได้ไม่ต้องไล่ตามผู้เล่นตลอดเวลา
‫ดูที่นั่น
‫และฉันเพิ่งสังเกตเห็นข้อผิดพลาดเล็กๆ น้อยๆ ที่ฉันทำที่นี่ นั่นคือฉันไม่ได้เรียก
‫super colon tic
‫นั่นคือเหตุผลที่บางครั้งคุณได้รับข้อผิดพลาดแปลกๆ ที่ไม่สามารถอธิบายได้เหล่านี้ หากคุณไม่ได้โทรหา
‫super สิ่งต่างๆ ก็ไม่ได้ผลตามที่คาดไว้เสมอไป
‫นั่นเป็นสาเหตุที่โฟกัสหยุดทำงานเพราะโดยพื้นฐานแล้วเราได้ปิดการใช้งาน tic บนคอนโทรลเลอร์ระดับสูงซึ่งไม่ดี
‫หากคุณเปิดใช้งานสิ่งนี้ ทุกอย่างควรทำงานตามปกติด้วยการตั้งค่าโฟกัส