Video oyunlarında 3B modeller nasıl oluşturulur?


15

Oyunlardaki 3D modeller nasıl tasarlanır ve görüntülenir? Hepsi kod mu? Kağıda, daha sonra bir 3D grafik yazılımına çiziliyor, sonra ... ne?

Elbette, oyun programcıları çizilmek istedikleri her şeklin (/ nesnenin) her bir noktasını (hepsi Direct3D veya OpenGL'de olsun) tanımlamayacaktır. Yani, oyun tasarımcılarının Maya veya orada özel 3D grafik yazılımları gibi bir şey; modeli bu yazılımda "çizer", hangi biçimde dışa aktarırsa, o zaman programcılar aktarırlarsa bunu kod aracılığıyla ayrıştırırlar ve otomatik olarak nesnenin / modelin kodunu çözmüş / ayrıştırılmış ham köşelerini girerler?

Çok fazla Google buldum, ancak profesyonel video oyunlarının bu yönünün nasıl çalıştığını açıklamak için sağlam bir şey bulamadım.


2
İşte sanat sürecinin oldukça gerçekçi bir dokümanı: salvationprophecy.com/forum/viewtopic.php?f=4&t=413
Mavi Sihirbaz

Hmm ... bu cevaplanamayacak kadar geniş veya yapıcı değil. Ancak aynı zamanda gamedev'e hiç yaklaşmamış ve öğrenmeye başlamak isteyen birini istemek mantıklıdır ve buna iyi bir cevap verilebilir. Yani, bunun kapanıp kapanmayacağından emin değilim.
Laurent Couvidou

1
Genellikle modeller yapıyor insanlar denir sanatçıları değil, tasarımcılar : karakter sanatçı, çevre sanatçı, animatör ... Oyun tasarımcısı daha tasarlama hakkında gerçek vb oyun, kurallarını,
Laurent Couvidou

Yanıtlar:


16

Üzerinde çalıştığım tüm oyunlarda, Varlık Oluşturma Pipeline'ı şuna benzer:

  1. konsept sanatçısı (seviyeler / arka planlar / seviye modelleri için) veya karakter sanatçısı (modeller için) karakterler / seviyeler / vb. için çizimler oluşturur. hangisini daha çok sevdiklerine karar vermek için genellikle reklam yönetmenine / baş sanatçısına birden fazla seçenek sunulur.
  2. Onaylanan konsept / karakter sanatı, referans olarak kullanılmak üzere bir modelciye verilir. Bazen model sanatçısı için daha temiz bir çerçeve veya referans sağlamak için karakter sanatçısı tarafından ek profil / ön cephe yapılır. Ben doğrudan referans olarak 3d max / maya / etc içinde sıkışmış konsept sanat ile birçok modelci gördüm.
  3. Modelciler tipik olarak model için temel dokuları da oluştururlar, genellikle çalışma zamanı için doğru gölgelendirici malzemelerle. gölgelendiriciler modeli oyunda oluşturmak için kullanılır ve modelleyici veya atanmış doku sanatçısı tarafından sağlanması gereken belirli doku / uv / vb gereksinimlerine sahip olabilir.
  4. Seviyenin kendisini "oluşturmak" için varlıkları bir araya getirmek Seviye Tasarımcısı'nın işi olacaktır.

    Tüm seviyenin tek bir geometri parçası olarak inşa edilmesi olağandışıdır. Çoğu seviye parçalardan veya bölümlerden oluşur. (örn: altıgen bir dizi kullanılır meşhur "karolar" http://www.gamasutra.com/php-bin/news_index.php?story=118581 ve skyrim (ve diğerleri) bir araya getirmek seviyelerine bir lego tarzı yaklaşım kullanmak http : //www.gamasutra.com/blogs/JoelBurgess/20130501/191514/ )

    Çoğu oyun, daha önce oluşturulmuş varlıkları örneklemek için 3 boyutlu modelleyicileri "seviye editörleri" olarak kullanmasına rağmen, genellikle bu sürece dahil olan bazı tanımların seviye editörü vardır.

  5. Tüm bunlar yapıldıktan sonra, varlıklar tipik olarak 3D Modeler dostu dosyaları doğrudan Çalışma Süresine yüklenebilen oyuna hazır verilere dönüştüren Toolchain tarafından işlenir .

    Aletler (ham varlıkları alan ve bunları oyuna hazır verilere dönüştüren bit) genellikle oyun geliştirmedeki en karmaşık mühendislik parçalarından bazılarıdır. Birçok farklı uygulama ile konuşmaları, birçok farklı dosya formatını anlamaları ve ayrıca verileri daha verimli ve anında kullanılabilir bir formata nasıl dönüştüreceklerini anlamaları gerekir. Aletler genellikle aydınlatma geçişi, köşe kaynağı, LOD üretimi vb. Genellikle büyük bir AAA oyunu için tüm veri kümesini oluşturmak çok uzun zaman alacaktır, genellikle tam bir yeniden oluşturma için 8 saatten fazla sürecektir. Bu nedenle, Takım Zincirleri genellikle yükü tüm stüdyoda bulunan tüm PC'lere yaymak için dağıtılmış işlem içerir.

    Süre oyun kendisidir. PC'nizde veya Konsolda çalışan yürütülebilir dosya. Çalışma Zamanının içinde Kaynak Yöneticisi adı verilen bir sistem olacaktır. Oyun içindeki diğer sistemler tarafından talep edilen varlıkları yüklemek Kaynak Yöneticisi'nin görevidir.

    Örneğin: Oyuna bir Seviye yüklendiğinde, Seviyenin meta verileri, kaynak yöneticisine seviyeyi görüntülemek için hangi varlıkların yüklenmesi gerektiğini gösteren bir liste sağlar. Benzer şekilde, her bir Varlık, yüklenmesi gereken Dokular, Malzemeler veya Alt Varlıkların bir listesini içerir.

  6. Her şey gerçekten belleğe yüklendikten sonra. Oyun, Renderer tarafından görülebilen ve daha sonra ekranda bir şeyler çizmek için kullanılan API ile etkileşime girecek şeyler gönderir .

Programcılar tepe bilgilerini elle oluşturabilir (ve yapabilirler). Buna tipik olarak "Anında Mod Oluşturma" denir. Çok verimli değildir ve yalnızca önceden oluşturulmuş veya gölgelendirici tarafından manipüle edilen köşe verilerinin kullanılmasının mümkün olmadığı durumlar için kullanılır. Örneğin: Kullanıcı Arayüzü Oluşturma, Tam Ekran Dörtlü.

Tipik olarak ekrandaki nesnelerin% 99'u, "Korunmuş" modda görüntülenen önceden oluşturulmuş tepe bilgisi olacaktır. Gölgelendiriciler herhangi bir manipülasyon gerektirir. Örnek: Tenli Animasyon


7

İşte basit bir cevap: Hepsi Maya veya 3DS Max gibi 3D grafik uygulamalarında yapıyorlar. İlk olarak bazı konsept sanatları (kağıt üzerinde) yaparlar, onlara göre modeller, dokular (Photoshop'ta veya bunun gibi bir şey) yaratırlar. Basit animasyonlar yazılımda da yapılır, Motion Capture ile daha karmaşık animasyonlar yapılır ve daha sonra modelinize eşlenir. Animasyon için genellikle İskelet animasyonunu kullanırsınız.

Tüm bu veriler dosyalara kaydedilir.

Oyununuz başladığında, tüm bu dosyaları ayrıştırır ve modelleri, dokuları, animasyonları yükler. Ve gerektiğinde bunları görüntüler.


1
Sanırım bir animasyonu bir sonrakine akıcı bir şekilde dönüştürmek için gerekli bazı programlar var, bu yüzden bir atlama ortasında vurulduğunda tuhaf görünmüyor
Thomas

3
@Tomlar, Ağaçları karıştırın. Bence. Ancak bunlar, bir oyun motorunda bir uzantı olarak oluşturulan "ara doldurma" sistemleri gibidir. 3B modellerde oluşturulması gerekmez. Temel olarak animasyon verilerini ele geçirir ve sihirli güçlerle veriler arasında enterpolasyon yaparlar.
Sidar

Evet. Elbette. Modeli yüklemeniz, ayrıştırmanız ve bir şekilde temsil etmeniz gerekiyor. Ayrıca bir şekilde ekranda çizin. Kesinlikle - animasyon arasında harmanlamak zorundasınız. Genellikle ters kinematik kullanırsınız, ancak bunlar daha spesifik problemlerdir.
zacharmarz

2
Keşke ağaçlar ve animasyon dönüşümü "ara doldurma" kadar basit olsaydı. Sorunların bu belirli bir alanıyla başa çıkmak için çok sayıda yüksek kaliteli pahalı ara yazılım çözümleri var.
Sean Middleditch

4

Programcılar aslında edebilir isterlerse bireysel olarak her köşe tanımlar. Tabii ki, bir çeşit temel küp demosu yapmadıkça, bu asla böyle değildir. Normalde, model dosyalarına kaydedilen şey, programlayıcının model çizim kodlarına zahmetsizce kolayca ekleyebileceği bir köşe listesi çizgisi boyunca bir şeydir. Açıkçası bundan daha fazlası var, ancak temel olarak model formatları, belirli bir modelin nasıl çizileceği hakkında dolaylı "talimatlar" veriyor.

Birçok durumda ve birçok model dosya formatı için kodlama tarafı sizin için yapılmıştır. Bir amatör kodlayıcının modelin koda nasıl çevrildiğini takip etmesini oldukça kolaylaştıran beraberindeki çizim koduna sahip bazı metin tabanlı model formatları bile vardır.

Ben aslında bu kodu yazmak için hiç kişi olmadım, bu yüzden benim açıklama birkaç ayrıntı kapalı mümkündür.


2

Bir oyunu bir araya getirmek için kendi başıma çalışıyorum. Kullandığım programların basit bir listesini verebilirim.

Modelleme: 3D Ceket, modo

Arma: modo

Dokular: GIMP, Inkscape

Oyun Motoru: Birlik

Açıkçası bu uygulamaların küçük bir listesi, ama benim için çalışıyorlar ve hobi ve indie geliştiricileri için uygun fiyatlı.


2
-1 Kullanılan uygulamaların bir listesini vermek işlemi açıklamaz. Bu soru belirli bir yazılımla ilgili değildir, sadece nasıl yapıldığıyla değil, nasıl yapıldıklarıyla ilgilidir.
MichaelHouse
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.