Zaktualizowano w v252 - Kwiecień 2020 Autor: Marcos Elias
Faza 2 systemu modyfikacji map Proton Bus pozwala na posiadanie pasażerów, ruchu ulicznego i innych rzeczy w grze! Przenosi to grę na inny poziom, dosłownie można podzielić Proton na przed i po tej funkcji. To prawie jak nowa gra!
Ostrzeżenie: Ze względu na ograniczenia czasowe, indywidualne wsparcie w procesie konwersji i edycji nie jest możliwe. Zalecamy samodzielne próby, sprawdzanie, jak zrobiono inne mapy, i eksplorowanie struktur plików. Preferuj publikowanie pytań i powiązanych problemów w grupach gry na Facebooku, dzięki czemu rozwiązania pomagają wszystkim, a inni twórcy modów również mogą Ci pomóc.
Jeśli jeszcze nie subskrybujesz, dołącz do kanału twórcy: www.youtube.com/marquinhosxp. Publikowane są tam niektóre filmy i poradniki.
Oficjalna strona PBSU na Facebooku: https://www.facebook.com/protonbusoficial Oraz PBSR: https://www.facebook.com/protonbusrod.oficial/
Ekskluzywna grupa dla twórców modów: https://www.facebook.com/groups/pbsmods/ Prosimy o unikanie dołączania do niej, jeśli jesteś tylko graczem, aby nie zaśmiecać postami nie na temat (które będą usuwane)!
Grupy dla użytkowników: W tych grupach mile widziane są darmowe posty ze zrzutami ekranu, wskazówkami, filmami, różnymi poradnikami itp., z punktu widzenia graczy:
Wskazówka na dobrą stronę do pobierania tekstur do modów: http://www.textures.com
Przed rozpoczęciem mapy w Fazie 2, musisz opanować produkcję na poziomie podstawowym dla Fazy 1. Jeśli jeszcze nie jesteś zaznajomiony, nie martw się, możesz postępować zgodnie z tym przewodnikiem wraz z przykładową mapą. Największym wymaganiem jest posiadanie podstawowej wiedzy o Blenderze, ponieważ będziemy go używać do eksportowania map.
Stara dokumentacja dotycząca Fazy 1 jest tutaj, dla map: http://blog.protonbus.com.br/2019/09/experimental-mods-de-mapas-no-pbs.html
I dla autobusów: http://blog.protonbus.com.br/2018/09/primeira-fase-do-sistema-de-mods-de.html
Zawsze dobrze jest mieć najnowszą wersję gry! Stare nie są już wspierane, beta stale się rozwija, więc zawsze bierzemy pod uwagę najnowszą. Możesz znaleźć najnowsze kompilacje na http://pbsu.busmods.com dla miejskich i http://pbsr.busmods.com dla międzymiastowych.
Zasadniczo używamy Blendera 2.79 do produkcji scenerii, eksportujemy model w formacie 3ds i tworzymy strukturę folderów i plików dla systemu Proton Bus.
WAŻNE: UŻYWAJ BLENDERA 2.79! Eksporter wymagany dla obecnego formatu gry nie działa z Blenderem 2.8, najwyraźniej został wycofany i nikt do tej pory go nie zaktualizował. Kto wie, może w przyszłości znów zadziała, ludzie próbują.
Możesz pobrać blendera 2.79 tutaj: https://download.blender.org/release/Blender2.79/ Najnowsza wersja to zazwyczaj ta z literą "b" w nazwie. Platforma jest obojętna, będzie zależeć od Twojego systemu (Windows, Linux lub Mac) i architektury (32 lub 64 bity).
Jeśli już zacząłeś mapę w 2.8, zaleceniem byłoby wyeksportowanie do jakiegoś formatu pośredniego, który 2.79 może otworzyć, a następnie wyeksportowanie z niego do gry.
WAŻNE: ZMODYFIKUJ EKSPORTER 3DS DLA PROTONA! Domyślny eksporter 3ds w Blenderze ucina nazwy obiektów i tekstur do 12 znaków. Zazwyczaj będziemy potrzebować więcej, aby uniknąć błędów w nazwach niektórych części i/lub tekstur.
Pobieranie zmodyfikowanej wtyczki Blendera do eksportu (plik dla Blendera 2.79): http://proton.viamep.com/coisas/export_3ds_protonbus_blender279.zip
PORADNIK JAK ZMIENIĆ WTYCZKĘ: https://youtu.be/0EokFmSjGdA
Jeśli wolisz, zamiast pobierać to, zmień plik export_3ds.py w folderze scripts\addons\io_scene_3ds swojego Blendera. Szukaj [:12] i zamień 12 na znacznie większą liczbę, taką jak 999. To jest limit znaków. Bez tego eksport do gry może się nie udać.
WSKAZÓWKA: POBIERAJĄC BLENDERA MOŻESZ WYBRAĆ WERSJE "PORTABLE" W ZIP, ABY UTRZYMYWAĆ WIELE WERSJI JEDNOCZEŚNIE.
Mapa w Protonie składa się z kilku plików txt (zwykły tekst) i kilku folderów. Podstawową strukturą jest txt definicji mapy i folder, oba znajdujące się wewnątrz folderu maps, który z kolei znajduje się w folderze modów gry.
Przykład struktury na PC:

