Přehled nových funkcí v Blenderu 2.44: část 1. - 3D grafika - 3Dscena.cz: 3D grafika jako na dlani

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:



3D grafika

Přehled nových funkcí v Blenderu 2.44: část 1.

31. července 2007, 00.00 | Jak jste si možná někteří z vás všimli, od verze 2.35, která je na 3d scéně naposledy popisována, prošel Blender opravdu velkými změnami. O jejich bližší
představení se chceme pokusit v tomto několikadílném článku. Jeho první díl bude věnován úpravě v systému armatur a vylepšení v oblasti animace mimiky za pomoci
shape keys.

Jak jste si možná někteří z vás všimli, od verze 2.35, která je na 3d scéně naposledy popisována, prošel Blender opravdu velkými změnami. Za tento fakt vděčíme především projektu Elephant's Dream. Pro ty z vás, kteří by náhodou nevěděli – jde o jedenáctiminutový animovaný film vytvořený týmem předních světových blenderistů. Díky požadavkům těchto lidí dosáhl Blender v posledních pěti verzích opravdu vysoko. (Toto téma není předmětem našeho článku, nicméně pokud byste měli zájem shlédnout tento film či si stáhnout oficiální hudbu z něj nebo si o něm prostě jen přečíst, můžete tak učinit na www.elephantsdream.org.)

Novinek je v Blenderu 2.44 opravdu mnoho. K těm důležitějším řadím významné vylepšení funkcí v oblasti animace (armatury, shape keys, simulace kapaliny, simulace látky, systém kolize), renderu (kompozitní editor - node editor, preview render přímo ve 3D okně, render passes, render layers), materiálů (subsurface scattering, material nodes, tangensové stínování), modelování (multires, sculpt mode, retopo) či unwrappingu a četné množství nových modifikátorů. V tomto a několika dalších článcích bych chtěl probrat tématiku související s většinou zmiňovaných novinek.

A nyní tedy k věci. Tento článek se bude zabývat úpravou v systému armatur a vylepšení v oblasti animace mimiky za pomoci shape keys. Doufám, že to pro dnešek ocení aspoň animátoři ... Jenom dodám, že článek je určen pro uživatele, kteří se v Blenderu již aspoň částečně orientují a nebudu tedy osvětlovat pojmy jako solid mód atp.

Armatury

Než se pustím do tohoto nepochybně zajímavého tématu, snad by mohlo pomoci malé připomenutí toho, co to jsou armatury a k čemu slouží. Armatura je deformační nástroj pro mesh, mezi Blender komunitou se pro ni také vžil název "kost", tedy rigování=zakosťování. Každá kost ovlivňuje vámi nastavenou skupinu vertexů v meshi, která spolu s ní mění polohu, rotaci či velikost. Armatury se používají na poli animace postav (character animation) a už od své implementace dosáhly velikého ohlasu. Samozřejmě, dají se použít i například na mechanické paže, ostatně, jejich využití je jen na fantazii uživatele.

Pokud by vás zajímaly armatury i se vším nastavováním, můžete si přečíst článek Pavla Černohouse, určený pro ty, kteří s nimi ještě nepřišli do styku na https://www.3dscena.cz/art/3dscena/blenderchar.html

První, čeho si v nejnovějším Blenderu všimnete, jsou tři nové volby zobrazování armatur. Nejde jenom o zobrazování v solid módu, ale i o lehce odlišné funkce jednotlivých typů (jednotlivé způsoby zobrazení naleznete v edit buttons - F9). Klasickým módem zobrazení je octahedron:

Klasické známe zobrazení - octahedron

Další typ zobrazení je stick bone:

Zobrazení - stick

Následuje b-bone:

Další novinka - b-bone

Zde bych se chtěl na chvíli zastavit, protože b-bone má jednu zajímavou vlastnost, a to sice dělení na segmenty, které spočívá v tom, že kost je "ohebná" podle toho, kolik určíte segmentů. To je patrné při různém natočení okolních kostí:

Další novinka - b-bone

Počet segmentů byl v edit buttons nastaven na 13. Jenom podotýkám, že náhled na zatočenou b-bone je možný pouze v pose módu:

Nastavení b-bone

In a Out ovlivňuje, jak moc bude kost zahnutá u začátku a u konce (ve směru, v kterém jste ji vyextrudovali).

Dalším typem je envelope, také se zajímavými možnostmi:

Další novinka - envelope

U každé envelope kosti lze nastavit jiný rádius působení, toto by mělo usnadňovat v některých případech rigování. V případě použití envelope není třeba vytvářet vertex groups (je to samozřejmě možné, ale envelope je navržená tak, aby vertex groups nebyly potřeba). Rádius působení envelope armatury lze rychle měnit použitím klávesové zkratky ALT+S:

Změna velikosti rádiu u envelope

Toto se provádí parametrem dist v edit buttons u té které kosti:

nastavení naší envelope

S envelope také souvisí další možnost – vytvoření vertex deform group. Můžete tedy vytvořit vertexovou skupinu definovanou rádiem envelope. Vše názorněji popíše obrázek:

Vertex deform group v akci

Takovouto skupinu vytvoříte jednoduše. Přidejte si do scény mřížku (mezerník - add - grid) s počtem vertexů nastaveným na X i Y ose po 16. Poté přidejte armaturu, její typ změňte na envelope, zapněte volbu X-Ray a stiskem CTRL+TAB se dostaňte do pose modu. Vyberte mřížku, podržte Shift, vyberte i armaturu (ne opačně!) a stiskněte CTRL+P k rodičovskému nadřazení kosti. V Make parent to menu vyberte Armature a poté Don't create vertex groups. Nyní vyberte mřížku a stiskem CTRL+TAB se přepněte do weight paint módu (viz dále). Poté stačí stisknout W a vybrat Apply Bone Envelopes to VertexGroups. Podotýkám, že envelope musíte mít vybranou a být v pose modu. Potíže nastanou, pokud oba objekty nemají velikost scale nastavenou v transform properties (N) na 1.

Tuto skupinu samozřejmě můžete uchovat, změnit typ kosti a s tímto novým typem používat stejnou skupinu vertexů, jako byste pracovali s envelope.

Poznámka: mezi hlavní novinky weight paintu (plany výše jsou ve weight paint módu) patří zobrazování stínování, aby byly patrné detaily v geometrii, dále pak se z object módu můžete přepnout do weight paint módu pomocí zkratky CTRL+TAB. X-Mirror volba umožňuje malovat na vertexové skupiny zrcadlově otočené, které oproti původní skupině (např tvar.right) mají název opačné strany (tedy tvar.left – později si povíme o pravidlech měnění stran).

Nyní se podíváme na změny týkající se armatur obecně:

Začneme tím, že si přidáme novou kost:

Obyčejná kost

V edit buttons přibyla volba X-axis mirror. Ta umožňuje, jak název napovídá, vytváření kopií kostí extrudovaných na jedné straně i na stranu druhou. Pojďme si to zkusit. Zatrhněte tuto možnost a extrudujte SHIFT+E:

X-Axis mirror editing

Po malé extrudaci můžeme mít třeba tohle:

Armatura

Další novinkou je subdividování kostí. Stačí tedy vybrat kost a stisknout W->Subdivide:

Subdividované kosti

Nyní se podíváme na IK solvery, které si můžeme vyzkoušet na právě vytvořené armatuře. Pro ty, co si nejsou jistí významem slova IK solver, v rychlosti objasním: IK solver může být libovolný objekt (většinou se používá empty nebo jiná kost v rámci armatury), ten se přiřadí nějaké kosti a ta se poté "snaží" celou dobu dotýkat se jedním svým koncem (který nastavíte) centra tohoto objektu. V praxi to neuvěřitelně urychluje a zjednodušuje animování. Začneme vytvořením kosti a jejím umístěním na špici další kosti (pokud chcete, můžete si vytvořit i empty objekt jednoduše selekcí kosti a následně CTRL+I->To new empty object - to vytvoří empty objekt, pokud jím budete pohybovat, budete pohybovat i ostatními armaturami):

IK solver

Pojmenujte novou kost například solver.right, vyberte kost, která se špičkou dotýká solveru a v edit buttons pokračujte Add constraint -> IK solver.

Přidání solver omezovače

S nastavením je ještě potřeba si trochu pohrát, jde o změnu parametru chain length, tedy počet kostí, které bude solver ovlivňovat. Já jsem nastavil 3:

Nastavení

Když pohnete solverem, pohne se i ovlivněný počet nadřazených kostí:

Pohyb solverem

Políčko OB: vyplňte jménem objektu, který je solverem (v případě armatury vyjede další okénko s upřesněním kosti), a políčko BO: názvem kosti.

