POLISHSEAMEN Strona Główna POLISHSEAMEN
**** Forum Klanowe PolishSeamen ****

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki

Zaproszenie

 Ogłoszenie 


ZAPRASZAMY NA SERWER GŁOSOWY DISCORD


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

www.forum.polishseamen.pl

Zachęcamy wszystkich do ponownego zarejestrowania się u nas i do czynnego udziału w naszej społeczności.

Przepraszamy za problemy. Pozdrawiamy Administracja PolishSeamen.

Odpowiedz do tematu
Poprzedni temat :: Następny temat
Wyspy i płycizny - teoria
Autor Wiadomość
PL_Andrev 
Konteradmiral






Kraj:
poland

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):
Cytat:
entity "AvoidZone" (Path) {
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 4004.8408 0.0000 1548.4031 1.0000 ;
template "Path" ;

properties (Common, Path) {
Party = E Party : Neutral ;
"PathPoints" {
"Point00" {
Pos = V3 0.0000 0.0000 0.0000 ;
}
"Point01" {
Pos = V3 -5.8792 0.0000 -68.1412 ;
}
"Point02" {
Pos = V3 -49.0332 0.0000 -193.8472 ;
}
"Point03" {
Pos = V3 -149.6365 0.0000 -269.6017 ;
}
"Point04" {
Pos = V3 -306.6946 0.0000 -375.1279 ;
}
"Point05" {
Pos = V3 -718.9984 0.0000 -413.7006 ;
}
"Point06" {
Pos = V3 -921.0975 0.0000 -236.5265 ;
}
"Point07" {
Pos = V3 -976.6299 0.0000 -15.8844 ;
}
"Point08" {
Pos = V3 -855.9838 0.0000 147.3345 ;
}
"Point09" {
Pos = V3 -555.6053 0.0000 251.2803 ;
}
"Point10" {
Pos = V3 -269.4934 0.0000 230.3502 ;
}
"Point11" {
Pos = V3 -29.9968 0.0000 61.0095 ;
}
}
}
}


"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ę.

Przykład: wyzwanie samolotu, misja 1.
Otwieramy misję i odczytujemy przypuszczalną lokalizację wyspy:


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

entity "AvoidZone" (Path) {
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 4004.8408 0.0000 1548.4031 1.0000 ;


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,
Cytat:
entity "Landscape_1" (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 2200.0000 1.0000 ;

entity "AvoidZone_1" (Path) {
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 4004.8408 0.0000 2548.4031 1.0000 ;


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".
 
     
PL_Andrev 
Konteradmiral






Kraj:
poland

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


Po przeanalizowaniu pliku:
1_mc_hunt.mpak / universe / scenes / missions / challenge / hunt.scn znajduję odpowiednią frazę (dla wyspy):
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 -2400.0000 0.0000 3300.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/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:
Cytat:
entity "Landscape_big" (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 -4000.0000 0.0000 4000.0000 1.0000 ;


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  
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
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
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Podobne Tematy
Temat Autor Forum Odpowiedzi Ostatni post
Brak nowych postów Bitwa koło wyspy MAY
PL_Matrose Historia I i II wojny światowej na morzach i oceanach 0 22 Wrzesień 2007, 13:17
PL_Matrose
Brak nowych postów Projektowanie własnych map (wyspy)
PL_Andrev Battlestation Midway - Misje 3 17 Listopad 2009, 19:18
PL_Andrev
Brak nowych postów Zadanie podstawowe np,,patroluj poblize wyspy Honsiu
nie moge trafic
wania Pytania i odpowiedzi 34 9 Sierpień 2018, 06:42
PL_Cmd_Jacek


Powered by phpBB modified by Przemo © 2003 phpBB Group