Plik scenerii

Z MaSzyna
Skocz do: nawigacja, szukaj

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1250"><TITLE></TITLE><META NAME="GENERATOR" CONTENT="OpenOffice 4.1.1 (Win32)"><META NAME="AUTHOR" CONTENT="Igor Puchalski"><META NAME="CREATED" CONTENT="20150328;21315390"><META NAME="CHANGEDBY" CONTENT="Igor Puchalski"><META NAME="CHANGED" CONTENT="20150330;18572873"><STYLE TYPE="text/css"><!-- @page { size: 21cm 29.7cm; margin-left: 0.53cm; margin-right: 0.54cm; margin-top: 2cm; margin-bottom: 2cm } P { margin-bottom: 0.21cm } TH P { font-weight: bold; text-align: center } H3 { margin-bottom: 0.11cm; page-break-after: avoid } H3.western { font-family: "Arial", sans-serif; font-size: 13pt; font-weight: bold } H3.cjk { font-size: 13pt; font-weight: bold } H3.ctl { font-family: "Arial", sans-serif; font-size: 13pt; font-weight: bold } PRE.western { font-family: "Courier New", monospace; font-size: 10pt } PRE.cjk { font-family: "NSimSun", monospace; font-size: 10pt } PRE.ctl { font-family: "Courier New", monospace; font-size: 10pt } A:link { color: #000080; so-language: zxx; text-decoration: underline } A:visited { color: #800000; so-language: zxx; text-decoration: underline }

--></STYLE></HEAD><BODY LANG="pl-PL" LINK="#000080" VLINK="#800000" BACKGROUND="qscenerydox_html_m7349981e.png" DIR="LTR">



OPIS FORMATU PLIKU SCENERII

Opracowanie na podstawie dokumentu scenery.doc autorstwa

Marcina Woźniaka i Macieja Czapkiewicza

Aktualizacja wg stanu na rok 2015

Igor Q Puchalsku




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 11 typów obiektów, są to:

node,

event, include, trainset, rotate, orgin,

description, atmo, light, camera, config


Dwa

z wymienionych typow, tj. node i event dziela się na podtypy. Wpis typu node posiada 13 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

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.


sound




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 0dla

    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

    jakikolwiekdynamic stoi na torze.

  • Event1

    (opcjonalny) – zdarzenie zostanie uruchomione gdy jakikolwiekdynamic wjedzie na tor w kierunku punktu początkowego

    (Point1)

  • Event2

    (opcjonalny) – zdarzenie które zostanie uruchomione gdy jakikolwiekdynamic

    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 są w skrypcie tworzącym


  • PowerSourceName

    – nazwa źródła zasilania, tak sama dla każdego odcinka

    zasilania

  • NominalVoltage – napięcie w sieci trakcyjnej bez obciążenia 3500

  • MaxCurrent – prąd przy którym napięcie w sieci spadłoby o połowę 4500

  • Resistivity

    – rezystancja styku ślizgacz-przewód 0.01

  • Material – z czego zrobiony jest drut [Cu, Al] Cu

  • WireThickness – grubość drutu w mm 3

  • DamageFlag

    – flaga bitowa uszkodzeń, 1 oznacza patynę, 128 oznacza

    zerwanie 1

  • Point1 [x,y,z] – punkt początkowy dolnego przewodu (jezdnego)

  • Point2 [x,y,z] – punkt końcowy dolnego przewodu (jezdnego)

  • Point3 [x,y,z] – punkt początkowy górnego przewodu (nośnego)

  • Point4 [x,y,z] – punkt końcowy górnego przewodu (nośnego)

  • Hmin – najniższa wysokość górnego przewodu nad dolnym 0.4

  • DeltaL – odstęp pomiędzy kolejnymi wieszakami

  • Wires

    ilość przewodów (0,1,2,3 a w

    przyszłości 4) 2

  • WireOffset

    odstep między przewodami

    jezdnymi gdy Wires=3 0.04

  • Visibility – jeśli trakcja ma być niewidoczna, wpisujemy unvis vis

  • CurrentEvent

    (opcjonalny) – zdarzenie które zostanie uruchomione gdy

    dynamic pobiera prąd z sieci.



Przykład:

include tra/sb165-3d.inc tra/betonrelief1 -2.313 5.8 100.247 0 end

node -1 0 none traction pwr01 3500 4500 0.01 cu 3.0 1

0.687223 5.8 100.247

0.087223 5.8 170.247

0.687223 7.5 100.247

0.087223 7.5 170.247

0.4 4.0 3 0.04 vis

endtraction

    (skrypt

    oblicza P3 i P4 dodając do P1 i P2 zmienne h1 i h2 czyli wysokości

    zaczepu górnego nad dolnym, defaultowo wynoszą one 1.65 m)

Uwaga

– słupy/wysięgniki są odrębnymi obiektami (skrypt 3dsmax umożliwia dołączanie słupów .inc do każdego wezła linii typu

Traction)



NODE::TractionPowerSource

Definiuje zasilacz trakcji elektrycznej

Parametry:

  • Origin [x,y,z] – położenie źródła prądu

  • NominalVoltage – napięcie w sieci trakcyjnej bez obciążenia

  • VoltageFrequency – częstotliwość prądu (0 dla stałego)

  • InternalRes – rezystancja wewnętrzna podstacji

  • MaxOutputCurrent – prąd przy którym uruchamia się bezpiecznik nadmiarowy szybki

  • FastFuseTimeOut – czas po którym obwód się uruchamia ponownie po przeciążeniu

  • FastFuseRepetition – ilość prób wznowienia pracy obwodu

  • SlowFuseTimeOut –

    czas po jakim zostanie uruchomiony obwód jeśli zostanie przekroczona

    ilość wznowień (załączeń bezpiecznika szybkiego)

  • Recuperation

    – czy jest odzysk prądu z sieci (jeśli nie to dać

    NoRecuperation)


składnia:

TractionPowerSource (p2) (p3) (p4) (p7) 0 (p8) (p9) 1.0 3 60.0 norecuperation end

przykład:

node

-1 0 pwr01 tractionpowersource 0 0 0 3400 0 0.01 2000 1.0 3 60.0

section end


UWAGA

– nazwa tego obiektu informuje program że wszystkie obiekty typu Traction które mają taką samą nazwę w polu PowerSourceName

należą do tego samego odcinka zasilania.


NODE::Dynamic

Obiekt poruszający się po torach.

Parametry:

  • Dir – katalog

    bazowy obiektu np.

    PKP/EU07

  • ReplacableSkin –

    tekstura która zostanie podmieniona (na ogół nadwozie) – patrz

    model

  • Type – plik

    (bez rozszerzenia .chk) z charakterystyką techniczną obiektu np.

    303E

  • Track (tylko

    jeśli nie jest częścią TrainSet) – nazwa toru na którym

    ustawiamy obiekt

  • Dist –

    odległość początkowa (w/m pocz. Toru) jeśli jest -1 to pojazd będzie

    wstawiony odwrotnie

  • CabOccupancy

    – obsługa pojazdu, możliwe wartości: headdriver, reardriver,

    nobody, passenger, conductor

  • Vel

    (tylko jeśli NIE JEST częścią TrainSet) –

    prędkość początkowa

  • Coupler

    – (tylko jeśli JEST częścią TrainSet) –

    typ sprzęgu łączącego z poprzednikiem

  • Loadquantity – ilość ładunku

  • LoadType – nazwa ładunku – TYLKO gdy Loadquantity > 0


składnia:

node

mindist maxdist name type dir replacableskin chktype dist cabocupancy

coupler loadquantity loadtype enddynamic

przykład:

node

-1 0 505126-08109-8 dynamic pkp\bdhpumn_v2 505126-08109-8 bdhpumn 0.0

nobody 0 0 enddynamic

przykład:

node

-1 0 eamos dynamic pkp\eams_v1 eams3 401zl 0.0 nobody 3 1 sand

enddynamic


Komentarz:

typ sprzęgu definiowany jest jako kombinacja bitowa flag: 1=sprzęg rzeczywisty, 2=sprzęg pneumatyczny, 4=sprzęg sterowania ukrotnionego

itp. Zero oznacza brak fizycznego połączenia.



NODE::Model

Wstawia model nieruchomy ale z możliwością animacji, np. semafor.

