Seleccione Archivo > Configuración del proyecto.
- Guía del usuario de After Effects
- Versiones beta
- Introducción
- Introducción a After Effects
- Novedades de After Effects
- Notas de la versión | After Effects
- Requisitos del sistema para After Effects
- Métodos abreviados de teclado en After Effects
- Formatos de archivo admitidos | After Effects
- Recomendaciones de hardware
- After Effects para Apple Silicon
- Planificación y configuración
- Espacios de trabajo
- Proyectos y composiciones
- Importación de material de archivo
- Preparación e importación de imágenes fijas
- Importación desde After Effects y Adobe Premiere Pro
- Importación e interpretación de vídeo y de audio
- Preparación e importación de archivos de imagen 3D
- Importación e interpretación de elementos de material de archivo
- Uso de elementos de material de archivo
- Detección de puntos de edición con Detección de edición de escena
- Metadatos XMP
- Texto y gráficos
- Texto
- Gráficos animados
- Trabajar con plantillas de gráficos animados en After Effects
- Uso de expresiones para crear listas desplegables en plantillas de gráficos animados
- Trabajo con propiedades esenciales para crear plantillas de gráficos animados
- Reemplazo de imágenes y vídeos en plantillas de gráficos animados y propiedades esenciales
- Anime de forma más rápida y sencilla utilizando el panel Propiedades
- Dibujo, pintura y trazados
- Descripción general de las capas de forma, trazados y gráficos vectoriales
- Herramientas de pintura: Pincel, Tampón de clonar y Borrador
- Estrechar trazos de forma
- Atributos de forma, operaciones de pintura y operaciones de trazado para capas de forma
- Uso del efecto de forma Desplazar trazados para modificar formas
- Creación de formas
- Creación de máscaras
- Elimine objetos de sus vídeos desde el panel Relleno según el contenido
- Pincel tipo rotoscopia y Perfeccionar mate
- Capas, marcadores y cámara
- Animación, fotogramas clave, seguimiento del movimiento y efecto de clave
- Animación
- Fotograma clave
- Seguimiento de movimiento
- Incrustación
- Transparencia y composición
- Ajuste del color
- Ajustes preestablecidos de animación y efectos
- Información general de efectos y ajustes preestablecidos de animación
- Lista de efectos
- Administrador de efectos
- Efectos de simulación
- Efectos de Estilizar
- Efectos de audio
- Efectos de distorsión
- Efectos de perspectiva
- Efectos de canal
- Efectos de generación
- Efectos de tiempo
- Efectos de transición
- El efecto Reparación de obturación de desplazamiento
- Efectos de desenfoque y enfoque
- Efectos de canal 3D
- Efectos de utilidad
- Efectos mate
- Efectos Ruido y Granulado
- Efecto Mejora de conservación de detalles
- Efectos obsoletos
- Expresiones y automatización
- Expresiones
- Conceptos básicos sobre expresiones
- Comprensión del lenguaje de expresión
- Uso de los controles de expresión
- Diferencias de sintaxis entre los motores de expresiones de JavaScript y ExtendScript heredado
- Edición de expresiones
- Errores de expresiones
- Uso del editor de expresiones
- Uso de expresiones para editar y acceder a las propiedades de texto
- Referencia del lenguaje de expresión
- Ejemplos de expresiones
- Automatización
- Expresiones
- Vídeo inmersivo, RV y 3D
- Construcción de entornos de VR en After Effects
- Aplicar efectos de vídeo envolvente
- Herramientas de composición para vídeos de VR/360
- Procesador 3D avanzado
- Importación y adición de modelos 3D a la composición
- Importación de modelos 3D desde las Bibliotecas Creative Cloud
- Iluminación basada en imágenes
- Extracción y animación de luces y cámaras a partir de modelos 3D
- Seguimiento del movimiento de la cámara 3D
- Proyección y aceptación de sombras
- Animaciones de modelos 3D incrustadas
- Captura de sombras
- Extracción de datos de profundidad 3D
- Modificación de las propiedades de materiales de una capa 3D
- Trabajo en espacios de diseño 3D
- Herramientas de transformación Gizmo 3D
- Haga más cosas con la animación 3D
- Previsualización de los cambios en diseños 3D en tiempo real con el motor Mercury 3D
- Adición de diseño interactivo a los gráficos
- Vistas y previsualizaciones
- Procesamiento y exportación
- Principios básicos de procesamiento y exportación
- Codificación H.264 en After Effects
- Exportación de un proyecto de After Effects como un proyecto de Adobe Premiere Pro
- Conversión de películas
- Procesamiento de varios fotogramas
- Procesamiento automático y en red
- Procesamiento y exportación de imágenes fijas y secuencias de imágenes fijas
- Uso del códec de GoPro CineForm en After Effects
- Uso de otras aplicaciones
- Colaboración: Frame.io y Team Projects
- Memoria, almacenamiento y rendimiento
- Base de conocimiento
Obtenga más información sobre las expresiones y las referencias de expresión, como los métodos de conversión del tiempo y los métodos matemáticos vectoriales, en After Effects.
Repetición de fotogramas clave con expresiones en After Effects
Utilice los elementos de expresión de After Effects junto con los elementos estándar de JavaScript para escribir las expresiones. Puede utilizar el menú Lenguaje de expresión en cualquier momento para insertar métodos y atributos en una expresión y puede utilizar el icono espiral para insertar propiedades.
Si la descripción de un argumento contiene un signo igual (=) y un valor (como t=time o width=.2), el argumento utiliza el valor predeterminado incluido si no se especifica un valor diferente.
Las descripciones de algunos argumentos incluyen un número entre corchetes que indica la dimensión de la propiedad o del conjunto esperado.
Las descripciones de algunos valores devueltos incluyen un número entre corchetes; este especifica la dimensión de la propiedad o del conjunto devuelto. Si no se incluye una dimensión específica, la dimensión del conjunto devuelto depende de la dimensión de la entrada.
En el sitio web de referencia sobre JavaScript W3Schools se proporciona información sobre el lenguaje estándar JavaScript e incluye páginas para los objetos de JavaScript Math y String.
Expresiones: motor JavaScript
After Effects utiliza el motor JavaScript al evaluar expresiones. El rendimiento de la evaluación de expresiones durante el procesamiento puede ser hasta cinco veces superior que con el motor Legacy ExtendScript.
En Windows, After Effects utiliza el motor de JavaScript de código abierto de V8. Este ofrece una versión más moderna de JavaScript de la que hay disponible en ExtendScript, que solo admite la tercera edición del estándar ECMA-262.
Puede utilizar Configuración del proyecto para elegir si un proyecto utiliza el motor JavaScript o Legacy ExtendScript.
-
-
Seleccione la pestaña Expresiones y el Motor de expresiones como JavaScript o Legacy ExtendScript.
Nota:Los proyectos guardados en versiones anteriores de After Effects usan Legacy ExtendScript de forma predeterminada.
Más información sobre las diferencias de sintaxis específicas entre los motores de expresiones de JavaScript y Legacy ExtendScript.
Mejoras proporcionadas por el motor JavaScript
- Mayor precisión matemática en operaciones con punto flotante.
- Pueden utilizarse los métodos “array” y “string” del moderno JavaScript.
- Se proporcionan otros objetos JavaScript modernos, como “typed arrays”, el uso de las palabras clave “let” y “const”, y muchas otras incorporaciones de las recientes versiones del estándar ECMA-262.
Diferencias entre los motores JavaScript y ExtendScript
- La sintaxis de las declaraciones “if/else” es estricta en el motor JavaScript y debe escribirse para JavaScript estandarizado.
- Al acceder a los índices de una capa de texto como matriz (valor “array”), utilice text.sourceText.value[i] en vez de text.sourceText[i].
- Los antiguos métodos de expresión snake_case, como this_comp y to_world, ya obsoletos en ExtendScript, no son compatibles.
- No se admite la sintaxis 'this(arg)' simplificada.
Objetos globales, atributos y métodos (referencia de expresión)
comp(name)
Tipo de valor devuelto: comp.
Tipo de argumento: nombre es una cadena.
Recupera otra composición por su nombre.
footage(name)
Tipo de valor devuelto: material de archivo.
Tipo de argumento: nombre es una cadena.
Recupera un elemento de material de archivo por el nombre.
thisComp
Tipo de valor devuelto: comp.
Representa la composición que contiene la expresión.
thisLayer
Tipo de valor devuelto: capa, luz o cámara.
Representa la capa que contiene la expresión. Dado que thisLayer es el objeto predeterminado, su uso es opcional. Por ejemplo, puede iniciar una expresión con thisLayer.width o width y obtener el mismo resultado.
thisProperty
Tipo de valor devuelto: propiedad.
Representa la propiedad que contiene la expresión. Por ejemplo, si escribe una expresión en la propiedad Rotación, puede iniciar una expresión con thisProperty para hacer referencia a la propiedad Rotación.
tiempo
Tipo de valor devuelto: número.
Representa el tiempo de la composición, en segundos, en el que se va a evaluar la expresión.
colorDepth
Tipo de valor devuelto: número.
Devuelve el valor de profundidad de color del proyecto. Por ejemplo, colorDepth devuelve 16 cuando la profundidad de color del proyecto es de 16 bits por canal.
posterizeTime(framesPerSecond)
Tipo de valor devuelto: número.
Tipo de argumento: framesPerSecond es un número.
El valor framesPerSecond se convierte en la velocidad de fotogramas a partir de la cual funciona el resto de la expresión. Esta expresión permite establecer que la velocidad de fotogramas de una propiedad sea más baja que la velocidad de fotogramas de la composición. Por ejemplo, la siguiente expresión actualiza el valor de la propiedad con un valor aleatorio una vez por segundo:
posterizeTime(1); random()valor
Tipo de valor devuelto: número, conjunto o cadena.
Representa el valor en el tiempo actual de la propiedad que contiene la expresión.
Métodos de conversión del tiempo (referencia de expresión)
timeToFrames(t = time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration, isDuration = false)
Tipo de valor devuelto: número.
Tipo de argumento: t y fps son números; isDuration es un valor booleano.
Convierte el valor de t, que se define de manera predeterminada en el tiempo de la composición actual, en un número entero de fotogramas. El número de fotogramas por segundo se especifica en el argumento fps, que se define de manera predeterminada en la velocidad de fotogramas de la composición actual (1.0 / thisComp.frameDuration). El argumento isDuration, que está definido como falso de manera predeterminada, debe ser verdadero si el valor t representa una diferencia entre dos tiempos en lugar de un tiempo absoluto. Los tiempos absolutos se redondean a la baja hacia el infinito negativo; las duraciones se redondean alejándose de cero (hacia arriba para valores positivos).
framesToTime(frames, fps = 1.0 / thisComp.frameDuration)
Tipo de valor devuelto: número.
Tipo de argumento: frames y fps son números.
El inverso de timeToFrames. Devuelve el tiempo correspondiente al argumento frames, que es necesario. No es necesario que sea un número entero. Consulte timeToFrames para ver una explicación sobre el argumento fps.
timeToTimecode(t = time + thisComp.displayStartTime, timecodeBase = 30, isDuration = false)
Tipo de valor devuelto: cadena.
Tipo de argumento: t y timecodeBase son números; isDuration es un booleano.
Convierte el valor de t en una cadena que representa un código de tiempo. Consulte timeToFrames para ver una explicación de los argumentost e isDuration. El valor timecodeBase, que se define en 30 de manera predeterminada, especifica el número de fotogramas por segundo.
timeToNTSCTimecode(t = time + thisComp.displayStartTime, ntscDropFrame = false, isDuration = false)
Tipo de valor devuelto: cadena.
Tipo de argumento: t es un número, ntscDropFrame e isDuration son valores booleanos.
Convierte t en una cadena que representa el código de tiempo NTSC. Consulte timeToFrames para obtener una explicación de los argumentos t e isDuration. Si ntscDropFrame es falso (valor predeterminado), la cadena resultante es un código de tiempo sin fotograma eliminado NTSC. Si ntscDropFrame es verdadero, la cadena resultante es un código de tiempo sin fotograma eliminado NTSC.
timeToFeetAndFrames(t = time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration, framesPerFoot = 16, isDuration = false)
Tipo de valor devuelto: cadena.
Tipo de argumento: t, fps, y framesPerFoot son números; isDuration es un valor booleano.
Convierte el valor de t en una cadena que representa pies de película y fotogramas. Consulte timeToFrames si desea obtener una explicación de los argumentos t, fps, y isDuration. El argumento framesPerFoot especifica el número de fotogramas en un pie de película. Adopta el valor predeterminado de 16, que es la velocidad más común para el material de archivo de 35 mm.
timeToCurrentFormat(t = time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration, isDuration = false)
Tipo de valor devuelto: cadena.
Tipo de argumento: t y fps son números; isDuration es un valor booleano.
Convierte el valor de t en una cadena que representa el tiempo en el formato de visualización actual de Ajustes del proyecto. Consulte timeToFrames para obtener una definición de todos los argumentos.
Se ha agregado un argumento opcional ntscDropFrame a la función timeToCurrentFormat() en After Effects CS5.5 y posterior. Opción predeterminada: ntscDropFrame = thisComp.ntscDropFrame.
Si desea ejercer un mayor control sobre el aspecto del código de tiempo del material de archivo, utilice el método timeToCurrentFormat u otros métodos timeTo para generar el código de tiempo en lugar de utilizar el efecto Código de tiempo o Números. Cree una capa de texto, añada una expresión a la propiedad Texto de origen e introduzca timeToCurrentFormat en el campo de expresión. Con este método, puede dar formato y animar el texto de código de tiempo. Asimismo, el código de tiempo utiliza el mismo estilo de visualización definido en los ajustes actuales del proyecto.
Métodos matemáticos vectoriales (referencia de expresión)
Las funciones matemáticas vectoriales son métodos globales que realizan operaciones en conjuntos, tratándolos como vectores matemáticos. A diferencia de los métodos JavaScript integrados, como Math.sin, estos métodos no utilizan el prefijo Math. A menos que se especifique lo contrario, los métodos matemáticos vectoriales no son estrictos con las dimensiones, devuelven un valor que es la dimensión del objeto Conjunto de entrada más grande y los elementos que faltan se rellenan con ceros. Por ejemplo, la expresión add([10, 20], [1, 2, 3]) devuelve [11, 22, 3].
add(vec1, vec2)
Tipo de valor devuelto: conjunto.
Tipo de argumento: vec1 y vec2 son conjuntos.
Agrega dos vectores.
sub(vec1, vec2)
Tipo de valor devuelto: conjunto.
Tipo de argumento: vec1 and vec2 son conjuntos.
Resta dos vectores.
mul(vec, amount)
Tipo de valor devuelto: conjunto.
Tipo de argumento: vec es un conjunto, amount es un número.
Multiplica cada elemento del vector por la cantidad.
div(vec, amount)
Tipo de valor devuelto: conjunto.
Tipo de argumento: vec es un conjunto, amount es un número.
Divide cada elemento del vector por la cantidad.
clamp(value, limit1, limit2)
Tipo de valor devuelto: número o conjunto.
Tipo de argumento: valor, limit1 y limit2 son números o conjuntos.
El valor de cada componente de valor debe encontrarse entre los valores correspondientes de limit1 y limit2.
dot(vec1, vec2)
Tipo de valor devuelto: número.
Tipo de argumento: vec1 y vec2 son conjuntos.
Devuelve el producto de puntos (interior) de los argumentos vectoriales.
cross(vec1, vec2)
Tipo de valor devuelto: conjunto [2 ó 3].
Tipo de argumento: vec1 y vec2 son conjuntos [2 o 3].
Devuelve el producto vectorial cruzado de vec1 y vec2. Si desea obtener más información, consulte una referencia matemática o una guía de JavaScript.
normalize(vec)
Tipo de valor devuelto: conjunto.
Tipo de argumento: vec es un conjunto.
Normaliza el vector para que su longitud sea de 1.0. El uso del método normalizar es un modo rápido de realizar la operación div(vec, length(vec)).
length(vec)
Tipo de valor devuelto: número.
Tipo de argumento: vec es un conjunto.
Devuelve la longitud del vector vec.
length(point1, point2)
Tipo de valor devuelto: número.
Tipo de argumento: point1 y point2 son conjuntos.
Devuelve la distancia entre dos puntos. El argumento point2 es opcional. Por ejemplo, length(point1, point2) es lo mismo que length(sub(point1, point2)).
Por ejemplo, añada esta expresión a la propiedad Distancia de enfoque de una cámara para bloquear el plano focal en el punto de interés de la cámara de modo que este punto esté enfocado:
length(position, pointOfInterest)lookAt(fromPoint, atPoint)
Tipo de valor devuelto: conjunto [3].
Tipo de argumento: fromPoint y atPoint son conjuntos [3].
El argumento fromPoint es la ubicación en el espacio del entorno de la capa que se desea orientar. El argumento atPoint es el punto en el espacio del entorno al que desea que apunte la capa. El valor devuelto se puede utilizar como expresión de la propiedad Orientación, haciendo que el eje z de la capa señale hacia atPoint. Este método es especialmente útil para cámaras y luces. Si utiliza esta expresión en una cámara, desactive la orientación automática. Por ejemplo, esta expresión de la propiedad Orientación de una luz concentrada hace que la luz señale hacia el punto de anclaje de la capa número 1 de la misma composición: lookAt(position, thisComp.layer(1).position)
Métodos de números aleatorios (referencia de expresión)
El método de ondulación, que se utiliza para modificar de forma aleatoria un valor de propiedad, se encuentra en la categoría de métodos y atributos de Propiedad. Para obtener más información, consulte Atributos y métodos de propiedad (referencia de expresión).
seedRandom(offset, timeless=false)
Tipo de valor devuelto: ninguno.
Tipo de argumento: offset es un número, timeless es un valor booleano.
Los métodos random y gaussRandom utilizan un valor de raíz que controla la secuencia de números. De forma predeterminada, la raíz se calcula como una función de un identificador de capa único, la propiedad dentro de la capa, el tiempo actual y un valor de desplazamiento de 0. Llame a seedRandom para establecer el desplazamiento en un valor distinto de 0 para crear una secuencia aleatoria diferente.
Utilice true para el argumento timeless para no utilizar el tiempo actual como entrada a la raíz aleatoria. El uso de true para el argumento timeless permite generar un número aleatorio que no varía dependiendo del tiempo de evaluación.
El valor offset, pero no el valor timeless, también se utiliza para controlar el valor inicial de la función wiggle.
Por ejemplo, esta expresión de la propiedad Opacidad establece el valor Opacidad en un valor aleatorio que no varía con el tiempo:
seedRandom(123456, true); random()*100La multiplicación por 100 en este ejemplo convierte el valor entre 0 y 1 devuelto por el método random en un número entre 0 y 100; este rango suele ser más útil para la propiedad Opacidad, que tiene valores del 0 % al 100 %.
random()
Tipo de valor devuelto: número.
Devuelve un número aleatorio entre 0 y 1.
En After Effects CC y CS6, el comportamiento de aleatorio() se ha cambiado para ser más aleatorio cuando los ID de capa están próximos entre sí. La expresión wiggle() no resulta afectada.
random(maxValOrArray)
Tipo de valor devuelto: número o conjunto.
Tipo de argumento: maxValOrArray es un número o un conjunto.
Si maxValOrArray es un número, este método devuelve un número en el rango de 0 a maxValOrArray. Si maxValOrArray es un conjunto, este método devuelve un conjunto con la misma dimensión que maxValOrArray, donde cada componente varía entre 0 y el componente correspondiente de maxValOrArray.
random(minValOrArray, maxValOrArray)
Tipo de valor devuelto: número o conjunto.
Tipo de argumento: minValOrArray y maxValOrArray son números o conjuntos.
Si minValOrArray y maxValOrArray son números, este método devuelve un número en el rango de minValOrArray a maxValOrArray. Si los argumentos son conjuntos, este método devuelve un conjunto con la misma dimensión que el argumento de dimensión mayor, con cada componente en el rango del componente correspondiente de minValOrArray al componente correspondiente de maxValOrArray. Por ejemplo, la expresión random([100, 200], [300, 400]) devuelve un conjunto cuyo primer valor está en el rango 100–300 y cuyo segundo valor se encuentra entre 200–400. Si las dimensiones de los dos conjuntos de entrada no coinciden, los valores de mayor dimensión del conjunto más corto se rellenarán con ceros.
gaussRandom()
Tipo de valor devuelto: número.
Devuelve un número aleatorio. Los resultados tienen una distribución gaussiana (acampanada). Aproximadamente el 90 % de los resultados está en el rango de 0–1 y el 10 % restante está fuera de este rango.
gaussRandom(maxValOrArray)
Tipo de valor devuelto: número o conjunto.
Tipo de argumento: maxValOrArray es un número o conjunto.
Cuando maxValOrArray es un número, este método devuelve un número aleatorio. Aproximadamente el 90 % de los resultados están en el rango de 0 a maxValOrArray, y el 10 % restante está fuera de este rango. Cuando maxValOrArray es un conjunto, este método devuelve un conjunto de valores aleatorios, con la misma dimensión que maxValOrArray. El 90 % de los valores están en el rango de 0 a maxValOrArray y el 10 % restante está fuera de este rango. Los resultados tienen una distribución gaussiana (acampanada).
gaussRandom(minValOrArray, maxValOrArray)
Tipo de valor devuelto: número o conjunto.
Tipo de argumento: minValOrArray y maxValOrArray son números de conjuntos.
Si minValOrArray y maxValOrArray son números, este método devuelve un número aleatorio. Aproximadamente el 90 % de los resultados están en el rango de minValOrArray a maxValOrArray, y el 10 % restante está fuera de este rango. Si los argumentos son conjuntos, este método devuelve un conjunto de números aleatorios con la misma dimensión que el argumento de mayor dimensión. Para cada componente, aproximadamente el 90 % de los resultados están en el rango del componente correspondiente de minValOrArray al componente correspondiente de maxValOrArray y el 10% restante está fuera de este rango. Los resultados son una distribución gaussiana (acampanada).
noise(valOrArray)
Tipo de valor devuelto: número.
Tipo de argumento: valOrArray es un número o un conjunto [2 o 3].
Devuelve un número en el rango de -1 a 1. El ruido no es realmente aleatorio; se basa en el ruido Perlin, lo que significa que los valores devueltos para los dos valores de entrada que están cerca entre sí tienden a estar cerca el uno del otro. Este tipo de ruido resulta útil cuando se desea una secuencia de números aparentemente aleatorios que no varíen mucho de uno a otro, como es habitual en el caso de la animación de cualquier tipo de movimiento natural aparentemente aleatorio. Ejemplo: rotation + 360*noise(time)
Métodos de interpolación (referencia de expresión)
Para todos los métodos de interpolación, el argumento t es a menudo tiempo o valor, aunque puede tener otros valores en lugar de estos. Si t es tiempo, la interpolación entre los valores se produce a lo largo de una duración. Si t es el valor, la expresión asigna un rango de valores a un nuevo rango de valores.
linear(t, tMin, tMax, value1, value2)
Tipo de valor devuelto: número o conjunto.
Tipo de argumento: t, tMin y tMax son números y value1 y value2 son números o conjuntos.
Devuelve value1 si t <= tMin. Devuelve value2 si t >= tMax. Devuelve una interpolación lineal entre value1 y value2 si tMin < t < tMax.
Por ejemplo, esta expresión sobre la propiedad Opacidad hace que los valores de Opacidad aumenten linealmente del 20 % al 80 % durante el tiempo comprendido entre 0 y 6 segundos:
lineal(tiempo, 0, 6, 20, 80)
Este método (al igual que todos los métodos de interpolación) también se puede emplear para convertir un rango de valores en otro. Por ejemplo, esta expresión sobre la propiedad Opacidad convierte los valores de Opacidad de 0 %-100 % al rango 20 %- 80 %:
lineal(valor, 0, 100, 20, 80)
linear(t, value1, value2)
Tipo de valor devuelto: número o conjunto.
Tipo de argumento: t es un número y value1 y value2 son números o conjuntos.
Devuelve un valor que se interpola linealmente desde value1 a value2 a medida que t varía entre 0 y 1. Devuelve value1 cuando t <= 0. Devuelve value2 cuando t >= 1.
ease(t, value1, value2)
Tipo de valor devuelto: número o conjunto.
Tipo de argumento: t es un número y value1 y value2 son números o conjuntos.
Similar a lineal con los mismos argumentos, excepto que la interpolación facilita la entrada y la salida para que la velocidad sea 0 en los puntos inicial y final. Este método permite obtener una animación suave.
ease(t, tMin, tMax, value1, value2)
Tipo de valor devuelto: número o conjunto.
Tipo de argumento: t, tMin y tMax son números y value1 y value2 son números o conjuntos.
Similar a lineal con los mismos argumentos, excepto que la interpolación facilita la entrada y la salida para que la velocidad sea 0 en los puntos inicial y final. Este método permite obtener una animación suave.
easeIn(t, value1, value2)
Tipo de valor devuelto: número o conjunto.
Tipo de argumento: t es un número y value1 y value2 son números o conjuntos.
Similar a ease, excepto que la tangente es 0 solo en el lado de value1 y la interpolación es lineal en el lado de value2.
easeIn(t, tMin, tMax, value1, value2)
Tipo de valor devuelto: número o conjunto.
Tipo de argumento: t, tMin y tMax son números, mientras que value1 y value2 son números o conjuntos.
Similar a ease, excepto que la tangente es 0 solo en el lado de tMin y la interpolación es lineal en el lado de tMax.
easeOut(t, value1, value2)
Tipo de valor devuelto: número o conjunto.
Tipo de argumento: t es un número y value1 y value2 son números o conjuntos.
Similar a ease, excepto que la tangente es 0 solo en el lado value2 y la interpolación es lineal en el lado value1.
easeOut(t, tMin, tMax, value1, value2)
Tipo de valor devuelto: número o conjunto.
Tipo de argumento: t, tMin, y tMax son números y value1 y value2 son números o conjuntos.
Similar a ease, excepto que la tangente es 0 solo en el lado de tMax y la interpolación es lineal en el lado de tMin.
Métodos de conversión de color (referencia de expresión)
rgbToHsl(rgbaArray)
Tipo devuelto: conjunto [4].
Tipo de argumento: rgbaArray es un conjunto [4].
Convierte un color del espacio RGBA al espacio HSLA. La entrada es un Conjunto de valores de los canales rojo, verde, azul y alfa normalizados, todos en el rango de 0.0 a 1.0. El valor obtenido es un Conjunto de valores de los canales de tono, saturación, luminosidad y alfa, también en el rango de 0.0 a 1.0. Ejemplo:
rgbToHsl.effect("Change Color")("Color To Change")hslToRgb(hslaArray)
Tipo devuelto: conjunto [4].
Tipo de argumento: hslaArray es un conjunto [4].
Convierte un color en espacio HSLA a espacio RGBA. Esta conversión es el proceso inverso de la conversión realizada con el método rgbToHsl.
Otros métodos matemáticos (referencia de expresión)
degreesToRadians(degrees)
Tipo de valor devuelto: número.
Tipo de argumento: degrees es un número.
Convierte los grados en radianes.
radiansToDegrees(radians)
Tipo de valor devuelto: número.
Tipo de argumento: radians es un número.
Convierte los radianes en grados.
Atributos y métodos de Comp. (referencia de expresión)
layer(index)
Tipo de valor devuelto: capa, luz o cámara.
Tipo de argumento: index es un número.
Recupera la capa por el número (orden en el panel Línea de tiempo). Ejemplo: thisComp.layer(3)
layer(nombre)
Tipo de valor devuelto: capa, luz o cámara.
Tipo de argumento: name es una cadena.
Recupera la capa por el nombre. Los nombres se clasifican en función del nombre de capa o de origen, si no existe nombre de capa. Si existen nombres duplicados, After Effects utiliza el primero (posición más alta) del panel Línea de tiempo. Ejemplo:
thisComp.layer("Solid 1")
layer(otherLayer, relIndex)
Tipo de valor devuelto: capa, luz o cámara.
Tipo de argumento: otherLayer es un objeto de capa y relIndex es un número.
Recupera la capa que está relIndex capas por encima o por debajo de otherLayer. Por ejemplo, thisComp.layer(thisLayer, 1).active devuelve verdadero si la siguiente capa en el panel Línea de tiempo está activa.
marker
Tipo de valor devuelto: MarkerProperty.
No puede acceder a un marcador de composición mediante un número de marcador. Si ha creado un proyecto en una versión anterior de After Effects que utiliza números de marcador de composición en expresiones, debe cambiarlos para utilizar marker.key(name). Debido a que el nombre predeterminado del marcador de composición es un número, convertir la referencia para que utilice el nombre solo suele requerir poner el número entre comillas.
marker.key(index)
Tipo de valor devuelto: MarkerKey.
Tipo de argumento: index es un número.
Devuelve el objeto MarkerKey del marcador con el índice especificado. El índice hace referencia al orden del marcador en el tiempo de composición, no al nombre del marcador. Por ejemplo, esta expresión devuelve el tiempo del primer marcador de composición:
thisComp.marker.key(1).time
marker.key(name)
Tipo de valor devuelto: MarkerKey.
Tipo de argumento: name es una cadena.
Devuelve el objeto MarkerKey del marcador con el nombre especificado. El valor name es el nombre del marcador, tal como se escribió en el campo Comentario del cuadro de diálogo del marcador; por ejemplo, marker.key("1"). Para un marcador de composición, el nombre predeterminado es un número. Si más de un marcador en la composición tienen el mismo nombre, el método devuelve el marcador que sucede primero en el tiempo (en tiempo de composición). El valor de una clave de marcador es una cadena, no un número. Por ejemplo, esta expresión devuelve el tiempo del marcador de composición con el nombre "0":
thisComp.marker.key("0").timemarker.nearestKey(t)
Tipo de valor devuelto: MarkerKey.
Tipo de argumento: t es un número.
Devuelve el marcador que esté más cercano en el tiempo a t. Por ejemplo, esta expresión devuelve el tiempo del marcador de composición más cercano al tiempo de 1 segundo:
thisComp.marker.nearestKey(1).timeEsta expresión devuelve el tiempo del marcador de composición más cercano al tiempo actual:
thisComp.marker.nearestKey(time).timemarker.numKeys
Tipo de valor devuelto: número.
Devuelve el número total de marcadores de composición en la composición.
numLayers
Tipo de valor devuelto: número.
Devuelve el número de capas de la composición.
activeCamera
Tipo de valor devuelto: cámara.
Devuelve el objeto Cámara de la cámara a través de la cual se procesa la composición en el fotograma actual. La cámara no es necesariamente por la que se mira en el panel Composición.
anchura
Tipo de valor devuelto: número.
Devuelve la anchura de la composición, en píxeles.
Aplique la siguiente expresión a la propiedad Posición de una capa para centrar la capa en el fotograma de composición:
[thisComp.width/2, thisComp.height/2]
altura
Tipo de valor devuelto: número.
Devuelve la altura de la composición, en píxeles.
duration
Tipo de valor devuelto: número.
Devuelve la duración de la composición, en segundos.
ntscDropFrame
Tipo de valor devuelto: booleano.
Devuelve verdadero si el código de tiempo está en el formato de fotograma eliminado. (After Effects CS 5.5 y posterior).
displayStartTime
Tipo de valor devuelto: número.
Devuelve la hora de inicio de la composición, en segundos.
frameDuration
Tipo de valor devuelto: número.
Devuelve la duración de un fotograma, en segundos.
shutterAngle
Tipo de valor devuelto: número.
Devuelve el valor del ángulo del obturador de la composición, en grados.
shutterPhase
Tipo de valor devuelto: número.
Devuelve la fase del obturador de la composición, en grados.
bgColor
Tipo devuelto: conjunto [4].
Devuelve el color de fondo de la composición.
pixelAspect
Tipo de valor devuelto: número.
Devuelve la proporción de píxeles de la composición.
nombre
Tipo de valor devuelto: cadena.
Devuelve el nombre de la composición.
Atributo de región protegida con marcador de composición
La opción Zona protegida para los marcadores de composición puede leerse con el atributo de marcador de composición protectedRegion.
Atributos y métodos de material de archivo (referencia de expresión)
Para utilizar un elemento de material de archivo del panel Proyecto como un objeto en una expresión, utilice el método global footage, como en footage("file_name"). También puede acceder a un objeto de material de archivo mediante el atributo source en una capa cuyo origen sea un elemento de material de archivo.
anchura
Tipo de valor devuelto: número.
Devuelve la anchura del elemento de material de archivo, en píxeles.
altura
Tipo de valor devuelto: número.
Devuelve la altura de la capa, en píxeles.
duración
Tipo de valor devuelto: número.
Devuelve la duración de un fotograma en el elemento de material de archivo, en segundos.
frameDuration
Tipo de valor devuelto: número.
Devuelve la duración de un fotograma en el elemento de material de archivo, en segundos.
ntscDropFrame
Tipo de valor devuelto: booleano.
Devuelve verdadero si el código de tiempo está en el formato de fotograma eliminado. (After Effects CS5.5 y posterior).
pixelAspect
Tipo de valor devuelto: número.
Devuelve la proporción de píxeles del material de archivo.
nombre
Tipo de valor devuelto: cadena.
Devuelve el nombre del elemento de material de archivo tal y como se muestra en el panel Proyecto.
Atributos y métodos de subobjetos de capa (referencia de expresión)
origen
Tipo de valor devuelto: Comp o material de archivo.
Devuelve el objeto Comp o Material de archivo de origen de la capa. El tiempo predeterminado se ajusta al tiempo del origen. Ejemplo: source.layer(1).position
sourceTime(t = time)
Tipo de valor devuelto: número.
Devuelve el origen de capa correspondiente al tiempo t (After Effects CS5.5 y posterior).
sourceRectAtTime(t = time, includeExtents = false)
Tipo de retorno: objeto JavaScript con cuatro atributos: [arriba, izquierda, ancho, alto]. Las extensiones se aplican solo a las capas de formas, lo que aumenta el tamaño de los límites de las capas, según sea necesario, y las capas de texto de los párrafos (After Effects 15.1 y posteriores), donde se devuelven los límites del cuadro de párrafo. Ejemplo: myTextLayer.sourceRectAtTime().width.
effect(name)
Tipo de valor devuelto: Efecto.
Tipo de argumento: name es una cadena.
After Effects busca el efecto por su nombre en el panel Controles de efectos. El nombre puede ser el nombre predeterminado o el definido por el usuario. Si varios efectos tienen el mismo nombre, se utiliza el efecto más cercano a la parte superior del panel Controles de efectos. Ejemplo:
effect("Fast Blur")("Blurriness")
effect(index)
Tipo de valor devuelto: Efecto.
Tipo de argumento: index es un número.
After Effects busca el efecto en su índice del panel Controles de efectos, partiendo de 1 y continuando hacia abajo desde el principio.
mask(name)
Tipo de valor devuelto: Máscara.
Tipo de argumento: name es una cadena.
El nombre puede ser el nombre predeterminado o el definido por el usuario. Si varias máscaras tienen el mismo nombre, se utiliza la primera (superior). Ejemplo:
mask("Mask 1")
mask(index)
Tipo de valor devuelto: Máscara.
Tipo de argumento: index es un número.
After Effects busca la máscara por su índice en el panel Línea de tiempo, a partir de 1 y contando desde el principio.
Atributos y métodos generales de capa (referencia de expresión)
anchura
Tipo de valor devuelto: número.
Devuelve la anchura del elemento de material de archivo, en píxeles. Es el mismo que source.width.
altura
Tipo de valor devuelto: número.
Devuelve la altura del elemento de material de archivo, en píxeles. Es el mismo que source.height.
index
Tipo de valor devuelto: número.
Devuelve el número de índice de la capa de la composición.
principal
Tipo de valor devuelto: capa, luz o cámara.
Devuelve el objeto Capa principal de la capa, si tiene uno. Ejemplo: position[0] + parent.width
hasParent
Tipo de valor devuelto: booleano.
Devuelve verdadero si la capa tiene una capa principal y falso si no la tiene.
Utilice el atributo hasParent para determinar si una capa tiene una capa principal. Puede utilizar este atributo aunque la capa no tenga ninguna capa principal en ese momento. Por ejemplo, la siguiente expresión indica que la capa a la que se aplica se ondulará según la posición de la capa principal. Si la capa no dispone de ninguna capa principal, se ondulará según su propia posición. Si a la capa se le asigna más tarde una capa principal, el comportamiento de la capa cambiará en consecuencia:
idx = index; if (hasParent) { idx = parent.index; } thisComp.layer(idx).position.wiggle(5,20)inPoint
Tipo de valor devuelto: número.
Devuelve el punto de inicio de la capa, en segundos.
Por lo general, el valor de outPoint es mayor que el valor de inPoint. Sin embargo, si una capa se cambia en el tiempo, el valor de inPoint será mayor que el valor de outPoint. Del mismo modo, el valor de startTime puede ser mayor que el valor de inPoint.
outPoint
Tipo de valor devuelto: número.
Devuelve el punto de salida de la capa, en segundos.
startTime
Tipo de valor devuelto: número.
Devuelve la hora de inicio de la capa, en segundos.
hasVideo
Tipo de valor devuelto: booleano.
Devuelve verdadero si la capa tiene vídeo o falso si no lo tiene.
hasAudio
Tipo de valor devuelto: booleano.
Devuelve verdadero si la capa tiene audio o falso si no lo tiene.
active
Tipo de valor devuelto: booleano.
Devuelve verdadero si el definidor Vídeo está activado para la capa y el tiempo actual está en el intervalo comprendido entre el punto de entrada de la capa y el punto de salida de la capa; de lo contrario, devuelve falso.
enabled
Tipo de valor devuelto: booleano.
Devuelve verdadero si el definidor Vídeo está activado para la capa; de lo contrario, devuelve falso.
audioActive
Tipo de valor devuelto: booleano.
Devuelve true si el definidor Audio está activado para la capa y el tiempo actual está en el rango comprendido entre el punto de entrada de la capa y el punto final de la capa; de lo contrario, devuelve falso.
sampleImage(point, radius = [.5, .5], postEffect=true, t=time)
Tipo devuelto: conjunto [4].
Tipo de argumento: point es un conjunto [2], radius es un conjunto [2], postEffect es un valor booleano y t es un número.
Muestrea los valores de color y de canal alfa de una capa y devuelve el promedio del valor de peso de alfa de los píxeles dentro de la distancia especificada del punto como un conjunto: [rojo, verde, azul, alfa]. Si postEffect es verdadero, los valores muestreados son para la capa después de que las máscaras y los efectos se hayan procesado. Si postEffect es falso, los valores muestreados son para la capa antes de que las máscaras y los efectos se hayan procesado. El valor de entrada point está en el espacio de capa, el punto [0,0] es el centro del píxel de la parte superior izquierda de la capa. El valor de entrada radius especifica la distancia horizontal y vertical desde el centro de la muestra hasta los bordes del rectángulo muestreado. El valor predeterminado muestrea un píxel.
El parámetro postEffect hace referencia a los efectos aplicados directamente a la capa, no a los efectos aplicados indirectamente, como con una capa de ajuste.
Si se utiliza sampleImage en una expresión, ya no se desactiva el multiprocesamiento.
Este ejemplo muestrea un rectángulo de 4 píxeles de ancho y 3 píxeles de alto, centrado alrededor de un punto 100 píxeles hacia abajo y hacia la derecha de la esquina superior izquierda de la capa:
thisComp.layer(1).sampleImage([100, 100], [2, 1.5])
Atributos y métodos de las propiedades de capa (referencia de expresión)
Cuando se añaden máscaras, efectos, pintura o texto a una capa, After Effects añade nuevas propiedades en el panel Línea de tiempo. Son muchas las propiedades que deberíamos incluir aquí, por ello recomendamos que utilice el icono espiral para conocer la sintaxis y poder hacer referencia a ellas en las expresiones.
anchorPoint
Tipo de valor devuelto: propiedad [2 o 3].
Devuelve el valor de punto de anclaje de la capa en el sistema de coordenadas de la capa (espacio de capa).
position
Tipo de valor devuelto: propiedad [2 ó 3].
Devuelve el valor de posición de la capa, en el espacio de entorno si la capa no tiene principal. Si la capa tiene una capa principal, devuelve el valor de posición de la capa en el sistema de coordenadas de la capa principal (en el espacio de capa de la capa principal).
escala
Tipo de valor devuelto: propiedad [2 ó 3].
Devuelve el valor de escala de la capa, expresado como porcentaje.
rotación
Tipo de valor devuelto: propiedad.
Devuelve el valor de rotación de la capa en grados. Para una capa 3D, devuelve el valor de rotación z en grados.
opacidad
Tipo de valor devuelto: propiedad.
Devuelve el valor de opacidad de la capa, expresado como porcentaje.
audioLevels
Tipo de valor devuelto: propiedad [2].
Devuelve el valor de la propiedad Niveles de audio de la capa en decibelios. Se trata de un valor 2D; el primer valor representa el canal de audio izquierdo y el segundo valor al derecho. El valor no es la amplitud de la pista de audio del material de origen. Por el contrario, se trata del valor de la propiedad Niveles de audio, que se puede ver afectado por los fotogramas clave.
timeRemap
Tipo de valor devuelto: propiedad.
Devuelve el valor de la propiedad Remapeo de tiempo en segundos, si está habilitada.
marker.key(index)
Tipo de valor devuelto: MarkerKey.
Tipo de argumento: index es un número.
Devuelve el objeto MarkerKey del marcador de capa con el índice especificado.
marker.key(name)
Tipo de valor devuelto: MarkerKey.
Tipo de argumento: name es una cadena.
Devuelve el objeto MarkerKey del marcador de capa con el nombre especificado. El valor name es el nombre del marcador, tal como se escribe en el campo comentario en el cuadro de diálogo del marcador, por ejemplo, marker.key("ch1"). Si más de un marcador en la capa tiene el mismo nombre, este método devuelve el marcador que se produce primero en el tiempo (en el tiempo de la capa). El valor del marcador es una cadena, no un número
Esta expresión en una propiedad aumenta el valor de la propiedad de 0 a 100 entre dos marcadores identificados por el nombre:
m1 = marker.key("Start").time; m2 = marker.key("End").time; linear(time, m1, m2, 0, 100);marker.nearestKey(t)
Tipo de valor devuelto: MarkerKey.
Tipo de argumento: t es un número.
Devuelve el marcador de capa que está más próximo en el tiempo a t. Por ejemplo, esta expresión devuelve el tiempo del marcador en la capa más cercano al tiempo de 1 segundo:
marker.nearestKey(1).timeEsta expresión devuelve el tiempo del marcador en la capa más cercano al tiempo actual:
marker.nearestKey(time).timemarker.numKeys
Tipo de valor devuelto: número.
Devuelve el número total de marcadores en la capa.
nombre
Tipo de valor devuelto: cadena.
Devuelve el nombre de la capa.
Atributos y métodos en 3D de capas (referencia de expresión)
orientation
Tipo de valor devuelto: propiedad [3].
Devuelve el valor de orientación 3D, en grados, de una capa 3D.
rotationX
Tipo de valor devuelto: propiedad.
Devuelve el valor de giro x, en grados, de una capa 3D.
rotationY
Tipo de valor devuelto: propiedad.
Devuelve el valor de rotación, en grados, de una capa 3D.
rotationZ
Tipo de valor devuelto: propiedad.
Devuelve el valor de rotación z, en grados, de una capa 3D.
lightTransmission
Tipo de valor devuelto: propiedad.
Devuelve el valor de la propiedad Transmisión de la luz de una capa 3D.
castsShadows
Tipo de valor devuelto: propiedad.
Devuelve un valor de 1.0 si la capa proyecta sombras.
acceptsShadows
Tipo de valor devuelto: propiedad.
Devuelve un valor de 1.0 si la capa acepta sombras.
acceptsLights
Tipo de valor devuelto: propiedad.
Devuelve un valor de 1.0 si la capa acepta luces.
ambient
Tipo de valor devuelto: propiedad.
Devuelve el valor del componente de ambiente como porcentaje.
difuso
Tipo de valor devuelto: propiedad.
Devuelve el valor del componente de difusión como porcentaje.
specular
Tipo de valor devuelto: propiedad.
Devuelve el valor del componente especular como porcentaje.
shininess
Tipo de valor devuelto: propiedad.
Devuelve el valor del componente de brillo como porcentaje.
metal
Tipo de valor devuelto: propiedad.
Devuelve el valor del componente de metal como porcentaje.
Métodos de transformación del espacio de capa (referencia de expresión)
Utilice los métodos de transformación de espacio de capa para transformar los valores de un espacio a otro, como del espacio de capa al espacio de entorno. Los métodos “de” transforman valores del espacio con nombre (composición o entorno) al espacio de capa. Los métodos “a” transforman valores del espacio de capa al espacio con nombre (composición o entorno). Cada método de transformación utiliza un argumento opcional para determinar el tiempo en el que se calcula la transformación; sin embargo, casi siempre se puede utilizar el tiempo actual (predeterminado).
Utilice los métodos de transformación “Vec” cuando desee transformar un vector de dirección, como la diferencia entre dos valores de posición. Utilice los métodos de transformación sencillos (no ”Vec”) para transformar un punto, como una posición. El espacio de composición (comp.) y de entorno es el mismo para las capas 2D. Sin embargo, en el caso de las capas 3D, el espacio de composición depende de la cámara activa y el espacio de entorno es independiente de la cámara.
toComp(point, t=time)
Tipo de valor devuelto: conjunto [2 o 3].
Tipo de argumento: point es un conjunto [2 o 3] y t es un número.
Transforma un punto del espacio de capa al espacio de composición.
fromComp(point, t=time)
Tipo de valor devuelto: conjunto [2 ó 3].
Tipo de argumento: point es un conjunto [2 o 3] y t es un número.
Transforma un punto del espacio de composición al espacio de capa. El punto resultante en una capa 3D puede tener un valor distinto de cero aunque esté en el espacio de capa. Ejemplo: fromComp(thisComp.layer(2).position)
toWorld(point, t=time)
Tipo de valor devuelto: conjunto [2 ó 3].
Tipo de argumento: point es un conjunto [2 o 3] y t es un número.
Transforma un punto del espacio de capa al espacio de entorno independiente de la vista. Ejemplo:
toWorld.effect("Bulge")("Bulge Center")
fromWorld(point, t=time)
Tipo de valor devuelto: conjunto [2 ó 3].
Tipo de argumento: point es un conjunto [2 o 3] y t es un número.
Transforma un punto del espacio de entorno al espacio de capa. Ejemplo: fromWorld(thisComp.layer(2).position)
Consulte Expresión de ejemplo: creación de un abombado entre dos capas para obtener un ejemplo de cómo se puede utilizar este método.
toCompVec(vec, t=time)
Tipo de valor devuelto: conjunto [2 ó 3].
Tipo de argumento: vec es un conjunto [2 o 3] y t es un número.
Transforma un vector del espacio de capa al espacio de entorno. Ejemplo: toCompVec([1,0])
fromCompVec(vec, t=time)
Tipo de valor devuelto: conjunto [2 ó 3].
Tipo de argumento: vec es un conjunto [2 o 3] y t es un número.
Transforma un vector de espacio de composición en el espacio de capa. Ejemplo (capa 2D):
dir=sub(position, thisComp.layer(2).position); fromCompVec(dir)toWorldVec(vec, t=time)
Tipo de valor devuelto: conjunto [2 ó 3].
Tipo de argumento: vec es un conjunto [2 o 3] y t es un número.
Transforma un vector del espacio de capa al espacio de entorno. Ejemplo: p1 = effect("Eye Bulge 1")("Bulge Center"); p2 = effect("Eye Bulge 2")("Bulge Center"); toWorld(sub(p1, p2))
fromWorldVec(vec, t=time)
Tipo de valor devuelto: conjunto [2 ó 3].
Tipo de argumento: vec es una matriz [2 o 3] y t es un número.
Transforma un vector del espacio de mundo al espacio de capa. Ejemplo: fromWorld(thisComp.layer(2).position)
fromCompToSurface(point, t=time)
Tipo de valor devuelto: conjunto [2].
Tipo de argumento: point es un conjunto [2 o 3] y t es un número.
Proyecta un punto situado en el espacio de la composición en un punto de la superficie de la capa (valor z cero) en la ubicación donde aparece cuando se ve desde la cámara activa. Este método es útil para definir puntos de control de efecto. Utilícelo solo con capas 3D.
Atributos y métodos de cámara (referencia de expresión)
Los objetos Cámara tienen los mismos atributos y métodos que los objetos Capa, a excepción de source, effect, mask, width, height, anchorPoint, scale, opacity, audioLevels, timeRemap y todas las propiedades materiales.
pointOfInterest
Tipo de valor devuelto: propiedad [3].
Devuelve el punto de valores de interés de una cámara en el espacio global.
zoom
Tipo de valor devuelto: propiedad.
Devuelve los valores de zoom de una cámara en píxeles.
A continuación, mostramos una expresión para la propiedad Escala de una capa que mantiene el tamaño relativo de la capa en el fotograma mientras cambia la posición z (profundidad) de una capa o el valor de Zoom de una cámara:
cam = thisComp.activeCamera; distance = length(sub(position, cam.position)); scale * distance / cam.zoom;
depthOfField
Tipo de valor devuelto: propiedad.
Devuelve 1 si la propiedad Profundidad de campo de una cámara está activada, o bien, devuelve 0 si la propiedad Profundidad de campo está desactivada.
focusDistance
Tipo de valor devuelto: propiedad.
Devuelve el valor de distancia de enfoque de una cámara, en píxeles.
aperture
Tipo de valor devuelto: propiedad.
Devuelve el valor de apertura de una cámara, en píxeles.
blurLevel
Tipo de valor devuelto: propiedad.
Devuelve el valor de nivel de desenfoque de una cámara, en porcentaje.
active
Tipo de valor devuelto: booleano.
Devuelve true si la cámara de la composición está activa: si el definidor Vídeo de la capa de la cámara está activado, el tiempo actual se encuentra en el intervalo comprendido entre el punto de entrada de la capa de la cámara y el punto de salida y, además, es la primera (la superior) de las capas de la cámara listadas en el panel Línea de tiempo. Si no es así, devuelve el valor falso.
Atributos y métodos de iluminación (referencia de expresión)
Los objetos Iluminación tienen los mismos atributos y métodos que los objetos Capa, a excepción de source, effect, mask, width, height, anchorPoint, scale, opacity, audioLevels, timeRemap y todas las propiedades materiales.
pointOfInterest
Tipo de valor devuelto: propiedad [3].
Devuelve los valores de de punto de interés para una luz en el espacio global.
intensity
Tipo de valor devuelto: propiedad.
Devuelve los valores de intensidad de una luz, en porcentaje.
color
Tipo de valor devuelto: propiedad [4].
Devuelve el valor de color de una luz.
coneAngle
Tipo de valor devuelto: propiedad.
Devuelve el ángulo de cono de una luz, en grados.
coneFeather
Tipo de valor devuelto: propiedad.
Devuelve el valor de calado de cono de una luz, en porcentaje.
shadowDarkness
Tipo de valor devuelto: propiedad.
Devuelve el valor de oscuridad de la sombra de una luz, en porcentaje.
shadowDiffusion
Tipo de valor devuelto: propiedad.
Devuelve el valor de difusión de la sombra de una luz, en píxeles.
Atributos y métodos de efectos (referencia de expresión)
active
Tipo de valor devuelto: booleano.
Devuelve verdadero si el efecto está activado (el definidor Efecto está seleccionado).
param(name)
Tipo de valor devuelto: propiedad.
Tipo de argumento: name es una cadena.
Devuelve una propiedad de un efecto. Los puntos de control de efecto están siempre en el espacio de capa. Ejemplo:
effect("Bulge").param("Bulge Height")param(index)
Tipo de valor devuelto: propiedad.
Tipo de argumento: index es un número.
Devuelve una propiedad de un efecto. Los puntos de control de efecto están siempre en el espacio de capa. Por ejemplo, effect("Bulge").param(4) devuelve la propiedad Alto del abombar.
Atributos y métodos de máscaras (referencia de expresión)
Puede vincular propiedades Trazado de máscara a otras propiedades de trazado (como capa de forma o trazos de pincel) pero no es posible acceder a las propiedades para realizar una manipulación numérica directa a través de expresiones.
maskOpacity
Tipo de valor devuelto: propiedad.
Devuelve el valor de opacidad de una máscara como porcentaje.
maskFeather
Tipo de valor devuelto: propiedad.
Devuelve el valor de calado de una máscara, en píxeles.
maskExpansion
Tipo de valor devuelto: propiedad.
Devuelve el valor de expansión de una máscara en píxeles.
Invertir
Tipo de valor devuelto: booleano.
Devuelve verdadero si se invierte la máscara y falso si no se invierte.
valor
Tipo de valor devuelto: número, Conjunto o Cadena.
Devuelve el valor de una propiedad en el tiempo actual.
valueAtTime(t)
Tipo de valor devuelto: número o conjunto.
Tipo de argumento: t es un número.
Devuelve el valor de una propiedad en el tiempo especificado, en segundos.
Por ejemplo, para elegir aleatoriamente un valor de propiedad para cada fotograma entre un conjunto de cuatro valores, defina cuatro valores como fotogramas clave a 0, 1, 2 y 3 segundos y, a continuación, aplique la siguiente expresión a la propiedad:
valueAtTime(random(4))
Velocidad
Tipo de valor devuelto: número o conjunto.
Devuelve el valor de la velocidad dirigida temporal en el tiempo actual. Para propiedades espaciales, como Posición, devuelve el valor del vector tangente. El resultado es la misma dimensión que la propiedad.
velocityAtTime(t)
Tipo de valor devuelto: número o conjunto.
Tipo de argumento: t es un número.
Devuelve el valor de la velocidad dirigida temporal en el tiempo especificado.
Velocidad
Tipo de valor devuelto: número.
Devuelve un valor de velocidad positiva 1D igual a la velocidad a la que la propiedad cambia en el tiempo predeterminado. Este elemento solo puede utilizarse para propiedades espaciales.
speedAtTime(t)
Tipo de valor devuelto: número.
Tipo de argumento: t es un número.
Devuelve el valor de la velocidad espacial en el tiempo especificado.
wiggle(freq, amp, octaves=1, amp_mult=.5, t=time)
Tipo de valor devuelto: número o conjunto.
Tipo de argumento: freq, amp, octaves, amp_mult y t son números.
Agita (ondula) de manera aleatoria el valor de la propiedad.
El valor freq es la frecuencia en ondulaciones por segundo.
El valor amp es la amplitud en unidades de la propiedad a la que se aplica.
El valor octaves es el número de octavas de ruido para agregar de forma conjunta. Este valor controla el grado de detalle de la ondulación. Haga que este valor sea superior al valor predeterminado 1 para incluir frecuencias más altas o más bajas e incorporar armonía de amplitud en la ondulación.
El valor amp_mult es la cantidad por la que se multiplica amp para cada octava. Este valor controla la rapidez de eliminación de armonía. El valor predeterminado es 0,5; acérquelo más a 1 para que la armonía se agregue con la misma amplitud que la frecuencia base, o más cerca de 0 para agregarlo con menos detalle.
El valor t es el tiempo de inicio base. El valor predeterminado se ajusta al tiempo actual. Use este parámetro si desea que la salida sea una ondulación del valor de propiedad muestreada en un tiempo distinto.
Ejemplo: position.wiggle(5, 20, 3, .5) produce unas 5 ondulaciones por segundo con un tamaño medio de unos 20 píxeles. Además de la ondulación principal, se producen dos niveles más de ondulación detallada, con una frecuencia de 10 y 20 ondulaciones por segundo, y tamaños de 10 y 5 píxeles, respectivamente.
Este ejemplo, en una propiedad bidimensional como Escala, ondula ambas dimensiones con la misma cantidad:
v = wiggle(5, 10); [v[0], v[0]]
Este ejemplo, en una propiedad bidimensional, ondula solo el eje y:
freq = 3; amp = 50; w = wiggle(freq,amp); [value[0],w[1]];
temporalWiggle(freq, amp, octaves=1, amp_mult=.5, t=time)
Tipo de valor devuelto: número o conjunto.
Tipo de argumento: freq, amp, octaves, amp_mult y t son números.
Muestrea la propiedad en un tiempo ondulado. El valor freq representa la frecuencia en ondulaciones por segundo, amp representa la amplitud en unidades de la propiedad a la que se aplica, octaves es el número de octavas de ruido que se van a sumar, amp_mult es la cantidad por la que amp se multiplica por cada octava y t es el tiempo de inicio base. Para que esta función tenga sentido, la propiedad que muestrea debe estar animada, dado que la función solo modifica el tiempo de muestreo, no el valor. Ejemplo: scale.temporalWiggle(5, .2)
smooth(width=.2, samples=5, t=time)
Tipo de valor devuelto: número o conjunto.
Tipo de argumento: width, samples, and t son números.
Suaviza los valores de la propiedad a lo largo del tiempo, convirtiendo breves desviaciones largas del valor en pequeñas desviaciones distribuidas de forma más regular. Esto se consigue aplicando un filtro de cuadro al valor de la propiedad en el momento especificado. El valor width es el intervalo de tiempo (en segundos) sobre el cual se realiza el promedio del filtro. El valorsamples es el número de muestras diferenciadas espaciadas a partes iguales en el tiempo. Utilice un valor mayor para una obtener suavidad mayor (aunque el rendimiento disminuirá). Por lo general, se recomienda que el parámetro samples sea un número impar para que el valor en el tiempo actual se incluya en el promedio. Ejemplo: position.smooth(.1, 5)
loopIn(type="cycle", numKeyframes=0)
Tipo de valor devuelto: número o conjunto.
Crea un bucle de un segmento de tiempo que se mide desde el primer fotograma clave de la capa hacia delante, hacia el punto de salida de la capa. El bucle se reproduce hasta el punto de inicio de la capa. El valor numKeyframes determina qué segmento se repite: este segmento es la porción de la capa desde el primer fotograma clave hasta el fotograma clave numKeyframes+1 fotograma clave. Por ejemplo, loopIn("cycle", 3) crea un bucle del segmento limitado por los fotogramas clave primero y cuarto. El valor predeterminado 0 significa que se crea un bucle de todos los fotogramas clave.
Si lo desea puede utilizar los métodos de bucle de fotogramas clave para repetir una serie de fotogramas clave. Puede usar estos métodos en la mayoría de las propiedades. Las excepciones incluyen propiedades que no se pueden expresar mediante valores numéricos sencillos en el panel Línea de tiempo como, por ejemplo, la propiedad Texto de origen, las propiedades de forma de trazado y la propiedad Histograma para el efecto Niveles. Los fotogramas clave o los valores de duración que son demasiado grandes se recortan al máximo valor permitido. Los valores que son demasiado pequeños generan un bucle constante.
loop type |
result |
---|---|
cycle |
(predeterminado) Repite el segmento especificado. |
pingpong |
Repite el segmento especificado, alternando entre adelante y atrás. |
offset |
Repite el segmento especificado, pero desplaza cada ciclo según la diferencia en el valor de la propiedad al principio y al final del segmento, multiplicado por el número de veces que se ha repetido el segmento. |
Continuar |
No repite el segmento especificado, pero continúa animando una propiedad según la velocidad dirigida en el primer o el último fotograma clave. Por ejemplo, si el último fotograma clave de la propiedad Escala de una capa es 100%, la capa continúa la escala desde 100% hasta el punto final, en lugar de volver directamente hasta el punto final. Este tipo no acepta un argumento fotogramas clave o duración. |
loopOut(type="cycle", numKeyframes=0)
Tipo de valor devuelto: número o conjunto.
Crea un bucle de un segmento de tiempo que se mide desde el último fotograma clave de la capa hacia atrás, hacia el punto de inicio de la capa. El bucle se reproduce hasta el punto final de la capa. El número especificado de fotogramas clave determina el segmento que formará el bucle. El valor numKeyframes define el número de segmentos de fotogramas clave que forman el bucle; el rango especificado se mide hacia atrás desde el último fotograma clave. Por ejemplo, loopOut(“cycle”, 1) repite el segmento delimitado por los fotogramas clave último y penúltimo. El valor predeterminado 0 significa que se crea un bucle de todos los fotogramas clave. Para obtener más información, consulte la entrada para loopIn.
loopInDuration(type="cycle", duration=0)
Tipo de valor devuelto: número o conjunto.
Crea un bucle de un segmento de tiempo que se mide desde el primer fotograma clave de la capa hacia delante, hacia el punto de salida de la capa. El bucle se reproduce hasta el punto de inicio de la capa. La duración especificada determina el segmento que formará el bucle. El valor duration define el número de segundos de composición de un segmento que forman el bucle; el rango especificado se mide desde el primer fotograma clave. Por ejemplo, loopInDuration(“cycle”, 1) crea un bucle del primer segundo de toda la animación. El valor predeterminado 0 significa que el segmento que forma el bucle comienza en el Punto de salida de la capa. Para obtener más información, consulte la entrada para loopIn.
loopOutDuration(type="cycle", duration=0)
Tipo de valor devuelto: número o conjunto.
Crea un bucle de un segmento de tiempo que se mide desde el último fotograma clave de la capa hacia atrás, hacia el punto de inicio de la capa. El bucle se reproduce hasta el punto final de la capa. La duración especificada determina el segmento que formará el bucle. El valor duration define el número de segundos de composición de un segmento que forman el bucle; el rango especificado se mide hacia atrás desde el último fotograma clave. Por ejemplo, loopOutDuration(“cycle”, 1) crea un bucle del último segundo de toda la animación. El valor predeterminado 0 significa que el segmento que forma el bucle comienza en el punto de entrada de la capa. Para obtener más información, consulte la entrada para loopIn.
key(index)
Tipo de valor devuelto: Clave o MarkerKey.
Tipo de argumento:index es un número.
Devuelve el objeto Clave o MarkerKey por el número. Por ejemplo, key(1) devuelve el primer fotograma clave.
key(markerName)
Tipo de valor devuelto: MarkerKey.
Tipo de argumento: markerName es una cadena.
Devuelve el objeto MarkerKey con su nombre. Utilícelo solo en propiedades de marcador.
nearestKey(t)
Tipo de valor devuelto: Clave o MarkerKey.
Devuelve el objeto Key o MarkerKey más cercano a un tiempo designado.
numKeys
Tipo de valor devuelto: número.
Devuelve el número de fotogramas clave de una propiedad. Devuelve el número de marcadores de una propiedad de marcador.
Si utiliza el comando Separar dimensiones para dividir las dimensiones de la propiedad Posición en componentes individuales, el número de fotogramas clave cambia, por lo que también cambia el valor devuelto por este método.
propertyGroup(countUp = 1)
Tipo de valor devuelto: grupo.
Devuelve un grupo de propiedades relacionadas con la propiedad en la que se ha escrito la expresión. Por ejemplo, si añade la expresión propertyGroup(1) a la propiedad Rotación de un trazo de pincel, la expresión se aplica al grupo de propiedades Transformación, que contiene la propiedad Rotación. Si, en su lugar, añade propertyGroup(2), la expresión se aplica al grupo de propiedades Pincel. Este método le permite establecer relaciones independientes de los nombres en la jerarquía de propiedades. El método resulta especialmente útil cuando se duplican propiedades que contienen expresiones.
El método numProperties para propertyGroup devuelve el número de propiedades en el grupo de propiedades.
Este ejemplo devuelve el número de propiedades en el grupo que contiene la propiedad en la que se escribe la expresión:
thisProperty.propertyGroup(1).numProperties
propertyIndex
Tipo de valor devuelto: número.
Devuelve el índice de una propiedad en relación con otras propiedades de su grupo de propiedades, incluidos los grupos de propiedades de máscaras, efectos, animadores de texto, selectores, formas, rastreadores y puntos de rastreo.
nombre
Tipo de valor devuelto: cadena.
Devuelve el nombre de la propiedad o el grupo de propiedades.
Propiedades del proyecto (referencia de expresión)
Método de expresión:
- Objeto thisProject thisProject: representa el proyecto que contiene la expresión.
Tipo:
objeto de proyecto; solo lectura
- Atributo fullPath del proyecto thisProject.fullPath: la ruta de acceso al archivo absoluto de la plataforma, incluido el nombre de archivo del proyecto. Si el proyecto no se ha guardado, devuelve una cadena vacía.
Tipo: cadena; solo lectura.
- Atributo bitsPerChannel del proyecto thisProject.bitsPerChannel: la profundidad de color del proyecto en bits por canal (bpc), como se establece en Ajustes del proyecto > Gestión de color. Son uno de 8, 16 o 32. Equivalente al atributo de proyecto del script app.project.bitsPerChannel.
Tipo: número; solo lectura.
- Atributo linearBlending del proyecto thisProject.linearBlending: el estado de la opción Fusionar colores usando la opción gamma 1.0 en Ajustes del proyecto > Gestión de color. Equivalente al atributo del proyecto del script app.project.linearBlending.
Tipo: booleano; solo lectura.
Atributos y métodos clave (referencia de expresión)
Al acceder a un objeto Clave, puede obtener las propiedades de tiempo, índice y valor de él. Por ejemplo, la siguiente expresión proporciona el valor del tercer fotograma clave Posición: position.key(3).value.
La siguiente expresión, cuando se escribe en una propiedad Opacidad con fotogramas clave, ignora los valores de fotograma clave y solo utiliza la ubicación de los fotogramas clave en el tiempo para determinar dónde debe producirse un flash: d = Math.abs(time - nearestKey(time).time); easeOut(d, 0, .1, 100, 0)
d = Math.abs(time - nearestKey(time).time); easeOut(d, 0, .1, 100, 0)
valor
Tipo de valor devuelto: número o conjunto.
Devuelve el valor del fotograma clave.
tiempo
Tipo de valor devuelto: número.
Devuelve el tiempo del fotograma clave.
index
Tipo de valor devuelto: número.
Devuelve el índice del fotograma clave.
Atributos MarkerKey (referencia de expresión)
Puede tener acceso a valores para marcadores de composición y de capa con los mismos métodos. Acceda a los marcadores de capa mediante el objeto thislayer.marker; acceda a los marcadores de composición mediante el objeto thisComp.marker.
Para las expresiones, los marcadores son un tipo especial de Objeto clave, de modo que puede utilizar métodos como nearestKey(time) para acceder a los marcadores y estos también disponen de los atributos tiempo e índice. El atributo índice no es el número (nombre) del marcador, sino el número de índice del fotograma clave que representa el orden del marcador en la regla de tiempo.
Las expresiones tienen acceso a todos los valores de un marcador que puede establecer en el cuadro de diálogo Marcador de composición o Marcador de capa. Esta expresión en la propiedad Texto de origen de una capa de texto muestra el tiempo, la duración, el índice, el comentario (nombre), el capítulo, la URL, el destino de fotograma y el nombre de punto de partida del marcador de capa más cercano al tiempo actual, además de si el marcador es para un punto de partida de evento:
m = thisLayer.marker.nearestKey(time); s = "time:" + timeToCurrentFormat(m.time) + "\r" + "duration: " + m.duration + "\r" + "key index: " + m.index + "\r" + "comment:" + m.comment + "\r" + "chapter:" + m.chapter + "\r" + "URL:" + m.url + "\r" + "frame target: " + m.frameTarget + "\r" + "cue point name: " + m.cuePointName + "\r" + "Event cue point? " + m.eventCuePoint + "\r"; para (param en m.parameters){ s += "parameter: " + param + " value: " + m.parameters[param] + "\r"; } s
Debido a que los metadatos XMP de un elemento de material de archivo se pueden convertir en marcadores de capa para una capa basada en ese elemento, las expresiones pueden interactuar con metadatos XMP. Para obtener más información, consulte Metadatos XMP en After Effects.
duración
Tipo de valor devuelto: número.
Duración en segundos del marcador.
comment
Tipo de valor devuelto: cadena.
Contenidos del campo Comentario en el cuadro de diálogo de marcador.
chapter
Tipo de valor devuelto: cadena.
Contenidos del campo Capítulo en el cuadro de diálogo de marcador.
url
Tipo de valor devuelto: cadena.
Contenido del campo URL en el cuadro de diálogo de marcador.
frameTarget
Tipo de valor devuelto: cadena.
Contenidos del campo Destino de fotograma en el cuadro de diálogo de marcador.
eventCuePoint
Tipo de valor devuelto: booleano.
Ajuste del tipo punto de partida en el cuadro de diálogo de marcador. Verdadero para Evento; falso para Navegación.
cuePointName
Tipo de valor devuelto: cadena.
Contenidos del campo Nombre del punto de señal en el cuadro de diálogo de marcador.
parámetros
Tipo de valor devuelto: conjuntos asociados de valores de Cadena.
Contenidos de los campos Nombre de parámetro y Valor de parámetro en el cuadro de diálogo de marcador.
Por ejemplo, si tiene un parámetro denominado “background color”, puede utilizar la siguiente expresión para acceder a su valor en el marcador más cercano:
thisComp.marker.nearestKey(time).parameters["background color"]
MarkerValue.protectedRegion (referencia de expresión)
Método de expresión:
thisComp.marker.key(index).protectedRegion
Descripción:
cuando es verdadero, el marcador de composición se comporta como una zona protegida.
Tipo:
booleano; solo lectura.
Acceso de expresión a los puntos de los trazados en formas, máscaras y trazos de pincel (referencia de expresión)
Puede utilizar expresiones para leer y escribir las coordenadas “x” e “y” de puntos de trazado o vértices para:
- Máscaras de capas
- Formas Bézier
- Trazos de pincel en los efectos de la pintura y Pincel tipo rotoscopia y Perfeccionar borde.
Métodos de expresión:
- Método Path points(): {pathProperty}.points(t = time) Obtención de las coordenadas x,y de todos los puntos de un trazado. Las coordenadas de los puntos de trazado de máscara de capa son relativas al origen de la capa en el rincón superior izquierdo. Las coordenadas de los puntos de trazado de forma Bézier son relativas al punto de anclaje del grupo de formas del trazado, por ejemplo, Transformar: Forma 1 > Punto de anclaje. Las coordenadas de los puntos de trazado de trazos de pincel son relativas al inicio del trazado; el primer punto es [0,0]. De forma opcional, especifique el tiempo en el que se muestra el trazado. Este método se puede pasar al método createPath() para el parámetro de los puntos al duplicar un trazado.
Parámetros:
t |
Número, opcional. El tiempo de composición (en segundos) en el que se muestra el trazado. El valor predeterminado es el tiempo (la hora actual). |
Valores devueltos:
Conjunto de conjuntos de pares de números, redondeado a la cuarta cifra decimal.
- Método inTangents() del trazado: {pathProperty}.inTangents(t = time)Obtención de las coordenadas x, y del selector de tangentes de entrada para todos los puntos de un trazado. Los valores de coordenadas de tangente se desplazan con respecto a las coordenadas del punto principal. Es decir, el valor [0,0] no crea ninguna curvatura en la tangente de entrada. Este método se puede pasar al método createPath() para el parámetro inTangents al duplicar un trazado. De forma opcional, especifique el tiempo en el que se muestrea el trazado.
Parámetros:
t |
Número, opcional. El tiempo de composición (en segundos) en el que se muestra el trazado. El valor predeterminado es el tiempo (la hora actual). |
Valores devueltos:
Conjunto de conjuntos de pares de números, redondeado a la cuarta cifra decimal.
- Método outTangents() de la trayectoria: {pathProperty}.outTangents(t = tiempo) Obtiene las coordenadas x, y del asa de la tangente saliente para todos los puntos de una trayectoria. Los valores de coordenadas de tangente se desplazan con respecto a las coordenadas del punto principal: el valor [0,0] no crea ninguna curvatura en la tangente de salida. Este método puede pasarse al método createPath() para el parámetro outTangents al duplicar una ruta. De forma opcional, especifique el tiempo en el que se muestrea el trazado.
Parámetros:
t |
Número, opcional. El tiempo de composición (en segundos) en el que se muestra el trazado. El valor predeterminado es el tiempo (la hora actual). |
Valores devueltos:
Conjunto de conjuntos de pares de números, redondeado a la cuarta cifra decimal.
- Método Path isClosed(): {pathProperty}.isClosed()Determina si el trazado es abierto o cerrado. Devuelve verdadero si el trazado es cerrado y falso si el trazado es abierto. Este método se puede pasar al método createPath() para el parámetro is_closed al duplicar un trazado.
Parámetros:
Ninguno
Valores devueltos:
booleano
- Método Path pointOnPath() {pathProperty}.pointOnPath(percentage = 0.5, t = time) Obtención de las coordenadas x,y de un punto arbitrario a lo largo de un trazado. El punto se expresa como porcentaje de la longitud del arco del trazado. 0% es el primer punto, y 100% es el último punto. Cuando el trazado es cerrado, 0% y 100% devuelven las mismas coordenadas. El porcentaje de la longitud del arco se utiliza para garantizar una velocidad uniforme a lo largo del trazado. Excepto 0 % y 100 %, los porcentajes no se correlacionan necesariamente con los puntos bézier en el trazado: para un trazado con tres puntos, el segundo punto no estará necesariamente en el 50 %. Esto también significa que, para un trazado abierto y un trazado cerrado con puntos idénticos, el porcentaje a lo largo del trazado abierto no devolverá las mismas coordenadas que el trazado cerrado debido a la longitud adicional del trazado cerrado. De forma opcional, especifique el tiempo en el que se muestra el trazado.
Parámetros:
porcentaje |
Número entre 0 y 1, opcional. El porcentaje a lo largo de la longitud del arco del trazado para la muestra. Los valores inferiores a 0 y superiores a 1 se recortan. El valor predeterminado es 0,5. |
t |
Número, opcional. El tiempo de composición (en segundos) en el que se muestra el trazado. El valor predeterminado es el tiempo (la hora actual). |
Valores devueltos:
un conjunto de pares de números.
- Método Path tangentOnPath() {pathProperty}.tangentOnPath(percentage = 0.5, t = time) Obtención de las coordenadas x,y calculadas del selector de tangentes de salida para un punto arbitrario a lo largo de un trazado. Los valores de coordenadas de tangente se desplazan con respecto a las coordenadas del punto principal: el valor [0,0] no crea ninguna curvatura en la tangente de salida. El selector de tangentes de entrada es el inverso de este valor (multiplica las coordenadas x,y por -1). El punto principal de la tangente se expresa como porcentaje de la longitud del arco del trazado. Las coordenadas que tangentOnPath() devuelve se calculan a partir de su punto principal y difieren de las que devuelve outTangents() si también existe un punto definido por el usuario en ese porcentaje de la longitud del arco. La distancia lineal entre las coordenadas del punto principal y las coordenadas de tangentOnPath() siempre es 1. Se pueden multiplicar las coordenadas devueltas para crear una tangente más larga. Por ejemplo: (myPath.tangentOnPath() * 100). De forma opcional, especifique el tiempo en el que se muestra el trazado.
Parámetros:
porcentaje |
Número entre 0 y 1, opcional. El porcentaje a lo largo de la longitud del arco del trazado para la muestra. Los valores inferiores a 0 y superiores a 1 se recortan. El valor predeterminado es 0,5. |
t |
Número, opcional. El tiempo de composición (en segundos) en el que se muestra el trazado. El valor predeterminado es el tiempo (la hora actual). |
Valores devueltos:
un conjunto de pares de números.
- Método normalOnPath() de la ruta {pathProperty}.normalOnPath(percentage = 0.5, t = time) Obtiene las coordenadas x,y calculadas de la normal para un punto arbitrario a lo largo de una ruta. Los valores de coordenadas de las normales se desplazan respecto a las coordenadas del punto padre - El valor [0,0] es el mismo que el del punto principal. El punto principal de la normal se expresa como un porcentaje de la longitud del arco de la ruta. Lea la descripción del método pointOnPath() para más detalles sobre el porcentaje de longitud de arco. Las coordenadas devueltas por normalOnPath() se calculan a partir de su punto principal. La distancia lineal entre las coordenadas del punto principal y las coordenadas de normalOnPath() siempre es 1. Se pueden multiplicar las coordenadas devueltas para crear una normal más larga. Por ejemplo: (myPath.normalOnPath() * 100). De forma opcional, especifique el tiempo en el que se muestra el trazado.
Parámetros:
porcentaje |
Número entre 0 y 1, opcional. El porcentaje a lo largo de la longitud del arco del trazado para la muestra. Los valores inferiores a 0 y superiores a 1 se recortan. El valor predeterminado es 0,5. |
t |
Número, opcional. El tiempo de composición (en segundos) en el que se muestra el trazado. El valor predeterminado es el tiempo (la hora actual). |
Valores devueltos:
un conjunto de pares de números.
- Método de la ruta createPath() {pathProperty}.createPath(points = [[0,0], [100,0], [100,100], [0,100]], inTangents = [], outTangents = [], is_closed = true) Crea un objeto de ruta a partir de un conjunto de puntos y tangentes. Los puntos se definen mediante una matriz de pares de números que representan sus coordenadas x, y. La longitud de la matriz debe ser al menos 1, y puede ser de cualquier longitud mayor. Las asas tangentes entrantes y salientes de los puntos se definen mediante una matriz de matrices de pares de números que representan sus coordenadas de desplazamiento x, y. La longitud de los conjuntos de tangentes debe ser exactamente igual que el parámetro de puntos. Los valores de coordenadas de tangente se desplazan con respecto a las coordenadas del punto principal: el valor [0,0] no crea ninguna curvatura en la tangente de entrada. Los métodos points(), inTangents(), outTangents() y isClosed() de una ruta se pueden pasar a los parámetros points, inTangents, outTangents y is_closed para duplicarla. Los puntos y tangentes de la misma ruta se pueden pasar a createPath() con modificaciones para generar un resultado diferente. Por ejemplo, la siguiente expresión eliminará curvas de Mask 1 al no pasar los parámetros inTangents ni outTangents:
myMask = mask("Mask 1").path;
myMask.createPath(myMask.points());
En el ejemplo siguiente, se pasan los puntos y las tangentes de Mask 1 y los convierte en un trazado abierto al establecer setting is_closed como falso:
myMask = mask("Mask 1").path;
myMask.createPath(myMask.points(), myMask.inTangents(), myMask.outTangents(), false);
puntos |
Un conjunto de longitud 1 o superior que contiene conjuntos de pares de números que representan las coordenadas [x,y] de los puntos de trazado. Obligatorio a menos que no se pase ningún parámetro (es decir, createPath()). El valor predeterminado es [[0,0], [100,0], [100,100], [0,100]]. |
is_closed |
Booleano, opcional. Determina si la máscara está cerrada. Si el valor es verdadero, el último punto se conecta con el primer punto. El valor predeterminado es verdadero. |
inTangents |
Un conjunto que contiene conjuntos de pares de números que representan las coordenadas [x, y] de desplazamiento de los selectores de tangentes de salida a los puntos del trazado. Obligatorio a menos que no se pase ningún parámetro (es decir, createPath()). La longitud del conjunto debe ser igual que los puntos. También es posible pasar un conjunto vacío ([]), que supondrá la misma longitud que los puntos y [0,0] para todas las tangentes. El valor predeterminado es un conjunto vacío. |
outTangents |
Un conjunto que contiene conjuntos de pares de números que representan las coordenadas [x, y] de desplazamiento de los selectores de tangentes de entrada a los puntos del trazado. Obligatorio a menos que no se pase ningún parámetro (es decir, createPath()). La longitud del conjunto debe ser igual que los puntos. También es posible pasar un conjunto vacío ([]), que supondrá la misma longitud que los puntos y [0,0] para todas las tangentes. El valor predeterminado es un conjunto vacío. |
Valores devueltos:
Un objeto de trazado.
Ejemplos:
- Ejemplo 1
En el ejemplo se escribe la lista de coordenadas de puntos y de tangentes de Path 1 de Shape 1 en la capa Shape Layer 1, en time=0, en una cadena. Aplique esto a la propiedad de texto de origen de una capa de texto para leer las coordenadas y las tangentes de entrada y salida de la forma.
pointsList = "";
sampleTime = 0;
myShape = thisComp.layer("Shape Layer 1").content("Shape 1").content("Path 1").path;
for (i = 0; i < myShape.points(sampleTime).length; i++) {
pointsList += "c: " + myShape.points(sampleTime)[i].toString() + " i: " + myShape.inTangents(sampleTime)[i].toString() + " o: " + myShape.outTangents(sampleTime)[i].toString() + "\n";
}
pointsList;
- Ejemplo 2
En el ejemplo se leen las coordenadas del primer vértice de Mask 1 en Dark Gray Solid 1 y se convierten en las coordenadas de la composición. Aplique esto a un control de punto 2D de un efecto, como Write-on o CC Particle Systems II, para hacer que el efecto rastree o haga un seguimiento del primer punto de una máscara animada. Duplique el efecto y cambie el valor de índice de los puntos de trazado ([0]) para rastrear o hacer un seguimiento de los otros puntos de la máscara.
myLayer = thisComp.layer("Dark Gray Solid 1");
myLayer.toComp(myLayer.mask("Mask 1").maskPath.points()[0]);
Animación basada en datos (referencia de expresión)
Métodos de expresión:
- Atributo sourceText del material de archivo {footageItem}.sourceText Devuelve el contenido de un archivo .JSON como una cadena. El método eval() se puede usar para convertir la cadena en un conjunto de objetos de sourceData, idéntico a los resultados del atributo sourceData, desde el que se puede hacer referencia a los flujos de datos individuales como atributos jerárquicos de los datos. Por ejemplo:
var myData = eval(footage("sample.json").sourceText);
myData.sampleValue;
Tipo:
cadena, el contenido del archivo .JSON; solo lectura.
- Atributo sourceData de material de archivo {footageItem}.sourceData Devuelve los datos de un archivo .JSON como un conjunto de objetos de sourceData. La estructura del archivo .JSON determinará el tamaño y la complejidad del conjunto. Es posible hacer referencia a los flujos de datos individuales como atributos jerárquicos de los datos. Por ejemplo, si existe un flujo de datos denominado Color, la siguiente cadena devolverá el valor de Color desde el primer objeto del dato: footage("sample.json").sourceData[0].Color
El uso habitual es asignar el sourceData de un archivo .JSON a una variable y, a continuación, hacer referencia al flujo de datos deseado. Por ejemplo:
var myData =("sample.json").sourceData del material de archivo;
myData[0].Color;
Tipo:
Un conjunto de objetos de sourceData; solo lectura.
- Método dataValue() del material de archivo {footageItem}.dataValue(dataPath) Devuelve el valor de un flujo de datos estático o dinámico especificado en un archivo .mgJSON. Acepta un valor de conjunto individual para definir la ruta de la jerarquía en el flujo de datos deseado. Por ejemplo:
footage("sample.mgjson").dataValue([0]) devuelve los datos del primer secundario.
footage("sample.mgjson").dataValue([1][0]) devuelve los datos del primer secundario al segundo grupo.
Parámetros:
dataPath |
Conjunto, necesario. La ruta en la jerarquía hacia un flujo de datos estático o dinámico. |
Valores devueltos:
El valor del flujo de datos.
- Método dataKeyCount() del material de archivo {footageItem}.dataKeyCount(dataPath)Devuelve el número de muestras de un flujo de datos dinámico especificado en un archivo .mgJSON. Acepta un valor de conjunto individual para definir la ruta de la jerarquía en un flujo de datos dinámico deseado.
Por ejemplo:
- footage("sample.mgjson").dataKeyCount([0]) devuelve el recuento de las muestras del primer secundario
- footage("sample.mgjson").dataKeyCount([1][0]) devuelve el recuento de las muestras del segundo grupo
Parámetros:
dataPath |
Conjunto, necesario. La ruta en la jerarquía hacia un flujo de datos estático o dinámico. |
Valores devueltos:
el número de muestras en un flujo de datos dinámico.
- Método dataKeyTimes() del material de archivo {footageItem}.dataKeyTimes(dataPath, t0 = startTime, t1=endTime)Devuelve el tiempo en segundos para las muestras de un flujo de datos dinámico especificado en un archivo .mgJSON. Especifique opcionalmente el espacio de tiempo desde el que devolver las muestras. De forma predeterminada, se devuelve el tiempo para todas las muestras entre startTime y endTime en el flujo de datos dinámico, como se define mediante la propiedad samplesTemporalExtent del flujo de datos en el archivo .mgJSON. Acepta un valor de conjunto individual para definir la ruta de la jerarquía al flujo de datos dinámico deseado.
El siguiente ejemplo devuelve los tiempos de las muestras entre 1 segundo y 3 segundos para el primer elemento secundario:
footage("sample.mgjson").dataKeyTimes([0], 1, 3)
Parámetros:
dataPath |
Conjunto, necesario. La ruta de la jerarquía a un flujo de datos dinámico. |
t0 |
Número, opcional. El tiempo de inicio, en segundos, del espacio desde el que se devuelven las muestras. El valor predeterminado es startTime. |
t1 |
Número, opcional. El tiempo de fin, en segundos, del espacio desde el que se devuelven las muestras. El valor predeterminado es endTime. |
Valores devueltos:
Conjunto de números que representan los tiempos de la muestra.
- Método dataKeyValues() del material de archivo {footageItem}.dataKeyValues(dataPath, t0 = startTime, t1=endTime)Devuelve los valores para las muestras de un flujo de datos dinámicos especificado en un archivo .mgJSON. Especifique opcionalmente el espacio de tiempo desde el que devolver las muestras. De forma predeterminada, se devuelve el tiempo para todas las muestras entre startTime y endTime en el flujo de datos dinámico, como se define mediante la propiedad samplesTemporalExtent del flujo de datos en el archivo .mgJSON. Acepta un valor de conjunto individual para definir la ruta de la jerarquía al flujo de datos dinámico deseado.
Por ejemplo:
footage("sample.mgjson").dataKeyValues([0], 1, 3) devuelve los valores de las muestras entre 1 y 3 segundos para el primer secundario.
Parámetros:
dataPath |
Conjunto, necesario. La ruta de la jerarquía a un flujo de datos dinámico. |
t0 |
Número, opcional. El tiempo de inicio, en segundos, del espacio desde el que se devuelven las muestras. El valor predeterminado es startTime. |
t1 |
Número, opcional. El tiempo de fin, en segundos, del espacio desde el que se devuelven las muestras. El valor predeterminado es endTime. |
Valores devueltos:
conjunto de números que representan los valores de la muestra.
Método de conversión de color Hex a RGB (referencia de expresión)
Este método de conversión de color, hexToRgb(), convierte valores de color hexadecimales, por ejemplo, valores de color #FF00FF, a RGBA. Esto puede resultar útil para vincular parámetros de color a valores representados como cadenas hexadecimales en fuentes de datos JSON o CSV/TSV.
Método de expresión:
hexToRgb(hexString) Convierte un color de un espacio de trío hexadecimal a RGB, o un espacio de cuarteto hexadecimal a RGBA. En el caso de los tríos hexadecimales, el valor predeterminado de alfa es de 1.0.
Parámetros:
hexString |
Cadena que representa un trío hexadecimal (6 dígitos sin canal alfa) o un cuarteto (8 dígitos con un canal alfa) que solo contiene numerales o caracteres A–F. Se ignoran los caracteres principales 0x, 0X o #. Se ignoran los caracteres con más de 8 dígitos. |
Valores devueltos:
conjunto de valor de color RGBA.
Ejemplos:
Cualquiera de las siguientes opciones se devolverá [1.0, 0.0, 1.0, 1.0]:
- hexToRgb("FF00FF")
- hexToRgb("#FF00FF")
- hexToRgb("0xFF00FF")
- hexToRgb("0XFF00FFFF") Nota: Cuarteto hexadecimal de ocho dígitos; los últimos dos dígitos ajustan alfa a 1.0.