Pokožka#

Tieto výbavy využívajú flexibilný systém na vytvorenie pokožky výbavy použitím viacerých vzájomne sa ovplyvňujúcich reťazí kostí ohybu. Ten je vyvinutý ako základ pre nový modulárnu výbavu tváre Rigify. Ide o hlavné myšlienky systému:

Generická reťaz Kostí ohybu

Jednou z hlavných myšlienok systému je, že väčšina deformácií by sa mala realizovať použitím štandardnej výkonnej reťaze výbavy Kostí ohybu. Tieto reťaze podporujú pokročilé správanie prostredníctvom interakcie s inými komponentmi výbavy. To je v protiklade k tomu, aby sme mali viacero špecifických oblastí vplyvu výbavy, z ktorých každá generuje svoje vlastné deformačné reťaze.

Implementácia poskytuje dve verzie reťazového zariadenia: skin.basic_chain iba pripojí kosti ohybu k ovládačom bez pridania automatizácie k samotným ovládačom. Výbava skin.stretchy_chain navyše interpoluje pohyb koncových (a voliteľného stredného) ovládača na ostatné ovládače reťaze.

Automatické zlúčenie ovládačov

Deformačná časť systému pozostáva z reťazí jednej alebo viacerých Kostí ohybu spájajúcich riadiace body (uzly). Vždy, ak by sa ovládače dvoch reťazí úplne prekrývali, automaticky sa spoja.

Pre každé zlúčenie ovládača sa vyberie jedna z reťazí ako vlastník na základe heuristických faktorov, ako je hĺbka rodiča od koreňa, prítomnosť značiek symetrie .T`/.B` .L`/.R` a v krajnom prípade aj abecedné poradie. Toto nastavenie je možné potlačiť explicitným nastavením priority v prípadoch, keď sa odhadne nesprávne.

Vlastník a jeho rodičia určujú ďalšiu automatizáciu, ktorá je umiestnená na ovládacom prvku. V špeciálnom prípade, ak je ovládač zlúčený so svojimi symetrickými náprotivkami .T/.B` .L/.R` (zistené čisto podľa pomenovania), automatizácia zo všetkých symetrických súrodencov vlastníka sa spriemeruje.

Rodičovské ovládače

Namiesto jednoduchého používania rodičovskej kosti meta-výbavy (ORG) ako rodičovskej kosti pre ovládače a mechanizmy reťaze obsahuje nový systém rozhranie pre rodičovské kosti. Explicitne poskytuje rodičovské kosti a generuje rodičovské mechanizmy automatizácie ovládania pre ich ovládače reťaze potomkov dedením z príslušného základu a metód rodičovstva.

To umožňuje implementovať zariadenia, ktoré inteligentným spôsobom integrujú a spravujú svoje podriadené reťaze s cieľom pridať ďalšiu automatizáciu špecifickú pre určité oblasti. Základný systém pokožky obsahuje jeden jednoduchý príklad skin.transform.basic výbavy, ktorý prekladá svoje riadiace body potomkov podľa transformácie rodičovských kostí.

Vlastná výbava

Nakoniec, nový systém napokon poskytuje spôsoby integrácie s vlastnou automatizáciou, ktorá je priamo súčasťou meta-výbavy, prostredníctvom dvoch ďalších komponentov výbavy.

Výbava skin.anchor vygeneruje jeden ovládač so zdedenými vynúteniami atď., podobne ako basic.super_copy. Integruje sa však aj do systému skin ako reťazec nulovej dĺžky s najvyššou prioritou. To umožňuje prepísať normálne správanie poskytnutím riadiaceho bodu pod plnou kontrolou užívateľa, ku ktorému by sa automaticky pripojili ostatné reťaze.

Na druhej strane, výbava skin.glue sa pripojí k ovládaciemu prvku, ktorý je vygenerovaný na jeho pozícii (ak neexistuje, je to chyba). Môže sa použiť na načítanie pozície ovládača z vlastného vytvárania výbavy v meta-výbave, alebo na injektovanie vynútení do kosti ovládača. Je tiež možné zistiť ovládač na chvoste lepiacej kosti a použiť ho ako cieľ vo vynúteniach, čím sa kopíruje transformácia medzi ovládačmi.

skin.basic_chain (pokožka.základ_reťaz)#

Toto je základná reťaz výbavy, ktorá prepája ovládače s Kosti ohybu, ale nepridáva žiadnu automatizáciu k samotným ovládačom.

Keď sa ovládače iba presúvajú, reťaze sa správajú ako pri použití štandardných automatických manipulátorov, ale rotácia a voliteľná zmena mierky ovládačov upraví výsledok.

Segmenty Kosti ohybu

Určuje počet segmentov, ktoré sa majú použiť. Nastavením tejto hodnoty na 1 sa vypne všetko rozšírené správanie a body sa iba premostia pomocou kosti Napnúť na.

Zlúčenie rotácie a mierky rodičov

Túto funkciu možno povoliť, aby reťazec mohol reagovať na rotáciu a mierku vyvolanú rodičovskými ovládačmi iných reťazí, s ktorými sa ovládač tejto reťaze zlúčil.

Použiť manipulátory mierky

Povolí používať riadiacu mierku na ovládanie mierky a/alebo zmiernenia Kosti ohybu.

Spojenie so zrkadlom

Určuje, či sa majú konce reťazca pri spájaní ovládačov hladko spojiť s jeho symetrickým náprotivkom .T/.B .L/.R. Aby príslušná voľba fungovala, musí byť zapnutá na oboch reťaziach.

Pripojenie zodpovedajúcich koncov

Určuje, či sa má koniec reťaze pri spájaní ovládačov pripojiť k opačnému koncu inej reťaze. Takto sa vytvorí súvislá hladká reťaz v rovnakom smere. Príslušné možnosti musia byť povolené na oboch reťaziach.

Zaostriť roh

Určuje, či má súprava vygenerovať mechanizmus na vytvorenie ostrého rohu na príslušnom pripojenom konci v závislosti od uhla vytvoreného susednými riadiacimi miestami. Keď sa riadiaci uhol stane ostrejším ako zadaná hodnota, zmiernenie sa začne znižovať z 1 na 0.

Orientácia

Určuje, že ovládače majú byť orientované rovnako ako vybraná kosť, a nie zarovnané k reťazi.

Skopírovať do vybraného

Kopírovanie do vybraných zariadení, ktoré majú rovnakú možnosť. Umožňuje tak bez rozdielu vyberať kosti bez priradenia zbytočných hodnôt.

Priorita reťaze

Povolí prepísať heuristiku používanú na výber primárneho vlastníka pri spájaní ovládačov.

skin.stretchy_chain (pokožka.pružná_reťaz)#

Táto výbavy rozširuje základný reťazec o automatizáciu, ktorá šíri pohyb začiatku a konca a voliteľného stredného ovládača do ďalších ovládačov. Výsledkom je natiahnutie celej reťaze pri pohybe jedného z koncov, a nie len bezprostredne susediacich Kostí ohybu.

Stredná riadiaca pozícia

Určuje polohu stredného ovládača v rámci reťaze; ak je nulový, je vypnutý.

Dopad

Určuje krivky vplyvu dopadu počiatočných, stredných a koncových ovládačov. Nula vedie k lineárnemu dopadu, zvyšovanie rozširuje vplyv a -10 úplne vypína šírenie vplyvu z daného ovládača.

Guľový dopad

Prepínacie tlačidlá na zmenu tvaru krivky dopadu z krivky výkonu, ktorá pri dopade 1 tvorí parabolu \(1 - x^{2^f}\) na krivku tvoriacu kruh \((1 - x^{2^f})^{2^{-f}}\).

Dopad pozdĺž krivky reťaze

Vypočíta krivku dopadu pozdĺž dĺžky reťaze namiesto premietnutia na priamku spájajúcu jej počiatočný a koncový bod.

Rozšíriť zakrútenie

Určuje, či sa má zakrútenie reťaze šíriť do riadiacich bodov medzi hlavnými ovládačmi.

Rozšíriť mierku

Určuje, či sa má kolmá zmena mierky reťaze šíriť do riadiacich bodov medzi hlavnými riadiacimi prvkami.

Rozšírenie do ovládačov

Povolí ostatným reťaziam vidieť rozšírenú rotáciu a mierku prostredníctvom Zlúčiť rodičovskú rotáciu a mierku, keď sú ich ovládače spojené do tejto reťaze, namiesto toho, aby boli úplne lokálne pre túto reťaz.