Parametry:

  • Position – pozycja [x,y,z]

  • Angle – kąt [deg]

  • Model – model obiektu

  • texture

    – jeśli w modelu istnieje tekstura o takiej nazwie to zostanie

    ona podmieniona

  • Lights (opcjonalny) – stany świateł obiektu 0-wył, 1-wł, 2-migające

w

modelu trzeba je nazwać Light_On01, Light_Off01, Light_On02,

Light_Off02 itd.

Light_On01 to światło włączone, Light_Off01 to wyłączone

składnia:

node –1 0 none model pos.x pos.y pos.z angle model texture

lights 0 0 1 0 0 0 endmodel


Przykład osadzenia modelu semafora świetlnego z napisem A na tabliczce:

node

–1 0 none model 10 20 4 90 SS5zpcpbY.t3d A

Lights 0 0 1 0 0 0 endmodel

Przykład osadzenia modelu latarni zwrotnicowej:

node

-1 0 Testowo_zwr1_Wz model –44.0 0.2 234.5 0.0 WzL.t3d none

endmodel



NODE::Triangles

Definiuje trojkąt jako element skladowy terenu:

Parametry:

  • ambient,

    diffuse, specular – podatność materiału na oświetlenie

    tymi 3ma składowymi światła

  • Texture – nazwa pliku z tekstura obiektu

  • Vertices – lista

    wierzchołków w formacie [x,y,z,nx,ny,nz,tu,tv], ich ilość musi być

    podzielna przez 3


x, y, z – współrzędne wierzchołka

nx, ny, nz – wektor normalny do płaszczyzny o długości 1

tu, tv – współrzędne tekstury w danym wierzchołku


info:

materiał błyszczący powinien mieć wysoką składową specular, ściany tunelu powinny mieć wysoką składową ambient i bardzo niskie diffuse i specular

aby światło słoneczne na nie nie padało, itp


składnia:

node 1000 0 none triangles material ambient: r g b diffuse: r g b specular: r g b

endmaterial texture

x y z nx ny nz tu tv end

x y z nx ny nz tu tv end

x y z nx ny nz tu tv

endtri


Przykład trójkąta, który będzie widoczny z odległości mniejszej niż 1km, z teksturą grass:

node

1000 0 none triangles material ambient: 100 100 100 diffuse: 255 255

255 specular: 200 200 200 endmaterial grass

-51.4 0.2 0.0 -1.1094 1.6641 0.0 0.15 0.0 end

-51.4 0.2 100.0 -0.554701 0.83205 0.0 0.15 25.0 end

-48.6 0.2 0.0 0.0 2.0 0.0 0.85 0.0

endtri




NODE::Triangle_Strip

Definiuje wielokąt:

Parametry:

  • Texture – nazwa pliku z tekstura obiektu

  • Vertices – lista

    wierzchołków w formacie [x,y,z,nx,ny,nz,tu,tv]


NODE::Triangle_Fan

Definiuje wielokąt:

Parametry:

  • Texture – nazwa pliku z tekstura obiektu

  • Vertices – lista

    wierzchołków w formacie [x,y,z,nx,ny,nz,tu,tv]


NODE::Lines

Definiuje listę linii:

Parametry:

  • Color – [r,g,b]

  • Thickness – grubość linii

  • Points – lista wierzchołków w formacie [x,y,z], ich ilość musi być podzielna przez 2


Jeśli

grubość linii (liczona w pierwszym wierzchołku) odwzorowana na ekran jest mniejsza niż jeden piksel to linia rysowana jest jako częściowo przeźroczysta (chyba że przeźroczystość jst mniejsza niż 4%, wtedy w

ogóle nie rysuje).


Przykład czarnych linii o grubości 3mm:

node 300 0 none lines 0 0 0 3

-638.0 0.0 -89.0 -638.0 1.7 -89.0

-638.0 1.7 -89.0 -630.5 1.5 -86.0

endline


NODE::Line_Strip

Definiuje łamaną:

Parametry:

  • Color – [r,g,b]

  • Points – lista wierzchołków w formacie [x,y,z]

Przykład zielonej łamanej o grubości 1mm:

node 300 0 none lines 0 255 0 1

-638.0 0.0 -89.0

-638.0 1.7 -89.0

-630.5 1.5 -86.0

endline


NODE::Line_Loop

