Plafó de controladors¶
Emergent d’edició de controlador.¶
Referència
- Editor:
Editor de gràfiques
- Mode:
Controladors
- Plafó:
- Drecera:
N
Referència
- Menú:
- Drecera:
Ctrl-D
Aquest plafó és visible a la barra lateral de l'Editor de controladors o com a finestra emergent quan s’afegeix un controlador a una propietat.
Mostra la propietat que s’està «controlant», seguida d’una sèrie de paràmetres que determinen com funciona el controlador.
Configuració de controlador¶
Tipus¶
Hi ha dues categories de controladors:
Funcions de fàbrica (Mitjana, Suma, Mínima i Màxima)
La propietat controlada tindrà el valor de la mitjana, suma, mínim o màxim (respectivament) dels valors de les Variables del controlador referenciades. Si només hi ha una variable controladora, aquestes funcions treuran el mateix resultat.
Personalizat (Expressió protocolitzada).
Una expressió arbitrària de Python que pot referir-se a les variables del controlador pel seu nom. Vegeu Expressions.
Valor del controlador¶
El resultat actual de la configuració del controlador. Útil per finalitats de depuració.
Variables¶
Vegeu Variables del controlador.
Actualitzar dependències¶
Força una actualització de les dependències de valor de controlador.
Mostrar a l’Editor de controladors¶
Obre l'Editor de controladors amb totes les funcions. Aquest botó només apareix a la versió de finestra emergent del plafó Controladors.
Variables de controlador¶
Les variables són referències a propietats, canals de transformació, o el resultat d’una comparació entre transformacions de dos objectes.
Els controladors haurien d’accedir a les dades de l’objecte a través de Variables de controlador, preferiblement a referències directes de l’expressió de Python, per tal que les dependències siguin correctament seguides.
Botons Afegir, Copiar, Enganxar.¶
- Afegir variable d’ingressió
Afegeix una nova variable de controlador.
- Copiar/Enganxar variables
Copia la llista de variables actual de manera que es pugui enganxar a la llista de variables d’un altre controlador.
- Nom
Nom per a usar-lo en expressions de protocols. El nom ha de començar amb una lletra i només contenir lletres, dígits o guions baixos.
- Tipus de variable
El tipus de variable a emprar.
- Propietat individual
Recupera el valor d’una propietat de RNA, especificada per una referència al bloc de dades i una cadena de ruta.
En el cas de les propietats de transformació, això retornarà el valor exacte de la propietat de la IU, mentre que el Canal de transformació tindrà en compte la paternitat i/o les restriccions segons convingui.
Vegeu també Propietats creades a mida.
- Tipus d’ID
El tipus de bloc d’identificació. Per exemple: Fita, Imatge, Objecte, Material.
- ID
L’ID del tipus de bloc d’ID. Per exemple: «Material.001».
- Ruta de RNA
El nom de RNA de la propietat, basat en un subconjunt de la sintaxi d’accés a atributs de Python. Per exemple:
location.xo bélocation[0]per al valor del canal d’animació d’ubicació X (abans de paternitats o restriccions), o bé["prop_name"]per a una propietat personalitzada.- Segona opció
Si està habilitat, permet especificar un valor alternatiu per usar com a valor variable si la Ruta de RNA no es pot resoldre en lloc d’evitar un error d’avaluació del controlador. Per més informació, vegeu Propietat de context a continuació.
Truc
La manera més fàcil de crear una variable d’aquest tipus és utilitzar l’opció de menú contextual Copiar com a controlador nou de la propietat d’ingressió i enganxar el resultat al controlador mitjançant Enganxar variables de controlador.
- Canal de transformació
Recupera el valor d’un dels Canals de transformació d’un objecte o os.
- ID
ID de l’objecte. Per exemple: Cube [cub], Armature [esquelet], Camera [càmera].
- Os
Per a esquelets, el nom de l’os d’esquelet. Per exemple: «Os», «Os.002», «Braç.r».
- Tipus
Per exemple, Ubicació X, Rotació X, Escala X.
L’opció Escala mitjana recupera el valor de l’escala combinada, calculada com l’arrel cúbica del canvi total en volum. A diferència de l'escalat X/Y/Z, aquest valor pot ser negatiu si l’objecte es capgira per l’escalat negatiu.
- Mode (rotació)
Per als canals de rotació, especifica el tipus de dades de rotació a utilitzar, inclosos diferents ordres explícits Euler. Per defecte agafa l’ordre Euler del referent. Vegeu Modes del canal de rotació.
- Espai
Espai del món, Espai de transformacions, Espai Local.
- Diferència rotacional
Proporciona el valor de la diferència de rotació entre dos objectes o ossos, en radians.
- Os
Per a esquelets, el nom de l’os d’esquelet. Per exemple: «Os», «Os.002», «Braç.r».
- Distància
Proporciona el valor de la distància entre dos objectes o ossos.
- Os
Per a esquelets, el nom de l’os d’esquelet. Per exemple: «Os», «Os.002», «Braç.r».
- Espai
Espai del món, Espai de transformacions, Espai Local.
- Propietat de context
Proporciona el valor d’una propietat que es refereix implícitament a una escena o a una capa de visionat del sistema d’animació actualment en avaluació. Aquesta és una referència feble que no comporta que l’escena o la capa de visionat referenciada des del controlador esdevingui vinculada en vincular les dades d’animació.
Un exemple de quan aquestes propietats entren en joc es refereix a una transformació de la càmera activa. És possible de configurar un controlador en un document de personatge i fer que el controlador utilitzi la càmera instal·lada quan el personatge està vinculat a un conjunt.
- Context
Escena activa, Capa de visionat activa.
- Ruta de RNA
El nom de RNA de la propietat, basat en un subconjunt de la sintaxi d’accés a l’atribut Python. Per exemple:
camera.location.xocamera.location[0]per al valor del canal d’animació de la ubicació X de la càmera (abans de paternitat o restriccions), o bé["prop_name"]per a una propietat personalitzada.- Segona opció
Si està habilitat, permet especificar un valor de reserva que s’empra com a valor variable si la ruta de RNA no es pot resoldre i així no es causa un error d’avaluació del controlador.
Aquesta característica pot ser molt útil per a fer els controladors més robustos quan s’implementen les opcions d’escena global amb propietats personalitzades. Quan l’objecte està vinculat a una escena diferent, és possible que aquestes propietats a mida no siguin allà i es poden utilitzar les de reserva per disposar de valors predeterminats raonables.
Les reserves també es poden utilitzar per a emular el comportament de cerca del mode de Visionat de capa del Node d’atribut de material.
Truc
Tot i que els valors dels canals d’animació x/y/z per a la ubicació de la càmera es poden accedir a través de
camera.location[0/1/2], recuperar la seva ubicació i orientació dins l’espai del món després de paternitats i restriccions actualment fa necessari l’ús decamera.matrix_world. Aquesta propietat es pot entendre fàcilment interpretant la matriu com una matriu de quatre vectors en l’espai Món:matrix_world[0][0/1/2]és el vector de direcció Dreta de pantalla (càmera local X).matrix_world[1][0/1/2]és el vector de direcció Amunt de pantalla (càmera local Y).matrix_world[2][0/1/2]és la direcció contrària a la que apunta la càmera.matrix_world[3][0/1/2]és la ubicació de la càmera.
- Valor
Mostra el valor de la variable.
Modes de canal de rotació¶
Els Canals de transformació de rotació admeten una sèrie de modes d’operació, incloent-hi:
- Auto Euler
Utilitza l’ordre Euler del referent per a descompondre la rotació en canals.
- Euler XYZ, …
Especifica explícitament l’ordre de rotació Euler a usar.
- Quaternió
Proporciona la representació de Quaternió de la rotació.
- Gronxar i Roscar X/Y/Z
Descompon la rotació en dues parts: una rotació Gronxar, que apunta l’eix especificat en la seva direcció final, seguida d’una rotació Roscar al voltant d’aquest eix. Això és sovint necessari per al control correctiu de les morfofites i ossos per aconseguir una rotació orgànica de les articulacions.
Aquesta descomposició es produeix sovint en aparellats mitjançant l’ús d’un os auxiliar amb una Restricció de trajectòria refrenada per extreure la part de gronxar i el seu fill amb Copiar transformacions per extreure el component de roscar.
Els valors dels canals per a Gronxar i Roscar Y són:
Corbes de decaïment per a angles amb pesos.¶
- Rotació Y
Angle veritable de la rotació de rosca.
- Rotació W
Angle real de la rotació de gronxat, independentment de la seva direcció.
- Rotació X, Rotació Z
Angles amb pesos en representació de la quantitat de gronxat al voltant de l’eix X/Z.
La magnitud de l’angle és igual a la Rotació W quan la rotació està purament al voltant d’aquest eix i es va esvaint cap a zero a mesura que la direcció canvia cap a l’altre eix, seguint les corbes de decaïment de la gràfica de la dreta.
Matemàticament, els angles de gronxat es calculen a partir de components de quaternió, utilitzant \(2 \arccos(w)\) per a W i \(2 \arcsin(x)\) etc… per a la resta. El component de la rotació de gronxat que correspon a l’eix de roscar és sempre 0 i se substitueix per l’angle de roscar.
Expressions¶
- Expressió
Un camp de text on hi podeu entrar una expressió de Python arbitrària que es refereix a les variables de controlador pels seus noms.
L’expressió té accés a un conjunt de constants estàndard i funcions matemàtiques des de
math,bl_mathi altres mòduls, proporcionades a l’espai denominatiu del controlador. Com a exemple d’afegir una funció personalitzada a l’espai de denominacions, vegeu l'exemple d’espai denominatiu del controlador.Per raons de rendiment, el millor és utilitzar el subconjunt Expressions simples sempre que sigui possible.
- Usar pròpia
Si aquesta opció està habilitada, es pot utilitzar la variable
selfperquè els controladors facin referència a les seves pròpies dades. Útil per a objectes i ossos per evitar haver de crear una Variable de controlador que s’apunti a si mateixa.Exemple:
self.location.xaplicat a la propietat de rotació Y del mateix objecte farà que l’objecte es tombi en moure’s.Tingueu en compte que les dependències de les propietats a les quals s’accedeix via
selfpoden no ser seguides de manera plena.
Expressions simples¶
Blender pot avaluar directament un subconjunt útil d’expressions de controlador (driver) de Python, cosa que millora significativament el rendiment, especialment en sistemes multinucli. Per treure’n partit, l’expressió de controlador només ha d’utilitzar les següents funcionalitats:
- Noms de variables
Usar sols caràcters ASCII.
- Literals
Punt flotant i enter decimal.
- Globals
frame- Constants
pi,True,False- Operadors
+,-,*,/,==,!=,<,<=,>,>=,and,or,not, operator condicional/ternari si- Funcions estàndard
min,max,radians,degrees,abs,fabs,floor,ceil,trunc,round,int,sin,cos,tan,asin,acos,atan,atan2,exp,log,sqrt,pow,fmod- Funcions proporcionades pel Blender
lerp,clamp,smoothstep
Les expressions simples s’avaluen fins i tot quan l’execució de protocols de Python està deshabilitada.
Quan s’utilitza una expressió fora d’aquest subconjunt, el Blender mostra un avís d'»expressió de Python lenta». No obstant això, sempre que la majoria dels controladors utilitzin expressions simples, és correcte utilitzar una expressió complexa en uns pocs de molt triats.
Vegeu també