Modely do AFPD Modely do AFPD Modely do AFPD Modely do AFPD Modely do AFPD
SOUBORY MODELU

V této části se pokusím vysvětlit, co jaký soubor v adresáři jednotlivých modelů, v našem případě modelu Antares, znamená. Když otevřeme adresář "Antares" ("..\AeroFly Professional Deluxe\aircraft\Antares\"), najdeme tam tyto soubory:

Aby jste měli možnost porovnávat jednotlivé postupy, můžete si stáhnout kompletního Antarese se všemi zdrojovými soubory.

Antares.tgo

Tento soubor vznikne za pomoci utility "mqo_to_afp.exe". Jak jsem již psal v části "Stručný postup", díky tomuto prográmku zkonvertujeme soubor z formátu "Antares.mqo" do formátu, kterému AFPD rozumí. Konverzí vzniknou tři soubory:

  • Antares.obj (textový soubor)
  • Antares.tgo (binární soubor)
  • tm.log (textový soubor)

Soubor "Antares.tgo" zkopírujeme do adresáře Antares, který vytvoříme ve složce "aircraft" simulátoru. Nic jiného se s ním dělat nedá. Soubor "Antares.tgo" je výchozí soubor, ve kterém jsou uloženy veškeré údaje celého modelu … velikost jednotlivých částí, souřadnice polygonů, namapování textur a další. Soubor "Antares.obj" je textový soubor, kde můžete vidět jednotlivé objekty, souřadnice polygonů a další. V podstatě vás nemusí zajímat.


Příkaz pro konverzi je v našem případě následující: mqo_to_afp.exe Antares 0.001.

  • Antares – jméno modelu, které vychází z názvu uloženém v programu Metasequoia.
  • 0.001 – faktor měřítka

Toto měřítko je platné pro velikost Antarese v Metasequoia. Když stavíte model, je jedno v jakém měřítku, ale před konverzí ho upravte na velikost, jaká je na obrázku. Nezkoušel jsem a myslím, že je i zbytečné vymýšlet jiné varianty. Nejjednodušší je udělat si pomocný objekt "plocha" o velikosti rozpětí a délky modelu a porovnat s modelem.

plocha.gif, 11kB

Pro takovou velikost potom platí měřítko 0.001 při konverzi.

rozmery.gif, 13kB

Soubor "tm.log" je obyčejný textový soubor, ve kterém je záznam o činnosti konverze. Po otevření v textovém editoru můžeme zkontrolovat, jestli se při konverzi nevyskytly chyby. Pokud získáte podobný výsledek, je vše v pořádku.

  • mqo2afp:
  • mqo2afp: // --------------------------------------------------------------
  • mqo2afp: // aerofly professional mqo file converter
  • mqo2afp: //
  • mqo2afp: // copyright (c) 2002-2007 ipacs gbr all rights reserved
  • mqo2afp: // www.ipacs.de
  • mqo2afp: //
  • mqo2afp: // you are not allowed to distribute this software
  • mqo2afp: // except with the written permission of ipacs
  • mqo2afp: //
  • mqo2afp: // the software is provided "as is", without warranty of any
  • mqo2afp: // kind, express or implied, including but not limited to the
  • mqo2afp: // warranties of merchantability, fitness for a particular
  • mqo2afp: // purpose and noninfringement of third party rights. in no
  • mqo2afp: // event shall the copyright holder or holders included in this
  • mqo2afp: // notice be liable for any claim, or any special indirect or
  • mqo2afp: // consequential damages, or any damages whatsoever resulting
  • mqo2afp: // from loss of use, data or profits, whether in an action of
  • mqo2afp: // contract, negligence or other tortious action, arising out of
  • mqo2afp: // or in connection with the use or performance of this software.
  • mqo2afp: //---------------------------------------------------------------
  • mqo2afp:
  • mqo2afp: 0: "Antares-C1" (1.00,1.00,1.00) (t=Antares-C1.bmp)
  • mqo2afp: 1: "Antares-C2" (1.00,1.00,1.00) (t=Antares-C2.bmp)
  • mqo2afp: 2: "Glass" (1.00,1.00,1.00) (t=Antares-C1.bmp)
  • mqo2afp: 3: "Metal" (1.00,1.00,1.00) (t=Antares-C2.bmp)
  • mqo2afp: 4: "Rubber" (1.00,1.00,1.00) (t=Antares-C2.bmp)
  • mqo2afp: (smooth) (FusTail) (ch=544 1006) (v=3822 891) (dgn=1274 1274) (t=1274 1274) (ts=73)
  • mqo2afp: (smooth) (Fuselage) (ch=698 1297) (v=5133 1107) (dgn=1711 1711) (t=1711 1711) (ts=50)
  • mqo2afp: (smooth) (FusCaseIn) (ch=651 1204) (v=4701 1010) (dgn=1567 1567) (t=1567 1566) (ts=88)
  • mqo2afp: (smooth) (Cockpit) (ch=70 125) (v=4464 1196) (dgn=1488 1364) (t=1364 1364) (ts=51)
  • mqo2afp: (smooth) (CockpitUp) (ch=98 180) (v=774 279) (dgn=258 247) (t=247 247) (ts=17)
  • mqo2afp: (smooth) (Canopy) (ch=130 241) (v=396 145) (dgn=132 132) (t=132 132) (ts=7)
  • mqo2afp: (smooth) (GSpring) (ch=125 246) (v=3270 889) (dgn=1090 1090) (t=1090 1090) (ts=248)
  • mqo2afp: (smooth) (GFixture) (ch=11 10) (v=216 197) (dgn=72 72) (t=72 72) (ts=63)
  • mqo2afp: (smooth) (LeftWing) (ch=49 77) (v=480 186) (dgn=160 160) (t=160 160) (ts=16)
  • mqo2afp: (smooth) (LeftEnd) (ch=120 236) (v=708 147) (dgn=236 236) (t=236 236) (ts=13)
  • mqo2afp: (smooth) (LeftAileron) (ch=13 22) (v=66 34) (dgn=22 22) (t=22 22) (ts=6)
  • mqo2afp: (smooth) (RightWing) (ch=49 77) (v=480 185) (dgn=160 160) (t=160 160) (ts=14)
  • mqo2afp: (smooth) (RightEnd) (ch=120 236) (v=708 146) (dgn=236 236) (t=236 236) (ts=8)
  • mqo2afp: (smooth) (RightAileron) (ch=13 22) (v=66 34) (dgn=22 22) (t=22 22) (ts=6)
  • mqo2afp: (smooth) (Stabilizer) (ch=24 31) (v=564 152) (dgn=188 188) (t=188 188) (ts=12)
  • mqo2afp: (smooth) (StabilizerUp) (ch=160 281) (v=972 208) (dgn=324 324) (t=324 324) (ts=21)
  • mqo2afp: (smooth) (Rudder) (ch=24 38) (v=138 62) (dgn=46 46) (t=46 46) (ts=8)
  • mqo2afp: (smooth) (LeftStabilizer) (ch=18 16) (v=531 149) (dgn=177 177) (t=177 177) (ts=15)
  • mqo2afp: (smooth) (LeftElevator) (ch=10 15) (v=48 30) (dgn=16 16) (t=16 16) (ts=7)
  • mqo2afp: (smooth) (RightStabilizer) (ch=18 16) (v=531 149) (dgn=177 177) (t=177 177) (ts=14)
  • mqo2afp: (smooth) (RightElevator) (ch=10 15) (v=48 48) (dgn=16 16) (t=16 16) (ts=16)
  • mqo2afp: (smooth) (LeftGear) (ch=54 92) (v=534 135) (dgn=178 178) (t=178 178) (ts=15)
  • mqo2afp: (smooth) (LGear) (ch=26 45) (v=1200 365) (dgn=400 400) (t=400 400) (ts=17)
  • mqo2afp: (smooth) (LGSF) (ch=126 223) (v=816 230) (dgn=272 272) (t=272 272) (ts=22)
  • mqo2afp: (smooth) (LeftWheel) (ch=448 814) (v=4308 1056) (dgn=1436 1436) (t=1436 1436) (ts=71)
  • mqo2afp: (smooth) (RightGear) (ch=54 92) (v=534 142) (dgn=178 178) (t=178 178) (ts=18)
  • mqo2afp: (smooth) (RGear) (ch=26 45) (v=1200 386) (dgn=400 400) (t=400 400) (ts=27)
  • mqo2afp: (smooth) (RGSF) (ch=126 223) (v=816 254) (dgn=272 272) (t=272 272) (ts=32)
  • mqo2afp: (smooth) (RightWheel) (ch=448 814) (v=4308 1056) (dgn=1436 1436) (t=1436 1436) (ts=61)
  • mqo2afp: (smooth) (TailGear) (ch=85 166) (v=2313 648) (dgn=771 770) (t=770 770) (ts=26)
  • mqo2afp: (smooth) (TailSpring) (ch=173 342) (v=5247 3239) (dgn=1749 1749) (t=1749 1749) (ts=934)
  • mqo2afp: (smooth) (TailWheel) (ch=448 814) (v=4308 1997) (dgn=1436 1436) (t=1436 1436) (ts=468)
  • mqo2afp: (smooth) (Engine) (ch=26 15) (v=156 156) (dgn=52 52) (t=52 52) (ts=52)
  • mqo2afp: (smooth) (Motor) (ch=314 585) (v=12882 3642) (dgn=4294 4294) (t=4294 4218) (ts=270)
  • mqo2afp: (smooth) (MotPS) (ch=48 90) (v=936 696) (dgn=312 312) (t=312 312) (ts=197)
  • mqo2afp: (smooth) (Carburetter) (ch=40 59) (v=858 664) (dgn=286 286) (t=286 286) (ts=195)
  • mqo2afp: (smooth) (Silencer) (ch=204 383) (v=2316 586) (dgn=772 772) (t=772 772) (ts=35)
  • mqo2afp: (smooth) (Propeller) (ch=235 442) (v=1512 275) (dgn=504 468) (t=468 468) (ts=9)
  • mqo2afp: (smooth) (Blade1) (ch=126 248) (v=1326 273) (dgn=442 442) (t=442 442) (ts=19)
  • mqo2afp: (smooth) (Blade2) (ch=126 248) (v=1326 273) (dgn=442 442) (t=442 442) (ts=19)
  • mqo2afp: saving 40 geometries and 5 materials
  • mqo2afp:
  • mqo2afp: press enter to close Windows

První část, tj. položky 0: - 4: jsou materiály, které jsem při stavbě Antarese vytvořil, zbytek tvoří jednotlivé části modelu.

soubory01.gif, 13kB

Pokud by jste někdy v souboru "tm.log" našli u nějakého objektu navíc číslo 01, jako u "(FusTail01)", znamená to, že jste k jednomu objektu přiřadili dva materiály. Jednoznačně platí, že k jednomu objektu můžete přiřadit jeden materiál. Náprava je jednoduchá, protože vidíte, u kterého objektu došlo k chybě.

  • ...
  • mqo2afp: (smooth) (FusTail) (ch=558 1034) (v=4572 1030) (dgn=1524 1524) (t=1524 1524) (ts=83)
  • mqo2afp: (FusTail01) (ch=4 4) (v=6 4) (dgn=2 2) (t=2 2) (ts=1)
  • mqo2afp: (smooth) (Fuselage) (ch=698 1297) (v=5133 1107) (dgn=1711 1711) (t=1711 1711) (ts=50)
  • ...

Antares.tmg

Struktura souboru "tmg" není složitá. Vychází se stejného principu jako stromová struktura souborů v souborovém manažeru. Jediný rozdíl je, že na kořenový adresář se váže jen jedna úroveň podadresářů. Nejlépe to znázorňuje tento příklad:

  • Fuselage (trup)
  • FusTail (zadní část trup)

  • Canopy (kabina)

  • FusCaseIn (vnitřní část motorového krytu)

  • Cockpit (kabina)

  • CockpitUp (vrch kabiny)

  • GFixture (úchyt pružiny podvozkové vzpěry)

  • GSpring (pružina podvozkové vzpěry)

  • Motor

  • MotPS (svíčka, šroubky)

  • Carburetter (karburátor)

  • Silencer (tlumič)

Z tohoto příkladu je patrné, že k části nazvané "Fuselage" se váží další, které se z hlediska logiky vázat mají a simulátor je bude chápat jako jeden celek. Další skupinou může být:

  • LeftWing (levé křídlo)
  • LeftAileron (levé křidélko)

  • LeftEnd (levý konec křídla)

Skupiny modelu jsou libovolné, ale hlavní skupiny jako trup, levé křídlo, pravé křídlo, směrovka, výškovka podvozek a kolečka zůstávají zachovány u většiny modelů. Také zachování anglických názvů doporučuji, zejména u hlavních částí modelu. Samozřejmě, že kabinu můžete nechat kabinou, anténu anténou, pružinu pružinou apod. ovšem bez diakritiky.


A takto vypadá část samotného souboru "Antares.tmg":


Jeden objekt

  • Append tmgeometricobject LeftWheel
  • cd LeftWheel/
  • Geometry( "aircraft/Antares/Antares.obj", "LeftWheel" )
  • -
  • Shiny = 0.00
  • cd ../

Skupina objektů

  • Append tmgeometricobject LeftWing
  • cd LeftWing/
  • Geometry( "aircraft/Antares/Antares.obj", "LeftWing" )
  • -
  • Append tmgeometricobject LeftAileron
  • cd LeftAileron/
  • Geometry( "aircraft/Antares/Antares.obj", "LeftAileron" )
  • -
  • cd ../
  • Append tmgeometricobject LeftEnd
  • cd LeftEnd/
  • Geometry( "aircraft/Antares/Antares.obj", "LeftEnd" )
  • -
  • cd ../
  • -
  • cd ../

Je zřejmé, že jeden objekt nebo skupinu objektů řídí umístění syntaxe "cd ../". U skupiny kde je hlavní objekt "LeftWing" se syntaxe "cd ../" tohoto objektu zařadila až na konec a tím svou skupinu uzavírá. Toto jsou jediné dvě varianty zápisu v souboru „tmg“. Pokud by jste ukončili skupinu např. třemi syntaxemi "cd ../" nebo pouze jednou, je to už špatně. Mrkněte na soubory jiných modelů … všude je to stejné. Také jste si asi všimli položky "Shiny = 0.00". Rozsah této položky je zpravidla od 0.00 do 1.00 a udává úroveň lesku objektu. Obvykle se zadávají čtvrtinové hodnoty 0.00, 0.25, 0.50, 0.75, 1.00, protože rozdíl mezi hodnotou 0.25 a 0.30 neuvidíte. Čím vyšší hodnota, tím vyšší lesk. Pokud tam tato položka není, je to stejné, jako kdyby tam byla hodnota "Shiny = 1.00". Ve výjimečných případech, většinou při použití odlesku chrómu, se zadává "Shiny = 2.00". Rozdíl úrovně lesku nejlépe uvidíte, když si vyberete libovolný model v simulátoru a nastavíte rozdílné hodnoty "Shiny" pro levé a pravé křídlo.


Pro lepší orientaci jsem vytvořil následující obrázky jednotlivých skupin a jejich vzájemný vztah.

ant1-tmg.jpg, 8,6kB
ant2-tmg.jpg, 7,7kB
schema.gif, 8,5kB

Antares.tmd

Dostáváme se k nejsložitějšímu souboru na úpravu. Celkem právem, protože napoprvé jde z těch údajů hlava kolem. Ale jenom do té doby než se naučíte, které údaje jsou pro stavbu modelu do simulátoru doopravdy důležité. Z grafického schématu jednotlivých skupin vidíme, že je musíme k sobě nějakým způsobem spojit. Od toho je tady soubor "Antares.tmd", který obsahuje souřadnice spojovacích bodů a parametry jednotlivých částí modelu.

Nejdříve určíme a zadáme do tabulky souřadnice spojovacích bodů. Otevřeme si kromě tabulky "Antares_joints.xls" soubor "Antares.mqo".

Pozor, než začnete, zkontrolujte si, jestli počátek souřadnic není příliš mimo model, protože po konverzi tvoří těžiště. Nejlepší je vybrat celý model a posunout těžiště do blízkosti počátku souřadnic.


Začneme levým křídlem "LeftWing". Vše kromě aktuálního objektu "LeftWing" vypneme. Je na to příkaz "Další" "Zobrazit pouze aktuální" na panelu "Objekty". Aktivujeme příkaz "Posun" a v dialogovém panelu přepneme na "Abs" (absolutní souřadnice). Na křídle vybereme bod, který se nachází asi v první třetině od náběžné hrany. Hodnoty píšeme do levé části tabulky. Automaticky se nám mění hodnoty v pravé části tabulky, které jsou pro nás výchozí.

JointLW01.gif, 30kB

Není to životně důležité, ale myslím, že je lepší mít spojovací bod co nejblíže ke střední křivce profilu. Na závěr vysvětlím proč. Vybereme tedy nejnižší bod profilu křídla. V této chvíli nás ale zajímá pouze hodnota na ose "Y = 9,31". Předchozí hodnota na této ose byla "Y = 12,66". Součtem těchto hodnot a následným dělením dvěma získáme poloviční vzdálenost mezi těmito body "Y = 10,98", kterou zapíšeme do tabulky. V tabulce jsem přidal pro tento výpočet jednoduchý vzoreček.

JointLW02.gif, 30kB

Pokračujeme získáním souřadnic směrovky "Stabilizer". Tady jenom automaticky zapíšeme nulovou hodnotu osy "X", protože střed směrovky je přesně v nulové pozici..

JointStab.gif, 22kB

Následují souřadnice levé části výškového kormidla "LeftStabilizer".

JoinLS01.gif, 23kB

Střed objektu získáme stejným způsobem jako u křídla. Nezapomeňte zapsat výsledek "Y = -0.5"do tabulky.

JoinLS02.gif, 23kB

Nyní souřadnice levého podvozku "LeftGear".

JoinLG.gif, 21kB

Levé kolečko "LeftWheel".

JoinLWh.gif, 23kB

Ostruhový podvozek "TailGear".

JointTG.gif, 25kB

A jako poslední ostruhové kolečko "TailWheel".

JointTW.gif, 28kB

Jistě jste si všimli, že v tabulce máme pouze skupinu např. "LeftStabilizer". Souřadnice pro skupinu "RightStabilizer" nemá smysl zapisovat, protože budou stejné jako u skupiny "LeftStabilizer". Jediným rozdílem je znaménko mínus u souřadnice "X". Z obrázku je to myslím jasné.

x1.gif, 4,3kB

Tak a teď vysvětlím, proč jsme hledali body středu profilu křídla a výškovky. Tyto body nejsou jen body určující místo spojení s trupem, ale jsou to i řídící body, podle kterých se bude křídlo nebo výškovka natáčet při změně úhlu náběhu nebo vzepětí v modelovém editoru. U výškovky Antarese by to až tak nutné nebylo, protože ji tvoří tenká plocha. Jiné modely jako např. Extra 260 mají výškovku tvořenou souměrným profilem a tam by už natáčení těchto částí bylo asymetrické. Nejlépe to znázorňují tyto animace.

LS1.gif, 85kB LS2.gif, 73kB

Dalo by se říci, že vše, co se má nějakým způsobem pohybovat, musí být samostatný objekt nebo skupina se spojovacím bodem. Je to tak, ale v rámci níže uvedených výjimek nám tvůrci AFPD ulehčili práci:

  • Stabilizer (kýlová plocha)
  • Rudder (směrové kormidlo)

  • LeftStabilizer (levý stabilizátor)
  • LeftElevator (levé výškové kormidlo)

  • RightStabilizer (pravý stabilizátor)
  • RightElevator (pravé výškové kormidlo)

  • LeftWing (levé křídlo)
  • LeftAileron (levé křidélko)

  • LeftFlap (levá vztlaková klapka)

  • LeftAirbrake (levá brzdící klapka)

  • RightWing (pravé křídlo)
  • RightAileron (pravé křidélko)

  • RightFlap (pravá vztlaková klapka)

  • RightAirbrake (pravá brzdící klapka)

Jak sami vidíte, tyto hlavní objekty tvoří skupiny a měly by se chovat jako jeden celek. Přesto budou části "Rudder, LeftElevator, RightElevator, LeftAileron, LeftFlap, LeftAirbrake, RightAileron, RightFlap, RightAirbrake" pohyblivé, aniž bychom jim museli zadávat spojovací body. Je to celkem logické, protože většina letadel vychází se stejného principu ovládání. V souboru "Antares.tmd" můžete vidět, kam se tyto konkrétní objekty umísťují.

Vzhledem k velikosti a lepší přehlednosti jsem obsah souboru "Antares.tmd" převedl do formátu "Antares_joint.pdf". Tento soubor je určen pouze pro získání přehledu, kam zapsat získané souřadnice spojovacích bodů. V části "Postupy" najdete podrobný popis jednotlivých parametrů souboru "tmd".

Jenom zopakuji, že soubory "tmg" a "tmd" nevytváříte od samého začátku, místo toho si najdete model, který se vašemu nejvíce podobá a použijete tyto. Je ovšem nutné přejmenovat název a případně části modelu ve všech položkách. Pozor na zápis jednotlivých objektů. Je rozdíl, jestli napíšete "LeftStabilizer" a "Leftstabilizer". Objekty v souborech "tmg" a "tmd" musí mít naprosto identické názvy!


Soubory "tmt"

Tyto soubory jsou zkonvertované textury určené pro zbarvení modelu. Jsou zmíněné v části "Stručný postup". Když u modelu necháte originální textury ve formátu "bmp" tak, jak jsou např. u Antarese, nic se nestane, vše bude fungovat.


preview-Antares.txt

Obyčejný textový soubor s popisem modelu, který se zobrazuje pod vybraným modelem v simulátoru.


AFPD RCSIM IPACS MOJEHOBBY RCmania
Stránky byly testovány na prohlížeči Opera 11, Firefox 6, Internet Explorer 8 (bez kompatibility zobrazení) a využívají JavaScript.