Definiuje łamaną zamkniętą:

Parametry:

  • Color – [r,g,b]

  • Points – lista wierzchołków w formacie [x,y,z]

Przykład niebieskozielonej linii zamkniętej nigdy nie przeźroczystej:

node 300 0 none lines 0 255 128 -1

-638.0 0.0 -89.0

-638.0 1.7 -89.0

-630.5 1.5 -86.0

endline


NODE::MemCell

Komórka pamięci, nie jest rysowana ale ma współrzędne X,Y,Z

Parametry:

  • Position X,Y,Z: współrzędne komórki pamięci

  • Command: początkowa wartość parametru (informacji) tekstowego

  • Value1: początkowa wartość parametru liczbowego

  • Value2: początkowa wartość drugiego parametru liczbowego

  • TrackName: nazwa toru

    na który oddziałowywuje w przypadku zmiany parametrów (można dać

    none)


Przykład:

node

-1 0 memcell_train3 memcell 1.0 1.0 1.0 Wait_for_orders 0 0

StatAStatC_trk415 endmemcell


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

Parametry:

  • Position X,Y,Z: współrzędne wyzwalacza

  • Radius: maksymalna

    odległość obserwatora od obiektu, -1 oznacza brak sprawdzania

    odległości

  • Key: kod klawisza (tylko literowe, none= brak reakcji na klawisze)

  • Time: godzina

    w formacie hh:mm albo ze znakiem minus: okresowość

    wyzwalania w sekundach, zero -brak reakcji czasowej

  • Event1: zdarzenie

    wyzwalane przy naciśnięciu klawisza gdy SHIFT nie jest naciśnięty

    albo gdy upłynął określony czas

  • Event2: zdarzenie

    wyzwalane przy naciśnięciu klawisza gdy SHIFT jest naciśnięty

    opcjonalnie, po słowie condition

  • MemCell: nazwa komórki pamięciowej

  • Parameters –

    String, Val1, Val2 – wartości którym się muszą równać wartości komórki pamięciowej żeby zdarzenia zostały wysłane do

    kolejkowania


Przykład z pliku scenery/ zwrL34R300M.inc:

//sterowanie zwrotnica za pomoca klawiszy t,t

node -1 0 (p1) eventlauncher (p2) (p3) (p4) 3.0 t 0 (p1)+ (p1)- end


NODE::Sound

Definiuje dzwiek umieszczony w okreslonej pozycji

przykład:

node 400 0 kierpoc4_wav sound -12320.0 1.5 29468.0 rp14_22.wav endsound



2 Wpis EVENT

Definiuje zdarzenia które służą do

sterowania obiektami, np. zmienić sygnał na semaforze czy przełożyć

zwrotnice.

Parametry:

  • Name – nazwa zdarzenia

  • EventType – typ zdarzenia

  • Delay

    – opóźnienie przy uruchamianiu zdarzenia może byc ujemne, wtedy wywoływane jest cyklicznie, ale to jest

    nieprzetestowane

  • ObjectName – nazwa obiektu do którego odnosi się zdarzenie

  • dodatkowe parametry zależne od EventType:


Część nazwy może być parametrem, np.

event;(P1)_sem_anim12 animation 0 kszt2.t3d rotate Ramie01 0 45 0 80 endevent

oznacza,

jeśli taka deklaracja jest w pliku semkszt2.inc, że jak damy w scenerii wywołanie semkszt2

Raba_A

to

zdarzenie będzie miało nazwę Raba_A_sem_anim11.


Rozróżnia się 9 typów zdarzeń:

Lights

Zmienia światła w danym przez ObjectName modelu


Animation

dokonuje

rotacji lub translacji fragmentu modelu, nazwa modelu jest w

ObjectName


TrackVel

Zmienia przypisaną prędkość do toru.


UpdateValues

Ładuje informacje do komórki pamięci.


GetValues

Pobiera informacje z komórki pamięci i wysyła do obiektu dynamic.


Multiple

Pozwala wywołać więcej zdarzeń.


Switch

Zmienia przełożenie zwrotnicy.


Sound

Odtwarza dźwięk z pliku .wav o nazwie określonej jako ObjectName


PutValues

Wysyła

statyczne informacje do obiektu dynamic (z pominięciem

komórki pamięci)



