DODAWANIE NOWEJ BRONI
I INNYCH PRZEDMIOTÓW
Artykuł z serii: Jak stworzyć modyfikację?
Spis Treści
I. Które pliki będziemy potrzebować
II. Potrzebne programy
Część I. Budowa plików
z obrazami przedmiotów w wymiarze 2D
I. Rodzaje obrazów
II. Parametr "icon"
1.) Liczby
2.) Ikonki
3.) Korzystanie z szachownicy
4.) Współrzędne przestrzeni
5.) Usuwanie szachownicy
II. Parametr "picture"
1.) Liczby
2.) Duże obrazy
3.) Korzystanie z szachownicy
4.) Współrzędne przestrzeni
5.) Usuwanie szachownicy
Część II. Tworzenie nowego pliku dla obrazów przedmiotów w wymiarze 2D
I. Ogólny zarys
II. Tworzenie zmian
Część III. Tworzenie ikonek i obrazów nowych przedmiotów
I. Ikonki
II. Duże obrazy
Część IV. Tworzenie modeli 3D i tekstur do nich
I. Lokalizacja istniejących modeli 3D
II. Format modeli 3D
III. Zapisywanie modeli do formatu CRF
IV. Instalacja wtyczki CRF dla programu Blender
V. Wykonywanie nowych modeli 3D wraz z teksturami
1.) Czysty model 3D
2.) Tekstury dla broni i dodatków do niej
3.) Tekstury dla odzieży ochronnej
Część V. Tworzenie numeru identyfikacyjnego dla nowego przedmiotu
I. Ogólny zarys
II. Broń i dodatki do niej
1.) Plik "main.vtp"
2.) Plik "weapons.txt"
III. Odgłosy wystrzałów broni
IV. Odzież ochronna
1.) Plik "playerbodies.txt"
2.) Plik "clothings.txt"
3.) Powiązanie pomiędzy plikami z punktu 1 i 2
V. Pozostałe przedmioty
Część VI. Wykonywanie nowych broni i innych przedmiotów na bazie już istniejących modeli 3D
I. Ogólny zarys
II. Procedura tworzenia
1.) Małe ikonki i duże obrazy
2.) Struktura parametrów
3.) Numer identyfikacyjny
4.) Modele 3D i odgłosy
Część VII. Przenoszenie broni i przedmiotów z innych części JA Back in Action
I. Ogólny zarys
II. Aktywacja "uśpionych" broni i przedmiotów
III. Przenoszenie obiektów występujących tylko w jednej części gry
Wprowadzenie
W tym poradniku zostaną przedstawione metody pozwalające na wdrażanie całkowicie nowych broni i innych przedmiotów takich jak dodatki do broni, amunicje, kamizelki, medykamenty, materiały wybuchowe, narzędzia oraz wszelkie inne tego typu obiekty. Chodzi tutaj oczywiście o dodawanie nowych obiektów, a nie zamienianie już istniejących.
Zapewne większość z Was doskonale wie, że w grze Jagged Alliance Back in Action, wszystkie przedmioty oprócz zwykłych obrazków 2D, posiadają również swoje modele 3D, używane już podczas samej rozgrywki na mapie taktycznej. Jeśli będziemy chcieli wdrożyć na 100% nowy przedmiot, to będziemy musieli wykonać dla niego również nowy model 3D. Oczywiście pokaże Wam jak stworzyć taki model 3D, lecz nie będzie on konieczny do wdrożenia i poprawnego działania nowego obiektu, ponieważ będziemy mieli możliwość wykorzystania do tego celu, istniejące już modele 3D.
Dla przykładu, gdy wdrożymy nową broń, która będzie podobna do M-16, to będziemy mogli wskazać w odpowiednim parametrze, aby do wyświetlania się modelu 3D naszej nowej broni, był brany model 3D broni M-16. Oczywiście jeśli tylko będziemy mieli taką możliwość, to warto jest wykonać nowy model 3D, który będzie reprezentował w 100% nasz nowy przedmiot. Warto jest tym bardziej postarać się o wykonanie nowego modelu 3D, ponieważ niestety wiele broni i innych przedmiotów, których nie ma w domyślnym zestawie obiektów w grze Jagged Alliance Back in Action, jest praktycznie nie podobna do tych, już istniejących modeli 3D w grze.
I. Które pliki będziemy potrzebować
"interface.cui" |
W tym pliku będziemy musieli dodać nazwy plików (przez co gra będzie wiedziała o ich istnieniu), w których będziemy umieszczać nowe obrazki naszych przedmiotów w wymiarze 2D. Aby zdobyć ten plik należy wypakować "interface_win32.pak.crypt", który znajdziemy zawsze w głównym katalogu, do którego zainstalowaliśmy grę. Po jego wypakowaniu w katalogu "bin_win32" będziemy mieli nowy folder o nazwie "interface", a w nim nasz plik "interface.cui". Ze względu na jego rozszerzenie "cui", będziemy musieli go jeszcze raz wypakować. Dzięki temu plik ten będzie w przyjaznym do edytowania formacie "txt". Po dokonanych zmianach nie zapomnijmy zapisać zmian i przede wszystkim nie zapomnijmy z powrotem przekształcić ten plik z formatu "txt" do formatu "cui". |
"equipment.ctx" |
W tym pliku będziemy musieli umieścić nazwy dla naszych nowych obiektów oraz ich opisy. Aby zdobyć ten plik należy wypakować "interface_win32.pak.crypt", który znajdziemy zawsze w głównym katalogu, do którego zainstalowaliśmy grę. Po jego wypakowaniu w katalogu "bin_win32" będziemy mieli nowy folder o nazwie "interface", a w nim nasz plik "equipment.ctx". Ze względu na jego rozszerzenie "ctx", będziemy musieli go jeszcze raz wypakować. Dzięki temu plik ten będzie w przyjaznym do edytowania formacie "txt". Po dokonanych zmianach nie zapomnijmy zapisać zmian i przede wszystkim nie zapomnijmy z powrotem przekształcić ten plik z formatu "txt" do formatu "ctx". Pełny i szczegółowy opis pracy na tym pliku został pokazany w tym poradniku. |
"ammunition.txt" "clothings.txt" "collectibles.txt" "consumables.txt" "items.txt" "weapons.txt" |
W zależności od rodzaju wdrażanego przedmiotu, będziemy musieli wstawić strukturę parametrów danego obiektu do odpowiedniego pliku. Aby zdobyć te pliki należy wypakować "configs_win32.pak.crypt", który znajdziemy zawsze w głównym katalogu, do którego zainstalowaliśmy grę. Po jego wypakowaniu w katalogu "bin_win32" będziemy mieli nowy folder o nazwie "configs", a w nim wymienione tutaj pliki. Pełne i szczegółowe poradnika na ich temat znajdziecie w następujących linkach: "clothings.txt" "collectibles.txt" "consumables.txt" "items.txt" oraz "ammunition.txt" "weapons.txt". |
"playerbodies.txt" |
Jeśli będziemy chcieli dodać nowe przedmioty w postaci odzieży ochronnej, to będziemy musieli stworzyć dla nich nowe numery identyfikacyjne i właśnie w tym pliku to wykonamy. Aby zdobyć ten plik należy wypakować "configs_win32.pak.crypt", który znajdziemy zawsze w głównym katalogu, do którego zainstalowaliśmy grę. Po jego wypakowaniu w katalogu "bin_win32" będziemy mieli nowy folder o nazwie "configs", a w nim nasz plik "playerbodies.txt". |
"main.vtp" |
Jeśli będziemy chcieli dodać nowe przedmioty w postaci broni, dodatków do niej lub nowych ich odgłosów wystrzałów, to będziemy musieli stworzyć dla nich nowe numery identyfikacyjne i właśnie w tym pliku to wykonamy. Plik ten znajduje się bezpośrednio w katalogu "bin_win32". Aby go móc edytować będziemy musieli go wypakować. Dzięki temu będzie on w formacie "txt". Po skończonej edycji nie zapomnijmy zapisać zmian i z powrotem przekształcić ten plik z formatu "txt" do formatu "vtp". |
"ui_equipment_icons.dds" |
To są pliki, w których znajdują się małe ikonki wszystkich przedmiotów. Pliki te różnią się między sobą tylko numerem np. ui_equipment_icons_0.dds, ui_equipment_icons_1.dds, ui_equipment_icons_2.dds. Pliki te znajdziemy w katalogu "bin_win32 / textures / interface" ale najpierw musimy wypakować wszystkie pliki z rodzaju "data_win32.pak", które znajdziemy zawsze w głównym katalogu, do którego zainstalowaliśmy naszą grę. |
"ui_equipment_pictures.dds" |
Są to pliki, w których znajdują się duże obrazy wszystkich przedmiotów. Pliki te różnią się między sobą tylko numerem np. ui_equipment_pictures_0.dds, ui_equipment_pictures_1.dds, ui_equipment_pictures_2.dds. Pliki te znajdziemy w katalogu "bin_win32 / textures / interface" ale najpierw musimy wypakować wszystkie pliki z rodzaju "data_win32.pak", które znajdziemy zawsze w głównym katalogu, do którego zainstalowaliśmy naszą grę. |
data_win32.pak data1_win32.pak data2_win32.pak data3_win32.pak data4_win32.pak data5_win32.pak |
W tych plikach znajdziemy modele 3D wszystkich przedmiotów oraz tekstury, które są nakładane na te modele. Po ich wypakowaniu, modele 3D broni znajdziemy w katalogu "bin_win32 / weapons", natomiast wszelkie inne przedmioty w katalogu "bin_win32 / character". Tekstury znajdziemy w katalogu "bin_win32 / textures / items" (bronie i dodatki do niej), a w katalogu "bin_win32 / textures / characters" (wszelkie inne przedmioty) |
"main_sectors.txt" |
Ten plik nie jest konieczny, lecz jeśli będziemy chieli dodać nasz nowy przedmiot do któregoś, ze schowków w konkretnym sektorze, to będziemy mogli to uczynić za pomocą tego pliku. Aby zdobyć ten plik należy wypakować "configs_win32.pak.crypt", który znajdziemy zawsze w głównym katalogu, do którego zainstalowaliśmy grę. Po jego wypakowaniu w katalogu "bin_win32" będziemy mieli nowy folder o nazwie "configs", a w nim nasz plik ""main_sectors.txt". Pełny i szczegółowy opis jak to należy wykonać, znajdziecie w tym poradniku w części piątej. |
"main_characters.txt" |
Ten plik również nie jest koniczny, lecz jeśli będziemy chcieli dodać nasz nowy przedmiot do inwentarza któregoś z najemników lub żeby przeciwnik mógł używać tej broni, to uczynimy to za pomocą tego pliku. Aby zdobyć ten plik należy wypakować "configs_win32.pak.crypt", który znajdziemy zawsze w głównym katalogu, do którego zainstalowaliśmy grę. Po jego wypakowaniu w katalogu "bin_win32" będziemy mieli nowy folder o nazwie "configs", a w nim nasz plik ""main_characters.txt". Pełny i szczegółowy opis jak to należy wykonać, znajdziecie w tym poradniku w części pierwszej i drugiej. |
II. Potrzebne programy
Do wdrożenia do gry nowej broni lub innych przedmiotów będziemy potrzebowali czterech programów.
1.) Gimp - jest to darmowa aplikacja do tworzenia i obróbki obrazów, fotografii itp. Będzie nam potrzebny do wdrożenia w odpowiedni plik, zdjęć naszych nowych przedmiotów w wymiarze 2D.
2.) DDS Plugin dla Gimp'a - wszystkie obrazy występujące w JA Back in Action są w formacie "DDS". Jeśli chcemy aby Gimp obsłużył te pliki, to musimy zainstalować specjalną do tego celu przygotowaną wtyczkę.
3.) Notepad++ - jest to znakomity darmowy program do edycji plików tekstowych. Oczywiście można się również posłużyć Windowsowskim Notatnikiem, lecz nie będzie miał on mnóstwa bardzo użytecznych i potrzebnych funkcji.
4.) Blender - jest to bardzo dobry, darmowy program do tworzenia i obróbki przeróżnych obiektów w wymiarze 3D.
Część I. Budowa plików
z obrazami przedmiotów w wymiarze 2D
I. Rodzaje obrazów
Wszystkie przedmioty (w tym i bronie) posiadają zdjęcia w dwóch rodzajach. Pierwszy rodzaj to małe ikony ("icons"), a drugi rodzaj to duże obrazy ("pictures"). Nie będę się tu dużo rozpisywał ponieważ poniższe zdjęcie na pewno wytłumaczy wszystko co jest czym.
Jest to bardzo ważne rozróżnienie, ponieważ w każdej strukturze parametrów wszystkich przedmiotów występują dwie wartości, mianowicie:
"Icon 0 0 0 0 0"
"Picture 0 0 0 0"
Proszę zobaczyć na struktury parametrów pokazane w tym poradniku oraz w tym poradniku, a zobaczycie, że te wartości są nierozłącznym elementem każdej struktury. Oczywiście tak jak to zostało pokazane na powyższym obrazku, wartość "icon" odpowiada za wyświetlanie się małych ikon, a wartość "picture" odpowiada za wyświetlanie się dużych obrazów.
Skoro już potrafimy rozróżniać rodzaje obrazów, to czas przyszedł teraz aby wytłumaczyć, w jaki sposób dany parametr odwołuje się do konkretnego przedmiotu. Na pierwszy ogień pójdzie wartość "icon".
II. Parametr "icon"
1.) Liczby - najpierw wytłumaczymy sobie co oznaczają liczby przy tym parametrze. W przypadku tej wartości, liczb jest pięć i są one oddzielne od siebie zwykłą spacją. Nie wolno używać tutaj przecinków.
Pierwsza liczba |
Jest to odwołanie do numeru pliku o nazwie "ui_equipment_icons_(numer pliku).dds". W tym pliku są przechowywane małe ikony wszystkich przedmiotów. Jeśli pierwszą liczbą będzie "0", to znaczyć to będzie, że plik, do którego się odwołuje będzie się nazywał "ui_equipment_icons_0.dds". Gdy np. pierwszą liczbą będzie "3", to oznaczać to będzie, że plik do którego się odwołuje będzie miał nazwę "ui_equipment_icons_3.dds" |
Druga i trzecia liczba |
Są to współrzędne "x" (szerokość) i "y" (wysokość), które oznaczają położenie lewego górnego rogu przestrzeni, w której ikonka danego przedmiotu znajduje się w pliku "ui_equipment_icons". Jeśli np. "x" i "y" (czyli odpowiednio: druga i trzecia liczba) wynoszą 100 i 100, to dana ikonka jest położona w przestrzeni, której górny lewy róg ma punkt początkowy tam, gdzie przecinają się linie puszczone z wcześniej wymienionych współrzędnych. Wiem, że może być to trochę skomplikowane ale z pewnością przez opis następnego punktu, wszystko stanie się bardziej zrozumiałe. |
Czwarta i piąta liczba |
Są to wymiary przestrzeni ["x" (szerokość) i "y" (wysokość)], w której znajduje się ikonka danego przedmiotu. Jeśli np. "x" i "y" (czyli odpowiednio: czwarta i piąta liczba wynoszą 100 i 100, to oznaczać to będzie, że dana przestrzeń ma wymiar 100 px na 100 px. Te wartości są bardzo ważne, ponieważ gra wyświetli wszystko, co w danej przestrzeni się znajduje. Na szczęście w przypadku tych liczb, ilość możliwych rozmiarów do wprowadzenia zamyka się w dwóch wersjach. Dla szerokich ikonek (długie bronie) wymiary wynoszą 112x40, natomiast dla wąskich ikonek (inne przedmioty) wymiary wynoszą 56x40. To tez może być trochę skomplikowane ale z pewnością przez opis następnego punktu, wszystko stanie się bardziej zrozumiałe. |
2.) Ikonki - jeśli tłumaczenie oznaczeń liczb przy parametrze "icon" w poprzednim punkcie było dla was zbyt skomplikowane, to z pewnością przez opis tego punktu wszystko stanie się zrozumiałe. Na początek otwórzmy jeden z plików, który zawiera w sobie ikonki przedmiotów. Będzie to ""ui_equipment_icons_0.dds".
Patrząc na powyższe zdjęcie trudno sobie wyobrazić jak gra może prawidłowo wybierać ikonki do pokazania w grze, ze stosu mnóstwa obrazów w jednym pliku. Otóż może, jeśli tylko poprawnie zdefiniujemy pięć liczb, o których pisałem w punkcie pierwszym. Nie będę się tutaj więcej rozpisywał, ponieważ z pewnością poniższe dwa zdjęcia wyjaśnia całą sytuację co, jak i gdzie. Pierwsze zdjęcie jest wykonane na prawidłowym przeźroczystym tle. Natomiast drugie zdjęcie jest wykonane na specjalnej podkładce umożliwiającej bardzo łatwe wdrażanie ikonek przedmiotów do takich plików. Oczywiście podkładkę tę można w każdej chwili usunąć i zapisać plik z przeźroczystym tłem, czyli takim jak na pierwszym zdjęciu.
Podkładka została oczywiście dołożona do paczki narzędzi przeznaczonych do modyfikowania gry JA Back in Action, którą możecie ściągnąć z naszego działu Download. Teraz najważniejsze jest pokazanie Wam w jaki sposób używać takiej szachownicy. Dla obeznanych z grafiką komputerową osób od razu mówię, że jest to typowa i prosta praca warstwach i myślę, że więcej im tłumaczyć nie trzeba będzie. Natomiast wszelkim osobom, które te kluczowe słowa nic nie mówią, zapraszam do zapoznania się z opisem punktu trzeciego.
3.) Korzystanie z szachownicy - na wstępie otwieramy program "Gimp" i z zakładki "Plik" wybieramy opcję "Otwórz". W nowo otwartym oknie szukamy naszego pliku z małą szachownicą i wdrażamy go do programu.
Następnie klikamy na zakładkę "Warstwa" i wybieramy z niej opcję "Nowa warstwa". W nowo otwartym oknie ustawiamy szerokość i wysokość na "1024x1024". Natomiast w zakładce "Typ wypełnienia warstwy" wybieramy opcję "Przeźroczysta". Na koniec klikamy na "OK".
Od tego momentu jesteśmy gotowi do wdrażania poszczególnych ikonek przedmiotów do takiego pliku. Proszę jeszcze zwrócić uwagę na czerwone prostokątne zaznaczenie na ostatnim zdjęciu. Są tam pokazane wszystkie warstwy z jakich aktualnie korzystamy. Pamiętajmy zawsze aby pracować na przeźroczystej warstwie, bo to na nią mają być wdrażane ikonki przedmiotów. W tym celu wystarczy raz kliknąć na taką warstwę i pojawi się niebieska otoczka wokół niej (taka jak na zdjęciu).
4.) Współrzędne przestrzeni - teraz nauczymy się określać współrzędne, które będą kierowały grę do konkretnego miejsca w takim pliku. Weźmiemy pod uwagę małą szachownicę ponieważ będzie na niej o wiele łatwiej wytłumaczyć jak to wszystko się oblicza.
Od razu napiszmy, że lewy górny róg całego takiego pliku ma współrzędne 0 i 0 oraz przyjmujemy, że plik, w który będziemy wdrażać nasze ikonki będzie miał numer "2". Każda kratka na szachownicy ma dokładnie taki sam rozmiar czyli "56x40". Jeśli będziemy chcieli wdrożyć szeroką ikonkę na dwie kratki, to wiadomo, że rozmiar takiej przestrzeni będzie wynosił 112x40". W takim razie dla ikonki wstawionej w całkowicie lewym rogu tego pliku, pełne współrzędne będą następujące:
Dla ikonki wąskiej zajmującej jedną kratkę będzie to: 2 0 0 56 40
Dla ikonki szerokiej zajmującej dwie kratki będzie to: 2 0 0 112 40
Skoro już wiemy, że każda kratka ma wymiar "56x40", to w bardzo prosty sposób będzie można obliczać współrzędne dla lewego górnego rogu każdej kratki znajdującej się na szachownicy. Jedyne co będzie trzeba zrobić to pomnożyć ilość kratek (występujących przed interesującą nas przestrzenią wszerz) przez 56 oraz pomnożyć ilość kratek (występujących nad interesującą nas przestrzenią wzdłuż) przez 40. W takim razie spróbujcie obliczyć współrzędne dla ikonek wstawionych w poniższe drugie zdjęcie. Prawidłowe wyniki są pod zdjęciem.
Idąc od góry współrzędne powinny być następujące:
Wyrzutnia rakiet - 2 504 0 112 40
Luneta celownicza - 2 56 40 56 40
Jabłko - 2 728 80 56 40
Bandaż - 2 336 120 56 40
Pistolet - 2 896 160 56 40
AK-74 - 2 448 200 112 40
Siekiera - 2 0 240 112 40
5.) Usuwanie szachownicy - po zakończonym wdrażaniu ikonek przedmiotów do takiego pliku, należy przed jego zapisaniem usunąć szachownicę. Wykonujemy to poprzez kliknięcie prawym klawiszem myszy na warstwie z szachownicą i z wyświetlonego menu wybieramy opcję "Usuń warstwę". Po takim zabiegu powinna nam zostać tylko warstwa, na której powinny być nasze wdrożone ikonki. Teraz zapisujemy nasz plik ale wykonujemy to poprzez opcję "Wyeksportuj" z zakładki "Plik", a następnie zapisujemy go w formacie "dds". Wystarczy w polu nazwy pliku wpisać ręcznie rozszerzenie "dds".
II. Parametr "picture"
1.) Liczby - najpierw wytłumaczymy sobie co oznaczają liczby przy tym parametrze. W przypadku tej wartości, liczb jest cztery ("picture 0 0 0 0") i są one oddzielne od siebie zwykłą spacją. Nie wolno używać tutaj przecinków.
Pierwsza liczba |
Jest to odwołanie do numeru pliku o nazwie "ui_equipment_pictures_(numer pliku).dds". W tym pliku są przechowywane duże obrazy wszystkich przedmiotów. Jeśli pierwszą liczbą będzie "0", to znaczyć to będzie, że plik, do którego się odwołuje będzie się nazywał "ui_equipment_pictures_0.dds". Gdy np. pierwszą liczbą będzie "3", to oznaczać to będzie, że plik do którego się odwołuje będzie miał nazwę "ui_equipment_pictures_3.dds" |
Druga i trzecia liczba |
Jest to numer kratki (w poziomie) oraz numer kratki (w pionie). Kratka, która znajdzie się w przecięciu tych dwóch liczb, oznacza początek przestrzeni, w której powinien znajdować się dany przedmiot. Wiem, że może być to trochę skomplikowane ale z pewnością przez opis następnego punktu, wszystko stanie się bardziej zrozumiałe. |
Czwarta liczba |
Przez tę liczbę oznaczamy, jak szeroka przestrzeń ma być brana przez grę do pokazania podczas rozgrywki. Używając do tego naszej szachownicy (ale w tym wypadku dużej), każda cyfra oznacza jedną kratkę. Tak więc gdy wpiszemy tutaj cyfrę "1" to przestrzeń będzie wzięta na szerokość jednej kratki, a gdy będzie to cyfra np. "2", to szerokość przestrzeni wziętej do pokazania w grze będzie wynosiła dwie kratki. To też może być trochę skomplikowane ale z pewnością przez opis następnego punktu, wszystko stanie się bardziej zrozumiałe. |
2.) Duże obrazy - jeśli tłumaczenie oznaczeń liczb przy parametrze "picture" w poprzednim punkcie było dla was zbyt skomplikowane, to z pewnością przez opis tego punktu wszystko stanie się zrozumiałe. Na początek otwórzmy jeden z plików, który zawiera w sobie duże obrazy przedmiotów. Będzie to "ui_equipment_picture_0.dds".
Patrząc na powyższe zdjęcie trudno sobie wyobrazić jak gra może prawidłowo wybierać duże obrazy przedmiotów do pokazania w grze, ze stosu mnóstwa dużych obrazów w jednym pliku. Otóż może, jeśli tylko poprawnie zdefiniujemy cztery liczby, o których pisałem w punkcie pierwszym. Niestety tutaj, w przypadku dużych obrazów, zostało to całkowicie inaczej skonstruowane aniżeli w przypadku małych ikonek. Tutaj wszystko opiera się na podaniu numeru kratki w poziomie, numeru kratki w pionie oraz szerokości danej przestrzeni. Nie będę się tutaj więcej rozpisywał, ponieważ z pewnością poniższe dwa zdjęcia wyjaśnia całą sytuację co, jak i gdzie. Trzeba tylko od razu zaznaczyć, że liczenie zaczynamy od "0", a nie od "1". Pierwsze zdjęcie jest wykonane na prawidłowym przeźroczystym tle. Natomiast drugie zdjęcie jest wykonane na specjalnej podkładce umożliwiającej bardzo łatwe wdrażanie dużych obrazów przedmiotów do takich plików. Oczywiście podkładkę tę można w każdej chwili usunąć i zapisać plik z przeźroczystym tłem, czyli takim jak na pierwszym zdjęciu.
3.) Korzystanie z szachownicy - w tym przypadku wykonuje się to tak samo, jak to było pokazane na przykładzie parametru "icon", z tym jednym wyjątkiem, że gdy będziemy tworzyć nową warstwę, to szerokość i wysokość ustawiamy na "960x960" i oczywiście do parametru "picture" używamy dużej szachownicy.
4.) Współrzędne przestrzeni - jeśli chodzi o prawidłowe określanie przestrzeni, w której ma się znajdować dany duży obrazek przedmiotu, to w przypadku parametru "picture" jest to o wiele łatwiejsze niż to było w parametrze "icon". Tutaj wystarczy odmierzyć ilość kratek w poziomie, następnie ilość kratek w pionie oraz podać szerokość w kratkach danej przestrzeni. Na pierwszym zdjęciu zostało to dokładnie pokazane jak to działa. W takim razie spróbujcie prawidłowo określić położenie obiektów na zdjęciu drugim zakładając, że plik, w którym one się znajdują ma numer 2 ("ui_equipment_pictures_2.dds"). Oczywiście pamiętajcie, że zaczynamy liczenie od "0", a nie od "1". Prawidłowe wyniki znajdują się pod zdjęciami.
Prawidłowe współrzędne powinny być następujące:
Pistolet - 2 3 0 2
TAR - 2 0 2 3
Luneta celownicza - 2 6 3 2
Celownik laserowy - 2 9 4 1
Wyrzutnia rakiet - 2 2 6 3
5.) Usuwanie szachownicy - wykonuje się to tak samo, jak to było pokazane na przykładzie parametru "icon". Zapisywanie pliku również wykonuje się tak samo.
Część II. Tworzenie nowego pliku
dla obrazów przedmiotów w wymiarze 2D
I. Ogólny zarys
We wcześniejszej części zostało to już wyjaśnione, że ikonki przedmiotów znajdują się w plikach "ui_equipment_icons_(numer pliku).dds", a duże obrazy w plikach "ui_equipment_pictures_(numer pliku).dds" ("bin_win32 / textures / interface"). Niestety wszystkie te pliki są już całkowicie zapełnione, dlatego dla naszych nowych broni i innych przedmiotów, miejsca już tam nie znajdziemy. Nie pozostaje nam nic innego jak stworzyć dla siebie takie pliki, tylko że nowe i całkowicie puste. W tym celu będziemy musieli dokonać zmian w pliku "interface.cui", o którym była już mowa we wprowadzeniu.
II. Tworzenie zmian
Otwórzmy plik "interface.cui.txt" i przejdźmy w nim na sam jego koniec. Jako ostatni wpis powinien widnieć:
- - 46
- !!python/object:cui_file.CUI_ui_resource {filename: ui_menu_addon.dds, id: 46,
ui_name: ui_menu_addon}
Jest to wpis numer "46". My będziemy kontynuować numerację wpisów i następnym będzie Nr 47. Skoro ostatni z plików mających w sobie duże obrazy przedmiotów wynosi "9" ("ui_equipment_pictures_9.dds"), to my stwórzmy dla siebie numer 10 (ui_equipment_pictures_10.dds"). Wykonamy to poprzez wpisanie następującego kodu.
- - 47
- !!python/object:cui_file.CUI_ui_resource {filename: ui_equipment_pictures_10.dds, id: 47,
ui_name: ui_equipment_pictures_10}
Dzięki takiemu zabiegowi będziemy mogli sobie stworzyć plik o nazwie "ui_equipment_pictures_10.dds" i wdrażać tam nowe obrazy przedmiotów. Na koniec trzeba wykonać to samo, tylko że dla ikonek, ponieważ każdy duży obraz ma zawsze swoją małą ikonkę. Skoro dla parametru "pictures" stworzyliśmy plik z numerem "10", to z takim samym numerem zrobimy plik dla parametru "icon". W tym celu wpisujemy kolejny wpis z następnym numerem identyfikacyjnym czyli "48".
- - 48
- !!python/object:cui_file.CUI_ui_resource {filename: ui_equipment_icons_10.dds, id: 48,
ui_name: ui_equipment_icons_10}
Dzięki takiemu zabiegowi będziemy mogli sobie stworzyć plik o nazwie "ui_equipment_icons_10.dds" i wdrażać tam małe ikonki przedmiotów. Jeśli będziemy potrzebować więcej takich plików, to nic nie stoi na przeszkodzie aby tworzyć kolejne takie wpisy, dzięki którym powiększymy sobie ilość wolnych plików do zapełnienia.
Po zakończeniu prac nie zapomnijmy zapisać zmian i z powrotem przekonwertować plik "interface.cui.txt" z rozszerzenia "txt" do "cui".
Część III. Tworzenie ikonek i obrazów
nowych przedmiotów
I. Ikonki
Podam tutaj tylko informacje, które będą niezbędne do prawidłowego wykonania takiej ikonki. Jeśli ktoś będzie miał z czymś problem, to bardzo proszę użyć wyszukiwarki Google, która znajdzie wam mnóstwo szczegółowych poradników i video tutoriali na temat poniżej wymienionych informacji.
Gdy znajdziemy odpowiednik obrazek przedmiotu w internecie, to oczywiście należy usunąć mu całe tło, tak aby było ono przeźroczyste. Tylko takie obrazki można wdrażać do plików opisanych w poprzedniej części.
Rozmiary przedmiotów nie powinny być większe niż rozmiary kratek w plikach, w których się znajdą. Jeśli damy większy rozmiar, to w grze takie obrazki będą wystawać poza ramy slotu, do którego zostały włożone i będzie to wyglądać bardzo nie estetycznie. Dla ikonek maksymalne rozmiary są takie same, jak rozmiary samych kratek, czyli (wymiary w pikselach):
Szeroka ikonka: 112x40
Wąska ikonka: 56x40
II. Duże obrazy
Co do dużych obrazów, to stosuje się takie same zasady jak w przypadku ikonek z wyjątkiem maksymalnych rozmiarów obrazów przedmiotów. Wynoszą one (wymiary w pikselach):
Bardzo szeroki obraz (trzy kratki): 288x96
Średnio szeroki obraz (dwie kratki): 192x96
Wąski obraz (jedna kratka): 96x96
Część IV. Tworzenie modeli 3D i tekstur do nich
I. Lokalizacja istniejących modeli 3D
Lokalizacja modeli 3D w grze została podzielona na dwie grupy. Jedna grupa zawiera bronie, a druga zawiera wszystkie inne przedmioty. Obydwie grupy zostały powrzucane do odrębnych folderów i ich lokalizacja jest następująca:
"bin_win32 / weapons" - w tym miejscu znajdują się modele 3D broni oraz dodatków do niej
"bin_win32 / character" - w tym miejscu znajdują się modele 3D wszystkich innych przedmiotów.
II. Format modeli 3D
Jedynym prawidłowym formatem dla takich modeli w grze Jagged Alliance Back in Action jest format "CRF". Aby móc przeglądać modele zawarte w takich plikach w programie "Blender", należy je najpierw wypakować. Po wypakowaniu format ich zmieni się z "crf" do "obj". Nazwa wypakowanego pliku będzie zawsze brzmiała "crf_dump.obj". Format "obj" jest standardowo obsługiwany przez Blender i można go łatwo w nim otwierać. Ale nie wykonujemy tego poprzez zwykłe otwórz, tylko z zakładki "File" wybieramy opcję "Import", a z niej opcję "Wavefront (.obj)".
III. Zapisywanie modeli do formatu CRF
Tutaj niestety już nie działa opcja przenieś i upuść, dzięki czemu w prosty sposób mielibyśmy od razu gotowy plik do wdrożenia w grę. Jeśli wykonamy nowy model lub zmodyfikujemy już istniejący, to aby zapisać go do formatu CRF, to należy wybrać z zakładki "File" opcję "Export", a zniej opcję "Compiled Resource File (.crf)". Lecz ażeby mieć taką opcję w programie Blender należy najpierw zainstalować odpowiednią dla niego wtyczkę. Instalacja tej wtyczki jest trochę skomplikowana, dlatego w następnym punkcie zostało pokazane jak to wykonać.
IV. Instalacja wtyczki CRF dla programu Blender
Wtyczka do programu Blender dla plików CRF jest w paczce z narzędziami do modyfikowania gry JA Back in Action i można ją ściągnąć z naszego działu Download. Wtyczka ma nazwę "io_scene_crf.zip".
Otwórzmy program Blender i z zakładki "File" wybierzmy opcję "User Preferences...". W nowo otwartym oknie klikamy na zakładkę "Addons". W niej, w lewej kolumnie zaznaczamy tylko zakładkę "Testing". Nastepnie klikamy na zakładkę na samym dole "Install Addon...". Otworzy nam się okno, w którym naszym zadaniem będzie zlokalizowanie naszej wtyczki "io_scene_crf.zip" i wdrożenie jej do programu.
Po tej czynności powinniśmy mieć wtyczkę zainstalowaną ale nie aktywowaną, dlatego aby to zrobić należy zaznaczyć kwadracik tuż obok symbolu dynamitu. Od tego momentu nasza wtyczka będzie gotowa do działania.
Na koniec zapiszmy nasze nowe ustawienia poprzez opcję "Save User Settings" z zakładki "File". Teraz sprawdźmy jeszcze czy na pewno uaktywniła się opcja zapisu do formatu "crf".
V. Wykonywanie nowych modeli 3D wraz z teksturami
1.) Czysty model 3D - to już jest niestety "wyższa szkoła jazdy" i ażeby posiąść taką umiejętność, to należy poświęcić temu tematowi naprawdę kilka albo i nawet mnóstwo długich godzin. Oczywiście nie musicie tworzyć całkowicie nowych modeli 3D przedmiotów, ponieważ możecie zmodyfikować już istniejące. Również nie musicie używać programu Blender do tego celu, lecz jest on chyba jedynym darmowym programem z zestawem niezbędnych wtyczek. Nie będę tutaj opisywał co i jak należy wykonać, ponieważ wszystko jest w pełni i szczegółowo opisane za pomocą poradników i video tutoriali w Internecie. Wystarczy poszukać w Google, Youtube lub w innych serwisach internetowych.
2.) Tekstury dla broni i dodatków do niej - samo wykonywanie takich tekstur, to sytuacja jest w sumie taka sama, jak w przypadku modeli 3D, czyli jest to już "wyższa szkoła jazdy". Tutaj nie tylko, że trzeba je stworzyć, to jeszcze trzeba je umiejętnie poskładać i zespolić z modelem 3D. Najpierw tworzymy model 3D i na jego podstawie wykonujemy dla niego tekstury. Same tekstury zapisujemy w pliku o rozszerzeniu DDS i wrzucamy je do katalogu "bin_win32 / textures / items". Teraz informację o pełnej nazwie pliku z teksturami wdrażamy do pliku, w którym znajduje się model 3D. Teraz jest pytanie, skąd gra wie, że powinna poszukać informacji o nazwie pliku z teksturami, w pliku z modelem 3D i próbować je znaleźć w katalogu "bin_win32 / textures / items". Otóż jest to zakodowane w głównym pliku EXE, za pomocą którego uruchamiamy grę i tego nie da się zmienić. Co do opisu, który by przedstawiał co i jak należy wykonać, aby stworzyć takie tekstury i powiązać je z modelem 3D, to również odsyłam do Internetu, ponieważ wszystko jest tam w pełni i szczegółowo opisane za pomocą poradników i video tutoriali. Wystarczy poszukać w Google, Youtube lub w innych serwisach internetowych.
3.) Tekstury dla odzieży ochronnej - jeśli chodzi o wykonywanie, to sytuacja jest w sumie taka sama, jak w przypadku modeli 3D, czyli jest to już "wyższa szkoła jazdy". Natomiast co do aspektu, jak to wszystko jest połączone, to tutaj sprawa jest prosta, ponieważ cała informacja siedzi w pliku "playerbodies.txt". Weźmy przykładowy kod z tego pliku, który będzie można odnieść do każdej innej tekstury odzieży ochronnej. Będzie to ostatni kod dla kamizelek z linijki około 1780.
Vest 23 m 413 "m_vest_02_dark_c" "m_vest_02_n" "m_vest_02_s"
Ostatnie trzy wartości czyli: "m_vest_02_dark_c", "m_vest_02_n", "m_vest_02_s", są nazwami plików, w których znajdują się tekstury dla podanego w tym kodzie, modelu 3D. Nie piszemy tutaj rozszerzenia pliku, tylko samą nazwę. Rozszerzenie i tak nie może być inne niż "dds". Pliki wstawiamy do katalogu "bin_win32 / textures / characters". Cała reszta informacji o tym zagadnieniu jest opisana w części piątej, w punkcie czwartym.
Pierwszy plik to główna tekstura. Drugi plik, niestety nie wiem do czego służy lub jaki aspekt danego przedmiotu prezentuje. Natomiast trzeci plik zawiera cień tekstury.
Część V. Tworzenie numeru identyfikacyjnego
dla nowego przedmiotu
I. Ogólny zarys
Każdy obiekt występujący w grze posiada numer identyfikacyjny, przez który gra wie, że dany przedmiot w ogóle istnieje. Jeśli będziemy chcieli dodawać nowe obiekty, to przede wszystkim musimy dać im konkretne numery identyfikacyjne, aby gra wiedziała o ich istnieniu i mogła je pobierać i odtwarzać podczas rozgrywki. Niestety nie ma jednej wspólnej procedury dla tworzenia takiego numeru, dlatego dla każdego rodzaju obiektów, tworzenie numeru identyfikacyjnego wygląda inaczej.
II. Broń i dodatki do niej
1.) Plik "main.vtp" - każdy trójwymiarowy model broni i dodatki do niej mają swój numer identyfikacyjny. Wpisuje się go zawsze w strukturze parametrów danej broni przy wartości "ResourceId" w pliku "weapons.txt". Spis wszystkich numerów identyfikacyjnych trójwymiarowych modeli broni wraz z odpowiadającymi im nazwami plików, do których się odnoszą, znajdują się w pliku "main.vtp" (znajduje się on bezpośrednio w folderze "bin_win32"). Aby móc go edytować, musimy go najpierw wypakować. Będzie to chyba najdłuższy plik tekstowy ze wszystkich występujących. Będzie miał ponad 135 tyś. linijek, więc nie próbujcie niczego tam szukać ręcznie, tylko bardzo proszę korzystać z opcji "Szukaj" z zakładki o tak samo brzmiącej nazwie "Szukaj". Wolne numery identyfikacyjne zaczynają się dopiero od numeru "7105".
Sprawdźmy jak wygląda typowy kod, dzięki któremu gra wie, że dany trójwymiarowy model konkretnej broni istnieje i może go pobrać i odtworzyć w grze. Będzie to pierwsza broń z pliku "weapons.txt" czyli AK-47. Broń ta ma w strukturze parametrów, przy wartości "ResourceId" numer 271.
- !!python/object:vtp_file.VTP_item
constant_list: []
id: 271
id_name: ak_47_01
unknown1: null
unknown2: null
unknown_const: 256
variable_list:
- !!python/object:vtp_file.VTP_variable
name: default
path_list: [weapons/ak_47_01.crf]
unknown: 2
- !!python/object:vtp_file.VTP_variable
name: shadow
path_list: [weapons/shadowmesh_assaultrifle_01.crf]
unknown: 2
linijka 3 - proszę spojrzeć na linijkę trzecią powyższego kodu, jest tam numer identyfikacyjny danego modelu. To ten właśnie numer wpisuje się przy wartości "ResourceId" w strukturze parametrów w pliku "weapons.txt".
linijka 4 - w czwartej linijce jest nazwa pliku, w którym dany model 3D się znajduje. W tej linijce wpisujemy samą nazwę pliku bez rozszerzenia.
linijka 11 - w jedenastej linijce jest pełna nazwa pliku wraz z rozszerzeniem i dodatkowo zapisana jest tutaj struktura folderów, w której znajduje się nasz plik, w tym wypadku "[weapons/ak_47_01.crf]". Nie trzeba pisać pełnej ścieżki typu "bin_win32 / weapons".
linijka 15 - w piętnastej linijce jest pełna nazwa pliku wraz z rozszerzeniem i od razu razem ze strukturą folderów, w której dany plik się znajduje ale tym razem plik ten odpowiada za cień danego modelu. Na szczęście nie musimy tworzyć cienia dla naszej nowej broni, ponieważ twórcy stworzyli wzorce dla każdego rodzaju broni. Wystarczy tylko wybrać odpowiedni i wpisać jego nazwę w tej linijce. Tylko bronie muszą mieć cień, inne przedmioty już nie. Wzory cieni wraz z odpowiadającymi im nazwami plików do wpisania w linijce 15 są następujące:
CIENIE DLA MODELI 3D |
---|
Nazwa pliku |
Rodzaj broni |
Kształt cienia |
knife_shadowmesh_01.crf |
Broń biała | |
handgun_shadowmesh_01.crf |
Pistolety | |
shadowmesh_handgun_01.crf |
Pistolety | |
shadowmesh_submachinegun_01.crf |
Pistolety maszynowe | |
shadowmesh_assaultrifle_02.crf |
Karabiny bojowe | |
shadowmesh_assaultrifle_01.crf |
Karabiny bojowe | |
assault_rifle_shadowmesh_01.crf |
Karabiny bojowe | |
shadowmesh_sniperrifle_01.crf |
Karabiny snajperskie | |
shadowmesh_machinegun_01.crf |
LKM | |
shadowmesh_shotgun_01.crf |
Strzelby |
Jeśli stworzyliśmy nowy model 3D jakiejś broni i zapisaliśmy ją do odpowiedniego pliku, to powinniśmy jej przypisać numer identyfikacyjny razem ze ścieżką folderów, w którym się znajduje. Aby to wykonać przejdźmy na sam koniec pliku "main.vtp" i wklejmy powyższy cały kod. Dzięki temu będziemy mieli gotowy wzór, który teraz będziemy musieli tylko dostosować dla naszych potrzeb.
Załóżmy, że stworzyliśmy nowy trójwymiarowy model broni snajperskiej i zapisaliśmy go do pliku o nazwie "nowa_bron_01.crf" i wrzuciliśmy go do folderu "bin_win32 / weapons". Jako numer identyfikacyjny wpisujemy pierwszy wolny czyli "7105". W takim wypadku kod dla naszego nowego numeru identyfikacyjnego dla naszej nowej broni wyglądał by następująco.
- !!python/object:vtp_file.VTP_item
constant_list: []
id: 7105
id_name: nowa_bron_01
unknown1: null
unknown2: null
unknown_const: 256
variable_list:
- !!python/object:vtp_file.VTP_variable
name: default
path_list: [weapons/nowa_bron_01.crf]
unknown: 2
- !!python/object:vtp_file.VTP_variable
name: shadow
path_list: [weapons/shadowmesh_sniperrifle_01.crf]
unknown: 2
Proszę zauważyć, że jedyne co musieliśmy zmienić, to te cztery opisywane wcześniej linijki czyli: 3, 4 ,11, 15. Jeśli będziemy chcieli dodać więcej nowych broni, to wystarczy skopiować cały powyższy kod, tyle razy ile nam potrzeba, a następnie powprowadzać w nm odpowiednie zmiany.
Przy niektórych broniach możecie spotkać dodatkowy kod, który jest oparty o nazwę "upgradeable". Jeśli tak będzie, to znaczy, że w przypadku takiej broni, gra używa dwóch modeli 3D. Pierwszy model jest używany tylko wtedy, gdy do danej broni nie ma dołączonego żadnego dodatku i jest to zawsze model wskazany w linijce 11 danego kodu. Z kolei drugi model jest używany tylko wtedy, gdy do broni został dołączony jakiś dodatek. Wtedy gra pobiera model 3D wskazany w tym dodatkowym kodzie.
- !!python/object:vtp_file.VTP_variable
name: upgradable
path_list: [weapons/colt_m16a4_02.crf]
unknown: 2
Jeśli nie do końca zrozumieliście o co chodzi, to z pewnością dwa poniższe zdjęcia rozjaśnią całą sytuację co, jak i gdzie. Pierwsze zdjęcie jest z modelu 3D, który jest w skazany w linijce 11, a drugie zdjęcie przedstawia model 3D wskazany w dodatkowym kodzie. Oczywiście przy tworzeniu nowych modeli 3D nie musicie być aż tak dokładni, aby każda broń miał dwa takie modele. W zupełności wystarczy jeden, ten sam model dla obydwu przypadków. No chyba, że ktoś naprawdę jest skrupulatny i dokładny i chce mieć broń jak najbardziej dopracowaną pod względem wyglądu i realizmu
2.) Plik "weapons.txt" - w tym pliku wpisujemy w strukturze parametrów danej broni, parametr "ResourceID", którego numer kieruje nas do odpowiedniego kodu w pliku "main.vtp, z którego to dopiero możemy odczytać wszelkie wartości dotyczące modeli 3D danej broni, nazw ich plików oraz gdzie się znajdują. Jednak w pliku "weapons.txt", struktura parametrów danego przedmiotu posiada jeszcze jeden numer identyfikacyjny, przez który jest identyfikowana tylko w pliku "weapons.txt". Ten numer z reguły jest podany w drugiej linijce każdego kodu. Zobaczmy na przykładową strukturę parametrów. Będzie to pierwsza broń z tego pliku czyli AK-47.
// AK47
Weapon (1, Rifle)
{
...
}
Proszę zauważyć, że w drugiej linijce powyższego kodu, w nawiasie jest liczba "1". To jest właśnie ten numer identyfikacyjny, który jest używany do rozróżnienia obiektów w pliku "weapons.txt". Jeśli będziemy dodawać nowe przedmioty w tym pliku, to musimy dać im nowe numery identyfikacyjne. Teraz bardzo ważna uwaga, aby wszystko było prawidłowo wykonane, to musimy użyć liczb z zakresu od 7001 do 7999. Taki zakres dali nam twórcy gry i w przypadku wpisania liczby z innego zakresu, dany przedmiot po prostu będzie nieaktywny. W takim razie gdy stworzymy sobie np. nową broń w tym pliku, to początek struktury parametrów takiej broni powinien wyglądać następująco (jako numer identyfikacyjny wzięliśmy pierwszy wolny czyli 7001):
// Nowa Broń
Weapon (7001, Rifle)
{
...
}
III. Odgłosy wystrzałów broni
Numery identyfikacyjne dla odgłosów wystrzałów broni, też tworzy się w pliku "main.vtp", natomiast numer taki wstawia się w strukturze parametrów danej broni przy wartości "ShotEffectId". Spis wszystkich numerów identyfikacyjnych odgłosów wystrzałów broni wraz z odpowiadającymi im nazwami plików, do których się odnoszą, znajdują się w pliku "main.vtp" (znajduje się on bezpośrednio w folderze "bin_win32"). Aby móc go edytować, musimy go najpierw wypakować. Będzie to chyba najdłuższy plik tekstowy ze wszystkich występujących. Będzie miał ponad 135 tyś. linijek, więc nie próbujcie niczego tam szukać ręcznie, tylko bardzo proszę korzystać z opcji "Szukaj" z zakładki o tak samo brzmiącej nazwie "Szukaj". Wolne numery identyfikacyjne zaczynają się dopiero od numeru "7105".
Sprawdźmy jak wygląda typowy kod, dzięki któremu gra wie, że dany odgłos wystrzału broni razem z serią istnieje i może go pobrać i odtworzyć w grze. Będzie to odgłos pierwszej broni z pliku "weapons.txt" czyli AK-47. Broń ta ma w strukturze parametrów, przy wartości "ShotEffectId" numer 340.
- !!python/object:vtp_file.VTP_item
constant_list: []
id: 340
id_name: id_name: shot_ak_47
unknown1: null
unknown2: null
unknown_const: 256
variable_list:
- !!python/object:vtp_file.VTP_variable
name: default
path_list: [effects/shot_single_ak_47.fxt]
unknown: 2
- !!python/object:vtp_file.VTP_variable
name: burst
path_list: [effects/shot_burst_ak_47.fxt]
unknown: 2
linijka 3 - proszę spojrzeć na linijkę trzecią powyższego kodu, jest tam numer identyfikacyjny danego odgłosu wystrzału broni. To ten właśnie numer wpisuje się w parametrze "ShotEffectId".
linijka 4 - w czwartej linijce jest nazwa identyfikacyjna danego odgłosu. W tej linijce wpisujemy samą ogólną bez rozszerzenia.
linijka 11 - w jedenastej linijce trzeba wpisać pełną nazwę pliku, która będzie służyć odgłosowi wystrzału pojedynczego ale musimy tym razem dodać rozszerzenie "fxt". Prawdopodobnie jest to oznaczenie formatu wav, w którym plik dźwiękowy musi zostać zapisany. Zapisaną strukturę folderów nie zmieniamy, pozostawiamy ją bez zmian.
linijka 14 - w czternastej linijce trzeba wpisać pełną nazwę pliku, która będzie służyć odgłosowi wystrzału serii ale musimy tym razem dodać rozszerzenie "fxt". Prawdopodobnie jest to oznaczenie formatu wav, w którym plik dźwiękowy musi zostać zapisany. Zapisaną strukturę folderów nie zmieniamy, pozostawiamy ją bez zmian.
Jeśli stworzyliśmy nowy odgłos wystrzału pojedynczego i zapisaliśmy go do odpowiedniego pliku, to powinniśmy mu przypisać numer identyfikacyjny. Aby to wykonać przejdźmy na sam koniec pliku "main.vtp" i wklejmy powyższy cały kod. Dzięki temu będziemy mieli gotowy wzór, który teraz będziemy musieli tylko dostosować dla naszych potrzeb.
Załóżmy, że stworzyliśmy nowy wystrzał pojedynczy i dla serii o nazwach: "pojedynczy_wystrzal.wav" oraz "wystrzal_dla_serii.wav". Jako numer identyfikacyjny wpisujemy pierwszy wolny czyli "7105". W takim wypadku kod dla naszych nowych odgłosów wyglądał by następująco.
- !!python/object:vtp_file.VTP_item
constant_list: []
id: 7105
id_name: id_name: nowy_wystrzal
unknown1: null
unknown2: null
unknown_const: 256
variable_list:
- !!python/object:vtp_file.VTP_variable
name: default
path_list: [effects/pojedynczy_wystrzal.fxt]
unknown: 2
- !!python/object:vtp_file.VTP_variable
name: burst
path_list: [effects/wystrzal_dla_serii.fxt]
unknown: 2
Proszę zauważyć, że jedyne co musieliśmy zmienić, to te cztery opisywane wcześniej linijki czyli: 3, 4 ,11, 14. Jeśli będziemy chcieli dodać więcej odgłosów, to wystarczy skopiować cały powyższy kod, tyle razy ile nam potrzeba, a następnie powprowadzać w nim odpowiednie zmiany.
IV. Odzież ochronna
1.) Plik "playerbodies.txt" - tworzenie numeru identyfikacyjnego dla wszelkiego rodzaju odzieży ochronnej wykonuje się w pliku "playerbodies.txt", o którym już była mowa we wprowadzeniu. W przypadku tego typu obiektów, tworzenie numeru wykonuje się całkowicie inaczej. Pokażemy to na przykładzie dodania nowego rodzaju kamizelki i będzie można ten przykład w całości odnieść do pozostałych odzieży ochronnych. Otwórzmy plik "playerbodies.txt" i przejdźmy do linijki około 1780. Powinien tam być kod ostatniej występującej kamizelki:
Vest 23 m 413 "m_vest_02_dark_c" "m_vest_02_n" "m_vest_02_s"
Numer identyfikacyjny tej kamizelki jest w postaci nazwy "Vest 23". Teraz jeśli chcemy dodać nową kamizelkę, to kopiujemy cały ten kod i wklejamy dwa razy tuż pod nim. Dwa razy, ponieważ jeśli tworzymy jakąś odzież ochronną, to twórzmy ją od razu dla mężczyzn i kobiet. Literka "m" oznacza mężczyznę, a literka "f" oznacza kobietę. Z kolei liczba "413" oznacza model trójwymiarowej kamizelki, na którą określone tekstury czyli: "m_vest_02_dark_c", "m_vest_02_n", "m_vest_02_s" zostaną nałożone. Wszystkie rodzaje modeli trójwymiarowych kamizelek są również w pliku "playerbodies.txt" na samym początku tego pliku. Wyszukuje się je poprzez nazwę "Resource". Skoro tutaj jest liczba 413, to szukajmy nazwy "Resource 413". Modele te, też występują oddzielnie dla mężczyzn i kobiet (rozróżnienie też poprzez literki "m" i "f"). Gra automatycznie pobiera ten model, który powinna. Jeśli dana osoba jest kobietą, to gra będzie potrafiła to wychwycić i pobierze kamizelkę dla kobiety, a nie dla mężczyzny.
Załóżmy, że tworzymy standardową kamizelkę. W takim razie weźmiemy model trójwymiarowej kamizelki w postaci "Resource 400" dla mężczyzn oraz "Resource 450" dla kobiet. Jako numer identyfikacyjny weźmiemy pierwszy wolny czyli "Vest 24". W takim razie nasze dwa kody będą wyglądały następująco:
Vest 24 m 400 "m_vest_02_dark_c" "m_vest_02_n" "m_vest_02_s"
Vest 24 f 450 "m_vest_02_dark_c" "m_vest_02_n" "m_vest_02_s"
Czyli nasz nowy numer identyfikacyjny w postaci konkretnej nazwy jest następujący: "Vest 24". Teraz pewnie wielu z Was zadaje sobie pytanie, gdzie się wdraża taki numer.
2.) Plik "clothings.txt" - otóż wpisuje się go w strukturze parametrów w pliku "clothing.txt" Zobaczmy na przykładową strukturę parametrów kamizelki w tym pliku.
// Guardian Vest
Clothing (4002, Vest 2)
{
Armor 24
Weight 4800
Price 4800
Icon 1 112 640 56 40
Picture 5 0 2 2
Deliverable
}
W drugiej linijce kodu w nawiasie, jest numer identyfikacyjny w postaci "Vest 2". To tam wpisujemy nasz nowy numer identyfikacyjny w postaci "Vest 24". Dodatkowo musimy również zmienić numer identyfikacyjny, którym posługuje się sam plik "clothing.txt". Ten numer to pierwsza liczba z drugiej linijki kodu czyli: "4002". Skoro tworzymy kamizelki, to nasz nowy tutaj numer musi być z zakresu od 4000 do 4999. Wybieramy pierwszy wolny numer czyli 4016. Teraz kopiujemy i wklejamy cały powyższy kod, aby mieć gotową strukturę parametrów dla naszej nowej kamizelki i zmieniamy potrzebne wartości. Nasz kod po opisanych tutaj zmianach powinien wyglądać następująco.
// Guardian Vest
Clothing (4016, Vest 24)
{
Armor 24
Weight 4800
Price 4800
Icon 1 112 640 56 40
Picture 5 0 2 2
Deliverable
}
Na koniec wystarczy pozmieniać statystyki opierając się na tym poradniku. Jeśli chodzi o zakres numerów identyfikacyjnych dla reszty odzieży ochronnej, to są one wypisane na samym początku pliku "clothing.txt". Jeśli jednak byście ich nie znaleźli, to zakresy ich są podane w poniższej tabelce. Pamiętajcie, żeby zawsze wyszukać pierwszy wolny numer i następne, ponieważ juz istniejąca odzież ochronna korzysta z tych samych zakresów numerów.
ZAKRESY NUMERÓW IDENTYFIKACYJNYCH |
---|
Nazwa angielska |
Rodzaj odzieży |
Zakres numerów |
Cap |
Nakrycia głowy |
1000 do 1999 |
Torso |
Torsy |
2000 do 2999 |
legs |
Nogi |
3000 do 3999 |
Vest |
Kamizelki |
4000 do 4999 |
Feet |
Stopy |
5000 do 5999 |
Attachments |
Dodatki do broni |
6000 do 6999 |
3.) Powiązanie pomiędzy plikami z punktu 1 i 2 - na koniec odwróćmy sytuację i sprawdźmy, co by oznaczał w pliku "playerbodies.txt", numer identyfikacyjny w postaci nazwy "Vest 24", wpisany w strukturze parametrów w pliku "clothings.txt".
Skoro w strukturze parametrów jakiegoś przedmiotu w pliku "clothings.txt" jest nazwa "Vest 24", to odszukajmy linijkę z tą nazwą w pliku "playerbodies.txt". Jeśli ją znaleźliśmy to cały kod powinien wyglądać następująco:
Vest 24 m 400 "m_vest_02_dark_c" "m_vest_02_n" "m_vest_02_s"
Vest 24 f 450 "m_vest_02_dark_c" "m_vest_02_n" "m_vest_02_s"
Po odszukaniu kodu od razu możemy go rozszyfrować. Są dwa kody dla mężczyzny i kobiety (literka "m" i "f". Dla mężczyzny został przypisany model 3D o numerze "400", a dla kobiety o numerze "450". Aby je odszukać, poznać pełną nazwę pliku, w którym się znajdują i np odtworzyć w programie Blender i sprawdzić jak wyglądają, należy w tym samym pliku "playerbodies.txt" odszukać wartości "Resource 400" oraz "Resource 450". Ostatnią informacją są trzy rodzaje tekstur, które będą nałożone na dany model 3D, gdy tylko taki model zostanie użyty w grze.
Powyższy opis można stosować do każdej odzieży ochronnej w pliku "clothings.txt", ponieważ każda taka nazwa jak np. "Vest 24", kieruje nas do odpowiedniego kodu w pliku "playerbodies.txt".
V. Pozostałe przedmioty
Przez pozostałe przedmioty należy rozumieć: amunicję, medykamenty, narzędzia, materiały wybuchowe oraz przedmioty kolekcjonerskie i spożywcze. Wszystkie tutaj wymienione rodzaje przedmiotów nie posiadają modeli 3D, tylko zwykłe obrazki w wymiarze 2D, a co za tym idzie, tworzenie nowych takich obiektów oraz związanych z tą czynnością numerów identyfikacyjnych, jest bardzo prosta. Opis zostanie wykonany na przykładzie amunicji i przykład ten będzie można w całości podpiąć pod pozostałe przedmioty.
Zobaczmy jak wygląda taki przykładowy kod. Będzie to kod dla pierwszej amunicji z listy w pliku "ammunition.txt" czyli .357 Magnum. Jej numer identyfikacujny to "900"
// 357cal
Ammunition (900)
{
...
}
Spójrzmy na drugą linijkę powyższego kodu jest tam w nawiasie, jej numer identyfikacyjny w postaci liczby "900". Jeśli będziemy tworzyć nową amunicję, to wystarczy skopiować całą strukturę parametrów i wpisać nowy numer identyfikacyjny. Akurat w przypadku amunicji jest to numer "914". W takim razie nasza nowa amunicja miała by następujący kod:
// Nowa Amunicja
Ammunition (914)
{
...
}
Tak samo postępujemy z każdym innym przedmiotem, oczywiście w odpowiednim dla niego pliku. Poniżej jest zakres liczb, których można używać dla konkretnych nowych przedmiotów. Pamiętajmy aby zawsze znaleźć pierwszy wolny numer, ponieważ już istniejące przedmioty zawarte w tych plikach również używają tych zakresów liczb.
ZAKRESY NUMERÓW IDENTYFIKACYJNYCH |
---|
Nazwa pliku |
Rodzaj przedmiotów |
Zakres numerów |
items.txt |
Medykamenty, narzędzia, materiały wybuchowe oraz klucze |
100 do 499 |
consumables.txt |
Przedmioty spożywcze |
700 do 799 |
collectibles.txt |
Przedmioty kolekcjonerskie |
800 do 899 |
ammunition.txt |
Amunicja |
900 do 999 |
Niestety jak to wszędzie bywa, tak i tutaj jest jeden mały wyjątek, chodzi o amunicję. Ona posiada podwójny numer identyfikacyjny. Pierwszy, to ten, który został opisany powyżej, natomiast drugi numer stosuje się do identyfikacji rodzaju (kalibru) danej amunicji. Ten drugi numer wstawia się do struktury parametrów broni, w pliku "weapons.txt" przy parametrze "ammunition". Wartość ta odpowiada za to, z jakiej amunicji będzie strzelała dana broń. Podstawowe już istniejące rodzaje amunicji są następujące (kolejność zgodna z tym poradnikiem):
- 120cal,
- 9_mm,
- 38cal,
- 45cal,
- 5_45mm,
- 5_56mm,
- 7_62mm,
- 4_7mm,
- 5_70mm,
- 50cal,
- Grenade,
- Rocket.
Jako przykładowy kod podam ten, który jest pierwszy na liście w pliku "ammunition.txt" czyli .357 Magnum.
// 357cal
Ammunition (900)
{
Price 250
BoxSize 9
Weight 11
Ammunition 357cal
ArmorFactor 0.0
Icon 0 504 400 56 40
Picture 1 1 5 1
Deliverable
}
Proszę spojrzeć na linijkę nr 7 powyższego kodu. Jest tam parametr "ammunition", który podaje nazwę, którą trzeba wpisać w takim samym parametrze, w strukturze parametrów broni, w pliku "weapons.txt". Proszę spojrzeć na przykładową taką strukturę w tym poradniku w części pierwszej. Jeśli wstawimy tam, przy parametrze "ammunition" wartość "357cal", to taka broń będzie mogła strzelać i być załadowywana tylko i wyłącznie amunicją "357cal". Co z kolei będzie oznaczało, że numer identyfikacyjny takiej amunicji, w pliku "ammunition.txt", to 900 i wszelkie tam ustawione parametry będą właśnie dotyczyć tej, a nie innej amunicji czyli w naszym wypadku amunicji "357cal".
Teraz jeśli chcemy stworzyć całkowicie nową amunicję, to nie tylko pierwszy numer identyfikacyjny zmieniamy (który jest w drugiej linijce kodu), ale również i numer identyfikacyjny w postaci nazwy kalibru wpisywany w parametrze ammunition (linijka 7). Tutaj również nie możemy sobie wpisywać co chcemy. Jeśli wszystko ma być poprawnie wykonane, to musimy wybrać nazwy z następującego zakresu:
Cst0,
Cst1,
Cst2,
Cst3,
Cst...,
Cst28,
Cst29,
Cst30,
To właśnie jedną z takich nazw musimy wpisać w parametrze "ammunition". W takim razie cały kod dla naszej nowej amunicji powinien wyglądać następująco - jako pierwszy numer identyfikacyjny wpisaliśmy pierwszy wolny czyli 914, a drugi numer w postaci nazwy, wpisaliśmy też pierwszy wolny, czyli Cst0:
// Nowa Amunicja
Ammunition (914)
{
Price 250
BoxSize 9
Weight 11
Ammunition Cst0
ArmorFactor 0.0
Icon 0 504 400 56 40
Picture 1 1 5 1
Deliverable
}
Teraz jeśli chcemy, aby jakaś broń strzelała i mogła być załadowywana tylko taką amunicją, to w strukturze parametrów takiej broni, w pliku "weapons.txt", przy wartości "ammunition", należy wpisać "Cst0.
Część VI. Wykonywanie nowych broni i innych przedmiotów
na bazie już istniejących modeli 3D
I. Ogólny zarys
Zapewne większość z Was, jak już zdecyduje się na wdrożenie nowego obiektu do gry, to jako modelu 3D dla nowego przedmiotu, użyje jednego z już istniejących. Tak samo można postąpić z teksturami oraz odgłosami wytwarzanymi przez określone przedmioty. Jest to najszybszy i najprostszy sposób na dodawanie nowych broni i innych przedmiotów. Cała procedura została opisana w następnym punkcie.
II. Procedura tworzenia
1.) Małe ikonki i duże obrazy - najpierw zróbmy sobie nowe pliki, w które będziemy wdrażać małe ikonki oraz duże obrazy nowych przedmiotów. Wykonujemy to zgodnie z opisem pokazanym w części drugiej tego poradnika.
Następnie wdrażamy wcześniej przygotowane małe ikonki i duże obrazy do powyżej opisanych plików. Wykonujemy to zgodnie z opisem pokazanym w części pierwszej oraz części trzeciej tego poradnika.
Jeśli jednak chcemy skorzystać z już istniejących ikon i obrazów przedmiotów, to jedyne co musimy zrobić, to znaleźć interesującą nas grafikę przedmiotu i spisać jej parametry, czyli "icon" i "picture". Następnie wystarczy je wkleić do struktury parametrów naszego nowego przedmiotu i gotowe.
2.) Struktura parametrów - teraz powinniśmy stworzyć nową strukturę parametrów dla naszego przedmiotu. Wykonujemy to w odpowiednim pliku. Jeśli będą to bronie i dodatki do nich, to tworzymy tę strukturę w pliku "weapons.txt". Jeśli będzie to amunicja, to tworzymy strukturę parametrów w pliku "ammunitions.txt". Natomiast dla wszelkich pozostałych przedmiotów, tworzymy strukturę parametrów w odpowiednim pliku, ze względu na rodzaj wdrażanego obiektu: "clothings.txt" "collectibles.txt" "consumables.txt" "items.txt".
3.) Numer identyfikacyjny - przy okazji tworzenia struktury parametrów nie zapomnijmy stworzyć dla każdego nowego przedmiotu, nowego numeru identyfikacyjnego. Wykonujemy to zgodnie z opisem pokazanym w następujących miejscach tego poradnika:
Część piąta, punkt drugi, podpunkt drugi - bronie oraz dodatki do nich.
Część piąta, punkt czwarty, podpunkt pierwszy, drugi i trzeci - wszelkiego rodzaju odzież ochronna.
Część piąta, punkt piąty - pozostałe przedmioty (amunicja, medykamenty, narzędzia oraz materiały wybuchowe).
4.) Modele 3D i odgłosy - na koniec trzeba przyporządkować naszym nowym przedmiotom odpowiedni rodzaj modelu 3D oraz jeśli jest to potrzebne, również odpowiednie odgłosy. Jeśli chodzi o bronie oraz dodatek do nich w postaci tłumika, to trzeba im przyporządkować odpowiedni model 3D i odgłos. Listę wszystkich już istniejących modeli 3D oraz odgłosów znajdują się w tym poradniku w opisie parametru, do którego mają zastosowanie czyli:
Model 3D - ResourceID.
Odgłosy - ShotEffectId.
Odzież ochronna wymaga tylko podania odpowiedniego numeru, w postaci nazwy z numerem, z pliku "playerbodies.txt". Opis tego zagadnienia został zawarty w części piatej, punkcie czwartym, podpunkcie pierwszym i trzecim tego poradnika oraz w opisie parametru "clothing" w części pierwszej w tym poradniku.
Pozostałe przedmioty czyli amunicja, medykamenty, narzędzia oraz materiały wybuchowe nie posiadają modeli 3D. Występują w grze w postaci tylko małych ikonek i dużych obrazów (zob. Punkt 1).
Część VII. Przenoszenie broni i przedmiotów
z innych części JA Back in Action
I. Ogólny zarys
Już powstało kilka dodatków typu DLC oraz JA Crossfire (i pewnie następne są w planach), w którym występują nowe bronie i przedmioty, nie występujące w podstawowej wersji JA Back in Action. Sytuacja ta powinna być znana fanom JA2, gdzie w dodatkach typu JA2 UB oraz JA2 Wildfire były nowe bronie i przedmioty, których nie było w podstawowej wersji JA2. Zapewne wielu z Was chciało by mieć bronie i ewentualnie inne przedmioty, ze wszystkich części oraz dodatków DLC dla JA Back in Action, w jednej grze, którą aktualnie posiadacie. Jak najbardziej jest to możliwe, lecz wymaga to trochę dłuższego czasu na realizację.
II. Aktywacja "uśpionych" broni i przedmiotów
Najpierw należy sprawdzić, czy w najnowszej wersji gry, którą posiadamy, istnieją już bronie i przedmioty z innych części. Nie wiem jaka dokładnie jest sytuacja ale może być tak, że podstawowa wersja czyli JA Back in Action, zawiera w sobie wszystkie bronie i przedmioty ze wszystkich części, lecz zostały one zdezaktywowane dla niej i aktywowane dopiero w konkretnych częściach i dodatkach. Jak to sprawdzić, to podam na przykładzie broni i przykład ten będzie można stosować do każdej innej broni i wszelkich pozostałych przedmiotów.
Załóżmy, że zauważyliśmy jakąś broń w JA Crossfire, której nie było w JA Back in Action. W takiej sytuacji należy zapisać sobie nazwę tej broni i spróbować poszukać ją w pliku "weapons.txt" z gry JA Back in Action. Jeśli ją tam znajdziecie, to oznaczać to będzie, że ona cały czas istniała w JA Back in Action lecz została zdezaktywowana i aktywowana dopiero w JA Crossfire. Teraz pewnie wielu z Was zadaje sobie pytanie jak mamy rozumieć aktywację i dezaktywację przedmiotów w JA Back in Action. Otóż aktywacja polega na tym, że dany obiekt ma możliwość wystąpienia w grze poprzez jeden lub więcej sposobów na maksymalnie pięć możliwych, mianowicie:
Pierwszy sposób - dodanie danej broni do początkowego inwentarza najemnika z AIM. Wykonujemy to poprzez wpisanie odpowiedniej wartości w parametrze "AddItem" w pliku "main_characters.txt". Pełny i szczegółowy opis tego zagadnienia został przedstawiony w tym poradniku w części pierwszej.
Drugi sposób - dodanie danego przedmiotu do sklepu internetowego w laptopie, poprzez użycie parametru "deliverable" w strukturze parametrów danego przedmiotu w odpowiednim pliku. Pełny i szczegółowy opis tego zagadnienia został przedstawiony w tym poradniku w poszczególnych częściach.
Trzeci sposób - dodanie danego przedmiotu do inwentarza któregoś ze sprzedawców za pomocą parametru "AddTradeItem". Pełny i szczegółowy opis tego zagadnienia został przedstawiony w tym poradniku w części drugiej.
Czwarty sposób - dodanie danej broni do któregoś z rodzajów i typów przeciwników, przez co broń ta może się pojawić jako znalezisko po pokananym przeciwniku. Pełny i szczegółowy opis tego zagadnienia został przedstawiony w tym poradniku w części drugiej.
Piąty sposób - dodanie danej broni do schowka w którymś z sektorów, przez co broń ta może być odnaleziona w jednym z zielonych prostokącików w sektorze, które oznaczają zbiór przedmiotów do wzięcia. Pełny i szczegółowy opis tego zagadnienia został przedstawiony w tym poradniku w części piątej.
Jeśli broń nie została wdrożona do gry poprzez choćby jeden z powyższych sposobów, nawet jeśli istnieje cała wykonana w plikach gry, to taka broń nigdy nie pojawi się w grze. Proszę zobaczyć na komentarz pod tym artykułem, który pojawił się właśnie w tej sprawie.
Mam prośbę. Może mi ktoś napisać czy jest możliwość uzyskania w Back in Action dostępu do broni z dodatku Crossfire jak na przykład AN94 Abakan lub G36C? Z góry dziękuję :)
Obydwie bronie, o które zapytano istnieją już w pliku "weapons.txt" w grze JA Back in Action, lecz zostały one zdezaktywowane. Wystarczy je odnaleźć, zapisać ich numer identyfikacyjny i wdrożyć do gry poprzez przynajmniej jeden z powyżej opisanych sposobów. Tak samo należy postępować z każda inną bronią lub przedmiotem.
III. Przenoszenie obiektów występujących tylko w jednej części gry
Niestety sytuacja się komplikuje, gdy dana broń lub inny przedmiot rzeczywiście występuje tylko w jednej części gry. Wtedy nie ma innej możliwości na przeniesienie jej do aktualnie posiadanej gry, jak tylko poprzez sposób przedstawiony w części szóstej tego poradnika. Jest to najprostszy i najszybszy sposób. Ale skoro taka broń istnieje tylko w danej części, to oznaczać to będzie, że posiada swój własny model 3D razem z przypisanymi do niego teksturami, strukturą parametrów oraz wykonanymi dla niej odgłosami. W takim wypadku możemy się pokusić o przeniesienie jej w całości opierając się na opisie przedstawionym w części pierwszej, drugiej, trzeciej, czwartej, oraz piątej tego poradnika.
-
Gojira
fajny tutprial, ale gdzie wlozyc pliki crf dla przedmiotow typu maska (clothing) itd?