โมเดล 3 มิติสร้างขึ้นอย่างไรในวิดีโอเกม


15

แบบจำลอง 3 มิติในเกมได้รับการออกแบบและแสดงผลอย่างไร มันเป็นรหัสทั้งหมดหรือไม่ วาดบนกระดาษแล้วใช้ซอฟต์แวร์กราฟิกสามมิติแล้ว ... อะไรนะ?

แน่นอนว่าโปรแกรมเมอร์เกมจะไม่กำหนดจุดสุดยอดของทุกรูปร่าง (/ วัตถุ) ที่พวกเขาต้องการที่จะวาดทั้งหมดในรหัส (ไม่ว่าจะเป็น Direct3D หรือ OpenGL.) ดังนั้นนักออกแบบเกมจะมีเครื่องมือที่ใช้เช่นมายาหรือ บางอย่างเช่นซอฟต์แวร์กราฟิก 3D ที่เป็นกรรมสิทธิ์นอกนั้น พวกเขา "วาด" แบบจำลองในซอฟต์แวร์นั้นส่งออกในรูปแบบอะไรจากนั้นโปรแกรมเมอร์ก็แยกวิเคราะห์รหัสและป้อนจุดยอดที่ถอดรหัส / แยกวิเคราะห์โดยอัตโนมัติของวัตถุ / รุ่น?

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


2
นี่คือเอกสารเกี่ยวกับกระบวนการทางศิลปะที่เหมือนจริง: salvationprophecy.com/forum/viewtopic.php?f=4&t=413
ตัวช่วยสร้างสีน้ำเงิน

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

1
โดยปกติแล้วคนที่ทำแบบจำลองนี้จะเรียกว่าศิลปินไม่ใช่นักออกแบบ : ตัวละครศิลปิน, ศิลปินด้านสิ่งแวดล้อม, อนิเมเตอร์ ... นักออกแบบเกมเป็นอีกหนึ่งการออกแบบเกมจริงกฎของมันและอื่น ๆ
Laurent Couvidou

คำตอบ:


16

