Buscar..


Introducción

Las animaciones y transiciones en A-Frame se definen utilizando el elemento <a-animation> como elemento secundario. El sistema se basa aproximadamente en la especificación de animaciones web. A-Frame utiliza tween.js internamente.

Observaciones

Atributos

Aquí hay una visión general de los atributos de animación. Vamos a entrar en más detalle a continuación.

Atributo Descripción Valor por defecto
atributo Atributo para animar. Para especificar un atributo de componente, use la sintaxis componentName.property (por ejemplo, light.intensity ). rotación
empezar Nombre del evento a esperar antes de comenzar la animación. ''
retrasar Retardo (en milisegundos) o nombre del evento para esperar antes de comenzar la animación. 0
dirección Dirección de la animación (entre from y to ). Uno de alternate , alternateReverse , reverse , normal , reverse . normal
dur Duración en (milisegundos) de la animación. 1000
facilitando Función facilitadora de la animación. Hay muchos para elegir. facilitar
fin Nombre del evento a esperar antes de detener la animación. ''
llenar Determina el efecto de la animación cuando no está activo en el juego. Uno de backwards , both , forwards , none . hacia adelante
desde Valor inicial. Valor actual.
repetir Repita el conteo o indefinite . 0
a Valor final. Debe ser especificado. Ninguna

Empezar

El atributo de begin define cuando la animación debe comenzar a reproducirse.

Puede ser un número , que representa milisegundos que esperar o un nombre de evento que esperar. Por ejemplo, podemos definir una animación que espere 2 segundos antes de escalar una entidad.

<a-entity>
  <a-animation attribute="scale" begin="2000" to="2 2 2"></a-animation>
</a-entity>

O podemos definir una animación que espere a que el elemento padre active un evento llamado fade antes de desvanecer una entidad.

<a-entity id="fading-cube" geometry="primitive: box" material="opacity: 1">
  <a-animation attribute="material.opacity" begin="fade" to="0"></a-animation>
</a-entity>
// Trigger an event to begin fading.
document.querySelector('#fading-cube').emit('fade');

Dirección

El atributo de direction define la forma de animar entre el valor inicial y el valor final.

Cuando definimos una dirección alterna, la animación irá de un lado a otro entre los valores from y to como un yo-yo. Las direcciones alternas solo tienen efecto cuando repetimos la animación.

Valor Descripción
alterno En los ciclos de números pares, anime from a to . En los ciclos impares, la animación de to a from
alterno-reverso En los ciclos con números impares, anime from a to . En ciclos de números pares, animación de to a from
normal Animar a partir from a to .
marcha atrás Animar de to a from .

Facilitando

El atributo de easing define la función de suavizado de la animación, que por defecto ease . Hay demasiadas funciones de aceleración para enumerar, pero podemos explicarlas implícitamente.

Un valor posible es linear . Y las funciones básicas de aceleración son ease , ease-in , ease-out y ease-in-out .

Luego hay más grupos de funciones de flexibilización. Las funciones de suavizado básicas anteriores prefijan cada grupo de funciones de suavizado. Los grupos de funciones de aceleración son cubic , quad , quart , quint , sine , expo , circ , elastic , back y bounce .

Por ejemplo, el grupo cubic de funciones de aceleración consistiría ease-cubic ease-in-cubic , ease-cubic ease-in-cubic , ease-in-cubic , ease-out-cubic ease-in-out-cubic .

Llenar

El atributo de fill define el efecto de la animación cuando no está activo en el juego. Piense en el fill como qué valores establece la animación en la entidad antes y / o después de cada ciclo de animación. A continuación se muestran los posibles valores de fill y sus efectos.

Valor Descripción
hacia atrás Antes comienza la animación, establezca el valor de salida a la from valor.
ambos Combina los efectos de relleno hacia atrás y relleno hacia adelante.
hacia adelante Una vez finalizada la animación, el valor final se quedará en el to valorar. El relleno por defecto.
ninguna Antes de que comience la animación, establezca el valor inicial en el valor inicial. Una vez finalizada la animación, restablecer el valor al valor inicial.

Repetir

El atributo de repeat define con qué frecuencia se repite la animación. Llamamos a cada repetición de la animación un ciclo. Repetir puede ser un número que realiza una cuenta regresiva en cada ciclo de animación hasta que llegue a 0 punto en el que finalizará la animación, o podemos configurar la repeat a indefinite y la animación se repetirá continuamente hasta que la animación se elimine o se detenga manualmente.


EVENTOS

El elemento <a-animation> emite un par de eventos.

Nombre del evento Descripción
animación Se emite cuando finaliza la animación. En caso de repeticiones, se emite cuando el recuento de repeticiones llega a 0 . No emitido por repeticiones indefinidas.
animaciónstart Se emite inmediatamente cuando la animación comienza a reproducirse.

Animaciones de ejemplo

Como ejemplo introductorio, para definir una órbita de 5 metros en una entidad sobre el eje Y que toma 10 segundos, podemos compensar la posición y animar la rotación. Esta animación comienza con la rotación inicial sobre el eje Y de 0 grados y gira alrededor de 360 ​​grados. Se define con una duración de 10000 milisegundos, mantiene el valor final en cada ciclo de la animación y se repite infinitamente.

<a-entity position="5 0 0" rotation="0 0 0">
  <a-animation attribute="rotation"
               to="0 360 0"
               dur="10000"
               fill="forwards"
               repeat="indefinite"></a-animation>
</a-entity>

Animando diferentes tipos de propiedades

El sistema de animación de A-Frame puede animar diferentes tipos de propiedades.

Propiedades de vec3

A-Frame tiene componentes vec3 estándar (es decir, position , rotation y scale ). Estos componentes constan de tres factores: X, Y y Z. Podemos pasar tres números delimitados por espacios a los atributos from y to tal como los definiríamos en una entidad. En este caso, el sistema de animación asumirá que estamos animando un valor vec3 .

Por ejemplo, si queremos animar una entidad que va de un lugar a otro, podemos animar el componente de position .

<a-entity>
  <a-animation attribute="position" from="1 1 1" to="2 4 -8"></a-animation>
</a-entity>

Propiedades booleanas

A-Frame tiene componentes estándar que aceptan un solo valor booleano. Los valores booleanos también pueden ser "animados" al voltear el booleano al final de cada ciclo de animación.

Por ejemplo, podemos definir una animación que desactiva la visibilidad de una entidad después de 5 segundos.

<a-entity>
  <a-animation attribute="visible" dur="5000" to="false" repeat="indefinite"></a-animation>
</a-entity>

Propiedades numéricas

También podemos animar atributos numéricos. Por ejemplo, podemos animar la intensidad de la luz primitiva.

<a-light intensity="1">
  <a-animation attribute="intensity" to="3"></a-animation>
</a-light>

Propiedades de color

Podemos animar cualquier propiedad componente que tenga un tipo de color. Por ejemplo, podemos animar un cuadro de blanco a rojo.

<a-entity id="blushing-cube" geometry="primitive: box">
  <a-animation attribute="material.color" from="white" to="red" dur="1000"></a-animation>
</a-entity>

Propiedades de los componentes

Podemos animar una determinada propiedad de un componente multi-propiedad. Para hacerlo, seleccionamos la propiedad del componente usando la sintaxis del punto: componentName.propertyName .

Por ejemplo, para animar el radio superior de un cono, podemos seleccionar el valor de radiusTop con geometry.radiusTop .

<a-entity geometry="primitive: cone; radiusTop: 1">
  <a-animation attribute="geometry.radiusTop" to="0.5"></a-animation>
</a-entity>


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow