Odpowiedź 
 
Ocena wątku:
  • 1 Głosów - 5 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Łączenie dwóch map
Autor Wiadomość

strefa-omsi.pl
Administratorzy
Liczba postów: 1,410
Dołączył: 12-2012
Podziękowań: 427
Post: #1
Łączenie dwóch map
Autorem niniejszego poradnika jest Foob z forum oficjalnego, natomiast niejaki Felix dostosował go na potrzeby symulatorowej wiki. Na szarym końcu znajduję się ja, czyli ktoś, kto zechciał to po prostu przetłumaczyć i dodać coś od siebie ;)

Przed jakimikolwiek zmianami zróbcie pełne kopie zapasowe łączonych map!

Układ współrzędnych

Okno Edytora OMSI można wyobrazić sobie jako wielki układ współrzędnych. Na jego początku (koordynaty x=0, y=0) znajduje się pierwszy segment. Kto nie wie jak wygląda podstawowy układ współrzędnych?
Otóż przedstawia go poniższa grafika:
İmage

Oś X należy traktować jako poziomą, natomiast Y jako pionową (prostopadłą do osi X). Co prawda zapis typu [0;7] nie jest używany bezpośrednio w Edytorze OMSI, ale aby jasno opisać cały proceder będziemy takiego używać. Pierwsza liczba w takim nawiasie oznacza współrzędną X, druga - Y.

Teraz czas na trochę praktyki!

Na poniższym zrzucie ekranu:
İmage
pokazane są segmenty o widocznych granicach. Zaznaczone są także osie, oraz ich wartości na poszczególnych segmentach. Owal przy strzałce otacza natomiast współrzędne widoczne w edytorze.


Pliki segmentowe

Każdy zestaw plików jednego segmentu składa się z właściwego pliku *.map, pliku dotyczącego ukształtowania terenu *.terrain, pliku lightmapy *LM.bmp, czasem informacji dotyczących wody na danym terenie *.water.

Przykład:
tile_1_-1.map.LM.bmp
tile_1_-1.map
tile_1_-1.map.terrain


gdzie:
tile - oznacza segment;
1_-1 - to współrzędne, gdzie w tym przypadku 1 oznacza współrzędną po osi X, natomiast -1 po osi Y.

Posiadając tę wiedzę, możemy jechać dalej.


Kopiowanie tekstur

Skopiowanie segmentów nie wystarczy. Musimy zatroszczyć się także o tekstury i od tego zaczniemy. Pierwszą rzeczą jest skopiowanie plików z folderu "texture" do katalogu, gdzie będziemy łączyć mapy. Na razie nie kopiujemy niczego innego.
Teraz szukamy w global.cfg mapy pierwszej fragmentów zaczynających się słowem kluczowym [groundtex]. Wygląda to na przykład tak:
Kod:
[groundtex]
texture\gras.bmp
texture\gras_det.bmp
0
1
60
Podana w pliku kolejność poszczególnych wpisów [groundtex] jest adekwatna do informacji w edytorze:
İmage

Następny krok trudno wytłumaczyć, więc posłużymy się przykładem. Załóżmy, że mapa pierwsza zawiera segmenty oteksturowane w następujący sposób:
0 - trawa
1 - kocie łby
2 - asfalt
3 - farma
natomiast druga:
0 - trawa
1 - kocie łby
2 - błoto
3 - piach
Jeśli skopiujesz wszystkie [groundtex] z mapy drugiej do wpisów z mapy pierwszej, zamiast asfaltu będzie teraz błoto, natomiast zamiast farmy - piach. Jeśli więc wpisy nie są identyczne, należy powtórnie oteksturować segmenty w Edytorze. Generalnie jest to najpewniejsza metoda w każdym przypadku.


Łączenie segmentów dwóch map

Zmierzamy do sedna sprawy. Po przyswojeniu poprzednich akapitów, możemy przystąpić do zmiany numeracji segmentów. Poradnik przedstawia jak umieścić drugą (taką samą) mapę w konkretnym punkcie. Jeśli zrozumiesz co tu się dzieje - będziesz mógł umieszczać segmenty, gdzie żywnie Ci się podoba. Kierunki ani osie podczas dołączania nie zmieniają się.

Nasz cel to uzyskanie tego, co widać na poniższym rysunku:
İmage

Najpierw musimy umieścić segmenty mapy pierwszej. Aby dokładnie widzieć jej położenie w edytorze i płynnie się poruszać po widoku, ustawiamy w opcjach "liczbę sąsiednich bloków terenu" na 20. Po obejrzeniu obydwu map i zlokalizowaniu ich segmentów o współrzędnych [0,0], dobrym pomysłem jest szkic, gdzie naniesiemy je wzdłuż osi, ułożymy i ponumerujemy segmenty. Ot, taki teoretyczny papierowy projekt tego, co będziemy robić za chwilę praktycznie.