ในเกมทั้งหมดที่ฉันได้ทำไปแล้วไปป์ไลน์การสร้างสินทรัพย์มีลักษณะดังนี้:

  1. ศิลปินแนวคิด (สำหรับโมเดลระดับ / พื้นหลัง / ระดับ) หรือศิลปินตัวละคร (สำหรับโมเดล) จะสร้างภาพร่างสำหรับตัวละคร / เลเวล / ฯลฯ โดยปกติแล้วจะมีหลายตัวเลือกให้กับผู้กำกับ / ผู้สร้างสรรค์ผลงานเพื่อตัดสินใจว่าจะเลือกแบบใดดีกว่า
  2. แนวคิด / ลักษณะตัวอักษรที่ได้รับการอนุมัตินั้นมอบให้กับผู้สร้างโมเดลเพื่อใช้เป็นข้อมูลอ้างอิง บางครั้งมีการเพิ่มเติมโปรไฟล์ / ด้านหน้าเกี่ยวกับศิลปะโดยศิลปินตัวละครเพื่อจัดเตรียมเฟรมที่สะอาดตาหรืออ้างอิงสำหรับกระบวนการสร้างแบบจำลอง ฉันเห็นผู้สร้างแบบจำลองจำนวนมากที่มีแนวคิดศิลปะติดอยู่ภายใน 3d max / maya / etc เป็นการอ้างอิงโดยตรง
  3. โดยทั่วไปแล้วผู้สร้างแบบจำลองจะสร้างพื้นผิวพื้นฐานสำหรับแบบจำลองเช่นกันโดยปกติจะใช้วัสดุตัวสร้างภาพที่ถูกต้องสำหรับรันไทม์ shaders ใช้ในการเรนเดอร์โมเดลในเกมและอาจมีข้อกำหนดเฉพาะ texture / uv / etc ที่จำเป็นต้องมีให้โดย modeler หรือศิลปินพื้นผิวที่ได้รับมอบหมาย
  4. มันจะเป็นหน้าที่ของนักออกแบบระดับที่จะรวมสินทรัพย์เข้าด้วยกันเพื่อ "สร้าง" ระดับตัวเอง

    มันผิดปกติสำหรับระดับทั้งหมดที่จะสร้างเป็นชิ้นส่วนของรูปทรงเรขาคณิต ระดับส่วนใหญ่สร้างขึ้นจากชิ้นส่วนหรือส่วนต่างๆ (เช่น: น่าอับอายใช้ชุด "ไพ่" หกเหลี่ยมหกเหลี่ยมhttp://www.gamasutra.com/php-bin/news_index.php?story=118581และ skyrim (และอื่น ๆ อีกมากมาย) ใช้วิธีเลโก้สไตล์ในการรวมกันhttpระดับ: //www.gamasutra.com/blogs/JoelBurgess/20130501/191514/ )

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

  5. เมื่อเสร็จสิ้นทั้งหมดแล้วสินทรัพย์จะถูกประมวลผลโดยToolchainซึ่งจะแปลงไฟล์ที่เป็นมิตรกับ 3D Modeler เป็นข้อมูลที่พร้อมสำหรับเกมซึ่งสามารถโหลดลงในรันไทม์ได้โดยตรง

    Toolchains (บิตที่ใช้สินทรัพย์ดิบและแปลงให้เป็นข้อมูลพร้อมเกม) มักจะเป็นบางส่วนของวิศวกรรมที่ซับซ้อนที่สุดในการพัฒนาเกม พวกเขาจำเป็นต้องพูดคุยกับแอพพลิเคชั่นต่าง ๆ มากมายเข้าใจรูปแบบไฟล์ต่าง ๆ มากมายและเข้าใจวิธีแปลงข้อมูลให้เป็นรูปแบบที่มีประสิทธิภาพและใช้งานได้ทันที โดยทั่วไปแล้ว Toolchains จะทำการส่องแสงก่อนผ่านการเชื่อมจุดยอดรุ่น LOD และอื่น ๆ บ่อยครั้งที่การสร้างชุดข้อมูลทั้งหมดสำหรับเกม AAA ขนาดใหญ่จะใช้เวลานานมากซึ่งมักจะมากกว่า 8 ชั่วโมงสำหรับการสร้างใหม่ทั้งหมด ดังนั้น Toolchains จึงมักจะมีการประมวลผลแบบกระจายเพื่อกระจายโหลดไปยังพีซีทั้งหมดในสตูดิโอทั้งหมด

    Runtimeเป็นเกมของตัวเอง ไฟล์ปฏิบัติการที่ทำงานบนพีซีหรือคอนโซลของคุณ ภายใน Runtime จะมีระบบที่เรียกว่า Resource Manager เป็นหน้าที่ของผู้จัดการทรัพยากรในการโหลดเนื้อหาที่ระบบอื่นร้องขอภายในเกม

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

  6. เมื่อทุกอย่างถูกโหลดเข้าหน่วยความจำ เกมจะส่งสิ่งที่Rendererมองเห็นซึ่งจะโต้ตอบกับ API ที่ใช้เพื่อวาดสิ่งต่างๆบนหน้าจอ

โปรแกรมเมอร์สามารถ (และทำ) สร้างข้อมูลจุดสุดยอดด้วยมือ โดยทั่วไปเรียกว่า "การแสดงผลโหมดทันที" มันไม่ได้มีประสิทธิภาพมากและใช้สำหรับสถานการณ์ที่ไม่สามารถใช้ข้อมูลที่สร้างไว้ล่วงหน้าหรือ shader จัดการจุดสุดยอดได้ เช่นการแสดงผล UI, Quads แบบเต็มหน้าจอ

โดยทั่วไปแล้ว 99% ของวัตถุบนหน้าจอจะถูกสร้างข้อมูลจุดสุดยอดที่สร้างไว้ล่วงหน้าในโหมด "เก็บ" กับ shaders ดำเนินการจัดการใด ๆ ที่จำเป็น ตัวอย่างเช่น Skinned Animation


7

นี่คือคำตอบง่ายๆ: พวกเขาทำทุกอย่างในแอปพลิเคชั่นกราฟิก 3D เช่น Maya หรือ 3DS Max ก่อนอื่นพวกเขาจะทำแนวคิดศิลปะ (บนกระดาษ) ตามที่พวกเขาสร้างแบบจำลองพื้นผิว (ใน Photoshop หรืออะไรทำนองนั้น) ภาพเคลื่อนไหวอย่างง่ายนั้นทำในซอฟต์แวร์ด้วยเช่นกันมีการสร้างภาพเคลื่อนไหวที่ซับซ้อนมากขึ้นผ่าน Motion Capture จากนั้นจับคู่กับแบบจำลองของคุณ สำหรับภาพเคลื่อนไหวคุณมักใช้ภาพเคลื่อนไหว Skeleton

ข้อมูลทั้งหมดเหล่านี้ถูกบันทึกไว้ในไฟล์

เมื่อเกมของคุณเริ่มต้นจะแยกวิเคราะห์ไฟล์ทั้งหมดเหล่านี้และโหลดโมเดลพื้นผิวภาพเคลื่อนไหว และเมื่อมีความจำเป็นก็จะแสดงพวกเขา


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

3
@ โทมัสผสมผสานต้นไม้ ฉันคิด. แต่สิ่งเหล่านั้นก็เหมือนกับระบบ "การทวีต" ที่สร้างเป็นส่วนเสริมในเอ็นจิ้นเกม ไม่จำเป็นต้องสร้างในแบบจำลอง 3 มิติ พวกเขาโดยทั่วไปจะขโมยข้อมูลภาพเคลื่อนไหวและแก้ไขระหว่างข้อมูลด้วยพลังเวทย์มนตร์
Sidar

ใช่. แน่ใจ คุณต้องโหลดแยกวิเคราะห์และแสดงโมเดล ยังวาดมันบนหน้าจอ ดังนั้นแน่นอน - คุณต้องผสมผสานระหว่างภาพเคลื่อนไหว คุณมักใช้จลนศาสตร์ผกผันด้วยเช่นกัน แต่นั่นเป็นปัญหาที่เฉพาะเจาะจงมากขึ้น
zacharmarz

2
หากผสมผสานเฉพาะต้นไม้และภาพเคลื่อนไหว morphing ก็ง่ายเหมือน "tweening" มีโซลูชันมิดเดิลแวร์ระดับไฮเอนด์ราคาแพงหลายตัวที่มีอยู่เพื่อจัดการกับปัญหาเฉพาะโดเมนนี้
Sean Middleditch

4

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

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

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


2

ฉันทำงานด้วยตัวเองเพื่อพยายามรวมเกมเข้าด้วยกัน ฉันสามารถให้รายการโปรแกรมที่ใช้งานง่ายได้

แบบจำลอง: 3D Coat, modo

เสื้อผ้า: modo

พื้นผิว: GIMP, Inkscape

Game Engine: Unity

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


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