Uwaga ! Uwaga !
W dniu 29 grudnia 2019 roku zmieniliśmy silnik naszego forum PoilshSeamen.
Ze względu na to że dotychczas używany silnik był przestarzały (pracował od maja 2005 roku), był pełen luk i błędów, podjęliśmy decyzję o zamknięciu tego forum i otwarciu nowego.
Stare (to) forum jest dostępne "tylko do odczytu". Nowe zaś wymaga ponownego zarejestrowania użytkownika.
Adres się nie zmienia. Dalej jest to
Imię: And Pomógł: 37 razy Dołączył: 09 Wrz 2008 Posty: 4398 Skąd: Gůrny Ślůnsk
#1 Wysłany: 26 Październik 2009, 14:08 Wyspy i płycizny - teoria
Aby urozmaicić rozgrywkę zwykle dodaje się do mapki wyspy i płycizny. Nie są one zbyt skomplikowane, dzięki temu jest możliwe kopiowanie całych kontynentów między mapami.
Wyspy i płycizny są dodawane do mapy poprzez edycję plików:
0_mm_MMissionX.scn
1_mm_MMissionX.scn
znajdujących się w katalogu universe / scenes / missions / ...
Oto przykładowa procedura wstawiania wyspy (landscanpe):
Cytat:
entity "Landscape" (Landscape) {
localframe 1.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 3300.0000 0.0015 1200.0000 1.0000 ;
template "Landscape" ;
uid 1;
properties (Common, Landscape) {
"Coast" {
AlphaTextureFile = S "coast_alpha_line_01.dds" ;
BackExtrude = F 6.0000 ;
"CoastTextureColor" {
A = F 0.8000 ;
B = F 0.9020 ;
G = F 0.2353 ;
R = F 0.8824 ;
}
FrontExtrude = F 6.0000 ;
MaximalSegmentSize = I 50 ;
MinimalEdgeLength = F 5.0000 ;
Tex00 = F 0.6000 ;
Tex01 = F 0.0141 ;
Tex02 = F 132.0000 ;
Tex03 = F 0.0100 ;
Tex04 = F 0.0123 ;
Tex05 = F 113.0000 ;
Tex06 = F 0.0100 ;
Tex07 = F 0.0000 ;
Tex08 = F 0.6000 ;
Tex09 = F 1.2000 ;
Tex10 = F 2.3000 ;
Tex11 = F 0.2000 ;
Tex12 = F 0.4000 ;
Tex13 = F 0.4000 ;
Tex14 = F 0.6000 ;
"WaveTextureColor" {
}
}
FilePath = S "Islands\\multiszigetkicsi_11" ;
ModelPath = S "models/gui/map/multiszigetkicsi_11_terkep.mmod" ;
ModelPath_PS2 = S "models/gui/map/multiszigetkicsi_11_terkep_ps2.mmod" ;
"ShallowWater" {
Pos = V3 -142.0000 0.0000 -208.0000 ;
Size = F 890.0000 ;
Texture_PC = S "multiszigetkicsi_11_vizszinezes.tga" ;
}
}
}
"localframe" - podane to co nas najbardziej interesuje: lokalizacja i orientacja względem stron świata
"filepath" - oznacza odwołanie do konkretnych bibliotek opisujących tekstury wyspy
"shallowwater" - to tekstura widoku płycizny, który można sobie darować (zaznaczone na niebiesko)
Płycizna jest reprezentowana jako zestaw punktów określający obszar, w którym okręt podwodny wykona automatyczne wynurzenie - jest on nieco większy niż zakres 'realnej' płycizny widoczny na mapie taktycznej.
Przykładowa procedura płycizny (avoidzone):
"localframe" - lokalizacja płycizny i orientacja względem stron świata
Należy zauważyć że orientacja względem stron świata może być zastąpiona poprzez fizyczne przeliczenie wierzchołków, jednak o wiele prostsze jest skopiowanie danej wyspy i obrócenie jej o dany kąt.
Płycizna jest lokalizowana o współrzędne lokalne (0.000 ; 0.000) (czyli poszczególne punkty płycizny odnoszą się do punktu środka (0.000 ; 0.000). Z kolei ten punkt jest lokalizowany w oparciu o pozycję zadaną w parametrze "localframe".
Kopiowanie wysp i płycizn
Kopiowanie i zmiana lokalizacji jest niezwykle prosta - wystarczy skopiować parametr "landscape" i "avoidzone" w pliku mapy (nazwa.scn) i zmienić lokalizację.
W pliku PC_cargo.scn odszukujemy tekst "landscape" i sprawdzamy czy loaklizacja w przybliżeniu się zgadza (na mapie taktycznej punkt F5 oznacza lokalizację 0,0 - przedziałki są w okolicach 2000 - każda ćwiartka odpowiada wartościom układu współrzędnych XY).
Duża wyspa (i płycizna) musi mieć współrzędne XY dodatnie:
Skoro jest to ta sama wyspa, nie musimy dodawać bibliotek, tekstur etc.
Kopiujemy oba zakresy (podane na samym początku) i wstawiamy je do tego samego pliku, uwzględniając zmiany:
Zmieniamy nazwę dodając przyrostek "-1",
Zmieniamy lokalizację, zwiększając o 1000 parametr współrzędnej Y,
Obracamy wyspę o 180°, zmieniając pierwszy i trzeci parametr z 1.000 na -1.000,
Zapisujemy zmianę, pakujemy plik i wrzucamy do oryginalnego katalogu z grą.
A oto efekty zmiany:
Mapa taktyczna to jak widać klęska.
Wyspa uległa przesunięciu, ale nie jest odwrócona o 180°
Pierwsze podejście - wygląda "nieco" śmiesznie.
Wyspa uległa obrotowi niestety nie wokół jej geometrycznego środka.
Dodatkowo "shalowwater" jest na nowej pozycji (+1000) lecz nie został obrócony.
Drugie podejście:
Usuwam wszystkie parametry "shalowwater" (zaznaczone powyżej na niebiesko).
Graficznie nieco bardziej ubogo, ale efekt zadowalający.
Niestety na mapie nadal bez zmian.
Problem obrotu wyspy na mapie będzie przedmiotem późniejszego rozpoznania.
Dodatkowym problemem jest to, że nie wiadomo czy "avoidzone_1" zostało obrócone, a jeżeli tak to gdzie był środek obrotu.
Wniosek na dziś:
Wyspy możemy przesuwać, natomiast z ich obrotami to już "nie bardzo".
Imię: And Pomógł: 37 razy Dołączył: 09 Wrz 2008 Posty: 4398 Skąd: Gůrny Ślůnsk
#2 Wysłany: 26 Październik 2009, 14:14
Kopiowanie wysp z innych plansz
Chcę wstawić największą wyspę z "Polowania na krążownik" (hunt) do misji "Ważny ładunek" (PC_Cargo). Z mapy orientuję się, że wyspa ta powinna mieć lokalizację:
properties (Common, Landscape) {
"Coast" {
AlphaTextureFile = S "coast_alpha_line_01.dds" ;
BackExtrude = F 6.0000 ;
"CoastTextureColor" {
A = F 0.8000 ;
B = F 0.9020 ;
G = F 0.2353 ;
R = F 0.8824 ;
}
FrontExtrude = F 6.0000 ;
MaximalSegmentSize = I 50 ;
MinimalEdgeLength = F 5.0000 ;
Tex00 = F 0.6000 ;
Tex01 = F 0.0141 ;
Tex02 = F 132.0000 ;
Tex03 = F 0.0100 ;
Tex04 = F 0.0123 ;
Tex05 = F 113.0000 ;
Tex06 = F 0.0100 ;
Tex07 = F 0.0000 ;
Tex08 = F 0.6000 ;
Tex09 = F 1.2000 ;
Tex10 = F 2.3000 ;
Tex11 = F 0.2000 ;
Tex12 = F 0.4000 ;
Tex13 = F 0.4000 ;
Tex14 = F 0.6000 ;
"WaveTextureColor" {
}
}
FilePath = S "Islands/multiszigetnagy_01" ;
ModelPath = S "models/gui/map/multiszigetnagy_01_terkep.MMOD" ;
ModelPath_PS2 = S "models/gui/map/multiszigetnagy_01_terkep_ps2.MMOD" ;
"ShallowWater" {
Pos = V3 -500.0000 0.0000 -600.0000 ;
Size = F 2500.0000 ;
Texture_PC = S "multiszigetnagy_01_vizszinezes.tga" ;
}
}
Kopiuję cały zaznaczony obszar do pliku docelowego:
1_mc_pc_cargo.mpak / universe / scenes / missions / challenge / PC_cargo.scn
dla uproszczenia dodaję go na koniec, zmieniając nazwę i lokalizację nowozaplanowanej wyspy:
Pozostaje dodać "tylko" tekstury i biblioteki wyspy:
Odszukuję wszystkie pliki zawierające frazę "multiszigetnagy_01" i kopiuję do identycznych katalogów w pliku 1_mc_PC_cargo.mpak.
Wydaje się, że jest to wszystko - pakuję i wrzucam pliki do katalogu z grą:
Efekt zadowalający.
W dole widać przykład, że poszczególne mapy mogą się bezboleśnie nakładać tworząc dużo bardziej skomplikowane kształty całych wysp, archipelagów czy też subkontynentów.
Ostatnio zmieniony przez PL_Andrev 26 Październik 2009, 15:17, w całości zmieniany 2 razy
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum