Symulator EU07 (i nie tylko) > Pomoc w tworzeniu

 Wstawianie modelu do scenerii

<< < (3/5) > >>

szczawik:
A nie, wszystko w porządku. Zaraz napiszę jak zrobić tego .inca .
Poradnik postaram się napisać tak, by każdy czytający go krok po kroku zrobił wszystko dobrze.
Wystarczy na bieżąco wykonywać opisane czynności.
@Mytnik, piszesz, że chcesz wstawić model tylko w osiach x, y, z. Co prawda taki model będzie ułomny, bo bez obracania choćby w osi pionowej.

Podstawowa budowa pliku .inc .Rozpoczynamy od utworzenia pliku .inc . Tak wygląda podstawowy plik .inc dla zwykłego modelu:


--- Kod: ---origin 0 0 0
rotate 0 0 0
node 1000 0 none model 0 0 0 0 ścieżka_do_modelu/nazwa_modelu.t3d none endmodel

rotate 0 0 0
endorigin
--- Koniec kodu ---

Interesują nas tylko dwie linijki- origin i rortate.

--- Kod: ---origin 0 0 0
rotate 0 0 0
--- Koniec kodu ---
Bardziej obrazowo wygląda to tak (w nawiasach informacja o parametrze):

--- Kod: ---origin 0(położenie w osi x) 0(położenie w osi y) 0(położenie w osi z)
rotate 0 (obrót w osi 1) 0(obrót w osi 2) 0(obrót w osi 3)
--- Koniec kodu ---

Zero oznacza, że parametr nie został przypisany.
Model do wstawiania w osiach x,y z.Chcemy, by obiektowi można było nadać położenie na scenerii w osiach x, y oraz z; obracanie nas nie interesuje.
Zamieniamy więc zera w linijce origin na parametry, po kolei (p1), (p2), (p3).

--- Kod: ---origin (p1) (p2) (p3)
rotate 0 0 0
--- Koniec kodu ---
Gotowy plik .inc wygląda więc tak:

--- Kod: ---origin (p1) (p2) (p3)
rotate 0 0 0
node 1000 0 none model 0 0 0 0 ścieżka_do_modelu/nazwa_modelu.t3d none endmodel

rotate 0 0 0
endorigin
--- Koniec kodu ---


Plik .inc gotowy! Można teraz sobie wstawiać model gdziekolwiek, pamiętając jednak, że bez jakiegokolwiek obracania (czyli tak jak chcieliśmy).
Wstawiamy więc go sobie do scenerii. Wpis do scenerii wygląda tak (w nawiasach informacja):

--- Kod: ---include;nazwa_pliku.inc;0.0(położenie na scenerii w osi x);0.0(położenie na scenerii w osi y);0.0 (położenie na scenerii w osi z);end
--- Koniec kodu ---
Wyobraźmy sobie, ze chcemy ten model wstawić 30 metrów na zachód, 25,5 metra na północ, i na wysokości 0 metrów. Podmieniamy więc sobie wartości zgodnie powyższym opisem:

--- Kod: ---include;przyklad.inc;30.0;25.0;0.0;end
--- Koniec kodu ---
Gotowe. Można uruchomić scenerię i sprawdzić, czy wszystko gra.
Dodanie opcji obracania w osi pionowej.No dobrze, jednak taki model, jak już wspomniałem, będzie ułomny z powodu braku możliwości obracania go w osi pionowej. Jeśli chcemy go w tej osi obracać, musimy dodać kolejny parametr. Otwieramy ponownie nasz plik .inc .
Interesuje nas linijka rotate, ta tuż pod origin:

--- Kod: ---rotate 0 0 0
--- Koniec kodu ---
Obracanie w osi pionowej to to drugie zero. Zamieniamy go na kolejny parametr. (p1), (p2) i (p3)  już zarezerwowaliśmy, a więc ten nazywamy (p4):

--- Kod: ---rotate 0 (p4) 0
--- Koniec kodu ---
Gotowe! Nasz plik wygląda teraz tak:

--- Kod: ---origin (p1) (p2) (p3)
rotate 0 (p4) 0
node 1000 0 none model 0 0 0 0 ścieżka_do_modelu/nazwa_modelu.t3d none endmodel

rotate 0 0 0
endorigin
--- Koniec kodu ---

Obróćmy sobie teraz masz model na scenerii o 90o w lewo. Za średnikiem dajemy wiec liczbę 90.0 i zamykamy średnikiem. Jeśli byśmy chcieli obrócić o 90 stopni w prawo, piszemy -90.0 lub 270.0

--- Kod: ---include;przyklad.inc;30.0;25.0;0.0;90.0;end
--- Koniec kodu ---
Już. Mamy postawiony model, dodatkowo obrócony 90o w lewo.
Obracanie w pozostałych osiach.Lecimy dalej. Model można obracać tylko w osi pionowej, czas dodać pozostałe osie obrotu. Znów otwieramy nasz plik .inc i patrzymy na linijke rotate. Mamy przypisany tylko jeden parametr, przypisujemy więc resztę:

--- Kod: ---origin (p1) (p2) (p3)
rotate (p5) (p4) (p6)
--- Koniec kodu ---
Brzydko to jednak wygląda, brak kolejności... Poprawiamy więc na:

--- Kod: ---origin (p1) (p2) (p3)
rotate (p4) (p5) (p6)
--- Koniec kodu ---

Teraz należy pamiętać, że obrót w osi pionowej zmienił się w (p5). Parametry (p4) i (p6) na razie zostawiamy.
Oznaczenie (p5) oznacza, że jest to po prostu piata wartość liczbowa. (p4) i (p6) mieliśmy zostawić, więc czwartą i szóstą liczbę zostawiamy, wstawiając 0.0.

--- Kod: ---include;przyklad.inc;100.0;0.0;100.0;0.0;90.0;0.0;end
--- Koniec kodu ---
Uruchamiamy scenerię. Efekt jest taki sam, jak poprzednio- po prostu czwarta i szósta wartość jest zerowa, czyli bez zmian w położeniu.
Możemy sobie teraz je pozmieniać, i popatrzeć, jaki efekt przyniosą zmiany.
Informacje dodatkowe.W przytoczonych przykładach rozdzielanie parametrów rozpoczynaliśmy od (p1).
W praktyce parametr (p1) jest przyporządkowany do nazwy tekstury (gdy do modelu można przyporządkować kilka tekstur, na przykład pliki tekstury z różnymi kolorami jednego auta).
Natomiast osi obrotu x i z się w zasadzie nie używa (po co pochylać, powiedzmy, blok) poza kilkoma wyjątkami (na przykład wskaźniki- są one często pochyłe).
Można więc powiedzieć o pewnego rodzaju standardzie:
(p1), ewentualnie (p6) (gdy nie używa się wszystkich osi obrotu, bo wtedy (p6) to obrót w osi z) - tekstura.
(p2), (p3), (p4)- położenie w osiach x. y z.
Przy obrocie, tak jak wspomniałem, używa się tylko jednej osi, a mianowicie pionowej, czyli:
(p5)- obrót w osi pionowej.

W porządku, więc jeśli zaczynamy od (p2), to jak skonstruować wpis do scenery, gdy nie używamy (p1)?
Po prostu, pomiędzy średniki, w których powinna byc nazwa tekstury, wpisujemy 0.0 albo none (w nawiasach objaśnienie):

--- Kod: ---include;przyklad.inc;none(zamiast nazwy tekstury, może tez być wartość0.0);30.0(p2);0.0(p3);25.0(p4);end
--- Koniec kodu ---

I to tyle.
Rozwinięcie tematu wymiennej tekstury i innych możliwości plików .inc będzie  w późniejszym terminie.

Podziękowania dla @Benka za pomoc w zrozumieniu zmian parametrów obrotu:).

Ra:
Tak, tylko że mieszanie kolejności parametrów praktycznie uniemożliwia ich zmasowane użycie w edytorze. Większość obecnych plików INC ma współrzędne XYZ w (p2) (p3) (p4), z wyjątkiem słupów sieci trakcyjnej, które mają (p1) (p2) (p3), z kolei z wyjątkiem wskaźników We. Dalej, tekstura może być jako (p1) albo jako (p6). W zasadzie wszystko można dowolnie rozmieścić, tylko potem cuda wychodzą, jak się używa edytora.

szczawik:
Tak, wiem o tym. Zaraz może coś tam dopiszę.
Należy tylko zdecydować, co z teksturą- (p1) czy (p6). Nie może być, że obydwa parametry, bo to uniemożliwia obrót we wszystkich osiach.
Jako że, tak jak napisałeś, większość dotychczasowych dodatków teksturę ma pod (p1), uważam, że tak właśnie powinno być. Czyli:
(p1)-tekstura
(p2) ,(p3), (p4)- położenie
(p5), (p6), (p7)- obrót
A, i co z obrotem? Wprowadzenie takiego standardu będzie wymagało zmiany (p5) na (p6) (modele maja zazwyczaj obracanie tylko w osi pionowej).

Ra:
Tekstura zwykle była jako (p1), z wyjątkiem semaforów, bo dla nich tam jest nazwa. Na obrót w 3 osiach nie widziałem jeszcze standardu.

szczawik:
Odpowiedź dokończyłem w poprzednim poście.


--- Cytuj ---Jak zamieniona? Oś OX rośnie na zachód, OY w górę, a OZ na północ.
--- Koniec cytatu ---
Napisałem, że w porządku, a jednak nie w porządku. przecież to oś z zawsze wyznacza wysokość. Tak jest w 3ds maxie i tak też mam na rysunkach technicznych.

Nawigacja

[0] Indeks wiadomości

[#] Następna strona

[*] Poprzednia strona

Idź do wersji pełnej
Powered by Advanced Topic Prefix Pro
Powered by SMFPacks Likes Pro Mod