- Symulator MaSzyna -

Symulator EU07 (i nie tylko) => Pomoc w tworzeniu => Poradniki => Wątek zaczęty przez: Hirek w 14 Kwietnia 2022, 12:26:13

Tytuł: [INNE] Konwersja paczki pctga do wariantu dds/e3d
Wiadomość wysłana przez: Hirek w 14 Kwietnia 2022, 12:26:13
Paczki dds/e3d od czystej pctga różnią się krótszym czasem wczytywania, czy mniejszym rozmiarem. Oto jak taką konwersję przeprowadzić. Udostępnienie narzędzi z załącznika i napisanie poradnika za zgodą @Milek7.
Tak więc co nam będzie potrzebe?
Aby móc przejść przez proces kompilacji paczki do wariantu dds/e3d, czyli takiego, który zwykle zajmuje dużo mniej miejsca na dysku niż wersja tga/t3d (dalej pctga) potrzebujemy następujących rzeczy:

Od czego zacząć?
Przygotowanie:
Najprościej można zacząć od utworzenia gdzieś na dysku pustego folderu. W środku tworzymy foldery: build, eu07, oraz pctga. Folder pctga powinien zawierać pliki z repozytorium, folder eu07 pliki wymagane do uruchomienia exe maszyny (tzw. kiedyś: bin_x64, czy też bin_x86). Do folderu roboczego wypakowujemy archiwum z narzędziami z załącznika. Po przygotowaniu wszystkich plików struktura folderu roboczego powinna wyglądać następująco:
└── folder roboczy/
    ├── build/
    ├── eu07/
    ├── pctga/
    ├── e3dize
    ├── make_recipe
    ├── make_diff
    ├── makedds
    ├── ninja_syntax.py
    └── dump_structure
Aby wszystko dalej działało potrzebujemy uruchomić terminal linuxa (w moim przypadku ubuntu 20.04 pod WSL). Instalujemy wymagane zależności następującym poleceniem:
sudo apt-get update
sudo apt-get install nvidia-texture-tools vorbis-tools imagemagick python3 ninja-build
Zainstaluje nam ono wszystkie wymagane narzędzia wymagane do konwersji plików do odpowiednich formatów. Teraz musimy przygotować exe maszyny do konwersji t3d >> e3d. W tym celu wchodzimy do folderu eu07 i tam wrzucamy zawartość naszego bin_x64 (lub bin_x86). Następnie z nazwy pliku wykonywalnego symulatora kasujemy dopisek “.exe” (eu07.exe powinno zamienić się w samo eu07).  Powracamy do głównego folderu roboczego i wpisujemy następujące polecenie: sudo chmod +x * - pozwoli to nam na uruchomienie narzędzi.

Właściwe kompilowanie paczki:
W tym momencie jedyne co pozostaje to przejść do folderu roboczego w terminalu linuxa. W tym celu korzystając z komend cd (change directory) nawigujemy do katalogu /mnt/ w którym znajdują się litery naszych dysków w naszym komputerze. Dalej podążamy za ścieżką windowsową. W moim przypadku ścieżka do folderu roboczego według windowsa wyglądała następująco: E:\Hirek\Games\eu07-pack\, natomiast na ubuntu będzie wyglądała tak: /mnt/e/Hirek/Games/eu07-pack/.
Aby rozpocząć kompilację wpisujemy polecenie ./make_recipe - wygeneruje nam ono plik kompilacji (build.ninja). Następnie uruchamiamy kompilację poleceniem ninja -j4Liczba 4 oznacza ilość wątków procesora, jakie ninja będzie mógł wykorzystać. Można sobie regulować do woli :). W tym momencie czekamy na skompilowanie się paczki. Po pewnym czasie (u mnie 15h) w folderze build otrzymujemy gotową do spakowania paczkę dds/e3d.

