อักขระการแสดงผลโดยตัดแขนขาออก (โมเดลเครื่องปั่นใน Java / OpenGL)


10

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

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

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

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

นี่เป็นคำถามที่ค่อนข้างใหญ่ดังนั้นฉันจึงกำลังมองหาแหล่งข้อมูลที่สามารถพาฉันไปได้ทุกที่

แก้ไข

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

คำตอบ:


7

ฉันกำลังทำงานบนระบบที่คล้ายกัน การเคลื่อนไหวขั้นตอน + การแยกส่วน ฯลฯ

ฉันจะกำหนดภาพเคลื่อนไหวเพื่อรู้ว่าภาพใดที่ได้รับอนุญาตให้แสดงสถานะปัจจุบันของร่างกาย (แขน / ขาหายไปเป็นต้น)

ฉันไม่ได้ทำตามนี้เล็กน้อยถ้าแขนขาไม่อยู่ที่นั่นใครจะสนใจว่ามันเป็นภาพเคลื่อนไหวหรือไม่เพราะมันไม่สามารถมองเห็นได้

แต่ละแขนขา / ส่วนจะต้องเป็นแบบจำลองของตัวเองหรือไม่ (ฉันต้องการดึงส่วนที่ตัดออกมาบนพื้นดิน)?

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

ด้วยวิธีการที่มีเหตุผลจากส่วนต่อไปนี้ใช่แต่ละกิ่งจะมีรูปแบบของตัวเอง

ฉันน่าจะมีโมเดลที่สมบูรณ์ในมือของเอนทิตีทั้งหมดและแขนขาแต่ละอันถูกตัดทิ้ง

ฉันจะตั้งค่าระบบการวาดเพื่อไม่ให้แขนขาหายไปได้อย่างไร

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

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

ในขณะที่วิธีแรกจะสร้างการโทรดึงอีกมากมาย แต่ก็ยังเข้าถึงได้ง่ายขึ้นอีกเล็กน้อย

ฉันจะไปกับบุคคลที่สองด้วยความสำเร็จสัมพัทธ์ แต่โมเดลของฉันทั้งหมดมีค่าโพลีต่ำมากดังนั้นการตัดแบบจำลองและอัปโหลด VBO ภายในเฟรมนั้นสามารถทำได้ในตอนนี้

มันไม่ได้นำเข้าหรือใช้กระดูกที่กำหนดไว้ในเครื่องปั่นและมันไม่ได้สอดแทรกระหว่างเฟรม

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

ฉันยังแนะนำให้คุณลงทุนในการแก้ไข หากไม่มีมันคุณจะไม่สามารถเพิ่มความเร็ว / ชะลอภาพเคลื่อนไหวของคุณได้ ซึ่งหมายความว่าคุณจะสามารถรับภาพเคลื่อนไหวน้อยลง เช่นคุณไม่สามารถชะลอภาพเคลื่อนไหวการเดินได้เมื่อมีคนแวะมา ฯลฯ


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

เนื่องจากคุณกำลังทำงานในสิ่งที่คล้ายกันคุณอาจมีข้อมูลเพิ่มเติมเกี่ยวกับคำถามที่เกี่ยวข้องนี้หรือไม่ gamedev.stackexchange.com/q/20931/7191
MichaelHouse

5

ตัวเลือกที่ดีที่สุดของคุณคือการตัดแขนขาออกและใช้หลาย submodels ขึ้นอยู่กับสถานะปัจจุบันของบาดแผล วิธีการใช้ VBO ต่อคีย์เฟรมของคุณนั้นเกินความจริง ใช้ระบบภาพเคลื่อนไหวโครงกระดูกและเล่นภาพเคลื่อนไหวที่แตกต่างกันขึ้นอยู่กับความเสียหายที่ได้รับ (การเดินด้วยขาข้างเดียวคลานโดยไม่มีขาสองข้าง ฯลฯ )

Valve ตีพิมพ์ชุดสไลด์ที่ดีเกี่ยวกับแผลและแยกชิ้นส่วนใน L4D2 ฉันชอบวิธีการใช้แบบจำลองสำหรับอวัยวะและกระดูกและการตัดแบบจำลอง "ผิวหนัง" ตามการประมาณการพื้นผิวของการบาดแผลกระสุนปืน ฯลฯ


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