Cinema Dynamics 1.005 Newton by se divil Ze školy víme, že dynamika je obor mechaniky, zabývající se pohybem těles, přičemž příčinou pohybu těles je síla. Když kolem roku 1667 Isaac Newton formuloval zákony dynamiky a pojem gravitace, asi jen sotva mohl tušit, že za několik století dojde k zavádění jeho poznatků do 3D modelovacích programů. Jedním z výsledků těchto snah je plug-in modul pro program Cinema nazvaný Cinema Dynamics. Dynamika a ostatní Je-li animátor postaven před úkol vytvořit realisticky vyhlížející animaci tak, aby její průběh odpovídal působení skutečných fyzikálních sil (např. prostý pád předmětu ze schodů), stráví vytvářením klíčových snímků velmi dlouhou dobu, a přitom výsledek nemusí být vůbec přesvědčivý. Ty nejvýkonnější (a také nejdražší) programy nabízely uživatelům simulaci dynamiky, ať už v jednoduší či složitější podobě, již dříve. Až v nedávné době však výrazný nárůst výpočetního výkonu umožnil implementaci dynamiky do většiny nejpoužívanějších programů - v různých formách a na různé úrovni. Podíváme-li se na programy, o nichž v našich zeměpisných šířkách asi nejčastěji uslyšíte, zjistíme, že z hlediska jejich práce s dynamikou stále hrají prim staří (nejdražší) známí - Maya a Softimage. 3ds max má od čtvrté verze dynamiku také, díky modifikátoru Flex včetně soft bodies (simulace pružných či měkkých deformujících se objektů), přesto pro profesionálnější nasazení se jeví mnohem lepší plug-in Reactor od Havoku, nabízený přímo pod křídly samotného Discreetu. Caligari trueSpace nabízel jednoduchou, ale spolehlivě fungující simulaci některých fyzikálních sil již ve verzi 3. U LightWave není v tomto ohledu situace asi taková, jak by si jeho uživatelé představovali. Přesto díky Motion Designeru 2 a hlavně plug-in modulu Impact 2 od Dynamic Realities je možné využít dynamiku v případech, kdy je to vyžadováno. A nyní je tu Cinema a plug-in Dynamics. Možnosti Dynamics Plug-in se dodává již tradičně v kovově vyhlížející krabici zcela věrné designu ostatních produktů Maxonu. V ní najdete instalační CD spolu s manuálem, v němž kromě popisu programu a tutorialů je zhruba od dvou třetin také referenční manuál. Instalace je bezproblémová, program vyžaduje pouze Cinemu verze 7.2 (update na verzi 7.2 je součástí CD; změny mezi verzemi 7.1 a 7.2 jsou opravdu minimální, v podstatě jde o plug-iny a nepodstatné změny v několika dialogových panelech). Po instalaci nenastává v Cinemě žádná změna, jen v menu Plugins přibude položka Dynamics. Základem práce s dynamikou v Cinemě je Solver objekt (SO). Ostatní objekty s vlastnostmi dynamiky se ve stromové struktuře umísťují pod něj. Je to praktické a přitom nutné řešení, protože takto si sami určujete, kterých objektů se dynamika týká a ostatní pak nemusí být brány v potaz. U SO se nastavují základní vlastnosti, jako rozsah snímků v animaci, v nichž bude dynamika působit, integrační metoda (Midpoint - rychlá, ale ne příliš přesná, Runge-Kutta - 10x přesnější, ale také 4x pomalejší, Adaptive - nejpřesnější a také nejpomalejší) a faktory Oversampling a Subsampling, ovlivňující přesnost matematických výpočtů pohybu těles v dynamickém systému. Neméně důležitým parametrem je Epsilon (Eps), což je vzdálenost mezi objekty, kde dochází ke kolizím, a s ním související Rest Speed, ovlivňující "zasekávání" objektů do sebe. K němu ve většině dynamických systémů dochází k nespokojenosti uživatelů se železnou pravidelností. Jestliže máte vytvořen Solver objekt, můžete ostatním objektům ve scéně přiřazovat dynamické charakteristiky. Základním a nejvyužívanějším řešením je práce s Rigid bodies (RB) - objekty, které při kolizi nemění svou geometrii, jsou tedy velmi blízké většině objektů v reálném světě. Každý objekt RB má svou hmotnost a rychlost, což definuje jeho pohyb a interakci s jinými tělesy ve scéně. Při simulaci kolizí na pomalejších strojích nebo při práci se složitějšími modely můžete nastavit typ detekce kolizí. Nejjednodušší je kvádr (těleso je nahrazeno kvádrem stejného objemu), následuje elipsoid (vhodný na sférické typy objektů) nebo plná kolize (uvažován je přesný tvar tělesa, čímž je tento způsob detekce nejpomalejší, bohužel u složitějších objektů nezbytný). Pokud jsou ve scéně tak složité objekty, že nepomůže kvádr ani elipsoid a při plných kolizích je výpočet nepřijatelně dlouhý, nabízí Cinema možnost vytvoření tzv. proxy modelu. To je model s výrazně sníženým počtem polygonů, k jehož vytvoření se výtečně hodí již od verze 7 zdarma dodávaný plug-in Polyreduction. Kromě RB v Cinemě naleznete také Rigid Body Spring, což je svým způsobem jednoduchá forma Constraint (viz dále). Jen vyjmenování dalších nastavitelných parametrů by vydalo na dlouhý seznam, proto se jen stručně zmíním, že u RB naleznete samozřejmě elasticitu, koeficienty statického a dynamického tření a třeba také volbu Double Sided, kdy se při výpočtu berou v úvahu obě strany polygonu. Soft Bodies (SB) jsou tím nejmocnějším nástrojem, který Dynamics nabízí. SB se používají při simulaci objektů, které během animace mění tvar, například vlající prapor, šaty na animované postavě, skákající míč deformující se dopady na tvrdý povrch apod. SB objekt nepředstavuje jednotnou hmotu jako v případě RB, ale je tvořen z mnoha dílů, z nichž každý je reprezentován jedním bodem. Body tvoří síť a stanovením pružnosti mezi body získáte kontrolu nad vlastnostmi objektu. Pro každý bod je možné nastavit hmotnost - pokud bude například nulová, nebude vybraný bod v pohybu. Cinema rozeznává několik metod vzájemného ovlivňování bodů (MinMax, Structural, Shear, Flexion, Cloth), ve většině případů se však neobejdete bez jejich kombinace. Vedle plné kolize s ostatními objekty můžete také nastavit detekcí kolizi sama se sebou, což je velmi žádoucí zejména u tkanin. Pro tkaniny je v dialogovém panelu dokonce speciální nastavení a samozřejmě mnoho dalších parametrů jako tuhost objektů (snadno tak vytvoříte např. želatinové kostky) nebo tlumení. Constraints jsou používány k omezení pohybu - jejich pomocí můžete zafixovat pohyb v jedné nebo více osách, ovlivnit rotaci, zastavit pohyb apod. V reálném světě najdeme opět dostatek příkladů - typickým je kyvadlo, kde by se Constraint použil na jeho uchycení, dalším například ukotvená pružina, na jejímž konci se houpe koule. Právě otočný úchyt pružiny je Constraint - tento typ nazývá Cinema konkrétně Joint. Mezi další patří Velocity (ovlivníte rychlost) či Motor (rotace konstantní úhlovou rychlostí). Constraints je možné využívat pouze ve spojení s Rigid Bodies, u Soft Bodies vypomůže nastavení nulové hodnoty pro vybrané kontrolní body ve spojení s Restriction Tag. Pro simulaci dynamiky je podstatná gravitace. Cinema nabízí kromě definovatelné intenzity také možnost nastavit směr a orientaci gravitačního pole jako axiální (v jednom směru), radiální (radiálně z jednoho bodu), typu Newton (při kladné intenzitě přitažlivost, při záporné odpudivost - je velmi vhodná např. na simulaci eliptických drah u planet). Ovlivnit můžete i tvar gravitačního pole - krychle, koule, válec, kužel a torus, vždy s možností nastavení gradientu intenzity. Další užitečnou veličinou je působení větru. V reálném světě jde o poměrně komplikovanou záležitost, proto je logické, že v Dynamics existuje pro výslednou sílu zjednodušení - má tři složky, jejichž intenzita se dá nastavit koeficienty. Právě spojením Soft Bodies s větrem vytvoříte vlající prapor, záclony, vlnící se tkaniny apod. Drag čili odpor je třetí důležitou veličinou. Jeho využití je rozmanité, počínaje tlumením při dopadu předmětu, odporem vzduchu proti pohybu objektu apod. Drag je nastavitelný ve třech režimech (Linear, Angular, Axial) a působí proti směru pohybu objektu. Dynamics nabízí samozřejmě mnohem víc, najdete tu například i takové vychytávky jako Break, který využijete, když budete modelovat kouli na gumě - pokud při pružení přesáhnete určitou mez, koule prostě upadne. Síla Dynamics spočívá nejen v možnosti vzájemné kombinace výše popsaného, ale překvapivě také ve stromové struktuře, kterou Cinema dodržuje. Můžete mít například libovolný počet Solver objektů, u každého z nich specifickou gravitaci, odlišnou odporovou sílu apod. Za všechny uvedu jeden příklad: chcete, aby se působením větru vlnila záclona a přitom spadl z okna na zem květináč. U květináče i u záclony musíte mít nastavenu hmotnost a gravitaci. Když aktivujete vítr, záclona vlaje, ale současně se jeho působením začne pohybovat květináč, a to i během pádu. Místo zdlouhavého ladění hmotností je jednoduchým řešením vytvořit dva Solver objekty, z nichž pouze pod jedním bude gravitace. Při práci s dynamikou je důležité měřítko - je totiž velký rozdíl, jestli má skákající míč průměr 100 metrů nebo 1 centimetr. Rozdílná je nejen hmotnost, ale také počítaná gravitace. Vhodné je využití hyperNURBS - například pro dokonalou iluzi vlajícího praporu stačí místo husté polygonové sítě využít hyperNURBS, čímž dosáhnete nádherného vyhlazení tvaru a počítání bude stále probíhat v reálném čase. Tím se dostáváme k hardwarovým nárokům aneb jak rychlý potřebujete počítač, aby simulace v editoru běžely plynule. Na to, abyste pracovali se složitými objekty, měnili libovolně nastavení a pozorovali změny, téměř jistě nestačí ani dnešní nejvýkonnější procesory. To vědí i autoři, a proto má Cinema funkci MakePreview, která předem vypočte náhled celé animace. Rychlostně na tom Dynamics není vůbec špatně, zvláště když dodržujete měřítko, používáte jednoduché modely (případně proxy modely) a povolujete a nastavujete jen ty parametry, které jsou opravdu potřebné. Že to jde, dokazují předinstalované jednoduché scény - máte například misku a v ní předmět. S miskou v reálném čase pohybujete, předmět se odráží od stěn nebo vyskočí, můžete ho chytat apod. Podle mých zkušeností nebudete mít už s procesorem kolem 500 MHz pocit, že sledujete zpomalený film. Hodnocení V předchozích řádcích jsem uvedl řadu kladů a možná namítnete, že chybějí zápory. Když ony se opravdu těžko hledají. Když už jsem si myslel, že jsem Dynamics nachytal "na hruškách" a prováděné simulace byly přinejmenším podezřelé (vše se najednou zpomalilo, objekty se zasekly do sebe, objekt zmizel neznámo kam), vždy jsem zjistil, jak dané situaci předejít, případně kde jsem co špatně nastavil. Malá výtka by snad byla k tomu, že autoři mohli rovnou připravit paletu s Dynamics a integrovat ji do prostředí třeba jako v případě BodyPaintu - ono totiž nestačí například u Soft Bodies posunout objekt ve scéně. Nejdříve musíte deaktivovat Solver objekt a v menu plug-inu nalézt položku Initialize object, čímž novou pozici zafixujete. Pokud si příkazy nevytáhnete do nové palety, můžete se tak při jemném ladění více objektů "uklikat". Celkově mne schopnosti plug-inu přesvědčily, a to nejen proto, že program běžel korektně a ani jednou mi nespadl, ale především proto, že jsem v něm byl schopen realizovat své nápady bez jakéhokoliv omezení. Možná jsem nenarazil až na samotné hranice jeho možností, možná se najdou animátoři, kterým to, co Dynamics nabízí, nebude stačit, ale troufám si říci, že většina uživatelů bude spokojena. Dynamics nabízející dynamiku pevných a ohebných těles je totiž jednoznačně nejlepší plug-in, který pro Cinemu v současné době existuje. Jiří Chrustawczuk Cinema Dynamics 1.005 Plug-in modul pro modelování dynamiky pevných a ohebných těles. Minimální požadavky: Maxon Cinema 4D XL 7.2. Výrobce: Maxon Computer, Friedrichsdorf, Německo. Poskytl: Digital Media, Olomouc. Cena: 16 910 Kč.