Format T3D: Różnice pomiędzy wersjami
(→Dostępne typy animacji) |
(→Dostępne typy animacji) |
||
Linia 296: | Linia 296: | ||
| Animacja zegara cyfrowego | | Animacja zegara cyfrowego | ||
| | | | ||
+ | |- | ||
+ | | '''digital''' | ||
+ | | Animacja z przeskokiem co 36° | ||
+ | | Liczniki mechaniczne zbudowane są z submodeli potomnych, które obracane są o wielokrotność kąta 36°, zależnie od cyfry na wskazanej pozycji. Pozycję określa pierwszy znak nazwy submodelu — musi być cyfrą, inaczej submodel nie będzie animowany. Pozwala to zbudować licznik dziesięciocyfrowy (dla zegarów działają tylko pozycje 0..5). Licznik może obsługiwać dowolną liczbę animowanych submodeli (np. zegar może być dwustronny), submodele z tą samą cyfrą na początku będą obracane równolegle | ||
|- | |- | ||
| '''seconds''' | | '''seconds''' |
Wersja z 13:41, 21 sty 2022
Plik T3D jest formatem tekstowym, przechowującym informacje o modelach trójwymiarowych. Składa się z dowolnej ilości submodeli określonego typu. Można dołączyć do modelu inne modele za pomoca komendy include.
Spis treści
Typy submodeli
- Mesh - submodel składający się z trójkątów, może być pokryty materiałem.
- FreeSpotLight - Obiekt świecący kierunkowo.
- Stars - zbiór punktów świecących, z czego każdy z nich może mieć inną barwę.
Składnia wpisu submodelu
Wspólne właściwości dla wszystkich typów
Nazwa właściwości | Znaczenie | Typ wartości | Uwagi |
---|---|---|---|
Parent | Przypisuje submodel nadrzędny (rodzica). | Nazwa submodelu | |
Type | Definiuje typ submodelu. | Jedno ze słów kluczowych:
|
|
Name | Unikalna nazwa submodelu | Tekst | Pewne nazwy są zarezerwowane i służą do definiowania dodatkowych funkcjonalności w submodelu. Zobacz listę nazw specjalnych. |
Anim | Typ animacji submodelu. | Tekst | Zobacz listę dostępnych typów animacji. |
Selfillum | Określa sposób emisji światła przez obiekt | Jedno ze słów kluczowych:
lub liczba z zakresu <-1;2> |
liczba - określa poziom oświetlenia scenerii, poniżej którego submodel ma emitować światło
false - brak emisji światła. Tej wartości odpowiada wartość liczbowa -1. true - emisja światła zawsze, niezależnie od poziomu oświetlenia scenerii. Tej wartości odpowiada wartość liczbowa 2. |
MaxDistance | Określa największą odległość, z jakiej submodel jest widoczny. | Liczba [m] | Aby obiekt był widoczny zawsze, niezależnie od odległości, należy podać wartość -1 |
MinDistance | Określa minimalną odległość, z jakiej submodel jest widoczny | Liczba [m] | |
Transform | Macierz transformacji submodelu | Liczby |
Właściwości specyficzne dla typu Mesh
Nazwa właściwości | Znaczenie | Typ wartości | Uwagi |
---|---|---|---|
Ambient | Określa jasność submodelu. | 3 liczby RGB z zakresu <0-255> | |
Diffuse | Określa kolor świecenia submodelu. | 3 liczby RGB z zakresu <0-255> | |
Specular | Określa poziom błyszczenia submodelu. | 3 liczby RGB z zakresu <0-255> | |
Wire | Określa, czy zamiast bryły należy rysować siatkę krawędzi | Jedno ze słów kluczowych:
|
Brak funkcjonalności w exe |
WireSize | Określa grubość krawędzi | Liczba [cm] | Brak funkcjonalności w exe |
Opacity | Określa sposób renderowania przezroczystości submodelu | Liczba | 0 - renderowanie w fazie przezroczystych; Alfa blend
1 - renderowanie w fazie nieprzezroczystych; Alfa test |
Map | Materiał submodelu. | Ścieżka do materiału (bez rozszerzenia) | Pierwszy przebieg wyszukiwania w katalogu równorzędnym modelowi, drugi w roocie textures.
Można podać tekstury wymienne, podstawiane parametrem w node model/dynamic. Wtedy dajemy wartość replacableskin lub jeśli model używa kilku tekstur wymiennych, indeks tekstury poprzedzony minusem (-1÷-4) |
NumVerts | Suma wszystkich wierzchołków w definicjach trójkątów | Liczba |
Pod definicją właściwości NumVerts znajdują się definicje trójkątów (o ile obiekt nie jest tzw. bananem). Ich ilość musi być równa NumVerts / 3. Definicje trójkątów oddzielone są od siebie pustą linią.
Wzór definicji trójkąta:
maska_wygładzania x y z u v x y z u v x y z u v
Nazwa właściwości | Znaczenie | Typ wartości | Uwagi |
---|---|---|---|
maska_wygładzania | Zapisana dziesiętnie maska bitowa określająca wygładzenie trójkąta. | Liczba | Jeśli w jednym punkcie spotykają się wierzchołki wielu trójkątów, to jeśli mają ustawione wspólne bity w masce, to wektor normalny zostanie wyliczony jako średnia, co da efekt zaokrąglenia w tym wierzchołku. |
x, y, z | Współrzędne wierzchołka w przestrzeni | 3 liczby [m] | Symulator korzysta z prawoskrętnego układu współrzędnych! |
u, v | Współrzędnie wierzchołka w układzie UV | 2 liczby |
Między współrzędnymi XYZ i UV mogą znajdować się współrzędne IJK wektora normalnego. Maska wygładzania przyjmuje wtedy wartość -1:
-1 x y z i j k u v x y z i j k u v x y z i j k u v
Opcjonalną formą zapisu geometrii jest użycie chmury punków oraz listy indeksów. Chmura punktów definiuje wierzchołki o unikatowych właściwościach. W liście indeksów każde kolejne 3 liczby określają, których wierzchołków użyć do stworzenia trójkąta.
NumIndices: ilosc_indeksow indeks1 indeks2 indeks3 // etc NumVerts: ilosc_wierzcholkow Px Py Pz Nx Ny Nz Ux Uy Tx Ty Tz Tw // pozycja, wektor normalny, koordynaty UV, tangent Px Py Pz Nx Ny Nz Ux Uy Tx Ty Tz Tw // etc
Właściwości specyficzne dla typu FreeSpotLight
Nazwa właściwości | Znaczenie | Typ wartości | Uwagi |
---|---|---|---|
Diffuse | Definiuje kolor świecenia submodelu | 3 liczby RGB z zakresu <0-255> | |
NearAttenStart | Liczba | Brak funkcjonalności w exe | |
NearAttenEnd | Liczba | Brak funkcjonalności w exe | |
UseNearAtten | Jedno ze słów kluczowych:
|
Brak funkcjonalności w exe | |
FarAttenDecayType | Typ zaniku natężenia światła | Liczba |
|
FarDecayRadius | Liczba | Brak funkcjonalności w exe | |
FalloffAngle | Określa kąt wygaszenia światła. | Liczba [deg] w zakresie (1;180> lub cosinus połowy tego kąta | |
HotspotAngle | Określa kąt pełnej jasności światła. | Liczba [deg] w zakresie (1;180> lub cosinus połowy tego kąta |
Właściwości specyficzne dla typu Stars
Nazwa właściwości | Znaczenie | Typ wartości | Uwagi |
---|---|---|---|
Diffuse | ? | 3 liczby RGB z zakresu <0-255> | Parametr nieznaczący w kontekście tego submodelu |
NumVerts | Określa ilość punktów świetlnych zawartych w tym submodelu | Liczba |
Pod definicją właściwości NumVerts muszą znaleźć się definicje grup punktów świetlnych. W jednej grupie mogą znaleźć się maksymalnie 3 punkty świetlne.
1 x y z kolor 0 x y z kolor 0 x y z kolor 0
Nazwa właściwości | Znaczenie | Typ wartości | Uwagi |
---|---|---|---|
1, 0 | Tokeny ignorowane. | Liczby | Zwyczajowo zawsze podaje się 1 i 0. |
x, y, z | Współrzędne punktu w przestrzeni | 3 liczby [m] | |
kolor | Kolor świecenia punktu | Liczba | Zapisana dziesiętnie liczba szesnastkowa opisująca kolor świecenia BGR. |
Nazwy specjalne
Dostępne typy animacji
Wartość | Znaczenie | Uwagi |
---|---|---|
false | Brak animacji. | |
true | Możliwość animowania za pomocą eventów | |
sky | Animacja nocnego nieba | |
wind | Kołysanie się obiektu pod wpływem wiatru. | |
billboard | Obracanie się obiektu w kierunku kamery. | |
digiclk | Animacja zegara cyfrowego | |
digital | Animacja z przeskokiem co 36° | Liczniki mechaniczne zbudowane są z submodeli potomnych, które obracane są o wielokrotność kąta 36°, zależnie od cyfry na wskazanej pozycji. Pozycję określa pierwszy znak nazwy submodelu — musi być cyfrą, inaczej submodel nie będzie animowany. Pozwala to zbudować licznik dziesięciocyfrowy (dla zegarów działają tylko pozycje 0..5). Licznik może obsługiwać dowolną liczbę animowanych submodeli (np. zegar może być dwustronny), submodele z tą samą cyfrą na początku będą obracane równolegle |
seconds | Sekundy płynnie (60s/360°, pełny obrót w minutę) | |
seconds_jump | Sekundy z przeskokiem co 6° | |
minutes | Minuty płynnie (1h/360°, pełny obrót w godzinę) | |
minutes_jump | Minuty z przeskokiem co 6° | |
hours | Godziny płynnie (12h/360°) | |
hours_jump | Godziny z przeskokiem co 30° | |
hours24 | Godziny płynnie (24h/360°) | |
hours24_jump | Godziny z przeskokiem co 15° | |
ik | IK: zadający | brak funkcjonalności w exe |
ik11 | IK: kierunkowany | brak funkcjonalności w exe |
ik21 | IK: kierunkowany | brak funkcjonalności w exe |
ik22 | IK: kierunkowany | brak funkcjonalności w exe |