Pracovný postup a príklady#

Jednoduché ovládače možno konfigurovať vo vyskakovacom okne, ktoré sa zobrazí pri pridávaní nového ovládača. Pri pridávaní viacerých Ovládačov alebo pri pokročilejších konfiguráciách je užitočné mať otvorený editor Ovládače.

Ovládač transformácie#

Ovládanie vlastnosti transformáciou objektu. V tomto príklade bude rotácia Y objektu 2 riadená polohou X objektu 1. Vychádzame z jednoduchého nastavenia s dvoma objektmi:

  1. Pridanie ovládača do vlastnosti Rotácia Y druhého objektu prostredníctvom kontextovej ponuky alebo klávesou Ctrl+D.

    ../../_images/animation_drivers_workflow-examples_transform-driver-1.png
  2. Otvorte editor Ovládače a v oblasti kanálov vyberte vlastnosť Eulerova Rotácia Y.

  3. Otvorte oblasť Bočného panela a vyberte kartu Ovládače.

  4. Nakonfigurujte ovládač ako priemernú hodnotu transformačného kanála prvého objektu.

    ../../_images/animation_drivers_workflow-examples_transform-driver-2.png
  5. Experimentujte s pohybom prvého objektu a všimnite si, ako to ovplyvní rotáciu Y druhého objektu.

Skriptový výraz - Obiehanie bodu#

Pozícia objektu obehu okolo bodu vlastným skriptovým výrazom. Pozícia objektu sa zmení pri prechádzaní časovej osi. Použitím trigonometrie možno definovať kruhový pohyb v 2D použitím funkcií sínus a kosínus. (Pozrite si Jednotky kruhu.) V tomto príklade sa ako premenná, ktorá vyvoláva pohyb, používa aktuálna snímka. frame je jednoduchý výraz, ktorý zodpovedá bpy.context.scene.frame_current.

../../_images/animation_drivers_workflow-examples_object-rotation.png
  1. Pridanie ovládača do vlastnosti Poloha X.

    1. Nastavte Typ ovládača na Skriptový výraz.

    2. Doplňte výraz 0 + (sin(frame / 8) * 4), kde:

      • frame/8 : je aktuálna snímka animácie, vydelená 8, aby sa obiehanie spomalilo.

      • (sin( )*4)` : vynásobí výsledok sin(frame/8) 4 pre väčší kruh.

      • 0 +` : slúži na riadenie posuvu voči stredovému bodu obiehania.

  2. Pridajte ovládač k vlastnosti Poloha Y s výrazom 0 + (cos(frame / 8) * 4).

  3. Zosnímajte časovú os, aby ste videli účinok. Experimentujte s premennými na kontrolu veľkosti a stredu obiehania.

Vlastná funkcia - hodnota štvorca#

Vytvorte vlastnú funkciu na získanie hodnoty štvorca (t. j. hodnota2). Pridanie funkcie do Priestoru názvov ovládača umožňuje jej použitie z výrazov ovládača. Oblasť názvov Priestor názvu ovládača obsahuje zoznam zabudovaných funkcií na použitie vo výrazoch ovládača, ako aj konštanty, ako napríklad π a e. Tieto funkcie si môžete prezrieť prostredníctvom konzoly Python:

