Tutorial dodawania własnych przedmiotów
także dla topornych. ;)
Potrzebne nam będą:
1. Gra M&B lub M&B:Warband
2. BRF Edit (0.8.9) lub najnowszy Open BRF
3. Program do edycji tekstu (polecam Notepad++)
4. Nasz własny model z teksturami
5. DXTBmp lub inny program do zmiany plików .bmp na .dds -- niepotrzebny, jeśli przenosimy przedmiot z innego moda
6. Program do grafiki 3D (np. Wings3D) -- również niepotrzebny, jeśli przenosimy przedmiot z innego moda
Gdy mamy już swój własny model, z odpowiednią teksturą w formacie .bmp, to warto byłoby sprawdzić, jak też on się w grze prezentuje. W tym celu odpalamy nasz program graficzny (tu na przykładzie Wings3D), wczytujemy nasze dzieło...

...następnie eksportujemy je jako obiekt (plik z rozszerzeniem .obj).

Radzę wybrać sobie jakąś jedną nazwę i tej nazwy używać wszędzie, by uniknąć pomyłek. Ja swój zmodyfikowany hełm skrzydlaty nazwałem "horned_helmet".

Model wyeksportowany. Czas zająć się teksturami i skonwertować je do formatu .dds. Do tego nada się świetnie bezpłatny program DXTBmp. Pobieramy go, instalujemy, odpalamy i wczytujemy naszą teksturkę i zapisujemy ją jako dds.

Tutaj też używamy naszej nazwy.

Tekstura gotowa. Pora wrzucić ją do katalogu "Textures" w folderze naszego moda (można jedną kopię wrzucić bezpośrednio do katalogu "mount&blade\textures", by mieć podgląd textury w BRFie), uruchomić program BRF Edit i stworzyć nowy plik .brf.

Przechodzimy do zakładki "Tex" i na dole klikamy przycisk "Add". Utworzy nam się "default_texture.dds". Zmieniamy jej nazwę na nazwę naszej tekstury, czyli "horned_helmet.dds" i klikamy "set". Jeśli zrobiliśmy tak, jak wcześniej opisałem i wrzuciliśmy naszą nową teksturkę również do "mount&blade\textures", to powinna się nam ona ładnie wyświetlić.

Przechodzimy do zakładki "Mat" i dodajemy nowy materiał klikając na "Add". W polu "Name" wpisujemy nazwę materiału (najlepiej ta sama), w polu "shader" wybieramy (niespodzianka!) shader dla naszego nowego przedmiotu, zaś w polu "Diffuse" wpisujemy nazwę tekstury, bez rozszerzenia. Ustawiamy jeszcze pozostałe parametry wedle własnej woli...

... i zapisujemy plik (Ctrl+S), by nic się nie popieprzyło (a w tym momencie lubi to robić). Plik .brf zapisujemy w katalogu "Resources" naszego moda, nadając mu taką samą nazwę.

Czas na importowanie naszego obiektu do brfa. Przechodzimy do zakładki "Mesh" i klikamy na "import".

Odnajdujemy nasz model i importujemy go do programu.

Nazwę powinien mieć już odpowiednią. Zmieniamy mu tylko materiał, wpisując... zgadnijcie jaką nazwę. ;)

Klikamy "set" i zapisujemy zmiany. Już pewnie wcześniej wyskoczyło nam okienko o tym, czy dodać plik do module.ini. Jeśli jeszcze tego nie zrobiliśmy, to teraz klikamy na "Tak".

To już wszystko, jeśli chodzi o zabawę z modelem i teksturami.
Teraz przychodzi czas na zabawę z plikami tekstowymi gry, by nasz przedmiot w grze się znalazł.
Jeżeli bawimy się z całym "module_system", to otwieramy "module_items.py", kopiujemy jakiś podobny przedmiot i wklejamy go prawie na sam koniec, przed znakiem "]". Następnie modyfikujemy mu nazwę i zmieniamy model, z jakiego przedmiot będzie korzystał - wszystko na nasze własne. Tak jak tutaj (ja skopiowałem hełm skrzydlaty):

Zapisujemy zmiany i kompilujemy module_system. Nasz przedmiot będzie dostępny w sklepach (po kilku dniach, jeśli nie rozpoczęliśmy nowej gry).
Jeśli nie bawimy się module systemem, to w katalogu naszego moda odszukujemy plik "item_kinds1.txt" i edytujemy go.

Na samym początku zwiększamy ilość już istniejących przedmiotów o tyle, ile chcemy dodać (czyli ja o 1):

Szukamy podobnego przedmiotu (hełm skrzydlaty), kopiujemy go, wklejamy na sam koniec...

...i modyfikujemy jego nazwę i model (najpierw jest nazwa pliku, potem dwie nazwy przedmiotu, a później [najważniejsze!] nazwa modelu - przy skrzydlatym hełmie było to "maciejowski_helmet_new"):

Zapisujemy zmiany i upewniamy się jeszcze, czy aby na pewno w module.ini jest taka linijka:

Jeśli nie ma, to ją dodajemy, zapisujemy zmiany i odpalamy Mount&Blade. Teraz możemy sie cieszyć naszym nowym, wspaniałym modelem. :)

Dziękuję za uwagę. ;)