Units conversion guide using blender by zjb (video

Transkrypt

Units conversion guide using blender by zjb (video
Z cyklu „niedzielny moder” - podstawy modelowania czyli
„przybyli Ułani pod okienko”
© 2011 bjz
Spis treści
1 Wstęp............................................................................................................................................1
2 Czego potrzebujemy.....................................................................................................................1
3 Procedura konwersji w zarysie.....................................................................................................2
4 Rozgrzewka - wstępne poprawki..................................................................................................2
5 Operacja "KASTRAT"..................................................................................................................3
6 Łączymy model i wypalamy nowe tekstury.................................................................................5
7 Finał..............................................................................................................................................7
8 Chcemy więcej (animacji) !..........................................................................................................8
9 A Huzar?.....................................................................................................................................10
10 Podsumowanie..........................................................................................................................10
11 Bibliografia...............................................................................................................................11
1
Wstęp
Ten poradnik powstał bazując na efektach cięzkiej pracy uzdolnionych moderów z civfanatics a w
szczególności:
http://forums.civfanatics.com/showthread.php?t=394056 (Deliverator)
oraz
http://forums.civfanatics.com/showthread.php?t=392985 (lemmy101)
Jeden z użytych programów (Nexus Buddy) jest autorstwa lemmy101 i CaptainBinky i znacznie
ułatwia dodawanie przygotowanych modeli do modyfikacji.Ten poradnik nie będzie jednak kopią
(bądź tłumaczeniem) powyższych wątków. Po pierwsze robimy wszystko na podstawie Ułana, po
drugie oprócz wyjaśnienia techniki konwersji, mamy prosty przykład uproszczania modelu, po
trzecie popełnimy kilka edukacyjnych błędów i w końcu po czwarte - nasz poradnik to właściwie
poradnik wizualny. Tekst będzie pełnił tylko rolę pomocniczą (choć pewne kwestie zostaną
wyjaśnione bardziej szczegółowo). Wszystkich zainteresowanych pogłębieniem wiedzy zapraszam
do zacytowanych powyżej wątków na civfanatics. Sam proces konwersji (o ile nie ma problemów z
wejściowym modelem) jest naprawdę bardzo prosty.
1
2
Czego potrzebujemy
1. Python http://www.python.org/
2. PyFFI http://sourceforge.net/project/platformdownload.php?group_id=199269
3. Blender http://www.blender3d.org/
4. Blender NIF Scripts
http://sourceforge.net/projects/niftools/files/blender_nif_scripts/2.5.x/2.5.05/blender_nif_scripts2.5.5.90a8d2f-windows.exe
5. NifSkope http://niftools.sourceforge.net/wiki/NifSkope
6. IndieStone Nexus Buddy http://forums.civfanatics.com/showthread.php?t=392985
7. GIMP wraz z wtyczką pozwalająca na pracę z plikami dds
8. Paczka z Ułanem (civ4) oraz animacje kawalerii (civ4) - wszystko razem tutaj:
www.fiz.proste.pl/civ/uhlan_tutorial_pack.rar
Pierwsze 4ry rzeczy dają nam przyjemne i darmowe narzędzie do tworzenia grafiki 3D (Blender)
wraz z możliwością importu interesujących nas plików (NIF). NifSkope pozwala nam
uporządkować plik NIF (przydatne w przypadku Huzara, tutaj niekoniecznie) oraz łatwo i
wygodnie testować animacje.
Ponadto możemy łatwo wyekstrachować samą siatkę (znowu Huzar) z modelu. Nexus Buddy to
generacja plików GR2 oraz automatyczne budowanie projektu dla ModBuddy'ego.
Uwaga! Przed rozpoczęciem pracy należy niestety wypakować wszystkie grafiki z Cywilizacji
(wymaga to kilku dodatkowych gigabajtów). W tym celu odpalamy Nexus'a (z SDK), uruchamiamy
skrypt wypakowujący (nexus->scripts browser->extract PAK files) i możemy pójść do kuchni
przygotować sobie kolację. Po powrocie, syci i pełni zapału przystępujemy do pracy.
3
Procedura konwersji w zarysie
Symbolicznie rzecz ujmując:
NIF (civ4) -> FBX -> GR2 (civ5)
Proste prawda? Niestety Blender nie współpracuje za dobrze z wieloma siatkami na jednym
szkielecie (przy eksporcie do fbx) a więc potrzebujemy zmodyfikować trochę nasz model. Ponadto
przy każdym z kroków tej konwersji może zdarzyć się problem. Najwyraźniej NIF widziany przez
Blendera i 3D Studio (tam chyba powstały polskie modele) wygląda troszeczkę inaczej. Dlatego
będziemy ostrożni. Co więcej, modele civ5 wymagają aby nasz szkielet miał nie więcej jak 32
segmenty (Huzar przykładowo ma ponad 60). Powyżej tej wartości nie mamy pewności że model
będzie się zachowywał poprawnie (najwięcej udało mi się "przemycić 36 segmentów). Najlepiej
więc "przycinać" systematycznie i sprawdzać efekty. W przypadku Ułana wystarczy wyciąć 3
segmenty.
2
4
Rozgrzewka - wstępne poprawki
Film: www.fiz.proste.pl/civ/uhlan_tut_part1_edited_small.avi
Potrzebne skróty:
TAB - przełączamy pomiędzy object mode / edit mode
a - zaznaczamy/odznaczamy wszystko
RMB - zaznaczenie obiektu pod wskaźnikiem myszki
g - przesuwamy zaznaczony obiekt
g + x (lub y lub z) - j.w ale wzdłuż wybranej osi
ctrl-a (apply scale and rotation) - aplikujemy macierze transformacji. Ważne jeśli modyfikujemy
cokolwiek zaimportowanego z zewnątrz inaczej po naszych poprawach model się może "rozsypać"
po eksporcie.
Krok po kroku:
1.Wczytujemy model (kawaleria.nif) do NifSkope a następnie od razu zapisujemy jako uhlan.nif
(NifSkope automatycznie dokona kilku poprawek).
2.Wczytujemy model do blendera (import) używając opcji jak poniżej:
3
3.Aplikujemy macierze transformacji (ctrl-a) na każdym z obiektów.
4.Przesuwamy Ułana tak aby wpasował się w swój szkielet. Powtarzamy ze strzelbą, modyfikujemy
także lekko ustawienie konia.
5.Zaznaczamy po kolei każdy obiekt, przechodzimy w tryb edycji (tab) i wykonujemy: mesh>vertices->remove doubles (nakładające się na siebie węzły zostaną sklejone w jeden).
6.Zaznaczamy wszystko ("a" w "object mode") i eksportujemy jako "uhlan2.nif"
7.Wczytujemy do NifSkope i sprawdzamy animacje. Jeśli wszystko gra przechodzimy do kolejnej
częsci.
5
Operacja "KASTRAT"
Film: www.fiz.proste.pl/civ/uhlan_tut_part2_edited_small.avi
Potrzebne skróty:
shift+LMB - zaznaczanie lassem (lasso select)
Krok po kroku:
Zaczniemy od usunięcia nadwyżkowych kości. Stosując regułę mniejszego zła decydujemy się
"przyspawać" koniowi ogon do zadu. Dodatkowo usuniemy też kość sterującą upadkiem strzelby
4
(zostanie przyklejona do dłoni).
1. Klikamy RMB na szkielecie i przechodzimy w tryb edycji (TAB). Teraz możemy klikać na
poszczególne części szkieletu i widzimy ich nazwy.
Przechodzimy do ogona - jak widać usunięcie go daje nam w sumie aż 2 segmenty zysku. Widzimy
też że najbliższa kość do której możemy "przyszyć" gdzieś pozbawioną rodzica część siatki to
"HorseBip Pelvis".
2. Czas na kastrację (po zaznaczeniu - "del"):
3. To samo powtarzamy z ostatnim segmentem prawej ręki.
4. Przełączamy się (TAB) do "object mode", klikamy na koniu i znowu "edit mode" (TAB).
Powinna pojawić się siatka. U dołu rozwijamy "vertex groups". Jak widzimy grupy mają takie same
nazwy jak segmenty szkieletu które przed chwilą przeglądaliśmy. Przyporządkowanie
poszczególnym kościom odpowiednich grup elementów siatki nazywamy usztywnianiem (rigging).
Możemy to zobrazować przechodząc z powrotem do "object mode", zaznaczając szkielet,
wchodząc w "pose mode" i przesuwając którąś z kości (nie pokazane na filmie). Jak widać siatka
rozciąga się podążając za ruchem wybranego segmentu. Co więcej jedne elementy rozciągają się
więcej inne mniej - oprócz przyporządkowania siatki do szkieletu musimy więc zdefiniować na ile
dany element szkieletu wpływa na dany element siatki ("paint weighting" w blenderze). Na
szczęście możemy to robić też automatycznie ("bone heat" w blenderze) ale w naszym przypadku
akurat nie będziemy musieli ponieważ zajmujemy się mało istotnym elementem modelu będącym
"końcówką" szkieletu. Jest to jednak ważne w przypadku bardziej skomplikowanych modyfikacji i
dlatego o tym wspominam (Huzar).
5
5. Pobawimy się jeszcze trochę grupami siatki. Niedaleko mamy opcje "select", "deselect" oraz
"assign" , "remove", "new" i "delete". Wybieramy którąś z grup z rozwijanej listy i klikamy "select"
- powinny podświetlić się elementy należące do tej grupy (a więc sterowane przez kość/segment o
tej samej nazwie). Teraz klikając "remove" usuniemy zaznaczone elementy siatki z tej grupy.
Możemy też np. zaznaczyć ręcznie więcej elementów i dodać je do tej grupy "assign". Możemy też
stworzyć zupełnie nową grupę "new" lub usunąć już istniejącą "delete". Wybierająć z listy grup
ogon konia "tail" zobaczymy te elementy, które musimy przyłączyć do "zadu" ( w tym wypadku
będzie to grupa "pelvis").
6. Przechodzimy do widoku bocznego (side view) i zaznaczamy ogon (lasso select). Obracamy
widok sprawdzając czy wszystko zostało poprawnie zaznaczone. Niestety nie, a więc powtarzamy
operację z włączonym "occlude background geometry". Teraz już wszystko wygląda poprawnie.
7. Wybieramy z listy grup: "HorseBip Pelvis" i klikamy "assign" a następnie "select" aby zobaczyć
pełną grupę.
8. Eksportujemy do uhlan2.nif, otwieramy w NifSkope, dodajemy animacje i co widzimy? Ułan
przewraca się z wdziękiem ale strzelba jak zaczarowana wisi w powietrzu. No tak, skasowaliśmy
przecież kość sterującą jej upadkiem! No to wracamy do blendera, zaznaczamy strzelbę (w "object
mode"), przechodzimy do "edit mode", z listy grup wybieramy... no właśnie co? Lista jest pusta,
ponieważ straciliśmy zupełnie powiązanie z modelem. To nic, wracamy do szkieletu i sprawdzamy
nazwę kości sterującej dłonią. Znowu idziemy do modelu strzelby i teraz klikamy na "new" pod
rozwijaną listą i wpisujemy "Bip01 Hand.R" (dokładnie tak jak nazywa się sprawdzony przed
chwilą segment). Klikamy "assign" (strzelba powinna być zaznaczona!).
9. Znowu testujemy model w NifSkope - tym razem wszystko powinno być w porządku - Ułan
zachowuje się jak na Polskiego żołnierza przystało - nie puszcza swojej broni aż do śmierci.
6
Łączymy model i wypalamy nowe tekstury
Film: www.fiz.proste.pl/civ/uhlan_tut_part3_edited_small.avi
Potrzebne skróty:
ctrl+j - łączenie dwóch elementów
ctrl+c - kopiowanie
s - skalowanie
s + wartość - skalowanie o daną wartość np s + 0.5 pomniejsza obiekt 2 razy
Krok po kroku:
1. Wracamy do blendera i przyłączamy wszystkie siatki do jednej. Wciskamy shift i używająć RMB
(w "object mode") zaznaczamy wpierw konia potem Ułana i wciskamy ctrl-J i potwierdzamy ("Join
selected meshes"). Powtarzamy to ze strzelbą (najpierw zaznaczamy strzelbę!).
2. Teraz mamy problem, bo choć jeszcze tego nie widać to straciliśmy tekstury. Musimy je na nowo
rozplanować. Na szczęście znowu pomoże nam sam Blender ("texture baking"). Zaczniemy od
skopiowania istniejącej tekstury. Przechodzimy do "edit mode", zaznaczamy wszystko i klikamy
"new" w dolnym oknie w dziale "mesh" obok "UV texture". Model powinien zmienić kolor na
6
jednolity biały a poniżej UVTex będziemy mieć UVTex.001. Teraz w prawym okienku blendera
zmieniamy widok na "UV/Image editor". Wracamy do modelu - powininen być cały zaznaczony wciskamy "ctrl-c" i wybieramy "TexFace UVs from layer", następnie "UVTex" i po tej operacji
naszym oczom po prawej stronie ukaże się kompletny bałagan. Właśnie rozwinęliśmy siatkę tak
aby można było nałożyć na nią teksturę, niestety poszczególne części należące do różnych siatek
wcześniej nakładają się na siebie i stąd bałagan.
3. Na szczęście każdej siatce przypisany był inny materiał. W dolnym oknie w dziale "link and
materials" możemy łatwo przełączać pomiędzy nimi. Wtedy w prawym oknie zostaną nam
elementy siatki związane tylko z danym materiałem. Teoretycznie powinniśmy wszystko rozłożyć
na części pierwsze i poskładać tak aby mieściło się w ramach obrazu po prawej stronie. Tutaj
pójdziemy na łatwiznę i przeskalujemy tylko wszystkie elementy i rozmieścimy tak aby nie stykały
się ze sobą. Używamy w tym celu operacji skali (s + wartość). Dwa razy pomniejszamy ułana i
umieszczamy w jednym z rogów, w drugim dwa razy pomniejszonego konia i w końcu dołączamy
pomniejszoną strzelbę (3 razy) tak aby na koniec wyglądało to mniej więcej tak:
Jak widzimy nie wygląda to ani zbyt ekonomicznie ani inteligentnie. Strzelba która nie składa się ze
zbyt wielu elementów ma do dyspozycji prawie taką samą przestrzeń jak koń czy sam Ułan.
Zdecydowanie powinniśmy spędzić więcej czasu nad tą operacją - pomniejszyć elementy
składające się z gęstszej siatki mniej a takie jak strzelba - więcej i rozplanować wszystko tak aby
zajmowało całą dostępną przestrzeń (jak widać sam ułan składa się z kilkunastu elementów które
możemy niezależnie przesuwać i skalować). To już jednak zostawiam czytelnikowi. Z drugiej
strony jednak modele w civ5 są naprawdę bardzo małe i niewiele widać na nich szczegółów nawet
przy maksymalnym powiększeniu więc nie wiem czy warto marnować na to czas.
4. Wypalimy naszą teksturę na nowym obrazku. W tym celu klikamy w prawym oknie na "Image" i
7
"new", ustawiamy rozdziałkę na 256x256. Następnie wracamy do modelu i upewnieamy się ze jest
zaznaczony zarówno w "edit mode" jak i "object mode". Teraz wybieramy z górnego menu
"render", "bake render meshes" i "textures only". Powinniśmy zobaczyć w prawym okienku że na
naszej siatce mamy odpowiednio dopasowane tekstury. W prawym oknie wybieramy "image">"save" i zapisujemy w domyślnym formacie jako "uhlan_textures_all".
5. Kasujemy wszystkie materiały ("link and materials" u dołu) oprócz pierwszego oraz
przyporządkowujemy (assign) całą siatkę ("edit mode", "select all" - "a") do materiału pierwszego.
6. Kasujemy definicję tekstury "UVTex" i zmieniamy nazwę "UVTex.001" na "UVTex".
7. Przełączamy prawe okienko na "Scripts" i eksportujemy Ułana jako "uhlan2.nif", następnie
ładujemy ten plik w NifSkope
8. W GIMPI'e odczytujemy nasz plik z teksturami i zapisujemy w formacie DDS (kompresja
DC3/BXT5)
9. W NifSkope rozwijamy drzewko modelu aż dojdziemy do : scene root->CavalryRider01>NiTexturingProperty->NiSourceTexture i tam ładujemy przed chwilą zapisaną teksturę (dds).
10. Podziwiamy naszego Ułana przez chwilę i przechodzimy do ostatniej części poradnika.
7
Finał
Film: www.fiz.proste.pl/civ/uhlan_tut_part4_edited_small.avi
W skrócie:
1. Czas na słodką konsumpcję owoców naszej pracy. Przechodzimy do blendera i czyścimy
wszystko ("a" w "object mode" i "del", może przedtem warto zapisać to w formacie blendera...).
Następnie importujemy do blender'a nasz model jeszcze raz ("uhlan2.nif") ale tym razem wraz z
animacją. Ja wybrałem animację spoczynkową:
8
2. Wciskamy ctrl + "strzałka w prawo" aby przejść do trybu edycji animacji. Wciskamy "play" i
Ułan powinien nabrać trochę życia.
3. Wracamy do modelu (ctrl + "strzałka w lewo") i eksportujemy model do formatu fbx (wpierw
zaznaczamy wszystko oczywiście). Przy eksporcie wybieramy "scene objects".
4. Teraz uruchamiamy ModBuddy'ego i tworzymy nowego moda. Wybieramy mu nazwę,
wprowadzamy autora itd. i tak zostawiamy.
5. Uruchamiamy Nexus Buddy. Od razu zapyta się nas o podanie mu pliku fbx. No to wybieramy
naszego świeżo przygotowanego Ułana. Teraz musimy już tylko przebrnąć przez kilka zakładek i
gotowe. W pierwszej kilkamy u dołu na "CavalryRider01" i po prawej stronie wybieramy
odpowiednią teksturę (domyślnie jest "Generic_Grey_8.dds").
6. Druga zakładka to definicje animacji. Klikamy "add" i animacja zawarta w naszym modelu
zostanie wykryta i dodana jako domyślna dla wszystkich akcji. Lista akcji znajduje się u pośrodku
w lewej kolumnie. Poniżej mamy wygenerowany na tej podstawie plik fxsxml. Jak widzimy każda
akcja posiada unikalny identyfikator za pomocą którego możemy skojarzyć ją z animacją. Tego
możemy użyć później do dodania większej ilości animacji. Warto tutaj pobawić się chwilę aby
zobaczyć jak zmienia się plik fxsxml kiedy modyfikujemy przyporządkowanie animacji (po
kliknięciu jeszcze raz "add" ta sama animacja zostanie dodana drugi raz co pozwoli nam na
zabawę).
7. W trzeciej zakładce możemy zdefiniować parametry naszej jednostki oraz jej modelu. Jako że o
definiowaniu nowych jednostek wiemy już wszystko stąd http://forums.civ.org.pl/viewtopic.php?
TopicID=8752 , to omówimy tylko pokrótce dział "Art info". Tutaj możemy zdecydować jaką
domyślnie formacje będzie tworzyć jednostka, jaki dźwięk będzie wydawać, jak duża będzie itd...
Na razie ustawiamy skalę na 3 (po to aby dokładnie przyjrzeć się Ułanowi w grze), ilość jednostek
w formacji na 1 (z tego samego powodu).
8. W ostatniej zakładce wybieramy tylko projekt ModBuddy'ego do którego chcemy dodać nasz
model (zaznaczamy plik projektu a więc "civ5proj") i klikamy "export to ModBuddy".
9. Po przełączeniu na ModBuddy'ego widzimy że wykrył on zmiany w projekcie więc wystarczy
już tylko potwierdzić (klikamy "reload"), przestawić odpowiednim plikom "import into VFS" na
"true" (a najlepiej wszystkim) i skompilować projekt (ważne aby w opcjach było zaznaczone
"reload unit system" ale powinno to być domyślnie ustawione przez "Nexus Buddy").
10. W ostatnim kroku odpalamy grę, aktywujemy moda (lepiej odznaczyć wszystkie inne na czas
testów) i na koniec naszym szczęśliwym oczom powinien ukazać się Ułan dumnie dosiadający
swojego rumaka:
9
8
Chcemy więcej (animacji) !
Dodanie większej ilości animacji to także łatwa sprawa. Tutaj obejdziemy się bez wizualizacji.
Wróćmy do ModBuddiego i oberzyjmy sobie jakie pliki zostały dołączone do projektu:
Uhlan.xml oraz Uhlanlanguage.xml to pliki definiujące parametry jednostek i teksty ale także
gdzieś tam jest definicja modelu:
10
<UnitArtInfo>ART_DEF_UNIT_UHLAN</UnitArtInfo>
Co oznacza że w civ5artdefines_units.xml musimy mieć taki nagłówek. Szukamy i rzeczywiście na
samym końcu mamy Ułana. Dzięki temu że mamy go razem z innymi jednostkami możemy łatwo
na podstawie jakiejś innej kawalerii z tego okresu odpowiednio ustawić modelowi parametry.
Podobnie jeśli chodzi o civ5artdefines_unitmembers.xml. W tym drugim pliku mamy odniesienie
do fxsxml (uhlan.fxsxml) które mówi że tam powinniśmy szukać modelu (zarówno siatki jak i
animacji). Przechodzimy więc do katalogu art. Widzimy następujące pliki:
1.Plik z siatką (uhlan.gr2)
2.Plik z animacją (uhlannewanimation1.gr2)
3.Plik z teksturą (uhlan_textures_all.dds)
4.Definicję modelu (uhlan.fxsxml)
Oznacza to, że siatka jest rozdzielona z animacją co upraszcza nam sprawę. Możemy teraz
powtórzyć cała procedurę z poprzedniej części (Finał) naszego poradnika tylko wybierając inną
animację przy importowaniu nifa w pierwszym kroku do blendera. Resztę robimy dokładnie
identycznie z tą różnicą że nadajemy inne nazwy czyli zamiast uhlan.fbx mamy uhlan_die.fbx,
uhlan_run.fbx itd. Eksportujemy do tego samego projektu ModBuddiego. Powtarzamy to tyle razy,
ile animacji potrzebujemy. Na końcu w modelu będziemy mieli tyle jednostek ile animacji
wyeksportowaliśmy - każda z jedną tylko animacją. Nie jest to problemem. Oto co robimy:
1.Wybieramy model podstawowy (najlepiej tą pierwszą czyli bez przyrostka - po prostu "uhlan")
2.Kopiujemy tam wszystkie inne animacje (tylko animacje!) tak aby miec w art:
uhlan.fxsxml
uhlan_textures_all.dds
uhlan.gr2
uhlannewanimation1.gr2
uhlan_dienewanimation1.gr2
uhlan_strikenewanimation1.gr2
uhlan_runnewanimation1.gr2
etc...
Następnie modyfikujemy uhlan.fxsxml tak aby uwzględnić dodatkowe animacje. Jakie numerki
przyporządkować wiemy z analizy dostępnych akcji w Nexus Buddy. Teraz najlepiej przetestować
to w grze. Powinniśmy móc zbudować zarówno naszą podstawową jednostkę ze wszystkimi
animacjami jak i każdą oddzielnie z jedną przypisaną animacją - to pozwala łatwo sprawdzić która
animacja sprawia problemy.
Na koniec możemy usunąć niepotrzebne modele - nie zapominamy o usunięciu ich z
civ5artdefines_units.xml oraz civ5artdefines_unitmembers.xml.
Przykład dla modelu z 7mioma animacjami:
11
(tutaj zmieniłem też uhlannewanimation1.gr2 na uhlan_idlenewanimation1.gr2 dla lepszej
czytelności)
Definicje w pliku fxsxml:
<Asset>
<Mesh file="uhlan.gr2" source="Tool" />
<Animation file="uhlan_idleNewAnimation1.gr2" ec="1280, 1285, 1290, 1600,
1620, 1640, 1040, 2040, 1000, 1020, 2000, 2020, 1450, 1440, 2440, 1800"
/>
<Animation file="uhlan_dieaNewAnimation1.gr2" ec="1200, 1220, 2200, 2220" />
<Animation file="uhlan_fortifyaNewAnimation1.gr2" ec="1500" />
<Animation file="uhlan_fortifya_idleNewAnimation1.gr2" ec="1520, 1540, 1560,
1580" />
<Animation file="uhlan_runNewAnimation1.gr2" ec="1140, 1120, 1400" />
<Animation file="uhlan_strikeaNewAnimation1.gr2" ec="1100, 2100, 1160,
1180" />
[...]
</Asset>
12
Pozostaje pytanie w jaki sposób dodać to do naszego moda? Wystarczy skopiować wszystkie pliki z
katalogu art oraz civ5artdefines_units.xml i
civ5artdefines_unitmembers.xml i zmienić odpowiednio <UnitArtInfo> tak aby wskazywał na
nowy model i to wszystko (pliki uhlan.xml i uhlanlanguages.xml są oczywiście zbędne ponieważ
już zdefiniowaliśmy prawdopodobnie parametry i opisy naszej jednostki i jedyne czego nam
brakuje to model).
9
A Huzar?
Na razie ogólny schemat postępowania, jeśli chcemy zachować oryginalny model wygląda tak:
1. W orginalnym nif'ie kasujemy wszystko oprócz pierwszej sceny (scene root)
2. Wczytujemy tego nif'a do blendera, kasujemy wszystko oprócz szkieletu
3. Wracamy do orginalnego nif'a, klikamy na jezdzcu i kiedy pojawi się siatka eksportujemy jako
"obj"
4. To samo z koniem
5. W blenderze importujemy obydwie siatki
6. Nakładamy je na szkielet i używamy "bone heat" do usztywnienia. Następnie ręcznie
poprawiamy złe wagi.
7. Testujemy model z animacjami. Zachowujemy pełny model.
8. Eksportujemy jako nifa i importujemy jeszcze raz razem z pierwsza animacja
9. Kastrujemy do około 33 kości i zapisujemy, oddzielnie zapisujemy też nową wersję animacji
kompatybilną z tym modelem
10. Testujemu w grze
11. Importujemy jeszcze raz niewykastrowany model wraz z kolejną animacją
12. Kastrujemy go DOKŁADNIE tak samo jak zrobiliśmy to w punkcie 9 (te same kości) i
zapisujemy model oraz kompatybilną animację
13. Znowu test
14. I tak w kółko aż mamy wszystkie animacje
lub (w przypadku gdy używamy tylko siatki):
1. W orginalnym nif'ie kasujemy wszystko oprócz pierwszej sceny (scene root)
2. Bierzemy z civ5 podobną jednostkę, wczytujemy do blendera i kasujemy wszystko oprócz
szkieletu
3. Wracamy do orginalnego nif'a, klikamy na jezdzcu i kiedy pojawi się siatka eksportujemy jako
"obj"
4. To samo z koniem
5. W blenderze importujemy obydwie siatki
6. Nakładamy je na szkielet i używamy "bone heat" do usztywnienia. Następnie ręcznie
poprawiamy złe wagi.
7. Testujemy model z animacjami.
(pominąłem kroki z łączeniem w jedną siatkę i wypalaniem tekstur)
13
10 Podsumowanie
Oczywiście podziękowania dla lemmy101 oraz captainbinky za rozwiązanie problemu
dodawania/konwersji jednostek oraz dla użytkowników civ.org.pl za inspirację.
11
Bibliografia
[1] Deliverator, Getting Civ4 units into Civ5, http://forums.civfanatics.com/showthread.php?
t=394056 (Deliverator)
[2] lemmy101, How to add new units in mods – the easy way,
http://forums.civfanatics.com/showthread.php?t=392985
[3] Derek „Kael” Paxton, The Modders Guide to Civilization 5,
http://forums.civfanatics.com/showthread.php?t=385009
[4] http://forums.civfanatics.com
[5] www.civ.org.pl
© notka o prawach autorskich ©
Dokument może być kopiowany, powielany i modyfikowany do woli z zachowaniem licencji GPL.
14

Podobne dokumenty