>>> bpy.app.driver_namespace[' <tab>
                              acos']
                              acosh']
                              asin']
                              asinh']
                              atan']
                              ...

Na pridanie novej funkcie do Priestoru názvov ovládačov je potrebné implementovať samotnú funkciu a potom ju pridať do bpy.app.driver_namespace.

  1. Do textového editora v Blenderi pridajte nasledujúci príkaz a stlačte tlačidlo Spustiť skript.

    import bpy
    
    def square(val):
       """Returns the square of the given value"""
       return val * val
    
    # Add function to driver_namespace.
    bpy.app.driver_namespace['square'] = square
    
  2. Pridajte ovládač Skriptovým výrazom, napríklad square(frame).

  3. Pozorujte účinok pri snímaní časovej osi.

Ďalšie príklady vlastných funkcií sú k dispozícii v textovom editore Blenderu Šablóny ‣ Python ‣ Funkcie ovládačov. Keďže Jednoduché výrazy neumožňujú prístup k vlastným funkciám, ich použitie má zmysel len pri zložitých výpočtoch.

Varovanie

Pokus o nahradenie zabudovaných položiek priestoru pomenovania ovládača môže viesť k nedefinovanému správaniu.

Zobrazenie vyhľadávania atribútov vrstvy#

Uzol atribútu materiálu v režime vrstvy zobrazenia automaticky vyhľadá vlastnosť atribútu na viacerých miestach. To môže napríklad umožniť nastaviť určitú hodnotu vlastného atribútu na úrovni Scéna alebo Svet a potom ju pre jednu vrstvu zobrazenia prepísať inak.

../../_images/animation_drivers_workflow-examples_attribute-lookup.png

Kontextové vlastnosti ovládačov toto správanie neimplementujú, takže v prípade potreby sa musí emulovať ručne pomocou spätných hodnôt a podmieneného výrazu (podmienky sú Jednoduché výrazy).

Pre atribút s názvom attr sa uzol pokúsi o nasledujúcich šesť vyhľadávaní ciest RNA v poradí:

  • ["attr"]` v aktívnej vrstve zobrazenia (užívateľská vlastnosť).

  • attr v aktívnej vrstve zobrazenia (zabudovaná vlastnosť).

  • ["attr"]` v aktívnej scéne.

  • attr v aktívnej scéne.

  • world["attr"]` v aktívnej scéne.

  • world.attr v aktívnej scéne.

V závislosti od špecifickej vlastnosti môže stačiť skontrolovať len podskupinu týchto miest. Napríklad obrázok vpravo ukazuje, ako pristupovať k atribútu, o ktorom je známe, že je určite vlastnou vlastnosťou s hodnotou farby.

Premenné ovládača, ktoré pristupujú k miestam, ktoré nie sú konečné v reťazci vyhľadávania, by mali používať záložné hodnoty, ktoré sú pre atribút neplatné (napr. záporné hodnoty farieb), ktoré sa potom môžu kontrolovať podmieneným výrazom. Konečná premenná by mala prechádzať na platnú predvolenú hodnotu, ktorá sa použije, keď vlastnosť nie je vôbec nastavená.

Ovládače Kľúčových tvarov#

Vylepšená deformácia povrchovej siete#

Oprava problémov s prekríženiami, ku ktorým dochádza pri používaní armatúr a maľovaní váhy, najmä v kĺboch. Kľúčové tvary možno použiť aj na úpravu a spresnenie výbavy, napríklad na navrhnutie formácie svalov. V tomto príklade sa kľúčový tvar používa na zlepšenie deformácie v oblasti lakťa základnej ruky.

../../_images/animation_drivers_workflow-examples_shape-key-improved-deformation.png

Vľavo: Deformácia povrchovej siete kostry bez korekcie. Vpravo: Použitý korekčný kľúčový tvar#

Prvotné nastavenie
  1. Pridajte povrchovú sieť (v tomto príklade valec s rezmi slučkou).

  2. Pridajte armatúru s reťazou kostí.

  3. Natiahnite povrchovú sieť na armatúru použitím maľovania váhy.

(Poznámka: Ak chcete priradiť rodičovstvo povrchovej sieti ku armatúre: vyberte najprv povrchovú sieť, potom armatúru a použite Ctrl+P na rodiča automatickými váhami.)

Experimentujte s pózou armatúry a pozorujte deformáciu v kĺbe. Ak chcete odstrániť problémy s priesečníkmi alebo uhly, ktoré vyzerajú nevyhovujúco, môžete k póze priradiť Kľúčový tvar.

Kľúčový tvar
  1. Umiestnite armatúru tak, aby boli problémy viditeľné. Uistite sa, že ste pokryli extrémne pózy, ktoré chcete pre výbavu podporiť.

  2. Pri vybranej povrchovej sieti pridajte nový Kľúčový tvar pri pridaní kľúča Základný. Vlastnosti ‣ karta Povrchová sieť ‣ Kľúčový tvar

  3. Ak chcete autorizovať kľúčový tvar na vrchole deformácie armatúry, povoľte v modifikátore Armatúra Zobrazenie režimu editácie aj Editácia klietky. Vlastnosti ‣ karta Modifikátory ‣ modifikátor Armatúra ‣ Záhlavie

  4. Prejdite do režimu editácie a na paneli vlastností vyberte nový kľúčový tvar. Vrcholy upravte podľa potreby. Výberom tlačidla Základný prepínate medzi pôvodnou povrchovou sieťou a vašimi úpravami. (Poznámka: dávajte pozor, aby ste úpravy aplikovali len na svoj tvar a nie na pôvodnú povrchovú sieť alebo iné existujúce kľúče)

Keď ste spokojní s tým, ako vyzerá deformácia pre problematickú pózu, budete musieť nakonfigurovať ovládač, aby sa tvar plynule aktivoval pri vstupe do tejto pozície.

Ovládač
  1. Pridajte ovládač k hodnote vytvoreného kľúčového tvaru.

  2. Otvorte editor Ovládače a vyberte ovládač.

Metóda 1 - Priame priradenia na hodnotu rotácie kosti

Jednoduchým spôsobom konfigurácie ovládača je priama súvzťažnosť hodnoty kanála rotácie kosti s aktiváciou Hodnoty kľúčového tvaru. Tento spôsob má nevýhodu v tom, že sa spolieha na jediný kanál rotácie kosti, ktorý môže byť nedostatočný na presné vyjadrenie podmienky, za ktorej sa má aktivovať kľúčový tvar.

  1. Na karte Ovládače vyberte možnosť Priemerná hodnota rotácie kosti, ktorú polohujete.

    Priznajte os rotácie, ktorá vás zaujíma, povolením zobrazenia osí v armatúre alebo sledovaním hodnôt transformácie kosti vo Vlastnostiach.

    Vyberte kanál rotácie a nastavte ho na lokálnu hodnotu, čo znamená hodnotu rotácie kosti vzhľadom na jej rodičovskú kosť.

    ../../_images/animation_drivers_workflow-examples_shape-key-method1.png
  2. Ručne nastavte body v krivke ovládača výberom manipulátora a jeho pretiahnutím alebo vložením hodnôt na karte F-krivka. Os Y predstavuje Hodnotu kľúčového tvaru, ktorý by mal mať hodnoty od 0,0 do 1,0. Os X zvyčajne predstavuje snímku, ale pre tento ovládač predstavuje hodnotu rotácie v radiánoch. V krivke môžete mať viac ako dva body a upravovať prechody manipulátormi v zobrazení krivky (G na presun).

  3. Ak chcete overiť, či sa ovládač správa správne, zrušte zaškrtnutie možnosti zobraziť ovládače len pre vybrané objekty. Takto môžete zmeniť pózu armatúry a zachovať sledovanie ovládača.

Metóda 2 - Rozdiel rotácie na cieľovej kosti

Táto metóda vyžaduje ďalšiu cieľovú alebo korekčnú kosť, aby sa lepšie vyjadril priestorový stav v 3D priestore kosti, ktorá spôsobuje problém.

  1. V režime editácie armatúry pridajte novú kosť vysunutú z kosti 1 na pozíciu, na ktorej by mala mať kosť 2 aktívny kľúčový tvar. Tento typ kostí sa zvyčajne riadi konvenciou názvu, napríklad „TAR-“ (cieľ) alebo „COR-“ (korekčná).

  2. Na karte Ovládače vyberte možnosť Priemerná hodnota rozdielu rotácie medzi kosťou, ktorú rotujete a cieľovou kosťou. Rozdiel rotácie je minimálny uhol medzi dvoma objektmi vo svetovom priestore. Je preto dôležité, aby kosti mali rovnaký koreň, takže jediné, čo ovplyvňuje uhol medzi kosťami, je rotácia jednej z nich. Keď deformačná kosť (Bone 2) dosiahne cieľovú rotáciu (TAR-Bone 2), rozdiel rotácie bude 0°.

    ../../_images/animation_drivers_workflow-examples_shape-key-method2.png
  3. Ručne nastavte manipulátory krivky ovládača tak, aby Hodnota kľúčového tvaru (osi Y) bola 1,0, keď je rozdiel rotácie (osi X) 0°. Hodnota by mala byť 0,0, keď je rameno vysunuté, vtedy by mal byť rozdiel rotácie približne 90° alebo viac (v radiánoch).

  4. Pozrite si kroky v Metóde 1, ako upraviť manipulátory krivky a overte, či funkčnosť pracuje. Zmeňte pózu armatúry a overte, či sú rozsahy správne.

Reťazové relatívne kľúčové tvary#

Aktivujte postupne rôzne kľúčové tvary. V tomto príklade sa pohybom jednej kosti aktivuje najprv kľúčový tvar Key 1 a potom Key 2. Pozri tiež prídavné zmiešanie relatívnych kľúčových tvarov.

Kľúčové tvary

Pridanie dvoch kľúčových tvarov do povrchovej siete okrem možnosti Základný.

../../_images/animation_drivers_workflow-examples_chained-shape-keys-basis.png

Základný.#

../../_images/animation_drivers_workflow-examples_chained-shape-keys-key1.png

Kľúčový tvar Key 1: horné plochy posunuté o 1 m.#

../../_images/animation_drivers_workflow-examples_chained-shape-keys-key2.png

Kľúčový tvar Key 2: vnútorný vrchol posunutý o 1 m.#

Ovládače

Pridajte armatúru s jednou kosťou na ovládanie kľúčových tvarov. Cieľom je aktivovať kľúčové tvary postupne, pri pohybe tejto kosti nahor.

../../_images/animation_drivers_workflow-examples_chained-shape-keys-result.png

Ako je znázornené na vyššie uvedenom obrázku, keď je kosť v polovici výšky, majú vplyv obidve kľúčové tvary Key 1 a Key 2. Je otázkou preferencií, či má byť Key 1 na svojej maximálnej hodnote skôr, ako začne byť aktívny Key 2, alebo nakoľko sa majú prekrývať. Tento príklad ukazuje plynulé prelínanie.

V prípade plynulého prelínania, pri ktorom dochádza k prekrývaniu, by mal mať kľúčový tvar Key 1 Hodnotu 0,0, keď je kosť v spodnej časti a lineárne sa zvyšuje na 1,0, pokiaľ kosť neprekročí výšku stredného bodu. Kľúčový tvar Key 2 by mal mať hodnotu 0,0 pred stredným bodom výšky a potom by sa mal zvyšovať rovnakou rýchlosťou ako Key 1, až kým nedosiahne Hodnotu 1,0, keď je kosť v maximálnej výške.

  1. Pridajte ovládač k Hodnote kľúčového tvaru Key 1 a Key 2. Na karte Ovládače nakonfigurujte oba ovládače tak, aby boli Priemerná hodnota premennej s kosťou Poloha Z.

  2. Určte rozsah pohybu kosti v osi Svet Z tak, že ju posuniete nahor, aby bola zarovnaná s hornou časťou povrchovej siete, keď sú aktívne obe tlačidlá. Tu použijeme [0,0, 2,5].

  3. Nakonfigurujte funkcie ovládača tak, aby hodnota kľúčových tvarov (os Y) zodpovedala požadovanej výške kosti (os X).

    Funkcie ovládača by mali byť lineárne, preto ich možno definovať analyticky funkciou typu \(y = a + bx\), kde \(a\) je posuv v \(y\) a \(b\) je sklon.

    1. Na karte Modifikátory pridajte Generátor typu Rozšírený mnohouholník pre oba ovládače.

    2. Pohrajte si s hodnotami \(a\) a \(b\) tak, aby krivky prechádzali od [0,0, 1,0] na osi Y a od [0,0, 2,5] na osi X. Krivky by sa mali prekrývať v strednej oblasti osi X a mali by mať rovnaký sklon (\(b\)).

      Možné hodnoty kľúčového tvaru sú Key 1: \(y = 0,0 + 0,6x\) a Key 2: \(y = -0,5 + 0,6x\).

      ../../_images/animation_drivers_workflow-examples_chained-shape-keys-driver-setup.png

      Všimnite si, že funkcie presahujú rozsah [0,0, 1,0] pre Hodnotu kľúčových tvarov, ale to nemá žiadny vplyv, pretože Hodnota je v paneli Kľúčové tvary pripnutá v možnosti Rozsah.