Další užitečnou věcí je zobrazení armatur na principu vrstev. Jednoduše můžete některé kosti přesunout do jiné vrstvy (pozor, to se provádí jen v rámci armatury, ta celá zůstává pořád v jedné vrstvě) a poté nastavit, které vrstvy se budou zobrazovat. Vrstvu, ve které se kost nachází, nastavujete v pose módu při její selektaci v edit buttons a zobrazené vrstvy políčkem Display options:

Display options

X-Ray umožňuje vidět armaturu přes objekt v solid módu:

X-Ray

Auto IK slouží k automatickému nastavení chain length. To se provádí tak, že počet ovlivněných kostí je ukončen až tam, kde končí řetěz, tj. tam, kde je oddělená kost.

Věcí, která nepochybně najde uplatnění, je implementace limitů kostí. To jednoduše znamená, že můžete podle tří os nastavit, jak se kost může otáčet, toto též významně pomáhá při animování (například limitování ramene či stehna). Jenom dodám, že nabídka možností limitace je pouze u kostí, jejichž jedna podřazená kost je ovlivněna solverem. Můžete také zakázat rotaci pro jednu z os (například pro zápěstí by se zakazovala osa Y – zápěstím nelze kroutit, tedy pokud jste obyčejní smrtelníci). Pro ukázku jsem limitoval hlavní kost naší podivné armatury:

Limity v akci

S tímto nastavením:

Nastavení limitů

No a teď nám již zbývají jen pravidla převádění jmen kostí, jak jsem slíbil výše.

Dejme tomu, že máme kost pojmenovanou například loket.r. V edit módu ji zkopírujte, vznikne loket.r.001, stiskněte W -> Flip left-right names a máme loket.l. Jak je to možné? Takhle:

1. Blender odstraní číselnou koncovku .xxx (v našem případě .001)
2. Poté hledá oddělovač a písmeno l, r, L či R a pak zamění za písmenko opačné strany

    Oddělovačem může být:
-mezera " "
-tečka "."
-podtržítko "_"
-pomlčka "-"

3. Pokud nenajde písmenko, hledá slova left a right s jakkoliv změněnou velikostí písmen (case sensitive), která poté změní

Shape Keys

To bychom měli armatury, nyní vzhůru na Shape Keys.

Pro začátek si stáhněte tento škaredý obličej:

Škaredý obličej

Download pro Blender zde (pravé tlačítko myši -> uložit odkaz jako)

Samozřejmě, pokud si chcete vymodelovat vlastní škaredý (nebo pěkný) obličej (nebo již vymodelovaný máte), klidně tak učiňte, článek počítá i s tím, že následující postupy využijete na vlastních modelech.

Začneme trochou teorie a historie. K animaci deformace meshe se používají relative vertex keys (RVK) či absolute vertex keys (AVK). Jejich použití spočívá v tom, že se dá uložit více tvarů meshe. Každý takovýto tvar má poté v IPO editoru svoji křivku a může se libovolně animovat a prolínat s ostatními tvary, jejichž IPO křivky se dají upravovat nezávisle na ostatních (v případě RVK).

RVK IPO křivky

V případě AVK se používá jedna IPO křivka, která symbolizuje přechod mezi jednotlivými tvary:

IPO křivka AVK

Dříve byl tento systém poněkud náročnější, kvůli zobrazení tvaru toho kterého klíče. V dnešních dnech je situace mnohem lepší díky zpřehlednění za pomoci Shape keys. Aby bylo všechno jasné – RVK a AVK jsou pouze podskupiny Shape keys. Shape keys panel se nachází v edit buttons:

Shape keys

Nejdříve krátký popis: tlačítko Add Shape Key značí přidání shape key. Pokud mesh ještě žádný shape key nemá, první bude automaticky pojmenován Basis a bude v něm uložen tvar meshe tak, jak ho máte před sebou.
Relative určuje, zda půjde o RVK či AVK.
Ikonka špendlíku určuje, zda budete v 3D okně moci vidět momentálně nastavený klíč či nikoli.
Šipkami vlevo a vpravo se pohybujete po tvarech tak, jak jste je přidali v časové posloupnosti, nebo to můžete udělat roletkovým menu (šipky nahoru a dolů).
Do kolonky můžete vepsat název momentálního klíče – to významně usnadňuje orientaci.
X znamená odstranění shape key.
Posledním prvkem je Vertex Group - sem napíšete název vertexové skupiny, na níž se projeví deformace. To znamená, že jakýkoliv vertex mimo tuto skupinu nebude ve výsledku deformován, i když ho v edit modu deformujete.

