Strefa OMSI

Pełna wersja: Dodatkowe swiatla w pojedzie
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam, mam takie pytanie, chciałbym dodać do swojego autobusu dodatkowe światła z przodu oraz w kabinie przycisk który by je uruchamiał jak to zrobić ?
Pytanie podstawowe. Chodzi Ci o sam "blask" świateł, czy masz na myśli pełne modele 3D dodatkowych reflektorów?
dokładnie chodzi mi o koguty na dachu
O cholerka, wysoko stawiasz poprzeczkę. Koguty to bardzo ciężka sprawa. Zrobiłem kiedyś coś takiego do projektu Mercedesa Sprintera dla kolegi siwy_Snk (wideo), aczkolwiek wymaga to dość zaawansowanej wiedzy (o ile chcesz zrobić koguty mrugające).

Po pierwsze musisz dodać punkty świateł w odpowiednich miejscach w pliku model.cfg (pisze "punkty", gdyż powyższy model posiadał po 3 punkty w każdym po każdej stronie koguta i po jednym w światłacz przednich oraz po jednym w tylnych kogutach), czyli dodać poniższy wpis tyle razy, ile ma być punkt świateł i odpowiednio go przerobić według modyfikując poniższe parametry:

Cytat:[light_enh_2]
0.900 <<<POZYCJA X
5.801 <<<POZYCJA Y
0.692 <<<POZYCJA Z
0
1
0
0
0
1
0
0
200 <<<KOLOR R
200 <<<KOLOR G
255 <<<KOLOR B
0.4 <<<WIELKOŚĆ POŚWIATY
50
150
lights_stand <<<FUNKCJA
3.0 <<<MOC ŚWIATŁA (wydaje mi się, że powyżej wartości "3" nie widać różnicy)
0.15
1
1
0.1 <<<CZAS ROZBŁYSKU
D_Scheinwerfer.bmp <<<TEKSTURA

I po kolei:
- pozycję X, Y, Z musisz ustawić "na czuja". Ustawiasz tak mniej-więcej, odpalasz OMSI, poprawiasz, odpalasz OMSI i tak do skutku
- kolor RGB możesz wybrać w MS Paint w opcji "Edytuj kolory". Wybierasz kolor i w prawym dolnym rogu masz trzy kolory - przenosisz je w tej samej kolejności i tyle
- wielkość poświaty też trzeba ustawić na czuja. Dodam, że dużo zależy od rozdzielczości pliku z teksturą, o tym niżej
- funkcję opiszę osobno niżej, bo to największy problem, a początek polecam wpisanie lights_stand (światła pozycyjne), aby odpowiednio ustawić w jakich punktach ma być światło (włączasz światła pozycyjne i świeci)
- moc światła, to po prostu jego jasność. Jeżeli punkt światła jest zbyt blisko elementów i jasność jest za duża, to potrafi nienaturalnie przenikać przez ten obiekt, wtedy trzeba zmniejszyć moc światła
- czas rozbłysku (chyba wartość jest w sekundach), to czas, jaki punkt potrzebuje do pełnego rozbłysku, czyli im wartość większa, tym światło płynniej będzie się rozjaśniało, na koguty proponuję wartość 0,0001
- tekstura. Domyślne tekstury dla poświat w OMSI to okrągły i owalny punkt. Można stworzyć własną w dowolnym kształcie, ja kiedyś wyciąłem kawałek reflektora, co dało efekt rozjaśniania się lampy w momencie włączenia świateł (moja przeróbka D94). Ta tekstura będzie służyła jako podstawa rozbłysku. Bezpośredni wpływ na wielkość wyświetlanej tekstury ma wielkość poświaty wspomniana wcześniej. Im tekstura ma wyższą rozdzielczość, tym ta wartość musi być mniejsza.

Jeżeli masz już odpowiednio ustawione pozycje punktów światła trzeba zrobić odpowiedni skrypt, który będzie nimi mrugał. Są dwa wyjścia, ja zastosowałem łatwiejsze.
Jedna opcja, to napisanie skryptu, który będzie przez odpowiedni Timegap (czas) świecił i przez odpowiedni Timegap nie świecił, co daje nam dowolną możliwość konfigurowania szybkości mrugania, mrugania naprzemiennego, dwa elementy mogą mrugać wolniej, dwa szybciej, etc. Niestety, może nie jest to ponad moje możliwości, ale wymaga mnóstwo czasu na testy, a tego czasu wtedy nie miałem.
Druga opcja, którą ja zastosowałem, to napisanie skryptu, który wymaga jednoczesnego świecenia i nieświecenia (komenda wywołuje "świeć" a tuż poniżej druga "nie świeć"), przez co robi się błąd i mruga. Minus tego jest taki, że mruganie następuje co jedną klatkę na sekundę, więc im więcej fps masz w grze, tym szybciej mruga.
Jeśli chodzi o taki skrypt, to gotowiec jest w Mercedesie siwego i o ile siwy ma go na dysku jeszcze, to masz zgodę ode mnie na wykorzystanie (oczywiście w przypadku publicznego udostępnienia w przyszłości z informacją kto jest autorem skryptu).

Następnie wszystkie komendy lights_stand podmieniasz na komendę wykonującą z mojego skryptu, podpisujesz ta komendę pod skrót na klawiaturze i śmiga.
Przekierowanie