XPresso 1, funkce Clamp a uživatelská data, první 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 1, funkce Clamp a uživatelská data, první tutoriál na editor XPresso v CINEMĚ 4D

22. května 2003, 00.00 | Jak jsem minule slíbil, tak také plním. V tomto a dalších dvou tutoriálech se budeme věnovat nastavení chování XPressa, kterým jsou nadefinovány vztahy mezi jednotlivými objekty ve scéně. Jde vlastně o tvorbu vlastních zásobních modulů pomocí vizuálního editoru.

Nenásilným úvodem do mocného světa nástroje XPresso bude výroba jednoduchého nastavení, kterým omezíme pohyb objektu tak, aby nebylo možno jej umístit níže, než do jisté hraniční výšky.

Může se stát, že občas můžeme potřebovat omezit možnost pohybu objektu. Typickým příkladem může být noha, která nesmí při pohybu pronikat podlahou. Této a podobným dalším situacím se může předejít použitím editoru XPresso a funkce Clamp.

Přidání uživatelských dat (user data) nám zpřístupní kontrolu pomocí nastavení XPresso uvnitř Attributes manageru, který nám poskytuje maximální flexibilitu, zatímco se souběžně zachovává naše nastavení XPresso editoru.

V tomto tutoriálu zabráníme krychli, aby se mohla “potopit”. Tedy omezíme její pohyb ve vertikálním směru.

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

Vložíme objekt Cube z nabídky primitivních objektů.

Parametry krychle není třeba upravovat.

Klikneme v Object manageru pravým tlačítkem na objekt Cube (krychle) a přidáme objektu tag Xpresso expression zvolením Expression > XPresso Expression.

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

Po přidání tagu XPresso expression k objektu se otevře editační okno XPresso editoru.

Uchopíme objekt Cube v Object manageru a tažením jej přeneseme do XPresso editoru.

(Přidáním vlastnosti XPresso objektu a tažením tohoto objektu do editoru XPresso se vytvoří nod, „uzel“ objektu Cube.)

Po přetáhnutí krychle do XPresso editoru se v editoru vytvoří „uzel“ tohoto objektu, který obsahuje všechna data nezbytná pro integraci s jinými objekty v XPresso editoru.

Klikneme na červený čtverec uzlu objektu Cube a vytvoříme výstupový port pro globální pozici Y, zvolíme Coordinates > Global Position > Global Position.Y. Podle potřeby můžeme změnit velikost okna uzlu.

(Globální pozice zadávaná ve výstupním portu se může měnit pomocí nabídky parametrů u uzlu objektu.)

Jak je zřejmé, tak se pozice krychle nastavuje adekvátně ke svým osám, kdy každá z nich je prezentována korespondujícím výstupním portem uzlu objektu krychle. Poznámka: je rozdíl mezi použitím v portu globálních a lokálních dat, použití globálních hodnot se používá v případě, že je objekt umístěn hierarchicky pod jinými objekty a poloha těchto objektů by ovlivňovala pozici objektu, což by bylo nežádoucí.

V XPresso editoru klikneme pravým tlačítkem do prázdné plochy a z menu zvolíme Clamp node (omezení) (New Node > XPresso > Calculate > Clamp).

(Používáme-li platformu Mac, tak stiskneme tlačítko Command.)

Tažením myši propojíme uzel Cube s uzlem Clamp mezi parametry Global Position. Y a vstupní (modrou) položkou Value (hondota).

(Uzel Clamp (omezení) ovlivní svými výstupními hodnotami omezující limity.)

Uzel Clamp je zde použit pro ovlivnění pozice Y za nastavení mezních limitů pohybu. Objekt nemůže překročit tyto limity nastavené v této funkci a bude se pohybovat pouze v rozmezí těchto hodnot.

Poklikáním na vrchní pásek zvolíme uzel Clamp a v Attributes manageru, na stránce Parametr nastavíme vysokou hodnotu Max, například 1000000.

(Vrchní limit omezuje vzdálenost pro uzel Clump a je vysoce praktické neomezovat (nechceme-li) objekt nízkou hodnotou.)

Použitím Attributes manageru mohou být přiřazené hodnoty do výstupu portu bez použití dalšího uzlu, jako například uzlu Constant. Nastavením vysoké hodnoty do hodnoty výstupu Max jsme jakoby virtuálně vypnuli horní omezení pro případ, že bychom chtěli posouvat krychli vzhůru. Hodnota Max reprezentuje maximální povolenou hodnotu pro konkrétní omezení.

V Object manageru zvolíme krychli a v Attributes manageru přidáme objektu parametr uživatelských dat a to pomocí volby User Data (uživatelská data) > Add User Data (přidat uživatelská data).

(Attributes manager nám zapne přiřazení uživatelských dat k objektu, která můžeme editovat i uvnitř XPresso editoru.)

Vrchní limit pohybu krychle je definován pomocí hodnoty Max uzlu Clamp. Chceme, aby spodní hodnota limitu polohy podle osy Y zůstala variabilní (pro následné modifikace nastavení XPresso), a z toho důvodu pouze nenastavíme hodnotu Min u uzlu Clamp. Tento uzel je nezbytný pro definování limitů, ale odlišně od aktuální pozice krychle a nemůže být tak lehce zpřístupněn a editován pomocí nastavení XPresso. Pro tuto možnost editace zde máme User data (uživatelská data), pomocí kterých můžeme individuálně manipulovat a upravovat limitní hodnoty uzlu objektu v XPresso editoru.
Poznámka: musíme se ujistit, že jsme vybrali objekt krychle Cube a ne XPresso tag za objektem, jinak by byla uživatelská data přiřazena tagu XPresso a nikoliv objektu samotnému.


