อะไรเป็นสาเหตุของ“ การพลัดตกจากโลก” และอะไรทำให้มันคงที่


15

เกม 3D ยุคต้นจำนวนมากมีปัญหาที่คุณต้องคลุกเคล้าอย่างสนุกสนานและทันใดนั้นทุกอย่างก็เป็นสีดำพร้อมเกาะที่ดูเหมือนเปลือกหอยด้านหน้าของฉากที่คุณกำลังเดินทะลุเข้าไปในระยะทางด้านบน เพราะคุณหลุดโลก ฉันจำได้ว่านี่เป็นปัญหาพิเศษและยาวนานสำหรับ Bethesda Softworks แม้ว่าพวกเขาจะไม่ได้อยู่คนเดียว เป็นเวลานานแล้วที่ข้าเห็นมันในป่าดังนั้นดูเหมือนว่าเราจะผ่านมันไปแล้ว คำถามของฉันเป็นสองส่วน

1) อะไรคือสาเหตุหรือสาเหตุของสิ่งนี้ (ฉันเดาว่ามันเกี่ยวกับตะเข็บที่มีความแม่นยำของจุดลอยตัวระหว่างรูปหลายเหลี่ยมการโต้ตอบกับตำแหน่งของตัวละครที่มีจุดแบบจำลองนั่นคือชั้นของพื้น A สิ้นสุดที่ตำแหน่ง 1.0, พื้นของพื้น B เริ่มที่ 0.9998 และสำหรับตำแหน่งของคุณ 0.99992 และบูมคุณล้มลงไปทั่วโลก แต่นั่นเป็นเพียงการคาดเดา)

2) มันได้รับการแก้ไขอย่างไร


Morrowind Vivec ความทรงจำ ...
Tobias Kienzler

3
การพูดของ Bethesda และตกผ่านชั้น, ที่นี่เป็น NPC ที่โชคร้ายใน Skyrim
Chris

ทำให้ฉันนึกถึงSkate 3เสมอ
user1118321

คำตอบ:


14

"รอยแตก" ในเรขาคณิตส่วนใหญ่ เกมเหล่านี้มีบางสิ่งที่เหมือนกันมีแรงโน้มถ่วงและมีการตรวจจับการชนกัน

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

นี่เป็นเรื่องธรรมดาเมื่อผู้เล่นทำสิ่งที่ผู้ออกแบบระดับไม่คาดหวัง กระโดดขึ้นไปบนบางสถานที่ที่พวกเขาไม่ควรจะเป็นหรืออย่างใดรอดจากการล่มสลายที่พวกเขาไม่ควร หรือเมื่อผู้เล่นใช้คุณสมบัติในเกมเช่นการส่งผ่านทางไกลหรือการบินเพื่อไปยังสถานที่ที่นักออกแบบระดับไม่คิดว่าผู้เล่นจะทำได้ เช่นเดียวกับ Skyrim ( วิดีโอ: หลุดออกจากโลกเวลา 11:25ฉันขอแนะนำให้ปิดเสียง ... )

เมื่อการตรวจจับการชนล้มเหลวไม่มีสิ่งใดที่จะผลักกลับจากแรงโน้มถ่วงได้ดังนั้นคุณจะล้มลง เหมือนเดินจากหน้าผา

มันไม่ได้ "คงที่" จริงๆ มีเทคนิคในการหลีกเลี่ยงสิ่งนี้ แต่ส่วนใหญ่เป็นเพียงเครื่องมือที่ดีกว่าและเครื่องมือสร้างรูปทรงเรขาคณิตสำหรับแนวนอนเพื่อไม่ให้เกิดความผิดปกติเหล่านี้


5

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

จากจุดนี้ฉันค่อนข้างแน่ใจว่าการตกลงมาจากโลกนี้ไม่ได้ถูกกำจัดไปเลย

การมีเอ็นจิ้นเกมขนาดใหญ่จำนวนหนึ่ง (Unreal, CryEngine และอื่น ๆ ) สามารถนำไปสู่ปัญหาที่ไม่ได้เกิดขึ้นน้อยลงเนื่องจากความจริงที่ว่าเอ็นจิ้นดังกล่าวกำลังทำงานอย่างต่อเนื่อง อย่างไรก็ตามไม่มีอะไรที่จะหยุดนักพัฒนาไม่ให้เพิ่มคุณสมบัติ / การเปลี่ยนแปลงที่น่าสนใจกับสภาพแวดล้อมที่อาจทำให้การตัดทอนโลกเกิดขึ้นแม้ในเอ็นจิ้นเกมที่ทำงานได้มากที่สุด

แก้ไข: 1. สาเหตุพื้นฐานของสิ่งนี้เท่าที่ฉันรู้ต้องเกี่ยวข้องกับข้อเท็จจริงที่ว่าเอ็นจิ้นเกมที่อนุญาตให้เกิดเหตุการณ์นี้มีวิธีการที่ จำกัด ในการตรวจสอบว่าผู้เล่นเคลื่อนที่ผิดหรือเปล่า เอ็นจิ้นเกมก่อนหน้านี้อาจมีปัญหามากกว่านี้เนื่องจากระนาบกราวด์เป็นเพียงแค่เครื่องบินลำนั้น หากผู้เล่นอยู่บนเครื่องบินดังกล่าวเขาจะไม่ลงไป ถ้าไม่ว่าด้วยเหตุผลใดก็ตามตำแหน่งแนวตั้งของเขาลดต่ำลงเล็กน้อยจากนั้นเขาจะล้มลงอย่างถาวร ค่อนข้างมากสิ่งที่คุณพูดเกี่ยวกับการคำนวณจุดลอย เมื่อเอ็นจิ้นสามารถให้ความแข็งแกร่งและตรวจสอบว่าผู้เล่นอยู่ในภูมิภาคทั้งหมดที่ไม่ได้ จำกัด การกระตุ้นข้อผิดพลาดจะมีโอกาสน้อยลง


1
ใช่การคำนวณจุดลอยตัวอาจทำให้เกิดสิ่งนี้ได้อย่างง่ายดายหากไม่มีบัฟเฟอร์เพียงพอหรือหากตัวละครนั้นแสดงเป็นจุด +1
MichaelHouse

5

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

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

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

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