XPresso 2, kontrola materiálů a chování, druhý tutoriál na editor XPresso v CINEMĚ 4D - Grafika.cz - vše o počítačové grafice

Odběr fotomagazínu

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:



Go verze

XPresso 2, kontrola materiálů a chování, druhý tutoriál na editor XPresso v CINEMĚ 4D

26. května 2003, 00.00 | V tomto tutoriálu vytvoříme poměrně komplexní vazbu mezi pohybem objektu a změnou barvy jeho povrchu. A jak jinak než pomocí komplexního nastavení v editoru XPresso.

Zobrazená koule na obrázku poskakuje po křivce a při tomto pohybu mění při dotyku s cestou pohybu barvu.

XPresso může být použito pro kombinaci rozdílných parametrů objektů, tagů a materiálů. V tomto tutoriálu se budeme zabývat kombinací právě těchto tří elementů. Vytvoříme kouli, která se bude poskakovat podél cesty tvořené křivkou a během těchto pohybů bude koule měnit barvu.

Vytvoříme novou prázdnou scénu.

Vložíme do scény primitivní objekt Sphere (koule).

Tato koule bude naším poskakujícím míčkem.

Zvolíme Spline Primitive > Circle (primitivní křivka, kruh) z menu Object.

Použijeme kruhovou křivku na cestu pro pohyb našeho poskakujícího míčku.

Při vybraném objektu Circle v Object manageru klikneme na stránku Object v Attributes manageru a ujistíme se, že je nastavena rovina XZ (horizontální orientace).

(Míček bude poskakovat podél této křivky.)

Umístili jsme křivku do roviny XZ, tedy je položena na ploše. Koule se bude pohybovat po křivce a přitom skákat nahoru a dolů podél osy Y. Další změny na objektu již dělat nemusíme.

V Object manageru klikneme pravým tlačítkem na objekt Sphere a z menu zvolíme New Expression > Align To Spline Expression (nové chování, natáčet ke křivce).

(Uživatelé platformy Mac stisknou tlačítko Command.)

V Object manageru vybereme tak Align To Spline (natáčet ke křivce), uchopíme objekt Circle a přetáhneme jej do dialogového okna Spline Path (Cesta ke křivce), které je v Attributes manageru.

(Chování Align to Spline (natočit ke křivce) automaticky posune objekt Sphere na křivku.)

Při použití chování Align To Spline (natočit ke křivce) bude objekt sledovat cestu tvořenou křivkou. Aby se objektu určilo, kterou křivku má sledovat, tak je třeba uchopit a přenést křivku do vstupního pole příslušného tagu chování daného objektu. Tažením a umístěním objektu Circle do vstupního pole jsme sdělili kouli, že toto je křivka, která je cestou jejího pohybu.

Nastavení funkce Align To Spline (natáčet ke křivce) v Attributes manageru také obsahuje hodnotu Position (pozice), která je udávána v procentech. Touto hodnotou kontrolujeme pozici koule na křivce. Když ji změníme, tak se změní i poloha koule. Pro pohyb koule podél celé délky křivky je třeba nastavit hodnotu při animaci na 0% a 100%.

V Object manageru stiskneme pravé tlačítko nad objektem Sphere a zvolíme New Expression > XPresso Expression (nové chování – XPresso).

(Uživatelé platformy Mac použijí tlačítko myši za stisknuté klávesy Command.)

Po přidání tagu XPresso objektu koule se automaticky otevře okno XPresso editoru.

V Object manageru uchopíme tag Align To Spline (natočit ke křivce) a tažením jej umístíme do XPresso editoru. Je-li potřeba, tak změníme velikost uzlu.

(Přenesení tagu Align To Spline do XPresso editoru.)

Po přenesení tagu do okna se XPresso editoru se vytvořil uzel tohoto tagu.

V XPresso editoru klikneme na modrý roh uzlu Align To Spline a zvolíme Tag Properties > Position (nastavení vlastnosti, pozice).

(Stejně jako objekty tak i tagy můžeme tažením umístit do XPresso editoru.)

Kliknutím na modrý roh uzlu a výběrem parametru tagu jsme vytvořili vstupní port. Přidali jsme uzlu port Position (pozice), pomocí kterého budeme schopni XPressem kontrolovat polohu koule na křivce. Hodnota pozice 0% odpovídá startovnímu bodu a prvému bodu křivky, hodnota 100% odpovídá konečnému bodu a poslednímu bodu křivky. (U kruhu se prvý a poslední bod navzájem „kryjí“, jsou na stejném místě).

V prázdné ploše okna XPresso editoru klikneme pravým tlačítkem a zvolíme New Node >
XPresso > General > Time (nový nod, XPresso, hlavní, čas).

(Uživatelé platformy stisknou klávesu Command a kliknou tlačítkem myši.)

Vhodně si umístíme nově vzniklý uzel a propojíme uzel Time výstupním portem Real s uzlem Align To Spline se vstupním portem Position.

(Díky použití uzlu Time můžeme kontrolovat průběh animace.)

Uzel Time může být použit pro nastavení času během animace. Výstupní port Real nastavuje animaci v sekundách. Pro tento případ hodnota 1 u výstupu Real znamená, že animace proběhne během jedné sekundy (od 0% do 100%), (tento parametr upravíme za okamžik).

Od propojení portu Real s portem Position (který je definován procentuálně) se během jedné sekundy změní pozice z 0% na 100%. V našem případě to znamená, že koule překoná jeden oběh po křivce právě za jednu sekundu. Můžeme si zkusit přehrát animaci.

Jestliže jsme si spustili animaci, tak jsme zjistili, že koule po dokončení prvního průběhu (dosažení pozice 100%) zastaví a dále se nepohybuje, je omezena hodnotou 100%. To neznamená, že bychom si s tím měli dělat starosti kvůli manuálnímu nastavení hodnot vstupního portu pozice.

Klikneme pravý tlačítkem do volné plochy XPresso editoru a zvolíme New Node > XPresso > Calculate > Math (nový nod, XPresso, počítat, mat).

(Přidání uzlu s Math (matematickou) funkcí, kterým budeme kontrolovat rychlost koule.)

Přidali jsme uzel s funkcí Math, kterým budeme kontrolovat rychlost koule na křivce.

V Attributes manageru nastavíme Function (funkce) na Divide (dělit) a změníme hodnotu Inputu (vstupu) [2] na 3.

Nastavili jsme hodnotu vstupu při režimu dělení (Divide) na 3, abychom pohyb koule třikrát zpomalili. Nyní se celý pohyb odehraje místo v jedné vteřině ve třech vteřinách. Jestliže bychom potřebovali, aby se pohyb koule odehrál po celé trase ve dvou vteřinách, pak bychom nastavili hodnotu druhé položky Input uzlu Math na 2.

Spojíme v XPresso editoru uzel Time výstupním portem Real se vstupním portem Input uzlu Math.

Spojíme výstupní port Output uzlu Math se vstupním portem Position uzlu Align to Spline.

(Uzel Math vydělil potřebný čas pro pohyb koule po křivce a ten je nyní třikrát delší vzhledem k původní rychlosti.)

Staré spojení mezi uzlem Time a uzlem Align To Spline se smazalo jakmile jsme spojili uzel Math se vstupním portem Align To Spline. To proto, že ve vstupním portu je možné pouze jedno spojení.

Klikneme pravým tlačítkem do volné plochy editoru XPresso a zvolíme New Node > XPresso > Calculate > Formula (nový nod, XPresso, počítat, vzorec).

Použijeme uzel Formula (vzorec), abychom mohli kontrolovat pulsování koule nahoru a dolu.

Vytvoříme vstupní port kliknutím na modrý roh uzlu a z menu zvolíme Value (hodnota).

V Attributes manageru, do pole Node Properties (node vlastnosti) vložíme vzorec ABS(SIN($1*360)).

(Hodnota vzorce ve vstupním portu může obsahovat komplexní matematické definice.)

Sinusové vlny jsou výborné pro vytvoření pulsujícího pohybu. Standardní sinusoida se nicméně pohybuje pouze v rozmezí hodnot –1 a 1. Kromě toho by koule při přibližování k podlaze (výška 0) nezpomalovala. Potřebujeme tedy křivku, která by ostře měnila směr z klesání na stoupání.

Řešení tohoto problému je v otočení záporných hodnot sinusoidy na kladné. Proto jsme použili funkci ABS, která konvertuje všechny záporné hodnoty na kladné.

(Všechny záporné hodnoty sinusoidy (vlevo) jsou konvertovány na kladné (vpravo) pomocí funkce ABS.)

Symbol '$' ve vzorci vstupu uzlu Formula, za kterým následují čísla, zapíná zahrnutí externích hodnot do vzorce. Díky použití tohoto znaku můžeme zadávat úhel pomocí stupňů bez toho, aniž bychom je před tím museli převádět na radiány. Vzorcem SIN($1*360) vytvoříme animaci sinusové oscilace. '$1' je proměnná hodnota v čase a jejím vyjádřením je jedna celá sinusoida za sekundu animace.

V XPresso editoru propojíme výstupní port Real uzlu Time se vstupním portem uzlu Formula (vzorce) (modrý kruh).

V Object manageru zvolíme Sphere a v Attributes manageru zvolíme Add User Data (přidat uživatelská data) z menu User Data.

V dialogovém okně Add User Data (přidat uživatelská data) pojmenujeme data na Height (výška).

Nastavíme jednotky na metry a klikneme OK, čímž dialogové okno zavřeme.

(Uživatelská data budou použita pro kontrolu výšky poskakování koule.)

Sinusoida vytváří hodnoty v rozmezí –1 a 1, které jsou pomocí funkce ABS konvertovány do pásma 0 a 1. Avšak abychom mohli vytvořit vyšší či nižší výšky poskakování, pak potřebujeme upravit měřítko vln vytvářených sinusoidou. To docílíme přidáním uživatelských dat, zobrazených jako nové vstupní pole na stránce User Data v Attributes manageru.

V Object manageru uchopíme objekt Sphere, přetáhneme jej do XPresso editoru a podle potřeby zvětšíme okno.

Klikneme na červený roh nového uzlu Sphere a zvolíme User Data (uživatelská data) > Height.

Jakmile jsou v Attributes manageru vytvořena uživatelská data, tak jsou také přístupná v XPresso editoru. Jsou k vybrání stejně jako ostatní stabilní parametry. Nyní jsme pro uživatelská data Height vytvořili výstupní port u uzlu objektu Sphere. Nyní můžeme pomocí portu spojit uživatelská data Height s ostatními porty a využít jeho nastavení pro výpočet animace.

Klikneme pravým tlačítkem do volné plochy XPresso editoru a zvolíme New Node > XPresso > Calculate > Math (nový node, XPresso, počítat, mat).

(Uživatelé platformy Mac stisknou klávesu Command.)

V Attributes manageru, v části Node Properties (node vlastnosti) nastavíme Function na Multiply (funkce, násobit).

V XPresso editoru spojíme první vstupní port Input nového Math uzlu s výstupním portem Height uzlu Sphere a podle potřeby si zorganizujeme okno editoru.

Spojíme druhý vstupní port Input uzlu Math s výstupním portem uzlu Formula.

(Použití uzlu Math, výstupní port uzlu Formula je násoben s uživatelskými hodnotami Height.)

Nyní jsme spojili uživatelská data Height a vzorec v uzlu Formula s uzlem Math, který oba vstupy navzájem násobí. Data Height jsou násobena výsledkem ze vzorce v uzlu Formula. Tvar „vlny“ může být změněn pouhou změnou hodnoty v dialogovém poli uživatelských dat v Attributes manageru (při vybraném objektu Sphere) a nadále nejsme limitování hodnotami od 0 do 1. Násobením vzorce uzlu Formula naší hodnotou Height můžeme v Attributes manageru interaktivně kontrolovat míru výšky poskakování koule…. To vše je pěkné, ale vše bude pracovat teprve po spojení koule s uzlem Math.

Uchopíme objekt Sphere v Object manageru a ještě jednou jej přetáhneme do XPresso editoru.

V XPresso editoru kliknutím na modrý roh nového uzlu Sphere vytvoříme vstupní port Coordinates > Global Position > Global Position.Y. (souřadnice, globální pozice).

Spojíme vstupní port Global Position.Y s výstupním portem uzlu Math.Multiply.

(Výšková poloha objektu Sphere je kontrolována vzorcem a může být interaktivně upravována parametrem uživatelských dat Height.)

Výšková poloha objektu Sphere (výška poskakování) je nyní kontrolována vzorcem.

V Object manageru zvolíme XPresso tag objektu Sphere.

V Attributes manageru nastavíme prioritu na Dynamics.

(Je potřeba upravit prioritu chování.)

Koule ještě poskakovat nebude. A to proto, že tagy „chování“ (expression) jsou vždy vyhodnocována zleva doprava. Je důležité, jak jsou jednotlivá chování umístěna v hierarchii a jaké příkazy se aplikují na objekty. Když je několik druhů chování aplikováno na jeden objekt, tak jeden druh chování může být „překrytý“ jiným. V našem případě by měl objekt poskakovat nahoru a dolu a tak částečně „převažovat“ nad funkcí chování „natáčet ke křivce“, která je také asociována u objektu Sphere v Object manageru vpravo od tagu XPresso.

