Plik scenerii

Z MaSzyna
Skocz do: nawigacja, szukaj

OPIS FORMATU PLIKU SCENERII

Opracowanie na podstawie dokumentu scenery.doc autorstwa

Marcina Woźniaka i Macieja Czapkiewicza

Aktualizacja wg stanu na rok 2015



Na zebranych tu informacjach oparte zostały skrypty eksporterów

jaki i importerów scenerii dla środowiska 3DS Max Studio oraz

parser przetwarzajacy dane z plików scenerii wbudowany w programie EU07.EXE

Domyślny plik trasy powinien nazywać się scene.scn, możliwe jest wgranie innego pliku poprzez podanie jego nazwy jako parametr w skrócie lub w konsoli polecen, np.

eu07.exe –s scenery/testowo.scn.


Można również zdefiniować domyślną nazwę scenerii w pliku eu07.ini podajac parametr w kluczu sceneryfile np.:


sceneryfile testowo.scn


Parametry obiektów w scenerii mogą być oddzielane spacjami, przecinkami, średnikami, tabulatorami lub końcami linii, jednak dla lepszej czytelności dla człowieka zaleca się oddzielanie ich wyłącznie spacją.


Przykłady:

include;tree.inc;l61_plants/drzewo1024f;-3947.2;-4.0;2401.17;56.0;8.3;4.2;end

include,tree.inc,l61_plants/drzewo1024f,-3947.2,-4.0,2401.17,56.0,8.3,4.2,end

include tree.inc l61_plants/drzewo1024f -3947.2 -4.0 2401.17 56.0 8.3 4.2 end


W pliku scenerii rozróżniamy 12 typów obiektów, są to:

node, event, include, trainset, rotate, orgin, description, fog, atmo, light, camera, config


Dwa z wymienionych typow, tj. node i event dziela się na podtypy. Wpis typu node posiada 12 podtypów zaś wpis event 8.


1 Wpis node


Typ NODE definiuje obiekty widoczne (a ogólniej: obiekty które bierze pod uwagę funkcja Render).

Obiekty tego typu mogą być rysowalne lub niewidoczne. Parametry podstawowe wspólne dla wszystkich podtypów to:


  • MaxDistance – maksymalna odległość z jakiej obiekt będzie widoczny

  • MinDistance – minimalna odległość z jakiej obiekt będzie widoczny

  • Name – nazwa obiektu, jeśli nie potrzebujemy należy wpisać none

  • Type - rodzaj obiektu


Poniżej tabela opisująca poszczególne podtypy wpisu NODE

<COL WIDTH=102> <COL WIDTH=613> <COL WIDTH=44>

track

Definiuje trajektorię, po której może poruszać się obiekt dynamic. Kształt trajektorii definiujemy za pomocą krzywej Beziera


traction

Definiuje obiekt odcinka drutu sieci trakcyjnej


dynamic

Definiuje obiekt poruszający się po ścieżkach typu track lub road


model

Wstawia obiekt modelu 3d statyczny lub z możliwością animacji


triangles

Definiuje jeden trójkąt składajacy się z trzech wierzchołków jako element składowy terenu


riangle_strip

Definiuje wielokąt jako element składowy terenu


triangle_fan



lines

Definiuje linię – pojedynczy odcinek od punktu A do punktu B


line_strip



line_loop



memcell

Komórka pamięci, nie jest rysowana ale ma współrzędne X, Y, Z, które np. są przekazywane do AI jako pozycja semafora.


eventlauncher

Obiekt wyzwalany naciśnięciem klawisza albo o określonej godzinie lub raz na jakiś czas. Nie jest rysowany ale ma współrzędne X, Y, Z, istotne przy wyzwalaniu klawiszem.




NODE::Track

Definiuje tor, po którym możemy puścić obiekt dynamic. Kształt toru definiujemy za pomocą krzywej Beziera.