Txt definicji mapy musi kończyć się na .map.txt (np.: Estrada Longa.map.txt). To musi być unikalna nazwa!
WAŻNE: NIGDY NIE UŻYWAJ AKCENTÓW, CEDILLA ANI ZNAKÓW SPECJALNYCH W NAZWACH PLIKÓW MODÓW!
Wewnątrz tego txt będziemy mieć podstawową strukturę:
[map]
baseDir=Estrada Longe
; Folder bazowy mapy, który znajduje się w maps razem z .map.txt
modelsDir=Rota 1
; Folder modeli, który znajduje się wewnątrz folderu tiles
textures=textures
; Folder tekstur
mapModVersion=2
; Użyj numeru 2 w Fazie 2!
preview=preview.png
; Obraz ekranu wyboru (16:9, np.: 640x360)
Wewnątrz folderu bazowego mapy muszą istnieć inne foldery:

dest: Przechowuje tablice kierunkowe i rejestracyjne.skins: Przechowuje malowania autobusów mapy (wewnątrz skins/0/pbc).textures: Przechowuje tekstury. Unikaj JPG, używaj PNG!tiles: Obowiązkowo musi mieć tę nazwę. Wewnątrz niego znajduje się folder modeli (modelsDir).WAŻNE: MODY MAP PROTON BUS SĄ ŁADOWANE W CAŁOŚCI! NIE MOGĄ BYĆ ZBYT CIĘŻKIE. JEŚLI ZAMIERZASZ ZROBIĆ KILKA DŁUGICH LINII, PODZIEL JE NA CZĘŚCI.
Wewnątrz folderu zdefiniowanego w modelsDir, znajdują się wyeksportowane pliki .3ds i konfiguracje:

Wewnętrzna struktura folderu modeli:

aipeople: Ustawienia pieszych.aitrains: Ustawienia pociągów.aivehicles: Ustawienia ruchu ulicznego.busstops: Ustawienia przystanków autobusowych.entrypoints.txt: Zaawansowane ustawienia punktów wejścia.entrypoints_list.txt: Prosta lista punktów wejścia.WAŻNE: MODY NIE SĄ CHRONIONE! TECHNICZNIE ŻADNA GRA NIE JEST. JEDYNYM SPOSOBEM NA TO, BY TWÓJ MOD NIE BYŁ EDYTOWANY LUB WYCIEKŁ, JEST JEGO NIEWYDAWANIE.
Punkty wejścia definiują, gdzie autobus pojawia się po uruchomieniu gry. Muszą mieć unikalne nazwy (np.: 351F-10 TP, Garagem Central).
WAŻNE: NIGDY NIE UŻYWAJ AKCENTÓW ANI ZNAKÓW SPECJALNYCH W TYCH NAZWACH! NIE UŻYWAJ TEŻ UKOŚNIKÓW.
Prosta lista, jedna nazwa w linii.

Definiuje pozycję i fizyczną rotację na mapie.

Pamiętaj: W Blenderze Y to przód/tył, a Z to wysokość. W Unity (gra), Y to wysokość, a Z to przód/tył. Odwróć Y i Z podczas kopiowania współrzędnych!
Aby znaleźć współrzędne, użyj obiektu Empty w Blenderze:

