Plik scenerii

Z MaSzyna
Skocz do: nawigacja, szukaj

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 

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.

    node -1 0 none tractionpowersource x y z napiecie czestotliwosc opor napiecie_max czas_restartu1 ilosc_prob_restartu czas_restartu2 rekuperacja end

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

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.