Parametry: na zielono wartości domyślne (default) które powinny być w skrypcie tworzącym


  • TrackType normal (tor kolejowy prosty), switch — zwrotnica, table — obrotnica, przesuwnica, wywrotnica, road — droga lądowa, cross — skrzyżowanie dróg (ma dwa odcinki), river — rzeka, kanał, ciek wodny, droga wodna, tributary — połączenie dróg wodnych

  • TrackLength – długość odcinka toru

  • TrackWidth – szerokość toru (potrzebne w wielu sprawach) 1.435

  • Friction – statyczny współczynnik tarcia 0.15 czy ta wielkość jest prawidłowa?

  • SoundDist – co ile metrów będzie odgrywany dźwięk stukotu 20

  • Quality – pierwsze 4 bity – ile ton/oś, pozostałe – rezerwa 20

  • DamageFlag – kombinacja stałych dtrack_* z mover.pas, np 128 oznacza brak szyn 0 dla normal, 2 dla switch

  • Environment – słowo kluczowe oznaczające otoczenie toru: flat, mountains, canyon, tunnel (w zależności od tego będzie się zmieniać oświetlenie i/lub echo dźwięków

  • Visibility – jeśli tor ma być niewidoczny wpisujemy unvis ale normalnie powinno być vis i wtedy należy podać:

  • Tex1 – tekstura szyn (jeśli none to szyny nie są rysowane) Rail_screw_used1

  • TexLength – długość w [m] odpowiadająca teksturze szyny 4.0

  • Tex2 – dla track normal tekstura podsypki z podkładami (gdy none to nie jest automatycznie rysowana) a w przypadku zwrotnicy tekstura szyn drugiego toru (dla zwrotnicy podkłady trzeba zdefiniować jako oddzielny obiekt!) TpD.tex

  • TexHeight – wysokość rysowanej podsypki (w przypadku zwrotnicy odstęp iglicy od szyny) 0.2

  • TexWidth – szerokość rysowanej podsypki od szyny do początku nachylenia (w przypadku zwrotnicy długość odbojnicy) 0.5

  • TexSlope – szerokość rysowanej podsypki w obszarze pochylenia (w przypadku zwrotnicy odległość środka odbojnicy od końca rozjazdu) 1.1

  • Point1 – punkt początkowy toru [x,y,z]

  • Roll1 – przechyłka początku toru [deg]

  • CVec1 – wektor [x,y,z]

  • CVec2 – wektor [x,y,z]

  • Point2 – punkt końcowy toru [x,y,z]

  • Roll2 – przechyłka końca toru [deg]

  • Radius1 – najmniejszy promień toru

  • Point3 – (tylko w przypadku zwrotnicy) punkt początkowy toru [x,y,z]

  • Roll3 – (tylko w przypadku zwrotnicy) przechyłka toru [deg]

  • CVec3 – (tylko w przypadku zwrotnicy) wektor [x,y,z]

  • CVec4 – (tylko w przypadku zwrotnicy) wektor [x,y,z]

  • Point4 – (tylko w przypadku zwrotnicy) punkt końcowy toru [x,y,z]

  • Roll4 – (tylko w przypadku zwrotnicy) przechyłka toru [deg]

  • Radius2 – najmniejszy promień toru (tylko w przypadku zwrotnicy)

  • Velocity (opcjonalny) – prędkość jakiej będzie się starał nie przekroczyć jadący przez ten tor obiekt dynamic jeśli jest sterowany przez AI

  • Event0 (opcjonalny) – zdarzenie zostanie uruchomione gdy obsadzony załogą dynamic stoi na torze.

  • Event1 (opcjonalny) – zdarzenie zostanie uruchomione gdy obsadzony załogą dynamic wjedzie na tor w kierunku punktu początkowego (Point1)

  • Event2 (opcjonalny) – zdarzenie zostanie uruchomione gdy obsadzony załogą dynamic wjedzie na tor w kierunku punktu końcowego (Point2)

  • Eventall0 (opcjonalny) – zdarzenie które zostanie uruchomione gdy jakikolwiek dynamic stoi na torze.

  • Event1 (opcjonalny) – zdarzenie zostanie uruchomione gdy jakikolwiek dynamic wjedzie na tor w kierunku punktu początkowego (Point1)

  • Event2 (opcjonalny) – zdarzenie które zostanie uruchomione gdy jakikolwiek dynamic wjedzie na tor w kierunku punktu końcowego (Point2)

  • Isolated (opcjonalny) – nazwa odcinka izolowanego, do którego należy tor

  • Overhead (opcjonalny) – podać parametr 0, jeśli AI ma przejeżdżać bezprądowo

  • Angle1 (opcjonalny) – ścięcie końca 1 pod innym kątem

  • Angle2 (opcjonalny) – ścięcie końca 2 pod innym kątem

  • Fouling1 (opcjonalny) – wskazanie modelu ukresu od strony 1

  • Fouling2 (opcjonalny) – wskazanie modelu ukresu od strony 2

Jeśli chcemy otrzymać tor prosty należy oba wektory CVec wyzerować oraz dać Radius1=0.

Nazwa toru jest potrzebna tylko gdy chcemy na ten tor jakoś oddziaływać (np. przełożyć zwrotnicę) albo ustawić na nim obiekt dynamic. Zwykły tor nie musi mieć konkretnej nazwy tzn. można go nazwać none.

Przykład toru prostego o nazwie track_sbl02, o długości 100m, z ograniczeniem szlakowym 40km/h:


node -1 0 track_sbl02 track normal 100.0 1.435 20.0 19 4 flat vis

Rail_screw_used1 4.0 TpB-old1.tex 0.2 0.5 1.1

-646.0 0.2 169.0 0.0

0.0 0.0 0.0

0.0 0.0 0.0

-646.0 0.2 69.0 0.0

0

event1 test_sbl02_s1

event2 test_sbl02_s1

velocity 40

endtrack


Przykład anonimowego zakrętu w wykopie

node -1 0 none track normal 100.0 1.435 25.0 20 0 canyon vis

Rail_screw_used1 4.0 TpD.tex 0.3 0.6 0.9

-46.0 0.2 -65.0001 0.0

0.0 0.0 -11.3351

1.28189 0.0 11.2623

-47.9246 0.2 -98.9273 0.0

300.0

endtrack


Przykład zwrotnicy:

node -1 0 Testowo_zwr1 track switch 34.0 1.435 25.0 20 2 flat vis

Rail_screw_used1 4.0 Rail_screw_uNused1 0.2 1.5 2.5

-46.0 0.2 269.0 0 //point 1

0.0 0.0 0.0 //control vector 1

0.0 0.0 0.0 //control vector 2

-46.0 0.2 235.0 0 //point 2

0

-46.0 0.2 269.0 0 //point 1

0.0 0.0 -11.3351 //control vector 1

1.28189 0.0 11.2623 //control vector 2

-47.9246 0.2 235.073 0 //point 2

-100

endtrack



NODE::Traction

Definiuje odcinek drutu sieci trakcyjnej

Parametry: na zielono wartości domyślne (default) które powinny być w skrypcie tworzącym

</BODY> </HTML>