Jak tworzone są modele 3D w grach wideo?

15

Jak są projektowane i wyświetlane modele 3D w grach? Czy to wszystko kod? Rysowane na papierze, a następnie w oprogramowaniu graficznym 3D, a następnie ... co?

Oczywiście, programiści gier nie zdefiniują każdego wierzchołka każdego kształtu (/ obiektu), który chcą narysować, wszystko w kodzie (czy to w Direct3D, czy OpenGL.) Czy projektanci gier mają narzędzia do użycia, takie jak Maya lub coś podobnego do zastrzeżonego oprogramowania do grafiki 3D; „rysują” model w tym oprogramowaniu, eksportują go w dowolnym formacie, a następnie programiści analizują go za pomocą kodu i automatycznie wprowadzają zdekodowane / przeanalizowane nieprzetworzone wierzchołki obiektu / modelu?

Dużo googlowałem, ale nie mogłem znaleźć czegoś solidnego, by wytłumaczyć, w jaki sposób działa ten aspekt profesjonalnych gier wideo.

MMag
źródło
2
Oto dość realistyczna dokumentacja procesu artystycznego: salvationprophecy.com/forum/viewtopic.php?f=4&t=413
Blue Wizard,
Hmm ... można to uznać za zbyt szerokie, aby na nie odpowiedzieć, lub nie jest konstruktywne. Ale jednocześnie rozsądnie jest poprosić o kogoś, kto nigdy nie zbliżył się do gamedev i chce zacząć się uczyć, a odpowiedź może być dobra. Nie jestem pewien, czy to powinno zostać zamknięte, czy nie.
Laurent Couvidou
1
Zwykle ludzie wykonujący modele nazywani są artystami , a nie projektantami : artystami postaci, artystami ochrony środowiska, animatorami… Projektant gier polega bardziej na projektowaniu rzeczywistej gry, jej reguł itp.
Laurent Couvidou

Odpowiedzi:

16