Pro náš případ jsou možná dvě řešení problému. Můžeme změnit prioritu chování (tagu) XPresso na Dynamics (dynamické), díky kterému bude toto chování převažovat nad všemi ostatními. Avšak můžeme také tahem umístit doprava od tagu Align to Spline (natáčet ke křivce), čehož výsledkem bude kontinuální pohyb koule po křivce, přičemž by koule poskakovala do výšky díky definici zadané chováním XPresso. Tak by chování Align to Spline kontrolovalo pohyb v rovině X, Z, ale ne v ose Y.

V Material manageru vytvoříme nový materiál a pojmenujeme jej Color.

Tento materiál tažením na objekt Sphere v Object manageru aplikujeme na kouli.

Tažením umístíme materiál do okna editoru XPresso.

(Nastavíme kontrolu materiálu pomocí XPresso editoru. V okamžiku kontaktu koule s podlahou (úrovní 0) změní materiál barvu.)

Materiály mohou být tažením umístěné do XPresso editoru přičemž vytvoří uzly, které obsahují jak v oblasti vstupu tak i výstupu všechny parametry, které u materiálu můžeme editovat. Mnoho těchto parametrů, jako jsou barva a jas, může být snadno kontrolována použitím numerického zadávání či vektorů.

Vytvoříme vstupní porty pro komponenty barvy, zelený kanál a modrý kanál (G, B) materiálu kliknutím na modrý roh nově vytvořeného uzlu. Zvolíme Color > Color > Color.G a Color > Color > Color.B (barva). Podle potřeby upravíme velikost uzlu.

Chceme kontrolovat zelený a modrý kanál barvy tak, aby koule měnila barvu z bílé (R=100%, G=100%, B=100%) na červenou (R=100%, G=0% a B=0%). Červený kanál není nutno měnit, protože je stále nastaven na 100%.

Klikneme pravým tlačítkem do prázdné plochy XPresso editoru a zvolíme New node > XPresso > Calculate > Clamp (nový uzel, XPresso, počítat, omezení).

(Uživatelé platformy Mac použijí klávesu Command.)

V Attributes manageru nastavíme hodnotu Max tohoto uzlu na 1.

V XPresso editoru spojíme výstupní portu uzlu Clamp (omezení) s oběmi vstupními porty Color.G a Color.B uzlu Color.

(Uzel Clamp (omezení) zajišťuje, že jsou do vstupních portů barvy dodávány hodnoty mezi 0 a 1.)

Použití uzlu Clamp nám zajišťuje „dodávku“ hodnot mezi 0 a 1 do vstupních portů barvy. To reprezentuje hodnoty kanálů barvy 0% a 100%.

Spojíme výstupní port uzlu Math.Multiply se vstupním portem Value (hodnota) uzlu Clamp (omezení).

(Jakákoliv hodnota výstupu uzlu Math, která je vyšší než 1 je zmenšena na 1 pomocí uzlu Clamp.)

Uzel Math, který je propojen se vzorcem, produkuje hodnoty mezi nejnižším bodem vertikálního pohybu koule a jakoukoliv hodnotou zadanou ve vstupním poli pro uživatelská data Height. Natavení uživatelských dat Height bude pravděpodobně po většinu času vyšší než 1 (jinak by koule jen velmi nezřetelně poskakovala) a použili jsme uzel Clamp (omezení) pro změnění barvy koule pouze v případě její velké blízkosti nulové výšce. Materiál se změní z bíle na červenou vždy, když se koule vyskytuje mezi hodnotami 0 a 1. Tímto jsme vytvořili rychlou změnu barvy při dotyku koule se zemí.

Přehrajeme si výslednou animaci.


Souhrn
Viděli jsme, jak můžeme používat chování XPresso pro editování parametrů objektů, tagů a materiálů a jak můžeme použít hodnoty jednoho či více parametrů ke změně jednoho či více jiných parametrů. Zkusme si vybrat objekt Sphere v Object manageru a nastavit v Attributes manageru hodnotu uživatelských dat Height na 100 a poté si znovu spustit animaci.

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » 3dscena  

 » Rubriky  » 3dscena - vlastni  

 » Rubriky  » Go verze  

 

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: