📚 Docs

Modyfikacje Map: Faza 2

Zaktualizowano w v252 - Kwiecień 2020 Autor: Marcos Elias

Wstęp

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/

Grupy na Facebooku

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


Uwagi dotyczące Fazy 1

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.


Struktura plików moda mapy

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:

Struktura Folderów

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:

Foldery Bazowe

  • 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:

Folder Tiles

Wewnętrzna struktura folderu modeli:

Podfoldery 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.


Konfiguracja punktów wejścia

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.

entrypoints_list.txt

Prosta lista, jedna nazwa w linii.

Lista Entrypoints

entrypoints.txt

Definiuje pozycję i fizyczną rotację na mapie.

Konfiguracja Entrypoints

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:

Empty w Blenderze

Tablice i Miejsca Docelowe

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

Folder Dest

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

Obrazy Miejsca Docelowego

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)

Konfiguracja pasażerów

Każdy przystanek musi mieć unikalną nazwę w 3D (np.: zzPonto1).

W Blenderze (3D)

Przystanek składa się z:

  1. Niewidzialnego sześcianu (wyzwalacz/trigger) o nazwie nazwaprzystanku_trigger.
  2. Małych obiektów (płaszczyzny/sześciany) dla pozycji pasażerów, nazwanych nazwaprzystanku.000, nazwaprzystanku.001, itd.

Przystanek w Blenderze

WSKAZÓWKA: Używaj prostych płaszczyzn dla pasażerów, aby zaoszczędzić wielokąty.

Prawidłowy Trigger:

Prawidłowy Trigger

Przykład dobrze umieszczonego triggera:

Przykład Triggera

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

Błędny Trigger

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

Nakładający się Trigger

Prawidłowo na przeciwległych przystankach:

Przeciwległe Przystanki

Wizualizacja w trybie Debug:

Tryb Debug

W pliku .txt (busstops)

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

Txt Busstop

[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).

Konfiguracja pieszych

Działa podobnie do przystanków: sekwencja obiektów definiująca ścieżkę (path). Przykład: xxCalcada1.000, xxCalcada1.001, itd.

Ścieżka Pieszych Blender Piesi

Utwórz txt w folderze aipeople:

Txt Piesi

[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).

Konfiguracja pojazdów ruchu ulicznego

Po prostu tak samo jak piesi! Folder aivehicles.

Txt Ruch Uliczny

  • 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).

Konfiguracja maowań autobusów mapy

Umieść malowania (PNG) w skins/0/pbc. Gra wybiera losowo. Baza malowania PBC: http://omsi.viamep.com/proton/base-skins-pbc-protonbussimulator.zip


Konfiguracja pociągów

Ta sama logika, folder aitrains. Zalecenie: isSpawner=0 w defaults, i zdefiniuj ręczne spawner'y w odstępach.

Txt Pociągi

  • 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.


Specjalne polecenia i nazwy w modelach 3D

  • Przezroczystość: Użyj _transparent_ w nazwie obiektu (np.: grade_transparent_).
  • Kolizje: Użyj _gencol_, aby wygenerować automatyczną kolizję (ulice, chodniki). Używaj oszczędnie!
  • Niewidzialna Kolizja: Użyj _gencol_invisible_ (np.: barreira_gencol_invisible_).
  • Emissive: Użyj _emissive_ dla obiektów zawsze włączonych.
  • Strefa Niskiej Prędkości: Obiekt _low_speed_zone_ dla terminali (unika skarg).

Low Speed Zone

  • Wymuś Wyjście: Obiekt _force_exit_ w pobliżu przystanku końcowego.

Force Exit

  • Dodatkowe Szczegóły: Zakończ plik 3DS na _det1.3ds (np.: arvores_det1.3ds). Ładuje się tylko, jeśli użytkownik włączy "Dodatkowe Szczegóły".

Konfiguracja błyszczących tekstur

Aby uniknąć migotania tekstur (z-fighting/flickering) na podłodze, utwórz plik .config.txt obok tekstury. Np.: asfalto.png.config.txt.

Config Txt


Dodatki - Wskazówki optymalizacji

  • Małe Tekstury: Używaj 256x256 lub 512x512 dla powtarzalnych tekstur.
  • MAX 2048px: NIGDY nie używaj tekstur większych niż 2048px na telefony!

Ostrzeżenie Tekstura

  • Kolizje: Unikaj skomplikowanych kolizji. Używaj _gencol_ tylko na podłodze i głównych ścianach.
  • Materiały: Unikaj wielu materiałów na tym samym obiekcie.
  • Łącz Obiekty: Łącz pobliskie drzewa z tym samym materiałem, aby zmniejszyć draw calls.

To wszystko na teraz! Dobrej zabawy!