Primárne kontrolné vrstvy

Voliteľne určuje kolekcie kostí pre koncové ovládače.

Sekundárne riadiace vrstvy

Voliteľne určuje kolekcie kostí pre stredný ovládač, ak nie je nastavený, vráti sa na Primárne ovládacie vrstvy.

Hlavné ovládače s aktívnym dopadom majú automaticky zapnutý efekt Spojiť rodičovskú rotáciu a mierku len pre ne.

skin.anchor (pokožka_ukotvenie)#

Táto výbavy účinne funguje ako reťaz s nulovou dĺžkou a najvyššou prioritou, čo zaručuje, že sa pri spájaní ovládačov s inými reťazami stane vlastníkom. A tiež umožňuje zadávať vlastné vplyvy automatizácie do systému pokožky.

Všetky vynútenia na kosti meta-výbavy sa presunú na vytvorený ovládač.

Vygenerovať deformačnú kosť

Vytvorí deformačnú kosť rodičovskú pre ovládač.

Potlačenie ovládača

Vytvorí z ovládača skrytú mechanickú kosť, ktorá ho skryje pred užívateľom.

Typ miniaplikácie

Vyberie miniaplikáciu, ktorá sa má vygenerovať pre ovládač.

Vynútenie prepojení

Funguje rovnako ako v basic.raw_copy, s tým rozdielom, že všetky obmedzenia sa presunú z ORG na riadiacu kosť.

Orientácia

Určuje kosť použitú na orientáciu ovládača, podobne ako pri iných reťaziach.

skin.glue (pokožka.prilepenie)#

Táto výbava je podobná ako skin.anchor, ale namiesto prepisovania ovládačov sa používa na čítanie alebo úpravu stavu ovládačov vygenerovaných inými výbavami. Hlava kosti musí prekrývať ovládač inej výbavy pokožky.

Výbava nastaví svoju kosť ORG tak, aby čítala stav ovládača a zároveň presunie všetky vynútenie, ktoré boli pôvodne na kosti, na ovládač.

Režim lepenia

Určuje, ako je kosť ORG pripojená k ovládaču pokožky.

Potomok ovládača

Vytvorí z kosti ORG potomka ovládača kosti.

Zrkadlo ovládača

Vytvorí z kosti ORG súrodenca ovládača s vynútením Kopírovať transformáciu z ovládača. Výsledná transformácia lokálneho priestoru je rovnaká ako lokálny priestor ovládača.

Zrkadlo s rodičmi

Rodičom kosti ORG je automatizácia rodičovstva, ktorú by mal ovládač vlastnený lepiacou výbavou, pričom sa riadi skutočným ovládačom. To zahŕňa priamy aj rodičovský pohyb ovládača v lokálnej priestorovej transformácii kosti.

Premostiť deformáciu

Okrem pridania vynútení prilepenia k ovládaciemu prvku sa výbava správa ako základná reťaz deformácie s jedným segmentom. To je výhodné, keď je potrebné preklenúť dvojicu ovládačov lepidlom a deformačnou kosťou.

Vynútenie prepojení

Funguje rovnako ako v basic.raw_copy, s tým rozdielom, že všetky obmedzenia sa presunú z ORG na riadiacu kosť.

Použiť Chvost cieľa

Prepojí TARGET (Cieľ) alebo akékoľvek vynútenia s prázdnou cieľovou kosťou a bez špecifikácie prepojenia na odkaz na ovládač umiestnený na chvoste lepiacej kosti.

Cieľová lokalita s rodičmi

Prepne cieľ chvosta tak, aby fungoval podobne ako Zrkadlo s rodičmi.

Pridať vynútenie

Povolí pridať typické vynútenie prilepenia so špecifickým Vplyvom, ako keby bolo na začiatku zásobníka výnútení kostí ORG.

skin.transform.basic (pokožka.presun_základ)#

Táto výbava poskytuje zjednodušený rodičovský ovládač, ktorý používa bežné premiestnenie, rotáciu alebo mierku na úpravu polohy, ale nie orientácie alebo mierky svojich ovládačov reťazí potomkov.

Vygenerovať ovládač

Určuje, či sa má vygenerovať viditeľný ovládač, alebo sa má použiť transformácia kosti ORG ako súčasť zložitejšieho a špecifickejšieho nastavenia výbavy.