Plik INC: Różnice pomiędzy wersjami

Z MaSzyna
Skocz do: nawigacja, szukaj
(Metadane)
 
(Nie pokazano 12 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 ==
  ('''domek2.inc''')
+
  ('''domek2.inc''') <span style="color:gray">
 
  //script;size: 7 10 5
 
  //script;size: 7 10 5
 
  // Model domu mieszkalnego
 
  // Model domu mieszkalnego
Linia 8: Linia 9:
 
  // (p2) (p3) (p4) - lokalizacja XYZ
 
  // (p2) (p3) (p4) - lokalizacja XYZ
 
  // (p6) (p5) (p7) - rotacja XYZ
 
  // (p6) (p5) (p7) - rotacja XYZ
  // (p8) - tekstura
+
  // (p8) - tekstura</span>
 
   
 
   
  origin (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>
  rotate (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>
   node -1 0 (p1) model 0 0 0 0 domek2.t3d (p8) endmodel
+
   <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>
  rotate 0 0 0
+
  <span style="color:tomato;font-weight:bold">rotate</span> 0 0 0
  endorigin
+
  <span style="color:tomato;font-weight:bold">endorigin</span>
  
 
== Metadane ==
 
== Metadane ==
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}}'''
* budynki powinny mieć rotację tylko w osi Y. Wskaźniki, znaki drogowe i inne obiekty które mogą się przechylać na boki, mogą mieć rotację w 3 osiach.
+
* 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ń 13: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.

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.