A więc lokalizujemy segment [0,0], spisujemy i oznaczamy na projekcie pozostałe segmenty pierwszej mapy, a następnie zajmujemy się segmentami drugiej mapy. Wystarczy je tylko "przesunąć". Na podanym rysunku następuje przesunięcie wyłącznie po osi Y, czyli wektor przesunięcia wynosi [0,4]. Jeśli jeszcze ktoś nie rozumie - lecimy cztery jednostki w górę. Dlaczego właśnie o tyle? No bo tak założył sobie autor poradnika i taki projekt naszkicował (jak widać na wcześniejszym screenie). Oczywiście możecie to robić dowolnie, jednak pamiętając o tym, aby dwa segmenty nie miały tych samych współrzędnych. Jeśli numeracja będzie zła dowiecie się o tym już na etapie zmiany nazw plików o czym za chwilę. Przesunięcie globalne najłatwiej określać za pomocą położenia segmentów [0,0] map. Nic nie stoi na przeszkodzie jednak, aby je "pomieszać", czyli przesuwać niezależnie. Nie będziemy się jednak tutaj tym zajmować.

Przechodzimy do zmiany nazw plików segmentowych mapy drugiej. Musimy to zrobić ZANIM skopiujemy je do folderu nowej, łączonej mapy, w przeciwnym razie bloki mapy 2 nadpiszą bloki mapy 1. W tym przykładzie przesuwamy segmenty o cztery jednostki "w górę", czyli dodajemy 4 do aktualnych wartości współrzędnych igrekowych. Jak to zrobić? Właśnie tak, jak poniżej:

plik tile_0_0.map zmieniamy na tile_0_4.map
plik tile_4_2.map.LM.bmp zmieniamy na tile_4_6.map.LM.bmp
plik tile_0_-9.map zmieniamy na tile_0_-5.map

i tak dalej... Musimy w ten sposób zmienić wszystkie pliki segmentowe (wymienione w jednym z wcześniejszych akapitów). Jeśli łączymy większe mapy jest to żmudna robota. Aby uniknąć niepotrzebnej pracy, jako "drugą" mapę powinniśmy wybrać tę o mniejszej liczbie segmentów.

Kolejny krok to edycja pliku global.cfg mapy pierwszej. Od razu przechodzimy do wpisów segmentowych np:
Kod:
[map]
0
3
tile_0_3.map
Powyższy kod jest dość intuicyjny. [map] to słowo kluczowe, niższe 0 oznacza współrzędną X segmentu, 3 oznacza współrzędną Y, natomiast tile_0_3.map to nazwa adekwatnego do powyższych współrzędnych - segmentu.
Musimy więc utworzyć takie wpisy, aby zadeklarować wszystkie segmenty dołączanej mapy o zmienionych przed chwilą nazwach. Wystarczy tu tylko deklaracja plików .map, zatem pomijamy inne pliki segmentowe. Po tym wszystkim możemy skopiować ten zmodyfikowany plik (global.cfg) oraz wszystkie pliki mapy drugiej do folderu łączonych map (prócz global.cfg, który pochodzi z mapy pierwszej oczywiście).

Efekty uboczne

Mogą to być na przykład:
- źle działające sygnalizatory o tych samych numerach i nie działające rozkłady, gdy użyte spliny mają takie same numery -> aby to wyeliminować musimy skasować rozkłady jednej z map i ułożyć je na nowo
- pozostałe błędy, których geneza nie jest dokładnie znana, dlatego zawsze należy wykonać pełne kopie zapasowe.



Artykuł OMSIWiki: Zarejestruj się bądź zaloguj by zobaczyć zawartość. Please register or login to show this content.
Profil Twórcy oryginalnego poradnika: Zarejestruj się bądź zaloguj by zobaczyć zawartość. Please register or login to show this content.

Pytania dotyczące łączenia map należy umieszczać tutaj: http://strefa-omsi.pl/Watek-Polaczenie-map--1419

Nie roszczę sobie praw autorskich do poradnika, ale jeśli ktoś chciałby go umieścić na innej stronie proszę podać link do tego tematu ze względu na autorskie tłumaczenie (wcale nie kropka w kropkę :P ).


♪ "Nie pytaj mnie, wiem tyle co i ty" ♪

Zanim cokolwiek napiszesz, przeczytaj koniecznie REGULAMIN
Jeśli masz problem techniczny, zapoznaj się z ZASADAMI DZIAŁÓW TECHNICZNYCH
Jeśli chcesz podzielić się dodatkiem, zapoznaj się z REGULAMINEM DZIAŁU POBIERALNIA

16.06.2013 17:34
Szukaj postów Cytat

Użytkownik
Użytkownicy
Liczba postów: 49
Dołączył: 05-2013
Podziękowań: 47
Post: #2
RE: Łączenie dwóch map
Czy można byłoby prosić o reupload obrazków do tego poradnika?


[OMSI 1 & 2] Fikcyjne Małoszyce Fanpage
27.10.2017 16:19
Szukaj postów Cytat
Odpowiedź 




Użytkownicy przeglądający ten wątek: 1 gości

Forum Strefa-OMSI.pl

Tematyczne Forum dotyczące najpopularniejszego symulatora autobusu - OMSI. Zapraszamy do rejestracji i aktywnego udziału w Społeczności.

Strona wykorzystuje pliki cookies. Korzystanie z witryny oznacza zgodę na ich zapis lub odczyt wg ustawień przeglądarki.

Współpracujemy z:

Polecamy także: