Plik INC: Różnice pomiędzy wersjami
(→Przykładowy plik INC) |
|||
(Nie pokazano 7 pośrednich wersji utworzonych przez tego samego użytkownika) | |||
Linia 1: | Linia 1: | ||
+ | [[Category:Formaty plików symulatora]] | ||
Plik INC składniowo nie różni się od pliku SCN. Stosowany jest do tworzenia parametryzowanych obiektów, które umieszcza się następnie w scenerii za pomocą wpisu [[Dyrektywa_include|include]]. | Plik INC składniowo nie różni się od pliku SCN. Stosowany jest do tworzenia parametryzowanych obiektów, które umieszcza się następnie w scenerii za pomocą wpisu [[Dyrektywa_include|include]]. | ||
== Przykładowy plik INC == | == Przykładowy plik INC == | ||
Linia 10: | Linia 11: | ||
// (p8) - tekstura</span> | // (p8) - tekstura</span> | ||
− | <span style="color:tomato;font-weight:bold">origin</span> (p2) (p3) (p4) | + | <span style="color:tomato;font-weight:bold">origin</span> <span style="color:darkviolet;font-weight:bold">(p2)</span> <span style="color:darkviolet;font-weight:bold">(p3)</span> <span style="color:darkviolet;font-weight:bold">(p4)</span> |
− | <span style="color:tomato;font-weight:bold">rotate</span> (p6) (p5) (p7) | + | <span style="color:tomato;font-weight:bold">rotate</span> <span style="color:darkviolet;font-weight:bold">(p6)</span> <span style="color:darkviolet;font-weight:bold">(p5)</span> <span style="color:darkviolet;font-weight:bold">(p7)</span> |
− | <span style="color:green;font-weight:bold">node</span> -1 0 (p1) <span style="color:tomato;font-weight:bold">model</span> 0 0 0 0 domek2.t3d (p8) <span style="color:tomato;font-weight:bold">endmodel</span> | + | <span style="color:green;font-weight:bold">node</span> -1 0 <span style="color:darkviolet;font-weight:bold">(p1)</span> <span style="color:tomato;font-weight:bold">model</span> 0 0 0 0 domek2.t3d <span style="color:darkviolet;font-weight:bold">(p8)</span> <span style="color:tomato;font-weight:bold">endmodel</span> |
<span style="color:tomato;font-weight:bold">rotate</span> 0 0 0 | <span style="color:tomato;font-weight:bold">rotate</span> 0 0 0 | ||
<span style="color:tomato;font-weight:bold">endorigin</span> | <span style="color:tomato;font-weight:bold">endorigin</span> | ||
Linia 22: | Linia 23: | ||
Ciągi znaków ''(p1), (p2)'' itp. to tzw. parametry formalne. W czasie wczytywania scenerii zostają one zamienione na wartości podane jako parametry aktualne w dyrektywie [[Dyrektywa_include|include]]. | Ciągi znaków ''(p1), (p2)'' itp. to tzw. parametry formalne. W czasie wczytywania scenerii zostają one zamienione na wartości podane jako parametry aktualne w dyrektywie [[Dyrektywa_include|include]]. | ||
Przykład: | Przykład: | ||
− | include domek2.inc domeczek 10 0 34.3 3 0 0 domek2_czerwony end | + | <span style="color:tomato;font-weight:bold">include</span> domek2.inc domeczek 10 0 34.3 3 0 0 domek2_czerwony <span style="color:tomato;font-weight:bold">end</span> |
Powyższy wpis spowoduje podmianę parametrów formalnych na odpowiednie wartości: | Powyższy wpis spowoduje podmianę parametrów formalnych na odpowiednie wartości: | ||
(p1) = domeczek | (p1) = domeczek | ||
Linia 30: | Linia 31: | ||
Dopuszczalne jest także zagniezdzanie parametrów. Jesli zdefiniujemy np. | Dopuszczalne jest także zagniezdzanie parametrów. Jesli zdefiniujemy np. | ||
− | include foo.inc param1_i_(p3) param2 param3 end | + | <span style="color:tomato;font-weight:bold">include</span> foo.inc param1_i_<span style="color:darkviolet;font-weight:bold">(p3)</span> param2 param3 <span style="color:tomato;font-weight:bold">end</span> |
to parser przy odczytywaniu takiego include i napotkaniu tokena "wstaw_tutaj_(p1)_oraz_(p2)" wyprodukuje: | to parser przy odczytywaniu takiego include i napotkaniu tokena "wstaw_tutaj_(p1)_oraz_(p2)" wyprodukuje: | ||
wstaw_tutaj_param1_i_param3_oraz_param2 | wstaw_tutaj_param1_i_param3_oraz_param2 | ||
+ | |||
== Standardy == | == Standardy == | ||
Przy tworzeniu plików INC obowiązuje kilka niepisanych zasad: | Przy tworzeniu plików INC obowiązuje kilka niepisanych zasad: | ||
Linia 42: | Linia 44: | ||
** (p7) - rotacja w osi Z | ** (p7) - rotacja w osi Z | ||
Pamiętaj! '''{{Szablon:Info_o_układzie_współrzędnych}}''' | Pamiętaj! '''{{Szablon:Info_o_układzie_współrzędnych}}''' | ||
− | * | + | * wskaźniki, znaki drogowe i inne obiekty które mogą się przechylać na boki, mogą mieć rotację w 3 osiach. Budynki powinny mieć rotację tylko w osi Y. W takim przypadku parametry (p6) i (p7) pozostają do dyspozycji autora i można ich użyć w kontekście innym niż rotacja. |
+ | |||
+ | [[Kategoria:Scenerie]] |
Aktualna wersja na dzień 12:55, 10 kwi 2022
Plik INC składniowo nie różni się od pliku SCN. Stosowany jest do tworzenia parametryzowanych obiektów, które umieszcza się następnie w scenerii za pomocą wpisu include.
Spis treści
Przykładowy plik INC
(domek2.inc) //script;size: 7 10 5 // Model domu mieszkalnego // autor: przykładowski // (p1) - unikalna nazwa obiektu // (p2) (p3) (p4) - lokalizacja XYZ // (p6) (p5) (p7) - rotacja XYZ // (p8) - tekstura origin (p2) (p3) (p4) rotate (p6) (p5) (p7) node -1 0 (p1) model 0 0 0 0 domek2.t3d (p8) endmodel rotate 0 0 0 endorigin
Metadane
Na początku pliku znajduje się komentarz opisujący wymiary obiektu. Są one używane przez zewnętrzne oprogramowanie do określenia gabarytów obiektu (na ich podstawie skrypt do programu 3Ds Max wyświetla tzw. helpera, czyli sześcian o podanych wymiarach symbolizujący wstawiany obiekt)
Parametry
Ciągi znaków (p1), (p2) itp. to tzw. parametry formalne. W czasie wczytywania scenerii zostają one zamienione na wartości podane jako parametry aktualne w dyrektywie include. Przykład:
include domek2.inc domeczek 10 0 34.3 3 0 0 domek2_czerwony end
Powyższy wpis spowoduje podmianę parametrów formalnych na odpowiednie wartości:
(p1) = domeczek (p2) = 10 (p3) = 0 itd...
Dopuszczalne jest także zagniezdzanie parametrów. Jesli zdefiniujemy np.
include foo.inc param1_i_(p3) param2 param3 end
to parser przy odczytywaniu takiego include i napotkaniu tokena "wstaw_tutaj_(p1)_oraz_(p2)" wyprodukuje:
wstaw_tutaj_param1_i_param3_oraz_param2
Standardy
Przy tworzeniu plików INC obowiązuje kilka niepisanych zasad:
- mainpulacja położeniem i rotacją obiektu odbywa się za pomocą dyrektyw origin i rotate, a nie za pomocą parametrów obiektu node.
- parametry dyrektywy origin to odpowiednio (p2), (p3), (p4). Parametr (p1) jest zarezerwowany na nazwę obiektu.
- za rotację w osi X odpowiada (p6), a nie (p5). Jest to związane z wprowadzeniem dodatkowych osi obrotu, które nie były zdefiniowane w żadnym z plików INC. W celu zgodności ze starymi plikami, przyjęto zasadę:
- (p5) - rotacja w osi Y
- (p6) - rotacja w osi X
- (p7) - rotacja w osi Z
Pamiętaj! Symulator korzysta z prawoskrętnego układu współrzędnych!
- wskaźniki, znaki drogowe i inne obiekty które mogą się przechylać na boki, mogą mieć rotację w 3 osiach. Budynki powinny mieć rotację tylko w osi Y. W takim przypadku parametry (p6) i (p7) pozostają do dyspozycji autora i można ich użyć w kontekście innym niż rotacja.