Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
-
30. září 2024
-
4. října 2024
-
14. listopadu 2024
-
11. prosince 2024
3D grafika
Zkrocení času v CINEMĚ 4D a technologii XPresso, 1 díl
1. června 2004, 00.00 | Pomocí technologie XPresso si vytvoříme komplexní chování, kterým budeme generovat naprosto reálné a plně automatické chování chodin a to jak digitálních, tak ručičkových. Vytvoříme tedy hodiny, které se budou chovat naprosto nezávisle a při výrobě animace nebude potřeba tyto hodiny dále editovat. Vždyť Čas plyne sám....
Čas, divný to patron, někdy se ho nedostává jindy zas jsme rádi, když nám utíká rychleji. Hlavně v pátek. Však to všichni známe. Ale my se na něj dnes podíváme poněkud jinak. A to z úhlu virtuálního světa. Je to přece skvělé, vytvářet si svůj vlastní svět. Jak si ale ulehčit práci, když ve scéně mají být hodiny. Tím myslím prosté nástěnné či stojící hodiny, které pokojně a zcela bez zájmu o okolí otáčí ručičkami svých ciferníků. Jak vytvořit efekt, kdy si nejdříve nastavíme počáteční čas, spustíme přehrávání snímků animace a jak čas utíká, tak se automaticky otáčejí ručičky hodin. Kamera může hodiny zabrat třeba jen na počátku a konci animace, ale čas který uvidí bude vzhledem k animaci naprosto přesný a odpovídající. Jak tedy takový efekt připravit? Odpověď se jistě naskýtá. Můžeme si napsat skript C. O. F. F. E. E., či celou záležitost odbýt XPressem, což je jistě jednodušší a přehlednější varianta pro většinu z nás, včetně mne a tak využijeme právě tento editor. Poslední možností je samozřejmě vytvořit hodiny ovládané klíčovými snímky, ale pak bychom museli pro každou scénu vytvářet nové nastavení animace těchto hodin a to by nebylo příliš efektivní.
Aby nebyla celá záležitost zas až tak složitá, nebo možná spíše méně nepřehledná, vytvoříme si nejdříve jakousi formu digitálního budíku a teprve poté si nastíníme způsob převedení dat na ručičky hodin. Začátek tedy bude velmi jednoduchý, jako ostatně celý "skript", který v Xpressu vytvoříme, přesto však bude ke konci vytvořené chování svou strukturou (nikoliv funkcí) poměrně složité a nutno poznamenat, že možná i trochu nepřehledné. Musím tedy apelovat na ty, kteří chtějí pouze opakovat níže popsané kroky bez základního zamyšlení se nad zvolenou strukturou a algoritmem, aby si nejdříve přečetli celý postup, zkusili jej pochopit a teprve poté jej zpracovali. Jejich práce tak bude efektivnější a také povede k hlubšímu pochopení celého příkladu a technologie XPresso, což je jistě cílem našeho snažení. V tomto bodě se budu tak trochu opakovat, ale XPresso je vskutku fenomenální nástroj, který je škoda nevyužívat.
Neodpustím si ještě jednu poznámku. Vím, že články o XPressu si nezískávám přespřílišné sympatie čtenářské obce. Je to logické, čtenář raději pěkné obrázky a ne nějaké "oplzlé" vývojové diagramy. Chápu, avšak coby autor zde nejsem pro prezentování svých děl a nápadů, ale pro zprostředkování možností programu. A z toho důvodu doufám, že se nad XPressem budeme potkávat i nadále.
Nějak jsem se dnes na úvod rozepsal. Konec řečí! Jdeme na to!
Vytvoříme si novou scénu a do ní si vložíme tři křivky Text. Ve Správci nastavení v každém tomto objektu vymažeme výchozí nápis "Text" a každý jeden z těchto objektů nově pojmenujeme. První "Hodiny", druhý "Minuty" a třetí "Sekundy". Vybereme si ve Správci objektů objekt textové křivky Sekundy a v tomto správci zvolíme Soubor > Nové chování > XPresso - chování. Tím si otevřeme okno editoru XPresso, které je prozatím panensky neposkvrněné, jako bílý list papíru. Ale ten se dá popsat.
Můžeme si všimnout, že se ve výchozím stavu na výstupní straně uzlu Čas nachází port Čas. Tento port použijeme, ale z důvodu testování animace můžeme využít i jiný port, třeba Snímek. A to z důvodu, že kontrolovat chování hodin, třeba ve 12:00 může být časově náročné (asi tak zhruba :-) 12 hodin). Uzel Čas s portem Čas na výstupní straně generuje hodnotu, která vychází ze vzorce "Číslo snímku/počet snímků za vteřinu", přičemž výsledek zaokrouhluje dolů. Při snímku 100 bude tento uzel vysílat hodnotu 3 v případě, že je nastaveno 30 snímků za vteřinu v nastavení projektu.
Nejdříve zajistíme, aby se nám v editoru zobrazovalo množství proběhnuvších vteřin. Uchopíme ve Správci objektů objekt Sekundy a přetáhneme jej do okna editoru XPresso. Tím se vytvoří pro tento objekt nový nod, uzel. Stejně tak přetáhneme i objekty Minuty a Hodiny. U každého z uzlů těchto objektů klikneme myší na levý modrý roh a vybereme parametr portu Vlastnosti objektu > Text. Díky tomu budou tyto textové objekty zobrazovat aktuální čas jako digitální hodiny (samozřejmě že bychom měli ve scéně tyto objekty také vhodně rozmístit aby se nám nekryly, ale to je samo sebou).
Základní jednotkou času je jedna sekunda. Abychom měli celkový přehled o uběhlých sekundách, klikneme pravým tlačítkem do volné plochy editoru XPresso a vybereme uzel Nový nod > XPresso > Hlavní > Výsledek (nad výstup). Tento uzel není ničím jiným, než jen pomocnou jednotkou, která ve svém poli zobrazuje vstupující data a zase je posílá ven. Na funkčnost tedy nemá žádný vliv.
V prvé řadě si vytvoříme zobrazení adekvátních hodnot vteřin. A to pomocí uzlu Nový nod > XPresso > Počítat > Mat. Označíme si právě vytvořený uzel Mat a ve Správci nastavení (záložka Nod) změníme jeho funkci na Modulo a Datový typ na Celá (tím se myslí celá čísla). Je asi namístě vysvětlit funkci Modulo. Jde vlastně o vytvoření cyklů, kdy vstupující hodnota zvyšuje výstupní hodnotu o stejnou jednotku do okamžiku dosažení vrchní hranice cyklu, kdy se výstupní hodnota skokem vrátí na počáteční hodnotu cyklu. Vše asi nejlépe objasní příklad. Modulo je nastavené na 0 až 10, díky čemuž budou vstupující hodnoty převedeny na výstupní podle následujících příkladů (vstup/výstup) 5/5, 8/8, 10/0, 11/1, 22/2 atd.
Nyní máme dvě možnosti. Do uzlu Mat budeme posílat hodnoty uzlu Výsledek nad výstup, ale tyto hodnoty budeme v Mat upravovat pomocí funkce modulu. Jednu hodnotu tedy máme, druhou musíme zadat. Můžeme ji zadat při vybrání uzlu Mat ve Správci nastavení na záložce Parametr (Vstup [2]), ale osobně preferuji jiný postup, ve kterém ve správci XPresso vidíme i vstupní hodnoty. Klikneme tedy pravým tlačítkem myši do prázdné plochy editoru a vybereme příkaz Nový nod > XPresso > Hlavní > Konstanta. Nový uzel označíme a ve Správci nastavení zadáme hodnotu 60 (vteřin je na hodinách vždy nejvíce 60, respektive 0-59). Je načase vytvořit první spojovací vedení. Tahem vytvoříme spojení (vždy v pořadí výstup, červený port - vstup, modrý port) mezi Čas - Výsledek (nad výstup) - Mat:Modulo vrchní port - Sekundy. A ještě do uzlu Mat:Modulo zadáme do druhého vstupního portu hodnotu uzlu Konstanta. Pokud nyní přehrajeme animaci (a pokud bude dostatečně dlouhá), tak si můžeme zkusit, že se v textové křivce Sekundy budou vypisovat hodnoty 0 až 59. Pokud chceme přehrávání zrychlit, můžeme změnit port v uzlu Čas (například na Snímek, více viz výše).
Nyní si zobrazíme uběhlé minuty. Jistě si všichni pamatujeme, že v chování máme uzel Výsledek (nad Výstup), ze kterého nám vycházejí hodnoty uběhlých vteřin. Abychom mohli zobrazit množství uběhlých minut, tak musíme hodnotu uběhlých vteřin vydělit 60 a výsledné číslo zpracovat modulem (právě jsme si přeci zkopírovali Mat:Modulo). Přičemž modul bude opět 60 (jako u vteřin). Je-li idea jasná, klikneme do volné plochy editoru pravým tlačítkem myši a vybereme Nový nod > XPresso > Počítat > Mat. Označíme si právě vytvořený uzel Mat a ve Správci nastavení (záložka Nod) změníme jeho funkci na Dělit a Datový typ na Celá. Vybereme si některý z uzlů Konstanta a zkopírujeme jej (to bude hodnota, kterou budeme dělit vstupující vteřiny). Musíme si ještě říci, že do každého vstupního uzlu (levého) může vstupovat jen jedna hodnota, ale z výstupního portu může hodnota vycházet do libovolného počtu vstupních portů. My této vlastnosti využijeme.
Propojíme tedy výstupní port uzlu Výsledek (nad výstup) - Mat:Dělit (vrchní první vstup) - Mat:Modulo (vrchní první vstup, toto je jeden z dříve kopírovaných uzlů) - Minuty. Do druhého spodního vstupního portu Mat:Dělit napojíme naposledy zkopírovaný, samostatně stojící uzel Konstanta, ve kterém máme hodnotu 60. Do spodního portu uzlu Mat:Modulo by nám měl vstupovat uzel Konstanta, který jsme spolu s tímto uzlem před chvílí zkopírovali. Při přehrávání animace by se nám nyní měly zobrazovat jak sekundy, tak minuty, jejichž hodnota by se vždy měla zvýšit o 1 v případě, že se změní hodnota sekund z 59 na 0. V okamžiku kdy dosáhne hodnota minut 59 a sekund 59 a uplyne právě jedna vteřina, obě hodnoty se posunou na 0 a 0.
-
14. května 2014
Jak vkládat snímky do galerií a soutěží? Stručný obrazový průvodce
-
23. dubna 2014
Konica Minolta přenesla výhody velkých zařízení do kompaktních modelů
-
12. června 2012
-
9. dubna 2014
-
5. ledna 2017
-
6. září 2004
OKI snižuje ceny barevných laserových tiskáren C3100 a C5200n
-
13. května 2004
-
19. ledna 2004
QuarkXPress Passport 6: předvedení nové verze na konferenci Apple Forum 27.1.2004
-
6. února 2001
-
30. listopadu 2014
Nový fotoaparát α7 II: první plnoformát s pětiosou optickou stabilizací obrazu na světě
-
14. října 2024
-
22. října 2024
-
10. prosince 2024