EVENT::Lights

Zmienia światła w danym przez ObjectName modelu

Parametry:

  • eventname – nazwa zdarzenia

  • delay – opóźnienie wykonania

  • objname – nazwa node'a który ma swiatla

  • Lights – stany świateł obiektu 0-wył, 1-wł, 2-migające

składnia:

event eventname lights delay objname 2 0 0 1 0 endevent

przykład:

event sem10_light11 lights 0.0 sem10 2 0 0 1 0 endevent


EVENT::Animation

dokonuje rotacji lub translacji fragmentu modelu, nazwa modelu jest w ObjectName

Parametry:

  • AnimationType – rodzaj animacji: rotate/translate

  • SubModel – nazwa fragmentu modelu podlegającego animacji

  • X, Y, Z – wartości kątów lub przesunięć

  • AnimationSpeed – prędkość animacji

przykład:

jeśli model jest osadzony (patrz 1.1.3) w ten sposób:

node -1 0 Testowo_A model 100.0 0.2 20.0 180 sem_kszt2.t3d endmodel

i

jego fragment nazwany jest Ramie01 to rotacja tego

ramienia o 45deg wokół osi Y z prędkością 40deg/s definiuje się:

event

Testowo_A_sem_anim21 animation 0 Testowo_A rotate Ramie01 0 -45 0 40

endevent

EVENT::TrackVel

Parametry:

  • eventname – nazwa zdarzenia.

  • Delay – opóźnienie wykonania

  • TrackName – tor ktoremu zostanie ustawiona predkość

  • Velocity – prędkość która

    zostanie przypisana do toru.


składnia:

event eventname trackvel delay trackname velocity endevent

przykład:

event zwr_1_wbok trackvel 0.0 t_zwr_1 40.0 endevent


EVENT::UpdateValues

Ładuje informacje do komórki pamięci.

Parametry:

  • eventname – nazwa zdarzenia

  • Delay – opóźnienie wykonania

  • Command – łańcuch znaków

  • Value1 – jakaś liczba

  • Value2 – jakaś druga liczba

Uwaga

– jeśli któryś z 3 powyższych parametrów jest * to dany parametr komórki pamięciowej nie zostanie uaktualniony (można

selektywnie uaktualniać)


składnia:

event

eventname updatevalues delay memcell_train3 command value1 value2

endevent

Przykłady:

event start3b updatevalues 30.0 memcell_train3 SetVelocity 50 -1 endevent

(po 30 sekundach wpisze komendę SetVelocity(50,-1) do komórki memcell_train3)

albo w pliku .inc:

event (p1)_sem_info_shunt2 updatevalues 1.0 (p1)_sem_mem ShuntVelocity 40 0

