Strona 1 z 1

TUTORIAL: Import modeli do Dark Moda

: 11 sierpnia 2008, 16:37
autor: Juliusz
Importowanie modeli do Dark Moda

Aby móc się cieszyć własnym modelem w grze należy wykonać poniższe kroki:
1. Zapisać model w odpowiednim formacie (.lwo lub .ase) oraz z odpowiednimi nazwami materiałów
2. Przekopiować model do odpowiedniego podfolderu (np. darkmod/models/moje_modele)
3. Przekopiować tekstury do podfolderu z teksturami
4. Stworzyć deklarację materiału.

Po tych krokach możemy użyć modelu jako func_static (model statyczny). Jeśli chcemy, aby obiekt miał właściwości fizyczne (był ruchomy) należy zamienić go na func_moveable.

A teraz szczegółowo:

ad 1. Silnik Dooma 3 rozpoznaje modele w dwóch formatach: .lwo i .ase.
LWO - jest to domyślny format Lightwave'a. Praca z tym formatem jest nieco wygodniejsza niż z .ase. Ma on możliwość ustawiania wygładzania polygonów w zależności od kąta , tzn. podczas zapisywania/konwersji do tego formatu mamy możliwość określenia kąta pomiędzy polygonami, poniżej którego krawędzie będą wygładzone, a powyżej którego - ostre. Nie jest to kontrola zupełna (np. w Maxie możemy kontrolować wygładzanie odrębnie dla każdego z polygonów), ale wystarcza w większości przypadków.

ASE - jest to format tekstowy z Maxa. Minusem jest to, że każdorazowo trzeba edytować nazwę materiału w edytorze tekstu - inaczej silnik nie znajdzie tekstur. W przeciwieństwie do .lwo ma jednolite wygładzanie krawędzi. Jeśli chcemy, aby model miał także krawędzie ostre, musimy rozdzielić wierzchołki (Break, Detach itp). Wygładzanie - rzecz jasna - nie ma miejsca pomiędzy polygonami nie połączonymi. Metodę tą można stosować także dla formatu .lwo, jeśli zachodzi taka potrzeba, tymniemniej trzeba mieć świadomość, że nieznacznie zmniejsza to wydajność. (więcej wierzchołków, więc draw call'sów itd.) Stąd też lepiej stosować .lwo i jego wbudowane wygładzanie.

Kluczową kwestią dla pomyślnego eksportu modelu jest nadanie odpowiedniej nazwy materiałom. Materiały przypisane w programie do modelowania muszą mieć identyczną nazwę jak materiały zadeklarowane w Dark Modzie (=Doomie3).

Ponadto model w momencie eksportu musi się znajdować we współrzędnych 0,0,0.


ad 2.tu chyba nie potrzeba się rozdrabniać

ad 3.Tekstury mogą być we formacie DDS lub TGA. Folder jest dowolny - może to być np. //darkmod/textures/moje_tekstury bądź we folderze z obiektami.

Możemy także stworzyć prostszą wersję tekstury na potrzeby edytora. Wówczas zapisujemy ją jako .jpg, obrazek o wiekości 256x256. (jest to kwestia umowna, ale na ogół to właśnie wystarcza).

ad 4.Plik tekstowy z własnymi deklaracjami materiałów umieszczamy we folderze //darkmod/materials.
Przykładowa deklaracja materiału może wyglądać tak:

Kod: Zaznacz cały

nazwa_materiału
{
  stone

  qereditorimage ścieżka/do/naszych/tekstur/obrazek_ed

  diffusemap ścieżka/do/naszych/tekstur/obrazek_d
  bumpmap  ścieżka/do/naszych/tekstur/obrazek_local
  specularmap ścieżkka/do/naszych/tekstur/obrazek_s
}
Najważniejsze, aby nazwa materiału się nie powtarzała i była taka sama, jak nazwa materiału modelu w programie 3D.

Jeśli mamy akurat włączonego Dark Moda, możemy od razu przetestować nasz model.
Wpiszmy w konsolę:
-ReloadModels - odczyta ponownie modele (i znajdzie nowe)
-ReloadImages - odświeża tekstury
-ReloadDecls - odświeża pliki tekstowe (w tym deklaracje materiałów)

Następnie, będąc w grze wpiszmy polecenie:
-TestModel ścieżka/do/naszego/modelu/model.lwo (bądź model.ase)

Model powinien ukazać się na przeciwko nas - możemy wówczas sprawdzić, czy wygląda tak, jak powienien.

NAJCZĘSTSZE BŁĘDY:
Jeśli model nie wyświetla się prawidłowo (czarny, bez tekstury), to sprawdźmy poniższe:
- literówki w deklaracji materiału
- brak któregoś ze znaków { } w deklaracji materiału
- zła nazwa materiału przypisanego modelowi - należy ją poprawić w programie 3D i wyeksportować ponownie model.
- zła nazwa tekstur
- zła nazwa modelu

Uczulam na te literówki, bo potrafią uprzykrzyć życie.
Ponadto często spotykałem się z błędem typu: Material XXX already declared in file YYY line 0. Nie wiem skąd to się brało, bo nazwa była niepowtarzalna. A jeśli by nie była, to komunikat wskazywałby na właściwy plik .MTR i konkretny nr linii.
Rozwiązaniem była zmiana nazwy materiału na jakiś inny...Ot, kaprys (bug) silnika gry...