Konflikty map w FiveM: migające MLO i znikające propy
Ściany migają, propy znikają, MLO robi się niewidzialne? Skąd biorą się konflikty map w FiveM, co psuje każdy typ pliku i jak scalić .ymap w kilka kliknięć.
Autor: Termi
- Maps
- MLO
- Desktop app
Na tej stronie
- Skąd biorą się konflikty map
- Rodzaje konfliktów i co psują
- Miganie mapy (konflikt okluzji)
- Konflikt rozmieszczenia propów (.ymap)
- Konflikt archetypów (.ytyp)
- Konflikty kolizji i modeli 3D (.ybn, .ydr)
- Naprawianie ręcznie
- Scal je w kilka kliknięć
- Kiedy nie trzeba scalać
- Częste pytania
- Czemu moje MLO miga albo znika, kiedy podchodzę bliżej?
- Czy zmiana kolejności ensure naprawia konflikty map w FiveM?
- Jak sprawdzić, które zasoby streamują ten sam .ymap?
- Czy da się scalić pliki .ybn albo .ydr?
- W którym planie
Dodajesz nowe MLO, restartujesz serwer i jedziesz je obejrzeć. Budynek stoi, ale komisariat po drugiej stronie miasta zaczyna migać, parking stracił latarnie, a jedna ściana wnętrza znika, kiedy do niej podchodzisz. W konsoli nic na ten temat. To konflikt map i jeden z najczęstszych problemów na każdym serwerze FiveM, który ma więcej niż kilka map. Ten poradnik wyjaśnia, skąd biorą się konflikty, jak rozpoznać, z którym masz do czynienia, i jak je naprawić bez spędzania wieczoru w CodeWalkerze.
Skąd biorą się konflikty map
Większość map nie buduje miasta od zera. Zmieniają kawałki GTA V, które już istnieją: przesuwają płot, usuwają latarnię, która stoi na drodze, albo wycinają dziurę w okluzji kwartału, żeby ich wnętrze było widać. Żeby to zrobić, dostarczają własną kopię pliku z gry, o tej samej nazwie co oryginał.
Kłopot zaczyna się, gdy dwa zasoby mają kopię tego samego pliku. Gra wczytuje tylko jedną: tę z zasobu, który startuje ostatni. Wszystko, co druga mapa zmieniła w tym pliku, po prostu przepada.
ensure pd_mlo
ensure burgershot_mlo
ensure street_lightsJeśli oba MLO streamują dt1_05_strm_1.ymap, wczytuje się tylko kopia z burgershot_mlo. Zmiany komisariatu nigdy nie trafiają do gry, więc jego wnętrze jest rysowane w oryginalnym kwartale. Zamiana tych dwóch linijek nie pomoże, przeniesie tylko problem na drugą mapę.
Rodzaje konfliktów i co psują
Typ pliku dużo mówi o tym, co zobaczysz w grze. Te spotkasz najczęściej.
Miganie mapy (konflikt okluzji)
Żeby oszczędzić pracy, GTA V nie rysuje tego, co uważa za schowane za ścianami. Te niewidzialne zasłony to okludery i siedzą w plikach .ymap. MLO musi usunąć okludery, które zasłaniałyby jego wnętrze. Kiedy wygrywa kopia innej mapy, stare okludery wracają: wnętrze miga, znika z bliska albo przez ściany widać pustkę.
Konflikt rozmieszczenia propów (.ymap)
.ymap mówi też, który obiekt stoi gdzie: budynki, propy, LOD-y, światła, trawa, a nawet miejsca, w których pojawiają się zaparkowane auta. Gdy dwie mapy zmieniają ten sam plik i wczytuje się tylko jedna kopia, znikają propy, budynki doczytują się i znikają, latarnie nie świecą albo przez środek nowego garażu rośnie drzewo.
Konflikt archetypów (.ytyp)
.ytyp definiuje same obiekty: jakiego modelu używa prop, z jak daleka go widać, a w MLO także pokoje i portale w środku. Jeśli dwie kopie się różnią, propy mają zły model albo nie ma ich wcale, a wnętrze może stracić pokój.
Konflikty kolizji i modeli 3D (.ybn, .ydr)
.ybn to kolizja: po czym da się chodzić i co cię zatrzyma. .ydr to model 3D. Konflikt tutaj widać jako przechodzenie przez ściany, niewidzialne bariery, spadanie przez podłogę albo prop o złym kształcie czy teksturach. Te pliki to całe obiekty, a nie listy zmian, więc nie ma czego łączyć: wybierasz, która kopia ma wygrać, i pilnujesz, żeby jej zasób startował ostatni.
Naprawianie ręcznie
Do tej pory zwykle wyglądało to tak:
Jeden plik to godzina uważnej pracy. Duży serwer ma ich dziesiątki, a gdy tylko któraś mapa dostanie aktualizację, wszystko trzeba zrobić od nowa. Łatwo też o błąd: pominiesz jeden okluder i miganie zostaje.
Scal je w kilka kliknięć
Map Merger w aplikacji desktopowej FiveDock robi to za ciebie. Czyta twój server.cfg, znajduje każdy .ymap i .ytyp, który streamuje więcej niż jeden uruchomiony zasób, i łączy kopie w jeden plik, który zachowuje zmiany każdej mapy.
Scalanie trzyma się jednej prostej zasady, tej samej, której trzymałbyś się ręcznie:
Kopie identyczne bajt w bajt są oznaczane i pomijane, bo nie mogą się kłócić. Dalekie światła LOD są scalane razem z pasującym plikiem świateł LOD, który gra musi mieć z nimi zgodny. To samo zrobisz z wiersza poleceń:
> fivedock merge C:\server
41 started resources, 3 map files streamed by more than one
dt1_05_strm_1.ymap pd_mlo -> burgershot_mlo
vw_distlodlights_medium010.ymap pd_mlo -> street_lights
shared_props.ytyp (identical) pd_mlo -> burgershot_mlo
> fivedock merge C:\server --apply
merged dt1_05_strm_1.ymap +38 -4, base-game file
merged vw_distlodlights_medium010.ymap +112 -0, base-game file
Wrote C:\server\resources\[fivedock]\fivedock-merged. Undo with: fivedock merge undo+38 -4 znaczy, że scalanie dodało 38 elementów, których nie miała pierwsza kopia, i pominęło 4 elementy z gry, które któraś z map usunęła.
Nic nie ginie
Każda zmiana ma kopię zapasową. Oryginalne kopie są wynoszone z zasobów, a nie usuwane, a Cofnij ostatnie scalanie (albo fivedock merge undo) przywraca wszystko, łącznie z server.cfg.
Gdy mapa dostanie aktualizację, zeskanuj serwer jeszcze raz. Merger czyta też swój wcześniejszy wynik, więc nowe kopie dołączają do tego, co już masz.
Kiedy nie trzeba scalać
Plik streamowany dwa razy nie zawsze jest problemem. Zostaw go, gdy:
Po scaleniu przetestuj. Przejedź obok każdej mapy, której to dotyczy, i wejdź do każdego wnętrza. Jeśli coś wygląda źle, jedno kliknięcie w cofnięcie przywraca stan sprzed scalenia.
Częste pytania
Czemu moje MLO miga albo znika, kiedy podchodzę bliżej?
Zwykle dlatego, że inny zasób streamuje własną kopię tego samego .ymap, a w tej kopii dalej siedzą okludery, które MLO usunęło. GTA V nie rysuje tego, co zasłania okluder, więc wnętrze miga albo znika, gdy podchodzisz. Gra wczytuje kopię z zasobu, który startuje ostatni.
Czy zmiana kolejności ensure naprawia konflikty map w FiveM?
Tylko przy plikach kolizji (.ybn) i modeli (.ydr): wybierasz kopię, którą chcesz, i pilnujesz, żeby jej zasób startował ostatni. Przy .ymap albo .ytyp, który edytowały dwie mapy, gra i tak wczyta jedną kopię, więc nowa kolejność przenosi problem na drugą mapę. Takie pliki trzeba scalić w jedną kopię ze zmianami obu map.
Jak sprawdzić, które zasoby streamują ten sam .ymap?
Poszukaj plików o tej samej nazwie w folderach stream wszystkich uruchomionych zasobów: dwa zasoby, które mają dt1_05_strm_1.ymap, mają o niego konflikt. Map Merger w aplikacji desktopowej FiveDock czyta server.cfg i wypisuje każdy .ymap i .ytyp, który streamuje więcej niż jeden uruchomiony zasób, w kolejności startu.
Czy da się scalić pliki .ybn albo .ydr?
Nie. .ybn to cała siatka kolizji, a .ydr cały model 3D, więc nie ma w nich listy osobnych zmian do połączenia, jak w .ymap. Zdecyduj, która kopia ma wygrać, i ustaw jej zasób tak, żeby startował po drugim.
W którym planie
Map Merger jest częścią planu Metro. Skan i pliki zostają na twoim komputerze, a samo scalanie działa na serwerach FiveDock, więc aplikacja jest lekka, a każde scalenie korzysta z tych samych, aktualnych danych o grze. Porównaj plany albo pobierz aplikację desktopową i zeskanuj swój serwer.