Plik INC: Różnice pomiędzy wersjami

Z MaSzyna
Skocz do: nawigacja, szukaj
(Standardy)
(Standardy)
Linia 35: Linia 35:
 
== Standardy ==
 
== Standardy ==
 
Przy tworzeniu plików INC obowiązuje kilka niepisanych zasad:
 
Przy tworzeniu plików INC obowiązuje kilka niepisanych zasad:
* mainpulacja położeniem obiektu odbywa się za pomocą dyrektyw [[Dyrektywa_origin|origin]] i [[Dyrektywa_rotate|rotate]], a nie za pomocą parametrów obiektu [[Obiekt_node|node]].
+
* mainpulacja położeniem i rotacją obiektu odbywa się za pomocą dyrektyw [[Dyrektywa_origin|origin]] i [[Dyrektywa_rotate|rotate]], a nie za pomocą parametrów obiektu [[Obiekt_node|node]].
 
* parametry dyrektywy [[Dyrektywa_origin|origin]] to odpowiednio (p2), (p3), (p4). Parametr (p1) jest zarezerwowany na nazwę obiektu.
 
* parametry dyrektywy [[Dyrektywa_origin|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ę:
 
* 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ę:

Wersja z 14:42, 28 gru 2017

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 pomagający zorientować się w )

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
  • 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.