We wszystkich grach, nad którymi pracowałem, Asset Creation Pipeline działa mniej więcej tak:

  1. artysta koncepcyjny (dla poziomów / tła / modeli poziomów) lub artysta postaci (dla modeli) wygeneruje szkice dla postaci / poziomów / itp. zazwyczaj dyrektorowi kreatywnemu / grafikowi głównemu udziela się wielu opcji, aby zdecydować, który z nich bardziej im się podoba.
  2. Zatwierdzona koncepcja / grafika postaci jest przekazywana modelarzowi do wykorzystania jako odniesienie. Czasami dodatkowy profil / przód na sztuce jest wykonywany przez artystę postaci, aby zapewnić czystszą ramkę lub odniesienie do procesu modelowania. Widziałem wielu modelarzy ze sztuką koncepcyjną utkniętą w 3d max / maya / etc jako bezpośrednie odniesienie.
  3. Modelerzy zazwyczaj generują również podstawowe tekstury dla modelu, zwykle z użyciem odpowiednich materiałów modułu cieniującego dla środowiska wykonawczego. shadery są używane do renderowania modelu w grze i mogą mieć określone wymagania dotyczące tekstur / uv / itp., które musi dostarczyć modelarz lub przypisany artysta tekstur.
  4. Zadaniem projektanta poziomów będzie zebranie zasobów, aby samemu „zbudować” poziom.

    To niezwykłe, że cały poziom jest budowany jako pojedynczy element geometrii. Większość poziomów składa się z elementów lub sekcji. (np. niesławny użył zestawu sześciokątnych „kafelków” http://www.gamasutra.com/php-bin/news_index.php?story=118581, a skyrim (i wiele innych) stosują podejście w stylu Lego do łączenia poziomów http : //www.gamasutra.com/blogs/JoelBurgess/20130501/191514/ )

    Zwykle w proces ten zaangażowany jest edytor poziomów o pewnym opisie, chociaż wiele gier używa modelerów 3d jako „edytorów poziomów” do tworzenia wcześniej utworzonych zasobów.

  5. Po wykonaniu wszystkich tych czynności zasoby są zwykle przetwarzane przez Toolchain, który zamienia pliki przyjazne Modelerowi 3D w dane gotowe do gry, które można załadować bezpośrednio do środowiska wykonawczego.

    Łańcuchy narzędzi (bit, który bierze surowe zasoby i przekształca je w dane gotowe do gry) są często jednymi z najbardziej skomplikowanych elementów inżynierii w rozwoju gier. Muszą rozmawiać z wieloma różnymi aplikacjami, rozumieć wiele różnych formatów plików, a także rozumieć, w jaki sposób przekształcać dane w bardziej wydajny i natychmiast użyteczny format. Łańcuchy narzędzi zwykle wykonują również wstępne przejścia oświetlenia, spawanie wierzchołków, generowanie LOD i tak dalej. Często zbudowanie całego zestawu danych dla dużej gry AAA zajmie bardzo dużo czasu, często więcej niż 8 godzin na całkowitą przebudowę. Łańcuchy narzędzi zwykle zawierają również rozproszone przetwarzanie, aby rozłożyć obciążenie na wszystkie komputery w całym studiu.

    Runtime jest sama gra. Plik wykonywalny, który działa na twoim komputerze lub konsoli. Wewnątrz środowiska wykonawczego będzie system o nazwie Resource Manager. Zadaniem Menedżera zasobów jest ładowanie zasobów wymaganych przez inne systemy w grze.

    Np .: gdy powiesz ładowaniu gry do poziomu, metadane poziomu zapewnią menedżerowi zasobów listę zasobów, które należy załadować, aby wyświetlić poziom. Podobnie każdy zasób będzie zawierał listę dowolnych tekstur, materiałów lub zasobów podrzędnych, które należy załadować.

  6. Kiedy wszystko rzeczywiście zostanie załadowane do pamięci. Gra wyśle ​​rzeczy, które są widoczne dla Renderera, który następnie wejdzie w interakcję z API używanym do rysowania rzeczy na ekranie.

Programiści mogą (i robią) ręcznie generować informacje o wierzchołkach. Zazwyczaj jest to nazywane „renderowaniem w trybie natychmiastowym”. Nie jest bardzo wydajny i jest używany tylko w sytuacjach, w których nie jest możliwe użycie wstępnie wygenerowanych lub zmanipulowanych przez wierzchołek danych danych wierzchołków. Np .: Rendering interfejsu użytkownika, quady na pełnym ekranie.

Zazwyczaj 99% obiektów na ekranie będzie wstępnie wygenerowanymi informacjami o wierzchołkach renderowanymi w trybie „Zachowane”, przy czym shadery wykonują wszelkie wymagane manipulacje. Np .: Animacja bez skóry

Matt D.
źródło
7

Oto prosta odpowiedź: robią to wszystko w aplikacjach graficznych 3D, takich jak Maya lub 3DS Max. Najpierw zajmują się sztukami koncepcyjnymi (na papierze), zgodnie z nimi tworzą modele, tekstury (w Photoshopie lub coś w tym stylu). Proste animacje są wykonywane w całości w oprogramowaniu, bardziej złożone animacje są wykonywane za pomocą Motion Capture, a następnie mapowane do modelu. Do animacji zwykle używasz animacji Szkielet.

Wszystkie te dane są zapisywane w plikach.

Kiedy gra się rozpoczyna, analizuje wszystkie te pliki i ładuje modele, tekstury, animacje. A kiedy jest to potrzebne, wyświetla je.

zacharmarz
źródło
1
Myślę, że trzeba trochę programowania, aby płynnie przekształcić jedną animację w drugą, więc kiedy zostaniesz postrzelony w środku skoku, nie wygląda to dziwnie
Thomas
3
@Thomas, Mieszaj drzewa. Myślę. Są to jednak systemy „tweeningu”, które są budowane jako rozszerzenie silnika gry. Niekoniecznie tworzone w modelach 3D. Zasadniczo przejmują one dane animacji i interpolują dane za pomocą magicznych mocy.
Sidar
Tak. Pewnie. Musisz załadować, parsować i jakoś reprezentować model. Również jakoś narysuj to na ekranie. Zdecydowanie więc musisz połączyć animację. Zwykle używasz także odwrotnej kinematyki, ale są to bardziej specyficzne problemy.
zacharmarz
2
Gdyby tylko połączenie drzew i przekształcanie animacji były tak proste, jak „animacja”. Istnieje wiele drogich rozwiązań oprogramowania pośredniego, aby poradzić sobie z tą konkretną domeną problemów.
Sean Middleditch,
4

Programiści mogą zdefiniować każdy wierzchołek indywidualnie, jeśli chcą. Tak się oczywiście nigdy nie dzieje, chyba że stworzą jakąś podstawową wersję demo kostki. Zwykle to, co zapisywane jest w plikach modelu, to coś w rodzaju listy wierzchołków, które programiści mogą łatwo podłączyć do kodu rysowania modelu. Jest oczywiście więcej niż to, ale w zasadzie formaty modeli dają pośrednie „instrukcje”, jak narysować określony model.

W wielu przypadkach i dla wielu formatów plików modeli strona kodowania została wykonana dla Ciebie. Istnieją nawet niektóre tekstowe formaty modeli z towarzyszącym kodem rysunkowym, które znacznie ułatwiają koderowi urządzenia śledzenie, w jaki sposób model jest tłumaczony na kod.

Jednak nigdy nie byłem osobą, która pisała ten kod, więc możliwe jest, że kilka szczegółów mojego wyjaśnienia nie jest dostępnych.

Katana314
źródło
2

Pracowałem sam, aby spróbować połączyć grę. Mogę dać ci prostą listę programów, których używam.

Modelowanie: płaszcz 3D, modo

Olinowanie: modo

Tekstury: GIMP, Inkscape

Silnik gry: Unity

Oczywiście jest to mała lista aplikacji, ale dla mnie one działają i są dostępne dla hobbystów i niezależnych programistów.

Kale Z. Raglius
źródło
2
-1 Podanie listy używanych aplikacji nie opisuje tego procesu. To pytanie nie dotyczy konkretnego oprogramowania, ale sposobu ich wykonania, a nie tylko tego, z czego są wykonane.
MichaelHouse