W folderze dest, utwórz foldery o DOKŁADNIE takiej samej nazwie jak entrypoints zdefiniowane w txt.

Wewnątrz każdego folderu miejsca docelowego znajdują się obrazy:

WAŻNE: UNIKAJ OBRAZÓW WIĘKSZYCH NIŻ 2048 PIKSELI NA TELEFONY!
Sugerowane nazwy plików dla tablic:
1.png, 2.png, 3.png (Tablice elektroniczne 1024x128)capelinhaDigital.png, capelinhaPVC.png (256x128)lonaDestino.png, lonaLinha.png (Rolki z kierunkami)placa1.png, placa2.png, placa3.png (Tablice boczne i przednie)Każdy przystanek musi mieć unikalną nazwę w 3D (np.: zzPonto1).
Przystanek składa się z:
nazwaprzystanku_trigger.nazwaprzystanku.000, nazwaprzystanku.001, itd.
WSKAZÓWKA: Używaj prostych płaszczyzn dla pasażerów, aby zaoszczędzić wielokąty.
Prawidłowy Trigger:

Przykład dobrze umieszczonego triggera:

Przykład źle umieszczonego triggera (nie wolno!):

Nakładające się (nie wolno!):

Prawidłowo na przeciwległych przystankach:

Wizualizacja w trybie Debug:

Utwórz txt w folderze busstops o tej samej nazwie co przystanek.

[busstop]
name=Przystanek Plac
isLeft=0
paxAmount=15
[from_3d]
readFrom3D=1
prefix=zzPonto1
maxPathsToCheck=30
defPaxRotY=90
prefix: Musi dokładnie pasować do nazwy używanej w 3D (przed .000).defPaxRotY: Domyślna rotacja pasażerów (testuj 0, 90, 180, -90).Działa podobnie do przystanków: sekwencja obiektów definiująca ścieżkę (path).
Przykład: xxCalcada1.000, xxCalcada1.001, itd.

Utwórz txt w folderze aipeople:

[automatic_setup]
enabled=1
loop=0
reverse=0
[defaults]
isSpawner=1
spawnInterval=5
allowBicycle=0
loop=1: Ostatni punkt łączy się z pierwszym (kołowy).loop=0: Ścieżka kończy się na ostatnim punkcie (liniowy).Po prostu tak samo jak piesi! Folder aivehicles.

isBusSpawner=1: Aby pojawiały się autobusy.spawnInterval: Zwiększ, aby zmniejszyć ruch.speedMultiplier: Zmień prędkość (np.: 0.5 połowa, 2 podwójna).Umieść malowania (PNG) w skins/0/pbc. Gra wybiera losowo.
Baza malowania PBC: http://omsi.viamep.com/proton/base-skins-pbc-protonbussimulator.zip
Ta sama logika, folder aitrains.
Zalecenie: isSpawner=0 w defaults, i zdefiniuj ręczne spawner'y w odstępach.

randomTimeToWaitAtStart=1: Zaczyna w losowym czasie.spawnTimeInterval: Interwał między pociągami (np.: 120 sekund).WAŻNE: POCIĄGI SIĘ NIE ZATRZYMUJĄ! PRZEJEŻDŻAJĄ WSZYSTKO. NIE RÓB PRZEJAZDÓW KOLEJOWYCH.
_transparent_ w nazwie obiektu (np.: grade_transparent_)._gencol_, aby wygenerować automatyczną kolizję (ulice, chodniki). Używaj oszczędnie!_gencol_invisible_ (np.: barreira_gencol_invisible_)._emissive_ dla obiektów zawsze włączonych._low_speed_zone_ dla terminali (unika skarg).
_force_exit_ w pobliżu przystanku końcowego.
_det1.3ds (np.: arvores_det1.3ds). Ładuje się tylko, jeśli użytkownik włączy "Dodatkowe Szczegóły".Aby uniknąć migotania tekstur (z-fighting/flickering) na podłodze, utwórz plik .config.txt obok tekstury.
Np.: asfalto.png.config.txt.


_gencol_ tylko na podłodze i głównych ścianach.To wszystko na teraz! Dobrej zabawy!