Plik scenerii
Plik scenerii jest plikiem tekstowym, zawierającym definicje obiektów, zdarzeń, pojazdów znajdujących się w scenerii. Aby plik scenerii mógł zostać uruchomiony przez symulator, należy umieścić go bezpośrednio w folderze scenery. Scenerię można uruchomić za pomocą startera, wiersza poleceń lub bezpośrednio przez plik wykonywalny symulatora.
- Komenda wiersza poleceń, uruchamiająca scenerię scene.scn:
eu07.exe –s scenery/scene.scn
- Wpis w eu07.ini, powodujący uruchomienie scene.scn przez plik wykonywalny
sceneryfile scene.scn
Spis treści
Rodzaje plików składowych scenerii
Poniższe rodzaje plików nie różnią się składnią, a jedynie pomagają zachować ład w plikach wchodzących w skład scenerii.
- SCN - główny plik scenerii, zawiera zazwyczaj definicje składów i polecenia include, dołączające obiekty z innego pliku do scenerii.
- SCM - plik z elementami składowymi scenerii. Zazwyczaj używa się tych plików do podziału obiektów scenerii na tory, drogi, drzewa, wskaźniki...
- CTR - plik ze zdarzeniami tworzącymi scenariusz
- INC - plik pozwalający na wstawienie obiektu z parametrami (tekstura wymienna, rotacja w 3 osiach)
Rodzaje wpisów
Parametry obiektów w scenerii mogą być oddzielane
- spacjami,
- przecinkami,
- średnikami,
- tabulatorami
- końcami linii.
Jednak dla lepszej czytelności dla człowieka zaleca się oddzielanie ich wyłącznie spacją.
node
Definiuje obiekty różnych typów. Każdy wpis node zaczyna się od preambuły:
node max_distance min_distance nazwa typ
- max_distance - liczba określająca maksymalną odległość, z jakiej obiekt jest widoczny (-1 oznacza brak ograniczenia widoczności).
- min_distance - liczba określająca minimalną odległość, z jakiej obiekt jest widoczny.
- nazwa - nazwa obiektu, służy do identyfikacji konkretnego obiektu w scenerii, np. przy wstawianiu składu na tor.
- typ - typ obiektu. Dostępne typy opisane są poniżej.
dynamic
Wstawia do scenerii pojazd.
node -1 0 none dynamic folder tekstura fizyka tor odleglosc obsada predkosc sprzeg ilosc_ladunku ladunek destination miejsce_docelowe enddynamic
- folder - ścieżka do katalogu zawierającego model pojazdu do wstawienia, relatywna względem folderu dynamic.
- tekstura - plik tekstury z katalogu folder, którym ma być oteksturowany model (bez rozszerzenia).
- fizyka - plik charakterystyki z katalogu folder (bez rozszerzenia). Określa jaki model pojazdu zostanie użyty (np. 303E).
- tor - tylko jeśli wpis nie jest częścią trainset. Należy wpisać nazwę obiektu node::track, na którym ma stanąć pojazd.
- odleglosc - tylko jeśli wpis nie jest częścią trainset. Należy podać odległość pojazdu od punktu 1 obiektu node::track [m].
- obsada - stan obsadzenia pojazdu. Dostępne typy:
- headdriver - obsada w kabinie nr 1.
- reardriver - obsada w kabinie nr 2.
- nobody - brak obsady.
- passenger - jazda w wagonie jako pasażer. Uwaga! Nie każdy wagon posiada taką możliwość!
- connected
- predkosc - tylko jeśli wpis nie jest częścią trainset. Określa prędkość początkową pojazdu [km/h].
- sprzęg - tylko jeśli wpis JEST częścią trainset. Określa flagę sprzęgu łączącego z następnikiem.
- 1 - hak
- 2 - przewód hamulcowy
- 4 - przewód ukrotnienia
- 8 - przewód wysokiego napięcia
- 16 - mostek przejściowy
- 32 - przewód powietrzny 8 atmosfer
- 64 - przewód ogrzewania
- 128 - blokada
Aby otrzymać liczbę reprezentującą określony sposób sprzęgnięcia, należy zsumować liczby symbolizujące podłączenie interesujących nas elementów. Dla przykładu, aby otrzymać liczbę oznaczającą podłączenie haka, przewodu hamulcowego i ogrzewania dodajemy do siebie liczby 1 (podpięty hak), 2 (podpięty przewód hamulcowy) i 64 (podpięty przewód ogrzewania). Daje to liczbę 67.
- ilosc_ladunku - ilość ładunku w pojeździe. [jednostka zależna od wpisu w pliku charakterystyki]
- ladunek - tylko jeśli ilosc_ladunku > 0. Określa nazwę ładunku.
- miejsce_docelowe - dla wagonów jest to stacja docelowa. Informacja taka umożliwi wykonywanie automatycznych manewrów przez AI (łączenie i rozłączanie składów, obsługa górki rozrządowej). Jeśli nie zostanie to wyszczególnione we wpisie, miejsce docelowe zostanie określone po przypisaniu rozkładu jazdy.
eventlauncher
Definiuje wyzwalacz zdarzeń.
lines
Definiuje linię.
node -1 0 none lines kolor grubosc px py pz kx ky kz ... endlines
- kolor - 3 liczby z zakresu <0-255> (RGB) opisujące kolor linii.
- grubosc - grubość linii [mm].
- px py pz kx ky kz - współrzędne początku i końca linii w przestrzeni 3D. Może wystąpić ich dowolna parzysta ilość.
line_strip
Definiuje linię łamaną.
node -1 0 none line_strip kolor grubosc x y z ... endlines
- kolor - 3 liczby z zakresu <0-255> (RGB) opisujące kolor linii.
- grubosc - grubość linii [mm].
- x y z - współrzędne linii w przestrzeni 3D. Może wystąpić ich dowolna ilość.
line_loop
Definiuje linię łamaną zamkniętą.
node -1 0 none line_loop kolor grubosc x y z ... endlines
- kolor - 3 liczby z zakresu <0-255> (RGB) opisujące kolor linii.
- grubosc - grubość linii [mm].
- x y z - współrzędne linii w przestrzeni 3D. Może wystąpić ich dowolna ilość.
memcell
Definiuje komórkę pamięci.
model
Wstawia do scenerii model w formacie t3d.
node -1 0 none model x y z rz plik_modelu tekstura_wymienna lights stany_swiatel endmodel
- x, y, z - współrzędne modelu w przestrzeni 3D.
- rz - rotacja w osi Z.
- plik_modelu - ścieżka do modelu w formacie T3D, relatywna względem folderu models.
- tekstura_wymienna - ścieżka do tekstury, którą ma być oteksturowany submodel ze zdefiniowaną teksturą wymienną. Ścieżka relatywna względem folderu textures.
- stany_swiatel - w zależności od ilości zdefiniowanych świateł w modelu, znaleźć tu się muszą liczby opisujące ich stan:
- 0 - zgaszone
- 1 - zapalone
- 2 - pulsujące
- 3 - zapalone tylko w nocy
W przypadku braku zdefiniowanych świateł, należy pominąć słowo kluczowe lights.
track
Definiuje odcinek trajektorii ruchu: drogi, tory, rzeki...
traction
Definiuje odcinek drutu sieci trakcyjnej.
node -1 0 none traction zrodlo_zasilania napiecie napiecie_max opor material grubosc uszkodzenia p1x p1y p1z p2x p2y p2z p3x p3y p3z p4x p4y p4z wysokosc_min odstep_wieszakow ilosc_przewodow odstep_przewodow widocznosc zdarzenie endtraction
- zrodlo_zasilania - nazwa obiektu node::tractionpowersource, który ma zasilać ten odcinek sieci.
- napiecie - napięcie sieci trakcyjnej bez obciążenia.
- napiecie_max - prąd przy którym napięcie w sieci spadłoby o połowę.
- opor - rezystancja styku ślizgacz-przewód.
- material - materiał, z jakiego wykonany jest drut:
- Cu - miedź
- Al - aluminium
- grubosc - grubość drutu [mm].
- uszkodzenia - flaga bitowa uszkodzeń:
- 1 - patyna
- 128 - zerwanie
- p1x, p1y, p1z - współrzędne punktu będącego początkiem przewodu jezdnego.
- p2x, p2y, p2z - współrzędne punktu będącego końcem przewodu jezdnego.
- p3x, p3y, p3z - współrzędne punktu będącego początkiem przewodu nośnego.
- p4x, p4y, p4z - współrzędne punktu będącego końcem przewodu nośnego.
- wysokosc_min - najniższa wysokość górnego przewodu nad dolnym.
- odstep_wieszakow - odstęp pomiędzy kolejnymi wieszakami.
- ilosc_przewodow - ilość przewodów jezdnych (0,1,2,3).
- odstep_przewodow - odstęp między przewodami jezdnymi gdy ilosc_przewodow = 3.
- widocznosc - widoczność trakcji:
- unvis/novis - niewidoczna
- vis - widoczna
- zdarzenie - opcjonalne zdarzenie event, które zostanie uruchomione gdy node::dynamic pobiera prąd z sieci.
tractionpowersource
Definiuje źródło zasilania sieci trakcyjnej.
triangles
Definiuje trójkąt terenu.
node -1 0 none triangles material ambient: ambient diffuse: diffuse specular: specular endmaterial tekstura x y z nx ny nz u v end ... endtri
- ambient - 3 wartości RGB z zakresu <0;255>, określające kolor materiału.
- diffuse - 3 wartości RGB z zakresu <0;255>
- specular - 3 wartości RGB z zakresu <0;255>, określające siłę odbłyskiwania światła na trójkącie.
- tekstura - ścieżka do pliku tekstury (bez rozszerzenia) relatywna względem folderu textures.
- 'x, y, z - współrzędnie wierzchołka w przestrzeni 3D.
- nx, ny, nz - współrzędne wektora normalnego.
- u, v - współrzędnie wierzchołka UV w przestrzeni 2D. Określają układ tekstury.
Ilość wierzchołków w tym obiekcie jest nieograniczona, ale musi być wielokrotnością liczby 3.
triangle_strip
Definiuje siatkę trójkątów. Rzadko spotykany, częściej w jego miejsce używany jest lepiej zoptymalizowany node::triangles
triangle_fan
Definiuje siatkę trójkątów. Rzadko spotykany, częściej w jego miejsce używany jest lepiej zoptymalizowany node::triangles
atmo
Definiuje kolor tła scenerii i parametry mgły.
atmo kolor_nieba poczatek_mgly koniec_mgly kolor_mgly endatmo
- kolor_nieba - 3 wartości RGB z zakresu <0;1> określające kolor nieba.
- poczatek_mgly - odległość początku mgły od kamery [m].
- koniec_mgly - odległość końca mgły od kamery [m].
- kolor_mgly - 3 wartości RGB z zakresu <0;1> określające kolor mgły.
camera
Definiuje kamerę, do której można się przemieszczać klawiszami numerycznymi.
camera x y z rx ry rz numer endcamera
- x, y, z - współrzędne kamery w przestrzeni 3D.
- rx, ry, rz - obrót kamery w trzech osiach.
- numer - po kliknięciu jakiego klawisza (numerycznego) ma nastąpić teleportacja do kamery.
config
Definiuje ustawienia eu07.ini specyficzne dla scenerii. Można ustawić dowolną ilość par opcja-wartość. Uwaga! Nie wszystkie opcje są możliwe do ustawienia za pomocą tego wpisu!
config opcja wartosc ... endconfig
- opcja - jedna z opcji eu07.ini.
- wartosc - wartość dla opcji.
description
Definiuje opis scenerii. Wpis stworzony z myślą o starterach, ale nie jest przez nie interpretowany.
description opis_scenerii enddescription
- opis_scenerii - opis scenerii.
event
Definiuje zdarzenia które służą do sterowania obiektami, np. sygnałem na semaforze lub przełożeniem zwrotnicy.
FirstInit
Słowo kluczowe oznaczające początek sekcji w pliku z definicjami składów.
FirstInit
wpisy_trainset
...
include
Dołącza do scenerii obiekty z podanego pliku. Może przyjmować opcjonalne parametry.
include plik parametry end
- plik - ścieżka do pliku, którego zawartość ma być dołączona. Ścieżka relatywna względem folderu scenery.
- parametry - opcjonalne N parametrów, których wartości podstawione będą w miejsce zmiennych (p1) - (pN) w pliku.
light
Definiuje parametry oświetlenia scenerii.
light x y z ambient diffuse specular endlight
- x, y, z - współrzędne światła w przestrzeni 3D.
- ambient - 3 wartości RGB z zakresu <0;1>
- diffuse - 3 wartości RGB z zakresu <0;1>
- specular - 3 wartości RGB z zakresu <0;1>
origin
Przesuwa obiekty o wektor.
origin x y z wpisy endorigin
- x, y, z - współrzędne wektora przesunięcia w przestrzeni 3D.
- wpisy - wpisy definiujące np. modele, części scenerii, które zostaną przesunięte o podany wektor.
rotate
Obraca obiekty.
rotate rx ry rz wpisy rotate 0 0 0
- rx, ry, rz - rotacja w trzech osiach.
- wpisy - wpisy definiujące np. modele, części scenerii, które zostaną obrócone.
sky
Definiuje model nieba w scenerii.
sky model_nieba endsky
- model_nieba - ścieżka do pliku modelu nieba w formacie T3D, relatywna względem folderu models.
test
Służy do testowania poprawności wpisów. Wpisy obiektów otoczone tokenami test i endtest nie będą widoczne w scenerii, ale będą kopiowane do logu.
test wpisy endtest
- wpisy - dowolne rodzaje wpisów SCN do przetestowania.
time
Ustawia czas rozpoczęcia symulacji oraz czas wschodu i zachodu słońca.
time czas_na_starce czas_wschodu czas_zachodu endtime
- czas_na_starcie - czas symulacji w momencie jej startu w formacie hh:mm
- czas_wschodu - godzina wschodu słońca w formacie hh:mm
- czas_zachodu - godzina zachodu słońca w formacie hh:mm
trainset
Definiuje skład jako zbiór obiektów node::dynamic.
trainset rozklad nazwa_toru odleglosc predkosc wpisy_dynamic endtrainset
- rozklad - ścieżka do pliku z rozkładem, relatywna względem folderu scenery.
- nazwa_toru - nazwa obiektu node::track na którym ma stanąć skład.
- odległość - odległość składu od punktu 1 toru, na którym stoi [m].
- predkosc - prędkość początkowa składu [km/h].
- wpisy_dynamic - dowolna liczba wpisów node::dynamic.