Jeśli coś byłoby nie zrozumiałe to można napisać w odpowiedzi - wytłumaczę. W przypadku jakiegoś większego błędu poprawię posta. W zrozumieniu tego procesu pomógł @Milek7.

Edit 22.05.2022: Poprawiony załącznik - zapomniałem o jednej libce...
Edit 01.01.2023: Poprawka załącznika  i treści zgodnie z tym co napisał @Jakubg1
Tytuł: Odp: [INNE] Konwersja paczki pctga do wariantu dds/e3d
Wiadomość wysłana przez: jakubg1 w 30 Listopada 2022, 14:57:28
Na liście plików powinny znajdować się ponadto:
makedds
ninja_syntax.py

W makedds w linijce 14 jest błąd - należy zamienić początek komendy z ./nvcompress na nvcompress.
Jak ktoś z administracji poprawi, można usunąć ten post.
Tytuł: Odp: [INNE] Konwersja paczki pctga do wariantu dds/e3d
Wiadomość wysłana przez: Sowik2 w 08 Kwietnia 2024, 18:54:38
Na przyszłość:
1.Gdyby komuś wyrzucało taki błąd:
ninja: error: build.ninja:26694: multiple rules generate build/scenery/.scn [-w dupbuild=err]
To trzeba usunąć z folderu /scenery wszystkie .scn z $ na początku nazwy. Czysta paczka ich nie zawiera, a na mojej było już grane.

2.
Następnie z nazwy pliku wykonywalnego symulatora kasujemy dopisek “.exe” (eu07.exe powinno zamienić się w samo eu07).
Aby to uczynić należy, będąc w głównym folderze roboczym, uzyć polecenia:
mv eu07/eu07.exe eu07/eu07(To dla tych "małolinuxowych" jak ja).
Tytuł: Odp: [INNE] Konwersja paczki pctga do wariantu dds/e3d
Wiadomość wysłana przez: Sowik2 w 08 Kwietnia 2024, 20:38:11
Słuchajcie, jest teraz inny problem. DDS-y tworzą się ok, ale nie chce działać konwersja T3D -> E3D. Oto przykład błędu:
[1/64222] ./e3dize pctga/dynamic/cd/181_v2/181_cz2.t3d build/dynamic/cd/181_v2/181_cz2.e3d
FAILED: build/dynamic/cd/181_v2/181_cz2.e3d
./e3dize pctga/dynamic/cd/181_v2/181_cz2.t3d build/dynamic/cd/181_v2/181_cz2.e3d
usage: eu07 [-s sceneryfilepath] [-v vehiclename]
Czyżby problem z EXE?

EDIT: Działa. Tak, to problem z EXE. Działające EXE: https://eu07.pl/forum/index.php/topic,29423.msg559902.html#msg559902
Tytuł: Odp: [INNE] Konwersja paczki pctga do wariantu dds/e3d
Wiadomość wysłana przez: Piotr93 w 15 Kwietnia 2024, 20:14:09
Jak ci się uda złożyć paczkę to będziesz wyniesiony na ołtarz w królestwie niebieskim 424.
Tytuł: Odp: [INNE] Konwersja paczki pctga do wariantu dds/e3d
Wiadomość wysłana przez: Sowik2 w 15 Kwietnia 2024, 20:22:49
Były problemy oczywiście, są do poprawki jakieś dźwięki (nie ten bitrate chyba), jakieś nazwy plików niezgodne z wytycznymi, które sypią składnie oraz może ze dwa modele, które po prostu nie wiadomo czemu nie dadzą się skonwertować na .E3D. Ja sobie z tym radziłem doraźnie, bo składałem to dla siebie, ale jakby co, to mogę pomóc przy składaniu paczki.
Tytuł: Odp: [INNE] Konwersja paczki pctga do wariantu dds/e3d
Wiadomość wysłana przez: Piotr93 w 15 Kwietnia 2024, 20:23:42
No bo skoro ci się udało to możesz spróbować złożyć paczkę, bo widzisz jaką mamy sytuację teraz.