(po 1 sekundzie wpisze

komendę ShuntVelocity(40,0) do komórki o nazwie (p1)_sem_mem gdzie P1 jest nazwą semafora

definiowaną na zewnątrz pliku .inc

a może wykolejnica?

event

Wk1_1 updatevalues 0

Wk1_status DamageFlag 128 1 endevent

wykorzystanie komórki pamięciowej do informacji o drodze przebiegu:

event

Testowo_Wjazd1-Zaczynek updatevalues 0.0 Testowo_status1 Wjechal 1 *

endevent


EVENT::GetValues

Pobiera informacje z komórki pamięci i wysyła do obiektu dynamic.

ObjectName w tym przypadku to nazwa komórki pamięci.

Parametry Command, Value1, Value2 oraz

współrzędne komórki pamięci X,Y,Z są przekazywane obiektowi który

wywołuje zdarzenie GetValues

Przykłady:

event StatAStatC_szlak getvalues 1.0 StatAStatC_szlak_mem endevent

(z

komórki o nazwie StatAStatC_szlak_mem wysyłana jest jej zawartość do obiektu który wjechał na tor w którym była deklaracja event1

StatAStatC_szlak


albo w pliku .inc definiujacym semafor:

event (p1)_sem_info getvalues 1.0 (p1)_sem_mem endevent

(z

komórki o nazwie (p1)_sem_mem

wysyła informacje o aktualnej prędkości tego semafora)


EVENT::PutValues

Wysyła statyczne informacje do obiektu dynamic (z pominięciem komórki pamięci)

Przykłady:

event

odpalciecia putvalues 10.0 none 0.1 0.1 0.1 Jump_to_order 0 0

endevent

W9-start.inc

W9-stop.inc itp




EVENT::Multiple

Pozwala wywołać więcej zdarzeń.

ObjectName jest na ogół nieużywane, chyba że na końcu listy zdarzeń

będzie parametr condition

Parametry:

  • Events – lista zdarzeń do wywołania

opcjonalnie po słowie kluczowym condition:

  • ConditionType – typ warunku:

trackoccupied trackfree propability memcompare

dwa

pierwsze: wyzwalane są gdy tor określony w ObjectName jest zajęty lub wolny, propability wyzwalane jest jeśli wylosowana liczba jest

mniejsza niz parametr z zakresu 0...1,

memcompare

wyzwalane jest gdy zawartości komórki pamięciowej określonej w

ObjectName równe są podanej liście parametrów:

  • Parameters – String, Val1,

    Val2 (tylko w przypadku memcompare – wszystkie 3 wartości muszą być równe wartościom komórki pamięciowej, chyba że

    któreś z nich jest *)


Przykład:

event semA_S13 multiple 0 none semA_light13 semA_S13setendevent

(wywołuje

dwa zdarzenia, jedno ustawia światła na semaforze, drugie definiuje

jego prędkość)


albo zdarzenia warunkowe:

event

przejazd_otwieraj multiple 2.0 tornaprzejezdzie przejazd_1_sygn1

przejazd_1_sygn2 condition trackfree

wyzwalane jest gdy tor o nazwie tornaprzejezdzie jest wolny;


event

Zaczynek-Testowo1 multiple 3.0 Testowo-status Testowo-Zatwierdz Testowo-zwr1+ Testowo_ToA_os2 Testowo_A_S5 Testowo_D_S1 condition

memcompare Rozwiazany * *

wyzwalane

jest jeśli pierwszy parametr komórki pamięciowej Testowo-status jest

słowem Rozwiazany


EVENT::Switch

Parametry:

  • delay – opoznienie wykonania

  • switchname - Nazwa zwrotnicy

  • State – stan na który należy przełączyć zwrotnice 0 lub 1


składnia:

event eventname switch delay switchname state endevent

przykład:

event Testowo_zwr1+ switch 0.0 Testowo_zwr1 1 endevent


EVENT::Sound

Odtwarza dźwięk z pliku .wav o nazwie określonej jako ObjectName

Parametry:

  • Attenuation

    – odległość połowicznego zaniku natężenia dźwięku (-1 - brak

    zależności natężenia od odległości obserwatora od źródła, np. radio)

  • SndNode – nazwa obiektu NODE

  • X,Y,Z – położenie dźwięku

  • PlayStatus

    – czy dźwięk ma być wyłączony (0) czy włączony (1) (-1

    oznacza brak zaniku, np. radio)

składnia:

event name sound attenuation sndnode playstatus endevent

przykład:

event kierpoc2 sound 1.0 kierpoc2_wav 1 endevent

przykład definicji dzwieku wywolywanego przez ten event w opisie NODE::Sound


3 Wpis TRAINSET

Służy do ustawiania składów. Patrz też: NODE::Dynamic.

Parametry:

  • TrainName

    – nazwa pociągu (taka sama jak nazwa pliku *.txt z rozkładem

    jazdy)

  • Track – nazwa toru na którym ustawiamy skład

  • Dist – odległość początkowa

  • Vel – prędkość początkowa


składnia:

trainset trainname track dist vel

przykład pociągu ciągniętego przez dwie EU07 w trakcji ukrotnionej:

trainset

PE2307

StatB_track03 170.0 0.0

node

-1 0 player_train dynamic PKP\EU07 4E 0.0 1 7 0

enddynamic

node

-1 0 player_train dynamic PKP\EU07 4E 0.0 0 3 0

enddynamic

node

-1 0 5051-503320-2 dynamic PKP\Bipa Bipa-A 0.0 0 3 10 Passengers

enddynamic

node

-1 0 5051-503321-7 dynamic PKP\Bipa Bipa-CD 0.0 0 3 25 Passengers

enddynamic

node

-1 0 5051-503322-1 dynamic PKP\Bipa Bipa-CD 0.0 0 3 8 Passengers

enddynamic

node

-1 0 5051-503323-5 dynamic PKP\Bipa Bipa-B 0.0 0 0 9 Passengers

enddynamic

endtrainset



4 Wpis INCLUDE

Dołącza plik z opcjonalnymi parametrami

Parametry:

  • FileName – nazwa pliku do dołączenia

  • Parameters – lista parametrów

Ciągi znaków (p1), (p2),

(p3) ... w pliku dołączanym zostanie zastąpiony odpowiednimi

parametrami.


Składnia:

przykład:

include drzewo.inc Pine1.tga 42.0 0.0 5.0 45 5 2 end


Plik drzewo.inc wygląda tak:

//---------------drzewo---------------

//param: tekstura, x, y, z, kat, wysokosc, rozpietosc

origin (p2) (p3) (p4)

rotate 0 (p5) 0


node 500 0 none triangle_strip (p1)

0,0,(p7) 0,0,0 1,1 end

0,(p6),(p7) 0,0,0 1,0 end

0,0,-(p7) 0,0,0 0,1 end

0,(p6),-(p7) 0,0,0 0,0 end

0,0,(p7) 0,0,0 1,1 end

0,(p6),(p7) 0,0,0 1,0

endtri


node 500 0 none triangle_strip (p7)

-(p7),0,0 0,0,0 1,1 end

-(p7),(p6),0 0,0,0 1,0 end

(p7),0,0 0,0,0 0,1 end

(p7),(p6),0 0,0,0 0,0 end

-(p7),0,0 0,0,0 1,1 end

-(p7),(p6),0 0,0,0 1,0

endtri


rotate 0 0 0

endorigin



5 Wpis ORIGIN

Przesuwa obiekty o wektor, przykład powyżej.


6 Wpis ROTATE

Obraca obiekty o zadane kąty, przykład powyżej.


7 Wpis DESCRIPTION

Opis

scenerii, tekst pomiędzy Description a EndDescription jest ignorowany przez program eu07.exe, ale przydatny dla innych programów typu

loader scenerii itp.


8 Wpis ATMO

Definiuje

kolor tła (R,G,B 0...1) oraz mgłę: początek, koniec, kolory R,G, B

mgły.

przykład:

atmo 0.5 0.6 1.0 300 1200 0.7 0.8 1.0 endatmo

Kolory R,G, B mają być z zakresu 0...1.


9 Wpis LIGHT

Definiuje

pozycję XYZ oraz kolor RGB <0;1> składowej ambient (rozproszone), diffuse (kierunkowe) i specular (zajączki) światła

dziennego.

przykład:

<FONT COLOR="#eeeeee"><FONT SIZE=2 STYLE="font-size: 9pt">light –500 500 200   0.5 0.45 0.45   0.50 0.55 0.54   0.95 0.94 0.90  endlight</FONT></FONT>

Pierwsze 3 liczby określają kierunek padania światła. Wektor ten zawsze jest przeliczany na jednostkowy, dlatego nie ma znaczenia, czy będzie –500 500 200, czy –5 5 2. Kolejne liczby są składowymi RGB składowych światła.

We wcześniejszych wersjach EXE definiowane były dwa światła

ambient, co powodowało, że znaczenie światła diffuse (tworzącego cienie) było niewielkie. Ponieważ po wyłączeniu jednego światła ambient robiło się zbyt ciemno, dla zachowania zgodności wstecz został wprowadzony parametr doubleambient yes. Docelowo należy używać doubleambient no i przy takim ustawieniu testować wpisy światła, a także jasność modeli i tekstur.


10 Wpis CAMERA

Definiuje pozycję kamery w przypadku trybu freefly, parametry: X,Y,Z,


11 Wpis CONFIG

Pozwala

na wpisanie pomiędzy config a endconfig dodatkowych parametrów konfiguracji (specyficznych dla scenerii), podobnie jak w <A HREF="http://rainsted.com/pl/Symulator/MaSzyna/EU07.INI">EU07.INI</A>. Nie wszystkie parametry dadzą się ustawić na tym etapie, np. nie da

się zmienić rozmiaru okna, czy nazwy wczytywanej scenerii.

</BODY></HTML>