A nyní je načase vyzkoušet si čerstvě nabyté dovednosti v praxi, právě na našem škaredém obličeji.

Takže začneme tím, že označíme mesh a přidáme základní shape key (Basis) a ještě jeden (pojmenujme ho třeba zavrene_oci), v jehož rámci už budeme měnit tvar. Je důležité si zapamatovat, že musíte nejprve přidat shape key a pak až deformovat. V opačném případě byste totiž měnili Basis.

Dalším krokem bude přeházení vertexů, řekněme do polohy "zavřených očí":

Shape key se změněnou polohou bodů

Poté jsem vytvořil další shape key s názvem otevrena_pusa:

Shape key se změněnou polohou bodů

Víceméně bez žádného hlubšího smyslu jsem vytvořil ještě jeden, který jsem raději nepojmenovával, šlo jenom o zvětšení nosních dírek:

Shape key se změněnou polohou bodů

A nyní si povíme o jedné specialitě, kterou jsem zpočátku úmyslně vynechal. Jde o IPO drivery. Jsou svázány hlavně se shape keys, protože umožňují animaci jednotlivých klíčů za pomoci jiného objektu, který je animován. Jejich použití je jednoduché. Prostě pohybujete objektem (nastaveným jako IPO driver) ve 3D okně a přitom se koná nějaká další akce, ke které je IPO driver přiřazený. V našem případě použijeme jeden empty objekt. Přiřazení je jednoduché. Nejdříve musíte být přepnutí na záložku shape, která se nachází v roletkovém menu na headeru v IPO editoru.

IPO editor

Vyberete akci v IPO editoru – v našem případě klíč zavrene_oci - a stisknete "N". V tomto momentě se zobrazí okénko transform properties, v jehož pravém horním rohu je tlačítko add driver:

Přidání driveru

Pokud jste to ještě neudělali, přidejte do scény Empty objekt, pokud možno na souřadnice 0,0,0. Implicitně má jméno Empty. Napište toto jméno (nebo jiné, které jste Empty přiřadili) do kolonky OB:, která se vám objeví po přidání IPO driveru. Já jsem jako jméno empty zvolil "ob".

Nastavení

Nápis Object v roletkovém menu značí typ IPO driveru.
Loc Y určuje, že pokud budete s IPO driverem pohybovat po ose Y, bude se konat animace (tedy shape key zavrene_oci). Toto je viditelné v realtimu (tedy při pohybu objektu ihned vidíte deformaci). V nabídce můžete vybrat samozřejmě rotaci, zvětšování či přesouvání po kterékoli z os XYZ – na výběr tedy máte 9 způsobů.
Key určuje polohu RVK klíče na ose Y v IPO editoru, což nás ale nyní nijak neovlivňuje.

Podobně můžete přiřadit stejný IPO driver i ostatním shape keys, a jestli bude ovlivňovat akci stejným způsobem je jen na vás. Já jsem pro každý ze tří nastavených shape keys přiřadil pohyb po každé z os. Tedy pro klíč otevrena_pusa pohyb empty objektu po ose X (LocX), pro klíč zavrene_oci pohyb empty po ose Z (LocZ) a pro klíč zvětšených nosních dírek LocY:

Empty objekt v roli IPO Driveru
Ten křížek uprostřed je náš IPO Driver - empty objekt

Když budete pohybovat empty objektem, deformaci uvidíte okamžitě:

Empty objekt zázračně rozhýbal strnulou tvář :)

To lze samozřejmě provádět i do záporných hodnot:

Empty objekt zázračně rozhýbal strnulou tvář :)

Empty objekt zázračně rozhýbal strnulou tvář :)

Pokud budete objektem pohybovat dozadu (po ose Y), bude se samozřejmě animovat i roztahování nosních dírek. Jak jsem uvedl výše, při pohybu empty objektu se deformace provádí ihned a stačí tedy animovat polohu IPO driveru v 3D okně.

Tak to by bylo pro dnešek vše, doufám, že tento článek někdo shledá přínosným. Každopádně jedině podrobný průzkum a samozřejmě experimentování s popisovanými funkcemi napomohou plnému pochopení a následnému použití v praxi. Nashledanou příště.

Tématické zařazení:

 » 3D grafika  

 

 

 

 

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

Uživatelské jméno:

Heslo: