Interactive Control - Animace
V minulém Älánku jsme si ukázali, jak vložit IC do stroje. Dnes si ukázame jak pÅ™es IC zapisovat ovládánà animacÃ. Budeme k tomu potÅ™ebovat xml soubor stroje a správnÄ› vložené IC.
Kam zapisovat ovládánà animacÃ
V prvé Å™adÄ› budeme potÅ™ebovat vytvoÅ™it si mÃsto, kam budeme zapisovat ovládánà animacÃ. Zapisujeme do xml podle následujÃcÃho vzoru:
1<interactiveComponents minDist="13" toggleStyle>="1"2 <windows>3 <window ... />4 </windows>5</interactiveComponents>
Možná se práte, proÄ se animace zapisujà do oddÃlu windows. Je to z toho důvodu, že původnà IC bylo tovÅ™eno na animovánà oken stroje - ovÅ¡em pozdÄ›ji se použità rozÅ¡ÃÅ™ilo, ale v rámci zachovánà zpÄ›tné kompatibility je oddÃl stále windows. Nynà se koukneme na atributy jednotlivého ovládánà animace - window.
Atributy onMessage a offMessage
Tyto atributy se použÃvajà k definovánà hlášky, která se má zobrazit po najetà myÅ¡i a to buÄ pÅ™i otevÅ™ené animaci (animace je na konci - hláška v offMessage) nebo uzavÅ™ené animaci (jeÅ¡tÄ› se na tlaÄÃtko nekliklo - hláška v onMessage). Oba tyto atributy musà obsahovat název definovaného textu v l10n v modDesc.xml.
Atribut name
Tento atribut sloužà k zobecnÄ›nà hlášek - pokud máme napÅ™Ãklad 2 animace, tak pro obÄ› můžeme vypisovat stejnou hlášku s tÃm, že mÃsto name které se tam má doplnit, napÃÅ¡eme do hlášky on/offMessage nÄ›jaký text a jako zástupný znak name použijeme %s. Ve výsledku tak máme tÅ™eba jednu onMessage, jednu offMessage a 2 animace použÃvajÃcà stejné hlášky akorát s jiným name. Atribut name obsahuje název definovaného textu v l10n v modDesc.xml.
Atribut size
Size sloužà k definovánà velikosti tlaÄÃtka pro kliknà - nikoli velikosti vizuálnÃ! Hodnota je desetinné ÄÃslo v rozmezà 0 až 1. Toto ÄÃslo urÄije procentuálnà velikost klikatelného tlaÄÃtka oproti monitoru. Je dobré si s tÃmto pohrát aby se mohli použÃvat tlaÄÃtka blÃzko u sebe.
Atribut mark
Tento atribut obsahuje index tlaÄÃtka v i3d stroje. Objekt na tomto indexu musà mÃt nejaký vnoÅ™ený objekt pro pÅ™Ãpadné pÅ™idánà efektů. DoporuÄuji použÃt tlaÄÃtko z archivu který si stáhnete s IC. Kolem tohoto indexu se tvořà klikatelná oblast definovaná v size. Pokud nenà mark obsažen v tagu, vytvořà se pouze událost. Takto vytvoÅ™enou událost můžete použÃvat v multiButtons.
Atribut animName
Tento atribut, jak již název napovÃdá, bude obsahovat název animace kterou bude tlaÄÃtko spouÅ¡tÄ›t. Tato animace může být defiovaná v i3d a nebo v xml stroje.
Atribut synch
Atribut synch se použÃvá pro multiplayer a může obsahovat hodnotu true a nebo false. Tento atribut nenà povinný a jeho základnà hodnota je true. Pokud je hodnota false, pak nenà synchronizováno chovánà na MP - tzn.: jeden hrÃ¡Ä může vidÄ›t nÄ›co spuÅ¡tÄ›né a druhý ne. Vhodné pro nÄ›jaké drobné funkce aby se nezatěžovala komunikace pÅ™i MP.
Atribut isOutside
Tento atribut definuje, zda je tlaÄÃko urÄeno pro použità mimo stroj a nebo pro použità v kabinÄ›. Pokud je false, tlaÄÃtko se zobrazà pouze tehdy, když jsme ve stroji. Pokud je true tak to zanmená, že aby se talÄÃtko dalo spustit, tak musÃme být v dosahu definovaném minDist. Tento atribut je nepovinný a jeho základnà hodnota je false.
Ukázka zápisu animacÃ
Nakonec vám zde pÅ™ikládám ukázku zápisu animacà do IC i s jejich definicÃ:
12<interactiveComponents minDist="13" toggleStyle="1">3 <windows>4 <window name="volant" mark="0>6|0|9|4|0" size="0.3" animName="naklon_volantu" onMessage="ic_volant_open" offMessage="ic_volant_close" />5 <window name="okno" mark="0>6|0|3|5" size="0.3" animName="otevreni_okna" onMessage="ic_component_open" offMessage="ic_component_close" />6 <window name="dvere" mark="0>6|0|5|1" size="0.3" animName="otevreni_dveri" onMessage="ic_component_open" offMessage="ic_component_close" />7 <window name="dvere" mark="0>6|0|5|2" size="0.3" animName="otevreni_dveri" onMessage="ic_component_open" offMessage="ic_component_close" isOutside="true" />8 </windows>9</interactiveComponents>1011<animations>12 <animation name="otevreni_okna">13 <!--packa-->14 <part node="0>6|0|3|4" startTime="0" endTime="2" startRot="9 0 0" endRot="9 0 -90"/>15 <part node="0>6|0|3|4" startTime="2" endTime="4" startRot="9 0 -90" endRot="9 0 0"/>16 <!--okno-->17 <part node="0>6|0|3" startTime="2" endTime="5" startRot="0 0 0" endRot="45 0 0"/>18 </animation>19 <animation name="otevreni_dveri">20 <!--dvere-->21 <part node="0>6|0|5" startTime="0" endTime="5" startRot="0 0 0" endRot="0 40 7"/>22 </animation>23 <animation name="naklon_volantu">24 <!--pedal-->25 <part node="0>6|0|9|3" startTime="0" endTime="1" startRot="0 0 0" endRot="-50 0 0"/>26 <part node="0>6|0|9|3" startTime="1" endTime="5" startRot="-50 0 0" endRot="-50 0 0"/>27 <part node="0>6|0|9|3" startTime="5" endTime="6" startRot="-50 0 0" endRot="0 0 0"/>28 <!--volant-->29 <part node="0>6|0|14|0|1|1" startTime="1" endTime="5" startRot="0 0 0" endRot="-35 0 0"/>30 </animation>31</animations>