V dialogovém okně User Data (uživatelských dat) vložíme jméno Border (hranice).

Když zvolíme „add user data“, tak se automaticky otevře dialogové okno, pomocí kterého definujeme nezbytné parametry. Nejdříve vložíme přijatelné jméno. Jméno Border (hranice) odpovídá nastavení hodnot, kontrolujících spodní ohraničení volného pohybu krychle.

Nastavíme Data Type na Float (typ dat, plovoucí).

Stejně jako uživatelská data budou kontrolovat spodní limit (min) uzlu Clamp, tak je typ dat způsobem tohoto omezení. Definujeme typ dat na plovoucí – čísla s desetinným místem, která jsou rozdílná od prostých celých čísel.

Nastavíme Interface na Float (rozhraní, plovoucí).

Nastavení rozhraní na plovoucí nám dodá do Attributes manageru vstupní pole našich uživatelských dat, pomocí kterého můžeme zadávat hodnoty, které budou použity coby spodní hodnoty omezení.

Nastavíme jednotky na metry.

Nastavíme hodnoty Min na –1000 a Max na +1000.

Hodnoty Min a Max definují rozsah hodnot, se kterými se bude v uživatelských datech počítat. Hodnoty mimo tyto limity nebudou akceptovány. Jsou to hodnoty, v jejichž rozmezí může být definována spodní hranice pohybu krychle.

Nastavíme hodnotu Step (krok) na 1 a stisknutím tlačítka OK dialog zavřeme.

Konečně nastavíme velikost intervalu kroku. Velikost kroku 1 zvětšuje a zmenšuje hodnoty uvnitř Max/Min limitu o 1 jednotku.

(Vytvořili jsme uživatelská data, pro která jsme zadali jméno, typ dat a hodnoty ohraničení.)

Poznámka: k objektům můžeme přidat jakýkoliv počet uživatelských dat. V našem případě nám ale stačí jedno pole uživatelských dat.

Klikneme na červený čtverec uzlu Cube a z nabídky zvolíme User Data > Border.

(Uživatelská data Border se vyberou z menu výstupní části uzlu.)

Když jsou uživatelská data přiřazena objektu, tak také mohou být od tohoto okamžiku používáná jako normální výstupní port uzlu. Hodnota výstupu se nastavuje v Attributes manageru. V tom je nastavena hodnota Border 0. Tato hodnota je limitována oblastí Max/Min, tedy –1000 až 1000.

V uzlu Cube klikneme na jméno portu Border a táhneme jej nad port Global Position.Y.

Spojíme port krychle Border s portem Min omezení Clamp.

(Spojení mezi portem Border uzlu Cube a portem Min uzlu Clamp zapne kontrolu spodního limitu omezení Clamp pomocí uživatelských dat Border.)


Spojení mezi portem Border a portem Min neustále vysílá hodnoty uživatelských dat Border do portu Min, uzlu omezení Clamp. To také znamená, že se toto omezení dá editovat mimo XPresso editor, pomocí Attributes manageru, kde můžeme konstantně měnit spodní limit pohybu podél osy Y. Jediným požadavkem je, abychom měli v Object manageru vybraný objekt krychle, protože jinak se nám nemůžou zobrazit parametry tohoto objektu v Attributes manageru.
Poznámka: jestliže se nám nezamlouvá „Float“ plovoucí vstupní pole, pak můžeme provádět změny nastavení pomocí posuvníku, vyvolaného z menu po stisknutí pravého tlačítka myši na jménu uživatelských dat.

V Object manageru uchopíme objekt Cube a znovu jej přeneseme do XPresso editoru.

V uzlu Clamp je port Output, který je výstupem omezujících hodnot pohybu krychle. Pro aplikaci efektu musíme tyto hodnoty „přeposlat“ do hodnot pozice krychle podél osy Y. Proto je potřeba nový uzel krychle (Cube), který vytvoříme opětovným tažením objektu Cube z Object manageru do XPresso editoru. Tento způsob, několik uzlů téhož objektu, můžeme použít i v jiných případech.

V XPresso editoru klikneme na levý modrý čtverec uzlu Cube a zvolíme Coordinates > Global Position > Global Position.Y a upravíme velikost okna podle potřeby.

Spojíme vstup Global Position.Y s výstupním portem uzlu Clamp.

(Omezující hodnoty se „otáčí“ zpět a opět vstupují do omezovaného objektu.)

Nyní si můžeme zkusit pohybovat krychlí. Zjistíme, že nemůžeme pohybovat mimo spodní zadanou hranici, než která je zadána v uživatelských datech Border. V Attributes manageru můžeme změnit výchozí hodnotu 0 na jinou a to v mezích dříve zadaných omezení Max/Min.

Souhrn
Viděli jsme, jak pracují vstupní a výstupní porty uzlů v prostředí XPresso editoru. Vstup uzlu dostává hodnoty z jiných výstupních portů jiných uzlů. V Attributes manageru můžeme následně kontrolovat vstupující hodnoty portu. Přidání uživatelských dat nám umožnilo nastavovat vlastní hodnoty ve vstupním portu.

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: