Bagaimana model 3D dibuat dalam gim video?

15

Bagaimana model 3D dalam game dirancang dan ditampilkan? Apakah ini semua kode? Digambar di atas kertas, lalu pada perangkat lunak grafik 3D, lalu ... apa?

Tentu saja, pemrogram game tidak akan mendefinisikan setiap simpul dari setiap bentuk (/ objek,) yang ingin mereka gambar, semua dalam kode (apakah dalam Direct3D atau OpenGL.) Jadi, apakah para desainer game memiliki alat untuk digunakan, seperti Maya atau sesuatu seperti itu dari perangkat lunak grafik 3D berpemilik di luar sana; mereka "menggambar" model dalam perangkat lunak itu, mengekspornya dalam format apa pun, kemudian programmer mem-parsingnya melalui kode dan secara otomatis memasukkan simpul mentah yang di-decode / di-parsing dari objek / model?

Saya sudah banyak mencari di Google tetapi saya tidak dapat menemukan sesuatu yang solid untuk menjelaskan bagaimana aspek permainan video profesional ini bekerja.

MMag
sumber
2
Berikut adalah dokumentasi yang cukup realistis dari proses seni: salvationprophecy.com/forum/viewtopic.php?f=4&t=413
Blue Wizard
Hmm ... ini bisa dianggap terlalu luas untuk dijawab, atau tidak konstruktif. Tetapi pada saat yang sama terdengar masuk akal untuk meminta seseorang yang tidak pernah mendekati gamedev dan ingin mulai belajar, dan itu bisa diberikan jawaban yang baik. Jadi, tidak yakin apakah ini harus ditutup atau tidak.
Laurent Couvidou
1
Biasanya orang yang melakukan model disebut seniman , bukan desainer : karakter artis, artis lingkungan, animator ... Desainer game lebih lanjut tentang merancang game yang sebenarnya , aturannya, dll.
Laurent Couvidou

Jawaban:

16

