IV
Łączenie dwóch różnych styków torówKonstrukcyjne tworzenie sieci torowiska nie sprawdza się przy łączeniu dwóch niepołączonych sieci. Tutaj pokażę jak dowolnie połączyć dwa tory łukiem. Dajmy na to mamy taką sytuację, że musimy połączyć 2 tory:
SCREENOpisywany wcześniej sposób był czasochłonny i niedokładny. W przygotowaniu nowy opis. Dzięki za podpowiedzi @SKP i @hunter :)Zatem... wchodzimy w button
Tory i wybieramy tworzenie "flexa":
A potem:
I gotowe!V
Eksport scenerii (3ds -> Symulator)Dobra, gadam tutaj o jakiś tam torach, jednostkach, ja chcę zobaczyć to w symulatorze! Nie ma problemu :) Mamy taki kawałeczek scenerii:
Zaznaczamy wszystkie elementy (możemy zrobić to myszką lub
Ctrl+a). Następnie przechodzimy do panelu
Eksportery w skrypcie
main.ms. Klikamy na
scm Export, koniecznie zaznaczamy
Export Selected Only i zapisujemy plik scenerii
w folderze /scenery.
Konstrukcja pliku *.scnPlik *.scn to plik który wczytywany jest przez starter przed wczytaniem scenerii. Najlepiej jest zrobić kopię jednego z obecnych plików (np. scenery/td.scn). Zmieniamy jego nazwę na dowolną (np. MojaPierwszaSceneria.scn) i kasujemy zawartość. Na początku wklejamy taką formułkę:
include ścieżka dostępu do zapisanego wcześniej pliku *.scm z eksportu end
Jeżeli przy eksporcie dałeś nazwę
sceneria, wpis include w pliku *.scn powinien wyglądać tak:
include sceneria.scm end
Jeżeli przy eksporcie wrzuciłeś plik do folderu
/scenery/stefan wpis powinien wyglądać tak:
include stefan/sceneria.scm end
W pliku *.scn musisz podać dokładną ścieżkę dostępu do plików scenerii.
Konstrukcja wpisu trainsetWpis
trainset definiuje pojazdy na scenerii, opisuje ich tor na którym mają się znajdować oraz prędkość początkową. Wpis ten musi być
koniecznie w pliku *.scn i
koniecznie po komendzie FirstInit. Wygląda on tak:
trainset nazwa_rozkładu nazwa_toru przesunięcie_w_metrach prędkość_początkowa
wpis_taboru
endtrainsetCo do nazwy rozkładu - można wpisać po prostu
rozklad.
Analizując ten wpis:
trainset rozklad szlakdwojka 0 60
node -1 0 182_156-0 dynamic PKP\181_V1 182_156-0 182 0 headdriver 3 0 enddynamic
endtrainset
Skoda 181 będzie stała na torze "
szlakdwojka", nie zostanie przesunięta i będzie się poruszać z
Vpoczątkową 60km/h.
Wpis toru:
node 1000 0 nazwa_toru track normal 50.0 1.435 0.25 25.0 20 0 flat vis
rail_screw_used1 4
tpd1 0.2 0.5 1.1 |
tex. szyny "rail_screw..." oraz tex. podsypki "tpd1"-177.08 0.2 -462.617 0.0 //point 1 |
współrzędne wierzchołków toru0.0 0.0 0.0 //control vector 1
0.0 0.0 0.0 //control vector 2
-156.527 0.2 -417.037 0.0 //point 2
0
event0 nazwa_eventu
event1 nazwa_eventu |Tutaj event0/1/2, dotyczy tworzenia scenariuszy
event2 nazwa_eventu
Velocity 40 | prędkość w torze, "widzi" je pociąg sterowany przez komputer, czyli AIendtrack
Po wpisaniu do pliku tekstowego MojaPierwszaSceneria.scn ścieżki dostępu do eksportowanego wcześniej pliku *.scm należy dać komendę FirstInit i tam dać wszelkie wpisy trainset pojazdów. Następnie zapisać, uruchomić starter i wczytać scenerię! Tak wygląda przykładowo mój plik *.scn modernizowanej właśnie scenerii Moczniki: //$n Sceneria Moczniki_v2
sky cgskj_altostratus004.t3d endsky
atmo 0 0 0 1000 3000 0.745 0.714 0.655 endatmo
light 1000 3000 -4000 0.627 0.627 0.627 0.941 0.941 0.941 0.42 0.443 0.4 endlight
include moczniki_v2/moczniki_infrastruktura.scm end
include moczniki_v2/moczniki_teren.scm end
include moczniki_v2/moczniki_tory.scm end
include moczniki_v2/moczniki_trakcja.scm end
include moczniki_v2/moczniki_lampy.scm end
include moczniki_v2/moczniki_fabryka.scm end
include moczniki_v2/moczniki_drzewa.scm end
include moczniki_v2/events.inc end
FirstInit
trainset rozklad szlakdwojka 0 60
node -1 0 182_156-0 dynamic PKP\181_V1 182_156-0 182 0 headdriver 3 0 enddynamic
endtrainset
trainset rozklad road1 0 40
node -1 0 a43619 dynamic ROAD\AROSA none AROSA 0 headdriver 0 0 enddynamic
endtrainset
Jak można zauważyć, przed wpisami include warto, aby znalazł się tam
wpis ATMO określający niebo i warunki oświetleniowe.
Dodano: 14 Sierpnia 2012, 14:10:53
VI
Tworzenie terenuTworzenie terenu to jedna z najbardziej skomplikowanych i jednocześnie jedna z najważniejszych rzeczy.
Tworzymy kształt naszego terenu. Z górnego panelu wybieramy
Create > Shapes > Line. W teraz stawiając punkty wyznaczamy granice terenu.
Co ważne! teren musi być zamknięty.
Po wyświetleniu się opcji "Close spline" akceptujemy.Ważny krok! Należy podzielić teren na trójkąty. Uruchamiamy skrypt
main.ms, szukamy i klikamy na button
Delanuay mesh.
Teraz zaznaczamy nasz fragment terenu i klikamy na button
Make (wykonaj). Skrypt sam podzieli obiekt na trójkąty.
Po podzieleniu na trójkąty
zaznaczamy nasz teren i wciskamy klawisz M. Następnie postępujemy wg. screenów:
http://eu07.pl/userfiles/8463/priv-mps4-3.PNG Zaznaczamy wolną kulkę, otwieramy zakładkę
Mapshttp://eu07.pl/userfiles/8463/priv-mps4-4.PNG Wybieramy wolną pozycję
None oraz wybieramy opcję
Bitmap.
http://eu07.pl/userfiles/8463/priv-mps4-5.PNG Idziemy do folderu
/textures i wybieramy przykładową teksturę (tutaj grass_new.dds). Nasza kulka przybierze karnację tekstury.
http://eu07.pl/userfiles/8463/priv-mps4-6.PNG Postępujemy wg. tych kroków. Niczego nie należy pominąć.
http://eu07.pl/userfiles/8463/priv-mps4-7.PNG Następnie należy otworzyć z górnego panelu
Modifiers > UV Coordinates > UVW Map.
http://eu07.pl/userfiles/8463/priv-mps4-8.PNG Po prawej stronie pokaże się takie okienko. Zaznaczamy
planar oraz wpisujemy przykładowo 10 metrów na wysokość i szerokość tekstury.
Aby zobaczyć jak nasza tekstura wygląda, można wcisnąć
klawisz F3. Teraz można ewentualnie zmienić wartości szerokości i wysokości tekstury. Ogólnie polecam eksperymentować z tymi opcjami, można uzyskać ciekawe efekty.
Teraz tradycyjnie eksportujemy i możemy zobaczyć nasz teren w symulatorze.
Dodano: 14 Sierpnia 2012, 22:09:22
VII
Wstawianie budynków i pochodnychMamy tory, teren a teraz czas na jakieś budyneczki. Wszelkie pliki *.inc tych elementów znajdują się w folderze
/scenery i w podfolderach. Przy otwieraniu tego folderu powinno wyskakiwać jakieś okienko w stylu "Witaj w krainie wiecznego bałaganu" lub "Czwarty krąg piekielny pozdrawia". Bałagan tam jest niewyobrażalny. Trwają prace nad uporządkowaniem tamtejszych terenów, jednakże ilość pracy jaką trzeba włożyć aby to uporządkować jest wielka. Mam nadzieję, że Cię nie zniechęciłem :) Miło też, że dotarłeś aż tutaj.
Także gdy już przekroczysz bramę folderu
/scenery i ujrzysz wizualizację rodem z "Komedii" Dantego, dotrzesz do wielkiej bazy wszelkiego rodzaju różnych plików *.scm, *.scn oraz *.inc. Nas interesują właśnie te ostatnie:
*.inc. To są pliki, które pozwalają na wstawienie do 3ds'a wszelkiego rodzaju budynków, wskaźników, semaforów... po prostu wszystkiego.
Poniżej przedstawiam skan kartki zrobionej przeze mnie niedawno. Opisałem mniej-więcej zawartość folderów.
http://eu07.pl/userfiles/8463/priv-scenerykartka.jpgAby wstawić......cokolwiek musimy jak zwykle odpalić skrypt
main.ms, przejść do buttona
Include. Tam musimy wybrać plik *.inc:
Przykładowo .inc ludzika (w folderze /posers):
Potem możemy zdefiniować jego nazwę. W 3ds-ie będzie to sześcian, można mu nadać nazwę człowiek lub inną go identyfikującą. Przy większej ilości elementów
(sześcianików - tzw. helperów) wszystko może się pokiełbasić.
Następnie klikamy
"Create" i LPM (lewy przycisk myszy) wstawiamy w pożądane miejsce do scenerii.
Jak już wspomniałem, widzimy tutaj
sześcianik, czyli tzw. helper. Nie ma możliwości zobaczenia tego obiektu na poziomie tworzenia w 3ds-ie.
Dopiero po eksporcie można skorygować położenie czy obrót elementów.
Tym sposobem należy wstawiać wszelkie budynki, nastawnie itp. a także wskaźniki i semafory (choć do tych jest też inna, prostsza opcja). I tak mamy nasz efekt ->
;-)Życzę powodzenia w odkrywaniu krainy Dantego.
Dodano: 14 Sierpnia 2012, 22:37:41
VIII
Layery - czyli jak łatwiej poruszać się po budowanej sceneriiW budowie...
Dodano: 14 Sierpnia 2012, 23:17:15
Jednym z niepisanych standardów wydawania scenerii jest jej podział na różnie warstwy (layery) zawierające poszczególne elementy scenerii takie jak tory, sieć trakcyjną, roślinność, semafory, drogi itp. Jest to po prostu podzielenie scenerii na różne pod-pliki.
Każdy rodzaj obiektu należy wyeksportować do osobnego pliku *.scm, a w pliku *.scn dodać odpowiedni wpis
include ... end. Podam tutaj moim zdaniem jeden z prostszych sposobów na podział scenerii. Wykorzystamy tutaj kilka możliwości 3ds'a.
Mamy taką sytuację: sceneria z różnymi elementami (tory, rozjazdy, drzewa, teren i inne).
Należy każdy rodzaj wyeksportować do osobnych plików *.scm. Aby tego dokonać, musimy na początek podzielić te obiekty w samym 3ds'ie. W tym celu otwieramy okno Layerów.
Następnie klikamy na pierwszy button "Create New Layer...". Dajemy mu nazwę "teren". Teraz trzeba przypisać odpowiednie obiekty do tej warstwy, czyli nasz obiekt terenu. Zaznaczamy go, a potem klikamy PPM na linijkę warstwy "teren" oraz wybieramy "Add Selected Objects":
Teraz tworzymy nową warstwę o nazwie "trees" lub "drzewa". Nie ma to najmniejszego znaczenia, abyś wiedział o co chodzi. Aby "za jednym zamachem" zaznaczyć wszystkie drzewa, wybieramy z górnego panelu
Edit > Select By... > Color. Zaznaczone zostaną wszystkie obiekty tego samego koloru jak obiekt zaznaczony jeden raz. Roślinność dodawana przez skrypt
Zieleń ma ten sam kolor, co ułatwia sprawę. Zatem klikamy na jedno drzewko i zaznaczają się wszystkie.
Teraz PPM na warstwę "trees" i klikamy "Add Selected Objects". Tak samo postępujemy z ewentualnie zrobioną siecią trakcyjną, torami, semaforami i budynkami.
IX
Jak mi to pomoże?Opcja ta pozwala ukryć niepotrzebne w danej chwili elementy (np. duża ilość drzew spowalnia pracę programu, można je ukryć). Przy wstawianiu drzew niepotrzebnie widzę siatkę terenu - można ukryć. Jak ukryć?
Trzecia kolumna w oknie warstw nazywa się
Hide, z angielskiego "Schowaj". Aby ukryć aktualnie niepotrzebny element należy kliknąć w tej kolumnie na wysokości odpowiedniej linijki. Po pojawieniu się niebieskiej żaróweczki obiekt zostanie ukryty.
Można też łatwo zaznaczyć wszystkie elementy z danej warstwy. Przy eksporcie wystarczy zaznaczyć opcję "Export selected only".
W takim przypadku ta i tylko ta warstwa zostanie wyeksportowana do symulatora. Druga kolumna z "ptaszkiem" określa warstwę na której akurat pracujemy. Jeżeli dodajesz roślinność - zaznaczasz warstwę "trees". Jeżeli dodajesz tory/rozjazdy - zaznaczasz warstwę "tory". Masz w ten sposób pewność, że ukryjesz sobie odpowiednie elementy i że nie położysz czegoś kilka razy.
Ten zabieg dzielenia scenerii skraca też nieco pracę. Nie trzeba eksportować całej scenerii tylko przykładowo jej jeden fragment. Przykładowo dodałeś teraz kilka drzew i chcesz zobaczyć jak to wygląda, nie musisz eksportować od nowa całej scenerii, wystarczy że wyeksportujesz tylko element (warstwę) drzew.
Należy pamiętać o wpisach include ... .scm end w pliku *.scn! Aby wszystkie warstwy były "zincludowane" w tym pliku.
X
Proste i szybkie wstawianie roślinnościPodsumujmy... mamy teren, tory, budynki... czas na trochę drzewek. Może na początek coś o samych drzewkach. W najnowszej paczce całościowej w folderze scenery mamy pliki tree.inc oraz grass.inc. Plik tree.inc to 2 skrzyżowane plane'y (w taki sposób:
+), natomiast grass.inc to to samo, tylko że w sposób
*(gwiazdki). Po wstawieniu takiego pliku *.inc za pomocą buttona
Include musielibyśmy ręcznie poprawiać każdą linijkę, aby dopisać mu odpowiednią teksturę drzewa/trawy. Jednakże jest druga możliwość aby szybko wstawiać roślinność. W skrypcie main.ms należy znaleźć button
Zieleń.
Skrypt wstawiania zieleni potrzebuje pliku zielen.txt (w folderze ze skryptem). Są tam opisane wszelkie tekstury zieleni w folderze /textures. Można go dowolnie edytować. Ja przedstawiam tutaj zawartość swojego pliku zielen.txt. Zainteresowani mogą podmienić.
http://eu07.pl/userfiles/8463/priv-zielen.txtPo podmianie należy ponownie uruchomić skrypt main.ms!
XI
Wskaźniki & semaforyMamy teren, na tym terenie jest tor, obok kilka drzewek i budynków. Na tym torze widzimy stonkę pędzącą ile sił. Kiedy ma się zatrzymać? Kiedy zwolnić? Od tego są wskaźniki i semafory. Do ich wstawienia również jest skrypt, który pozwala na ich szybsze wstawienie.
Pliki *.inc semaforów znajdują się w folderze
/scenery (są tam "luzem"). Tutaj jest legenda aby odczytać ich nazwy:
W przypadku plików INC semaforów, tarcz i sygnalizatorów powtarzających, stosuje się ich następujące nazewnictwo:
Pierwsze dwie litery określają rodzaj sygnalizatora (SS – semafor świetlny, SK – semafor kształtowy, PS – sygnalizator powtarzający, MS – tarcza manewrowa świetlna, MK – tarcza manewrowa kształtowa, TS – tarcza ostrzegawcza świetlna, TK – tarcza ostrzegawcza kształtowa) – wyjątkiem są INC semaforów SBL. Następnie podana jest liczba komór (w przypadku sygnalizatorów świetlnych – UWAGA! Pas świetlny też się liczy jako komora) lub liczba ramion (w przypadku semaforów kształtowych). Sygnalizatory świetlne dalej mają w nazwie wyszczególnione kolejne komory (od góry, kolorami): p – pomarańczowe, c – czerwone, z – zielone, b – białe, n – niebieskie. Dalsze oznaczenie -z lub z- oznacza zielony pas świetlny. W przypadku -p lub p- będzie to pas pomarańczowy. Kolejne litery mówią, czy sygnalizator jest na słupie prostym, czy odchylonym (i w która stronę). Litera I oznacza słup prosty, litera Y odchylony, litery YN sygnalizator odchylony stojący z lewej strony toru. Na końcu nazwy inc sygnalizatora mogą znajdować się informacje o wskaźnikach umieszczonych na danym sygnalizatorze (np. W19, W20, W24). W przypadku kilku wskaźników należy umieścić je wg kolejności (np. W20W24).Można semafory wstawiać za pomocą buttona
Include lub szybciej i prościej za pomocą buttona
Semafory.
.
Poprawne wstawieniePo wstawieniu do 3ds'a semafora będzie on w postaci
helpera. Aby semafor/tarcza był w odpowiedniej odległości od toru, krawędź helpera musi przylegać do osi toru.
Takie umiejscowienie owocuje takim wyglądem w symulatorze:
Tak też można zmienić nazwę semafora: