Plik scenerii
<!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
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,
Dwa
z wymienionych typow, tj. node i event dziela się na
podtypy. Wpis typu node posiada 13 podtypów zaś wpis event
1 Wpis NODE
Typ
NODE definiuje obiekty widoczne (a ogólniej: obiekty które
Obiekty
tego typu mogą być rysowalne lub niewidoczne. Parametry podstawowe
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
|
|
---|---|---|
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
|
|
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.
|
|
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,
|
|
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
TrackType
— połączenie dróg wodnychnormal
(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
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 20DamageFlag
– kombinacja stałych dtrack_* z mover.pas, np 128 oznacza brak szyn 0dla
normal, 2 dla switchEnvironment
– 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ówVisibility
– 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_used1TexLength – 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.texTexHeight
– wysokość rysowanej podsypki (w przypadku zwrotnicy odstęp
iglicy od szyny) 0.2TexWidth
– szerokość rysowanej podsypki od szyny do początku nachylenia
(w przypadku zwrotnicy długość odbojnicy) 0.5TexSlope
– szerokość rysowanej podsypki w obszarze pochylenia (w przypadku zwrotnicy odległość środka odbojnicy od końca rozjazdu)
1.1Point1 – 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 AIEvent0
(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
wjedzie na tor w kierunku punktu końcowego (Point2)(opcjonalny) – zdarzenie które zostanie uruchomione gdy
jakikolwiekdynamicIsolated
(opcjonalny) – nazwa odcinka izolowanego, do którego należy
torOverhead
(opcjonalny) – podać parametr 0, jeśli AI ma przejeżdżać
bezprądowoAngle1 (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
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
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
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
zasilaniaNominalVoltage – 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 1Point1 [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) 2WireOffset
–odstep między przewodami
jezdnymi gdy Wires=3 0.04Visibility – 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
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
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)
Spis treści
- 1 składnia:
- 2 TractionPowerSource (p2) (p3) (p4) (p7) 0 (p8) (p9) 1.0 3 60.0 norecuperation end
- 3 składnia:
- 4 node mindist maxdist name type dir replacableskin chktype dist cabocupancy coupler loadquantity loadtype enddynamic
- 5 Lights
- 6 Animation
- 7 TrackVel
- 8 UpdateValues
- 9 GetValues
- 10 Multiple
- 11 Switch
- 12 Sound
- 13 PutValues
- 14
- 15 Kolory R,G, B mają być z zakresu 0...1.
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
UWAGA
– nazwa tego obiektu informuje program że wszystkie obiekty
typu Traction które mają taką samą nazwę w polu PowerSourceName
NODE::Dynamic
Obiekt poruszający się po torach.
Parametry:
Dir – katalog
bazowy obiektu np.
PKP/EU07ReplacableSkin –
tekstura która zostanie podmieniona (na ogół nadwozie) – patrz
modelType – plik
(bez rozszerzenia .chk) z charakterystyką techniczną obiektu np.
303ETrack (tylko
jeśli nie jest częścią TrainSet) – nazwa toru na którym
ustawiamy obiektDist –
odległość początkowa (w/m pocz. Toru) jeśli jest -1 to pojazd będzie
wstawiony odwrotnieCabOccupancy
– obsługa pojazdu, możliwe wartości: headdriver, reardriver,
nobody, passenger, conductor
Vel
(tylko jeśli NIE JEST częścią TrainSet) –
prędkość początkowaCoupler
– (tylko jeśli JEST częścią TrainSet) –
typ sprzęgu łączącego z poprzednikiemLoadquantity – 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
przykład:
node
-1 0 eamos dynamic pkp\eams_v1 eams3 401zl 0.0 nobody 3 1 sand
Komentarz:
typ sprzęgu definiowany jest jako kombinacja bitowa flag: 1=sprzęg
rzeczywisty, 2=sprzęg pneumatyczny, 4=sprzęg sterowania ukrotnionego
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 podmienionaLights (opcjonalny) – stany świateł obiektu 0-wył, 1-wł, 2-migające
w
modelu trzeba je nazwać Light_On01, Light_Off01, Light_On02,
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
Przykład osadzenia modelu semafora świetlnego z napisem A na tabliczce:
node
–1 0 none model 10 20 4 90 SS5zpcpbY.t3d
Przykład osadzenia modelu latarni zwrotnicowej:
node
-1 0 Testowo_zwr1_Wz model –44.0 0.2 234.5 0.0 WzL.t3d none
NODE::Triangles
Definiuje trojkąt jako element skladowy terenu:
Parametry:
ambient,
tymi 3ma składowymi światładiffuse, specular
– podatność materiału na oświetlenieTexture – 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ą
składnia:
node 1000 0
none triangles material ambient: r g b diffuse: r g b specular: r g b
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
-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
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
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,ZParametry:
Position X,Y,Z: współrzędne wyzwalacza
Radius: maksymalna
odległość obserwatora od obiektu, -1 oznacza brak sprawdzania
odległościKey: kod klawisza (tylko literowe, none= brak reakcji na klawisze)
Time: godzina
wyzwalania w sekundach, zero -brak reakcji czasowejw formacie
hh:mm albo ze znakiem minus: okresowośćEvent1: zdarzenie
wyzwalane przy naciśnięciu klawisza gdy SHIFT nie jest naciśnięty
albo gdy upłynął określony czasEvent2: zdarzenie
wyzwalane przy naciśnięciu klawisza gdy SHIFT jest naciśnięty
opcjonalnie, po słowie conditionMemCell: 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
nieprzetestowaneObjectName – 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
to
zdarzenie będzie miało nazwę
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
|
|
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
|
|
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
event
Testowo_A_sem_anim21 animation 0 Testowo_A rotate Ramie01 0 -45 0 40
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
składnia:
event
eventname updatevalues delay memcell_train3 command value1 value2
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ę
a może wykolejnica?
event
Wk1_1
wykorzystanie komórki pamięciowej do informacji o drodze przebiegu:
event
Testowo_Wjazd1-Zaczynek updatevalues 0.0 Testowo_status1 Wjechal 1
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
Przykłady:
event StatAStatC_szlak getvalues 1.0 StatAStatC_szlak_mem endevent
(z
komórki o nazwie
albo w pliku .inc definiujacym semafor:
event (p1)_sem_info getvalues 1.0 (p1)_sem_mem endevent
(z
komórki o nazwie
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
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 conditionParametry:
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
memcompare
wyzwalane jest gdy zawartości komórki pamięciowej określonej 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
albo zdarzenia warunkowe:
event
przejazd_otwieraj multiple 2.0 tornaprzejezdzie przejazd_1_sygn1
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
wyzwalane
jest jeśli pierwszy parametr komórki pamięciowej Testowo-status jest
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.0node
-1 0 player_train dynamic PKP\EU07 4E 0.0 1 7
node
-1 0 player_train dynamic PKP\EU07 4E 0.0 0 3
node
-1 0 5051-503320-2 dynamic PKP\Bipa Bipa-A 0.0 0 3
node
-1 0 5051-503321-7 dynamic PKP\Bipa Bipa-CD 0.0 0 3
node
-1 0 5051-503322-1 dynamic PKP\Bipa Bipa-CD 0.0 0 3
node
-1 0 5051-503323-5 dynamic PKP\Bipa Bipa-B 0.0 0 0
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
8 Wpis ATMO
Definiuje
kolor tła (R,G,B 0...1) oraz mgłę: początek, koniec, kolory R,G, B
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
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