Di semua game yang saya garap, Asset Creation Pipeline berlangsung seperti ini:

  1. artis konsep (untuk level / latar belakang / model level) atau artis karakter (untuk model) akan menghasilkan sketsa untuk karakter / level / dll. biasanya beberapa opsi diberikan kepada direktur kreatif / pemimpin seni untuk memutuskan mana yang mereka sukai lebih baik.
  2. Konsep / seni karakter yang telah disetujui diberikan kepada pemodel untuk digunakan sebagai referensi. Terkadang profil / front tambahan pada seni dilakukan oleh artis karakter untuk memberikan bingkai yang lebih bersih atau referensi untuk proses pemodelan. Saya telah melihat banyak pemodel dengan konsep seni terjebak dalam 3d max / maya / etc sebagai referensi langsung.
  3. Pemodel biasanya menghasilkan tekstur dasar untuk model juga, biasanya dengan bahan shader yang benar untuk runtime. shader digunakan untuk me-render model dalam game, dan mungkin memiliki persyaratan tekstur / uv / etc tertentu yang perlu disediakan oleh pemodel atau artis tekstur yang ditugaskan.
  4. Adalah tugas Desainer Tingkat untuk mengumpulkan aset untuk "membangun" tingkat itu sendiri.

    Ini tidak biasa untuk seluruh level dibangun sebagai sepotong geometri. Sebagian besar level dibangun dari potongan, atau bagian. (misalnya: terkenal menggunakan seperangkat "ubin" segi enam http://www.gamasutra.com/php-bin/news_index.php?story=118581 dan skyrim (dan banyak lainnya) menggunakan pendekatan gaya lego untuk mengumpulkan tingkat http. : //www.gamasutra.com/blogs/JoelBurgess/20130501/191514/ )

    Biasanya ada editor level dari beberapa deskripsi yang terlibat dalam proses ini, meskipun banyak game telah menggunakan pemodel 3d sebagai "editor level" untuk memasang aset yang sebelumnya dibuat.

  5. Setelah semua ini selesai, aset biasanya diproses oleh Toolchain yang mengubah file ramah Pemodel 3D menjadi data siap pakai game yang dapat dimuat langsung ke Runtime.

    Toolchains (bit yang mengambil aset mentah dan mengubahnya menjadi data siap permainan) seringkali merupakan bagian teknik paling rumit dalam pengembangan game. Mereka perlu berbicara dengan banyak aplikasi yang berbeda, memahami banyak format file yang berbeda, dan juga memahami bagaimana mengubah data menjadi format yang lebih efisien dan langsung dapat digunakan. Toolchain biasanya juga melakukan pra-lintasan penerangan, pengelasan verteks, pembuatan LOD dan sebagainya. Seringkali membangun seluruh set data untuk game AAA besar akan memakan waktu yang sangat lama, seringkali lebih dari 8 jam untuk membangun kembali sepenuhnya. Jadi Toolchains biasanya juga berisi pemrosesan terdistribusi untuk menyebarkan beban ke semua PC di seluruh studio.

    The Runtime adalah game itu sendiri. Eksekusi yang berjalan pada PC Anda, atau Konsol. Di dalam Runtime akan ada sistem yang disebut Resource Manager. Adalah tugas Manajer Sumber Daya untuk memuat aset yang diminta oleh sistem lain dalam game.

    Misalnya: Ketika Anda memberi tahu game memuat ke Level, metadata Level akan memberikan Manajer Sumber Daya daftar yang asetnya harus dimuat untuk menampilkan level. Demikian juga, setiap Aset akan berisi daftar Tekstur, Bahan, atau Sub Aset yang harus dimuat.

  6. Setelah semuanya benar-benar dimuat ke dalam memori. Gim ini akan mengirimkan hal-hal yang terlihat oleh Renderer yang kemudian akan berinteraksi dengan API yang digunakan untuk benar-benar menggambar sesuatu di layar.

Pemrogram dapat (dan melakukan) menghasilkan informasi titik dengan tangan. Ini biasanya disebut "Imendate Mode Rendering". Ini tidak terlalu efisien, dan hanya digunakan untuk situasi di mana tidak mungkin untuk menggunakan data vertex yang dimanipulasi sebelumnya, atau shader. Misalnya: Rendering UI, Quads Layar Penuh.

Biasanya 99% objek pada layar akan menjadi informasi titik awal yang dibuat dalam mode "Retained", Dengan shader melakukan manipulasi apa pun yang diperlukan. Misalnya: Animasi Berkulit

Matt D
sumber
7

Berikut ini jawaban sederhana: Mereka melakukan semuanya dalam aplikasi grafik 3D seperti Maya atau 3DS Max. Pertama-tama mereka membuat konsep seni (di atas kertas), menurut mereka mereka membuat model, tekstur (dalam Photoshop atau semacamnya). Animasi sederhana dilakukan seluruhnya dalam perangkat lunak juga, animasi yang lebih kompleks dilakukan melalui Motion Capture dan kemudian dipetakan ke model Anda. Untuk animasi Anda biasanya menggunakan animasi Skeleton.

Semua data ini disimpan dalam file.

Saat gim Anda mulai, ia mem-parsing semua file ini dan memuat model, tekstur, animasi. Dan ketika dibutuhkan, itu akan menampilkannya.

zacharmarz
sumber
1
Saya pikir ada beberapa pemrograman yang diperlukan untuk mengubah satu animasi dengan lancar ke yang berikutnya sehingga ketika Anda tertembak di tengah lompatan itu tidak terlihat aneh
Thomas
3
@ Thomas, Blend pohon. Kupikir. Tapi itu seperti sistem "tweening" yang dibangun sebagai perpanjangan dalam mesin game. Tidak harus dibuat dalam model 3D. Mereka pada dasarnya membajak data animasi dan menyisipkan antara data dengan kekuatan sihir.
Sidar
Ya. Tentu. Anda perlu memuat, mem-parsing dan entah bagaimana mewakili model. Entah bagaimana juga menggambarnya di layar. Jadi pasti - Anda harus memadukan antara animasi. Anda biasanya juga menggunakan beberapa kinematika terbalik, tetapi itu adalah masalah yang lebih spesifik.
zacharmarz
2
Kalau saja memadukan pohon dan animasi morphing sesederhana "tweening." Ada beberapa solusi middleware mahal high-end di luar sana hanya untuk menangani domain masalah yang satu ini.
Sean Middleditch
4

Pemrogram benar - benar dapat menentukan setiap simpul secara individual jika mereka mau. Ini, tentu saja, tidak pernah terjadi kecuali mereka membuat semacam demo kubus dasar. Biasanya, apa yang disimpan dalam file model adalah sesuatu di sepanjang garis daftar simpul yang mudah diprogram oleh pemrogram dengan mudah ke dalam kode model gambar mereka. Jelas ada lebih dari itu, tetapi pada dasarnya format model memberikan "instruksi" tidak langsung tentang cara menggambar model tertentu.

Dalam banyak kasus, dan untuk banyak format file model, sisi pengkodean telah dilakukan untuk Anda. Bahkan ada beberapa format model berbasis teks, dengan kode gambar yang menyertainya, yang membuatnya cukup mudah bagi seorang pembuat kode amature untuk mengikuti bagaimana model tersebut diterjemahkan ke dalam kode.

Saya belum pernah menjadi orang yang benar-benar menulis kode ini, jadi mungkin saja beberapa detail penjelasan saya tidak aktif.

Katana314
sumber
2

Saya telah berusaha sendiri untuk mencoba menyatukan permainan. Saya dapat memberi Anda daftar sederhana dari program yang saya gunakan.

Pemodelan: Mantel 3D, modo

Tali-temali: modo

Tekstur: GIMP, Inkscape

Mesin Game: Unity

Jelas ini adalah daftar kecil aplikasi, tetapi bagi saya mereka bekerja dan terjangkau untuk pengembang hobi dan indie.

Kale Z. Raglius
sumber
2
-1 Memberikan daftar aplikasi yang digunakan tidak menggambarkan proses. Pertanyaan ini bukan tentang perangkat lunak tertentu, ini tentang bagaimana mereka dibuat, bukan hanya apa yang mereka buat.
MichaelHouse