Los componentes son bloques de construcción básicos que utilizan datos y lógica para construir el juego. El componente de movimiento de fotogramas clave es una forma de añadir fotogramas clave de animación a las entidades y hacer que se muevan suavemente en el nivel dentro de los parámetros especificados.
En UEFN, puedes mover objetos con código de Verse utilizando funciones como TeleportTo() o MoveTo() para cambiar sus posiciones en el mundo. Sin embargo, puede resultar difícil obtener un movimiento suave y continuo utilizando estas funciones, ya que el código de Verse de estas funciones tiene que ser evaluado en cada actualización de la simulación. En vez de mover objetos manipulando su posición, puedes utilizar animaciones. El componente keyframed_movement_component permite obtener animaciones fluidas, ya que el objeto se mueve entre los fotogramas clave establecidos y lo hace sin sufrir retrasos entre el servidor y el cliente. Imagínate una vagoneta moviéndose suavemente sobre unos raíles. Un componente de movimiento de fotogramas clave sería una buena solución para conseguirlo.
Para añadir un componente a una entidad, consulta Cómo trabajar con entidades y componentes. El componente aparece como keyframed_movement_component, que coincide con la clase de Verse para el componente de movimiento de fotogramas clave. Para obtener más información sobre la API de Verse para el componente, el módulo Referencia de la API keyframed_movement_component.
Al hacer referencia al módulo KeyframedMovement en el código, obtendrás acceso a las operaciones que puedes realizar en la entidad seleccionada. En el siguiente ejemplo se muestra el uso de @editable y keyframe_movement_delta para mover la entidad.
Ejemplo
Para conseguir que una entidad se mueva entre un conjunto de fotogramas clave:
Crea una entidad en tu proyecto. Si es la primera vez que haces esto, consulta Cómo trabajar con entidades y componentes.
Haz clic en + Componente y añade un mesh_component. Selecciona la malla de cubo.
Añade un componente KeyframedMovement.
Vuelve a hacer clic en + Componente y elige Nuevo componente de Verse.
Asígnale el nombre
move_cycle_componenty haz clic en Crear.En Visual Studio Code, especifica el módulo
KeyframedMovementañadiendousing { /UnrealEngine.com/Temporary/SceneGraph/KeyframedMovement }.Para que
transformfuncione, asegúrate de especificarusing { /Verse.org/SpatialMath }.En la parte superior de la clase
move_cycle_component, añade una matrizeditabledekeyframed_movement_deltacon el nombreKeyframes. Al exponer una matriz dekeyframed_movement_deltaal editor, puedes crear fotogramas clave directamente desde el panel Detalles y establecer latransformación, laduracióny laaceleraciónde cada fotograma clave de la animación.
# A Verse-authored component that can be added to entities
move_cycle_component<public> := class<final_super>(component):
@editable
var Keyframes:[]keyframed_movement_delta = array{}Después de Compilar código de Verse, los fotogramas clave aparecerán en el editor en move_cycle_component. Añade 2 elementos de matriz haciendo clic en el icono +.
Ahora puedes modificar la transformación, duración y aceleración de cada elemento de la matriz. Cada elemento de la matriz corresponde a un fotograma clave.
En el primer elemento, expande Transformar y establece Adelante en 500. En el segundo elemento, establece Izquierda en -500. Para ambos elementos, establece la Duración en 2.0 (segundos) y la Aceleración en cubic_bezier_easing_function.
Es importante tener en cuenta que el valor de cada nuevo fotograma clave que se establece es relativo al fotograma clave anterior, así como el primer fotograma clave es relativo a la posición de la malla en el mundo.
Recuerda que los valores de transformación que antes se designaban como X, Y y Z ahora son Adelante, Derecha y Arriba. A partir de ahora, al especificar una función de transformación, tendrás que utilizar Adelante, Derecha y Arriba en el código para evitar errores del compilador. Para obtener más información, consulta Sistema de coordenadas FRU en UEFN.
Cuando guardes y abras una sesión, deberías ver tu cubo moviéndose entre los fotogramas clave que hayas establecido:
Cómo crear fotogramas clave en Verse
Puedes también crear fotogramas clave utilizando código de Verse:
Obtén el
keyframed_movement_component.Crea tu primer fotograma clave
Key0mediante una llamada a la funciónkeyframed_movement_deltay especificando latransformación, laduracióny laaceleración. Repite el proceso para el segundo fotograma claveKey1.Establece la animación. Aquí también puedes definir el modo de reproducción. En este ejemplo, la animación será
pingpong.Reproduce la animación. Consulta el código que aparece a continuación para ver la sintaxis correcta.
# Runs when the component should start simulating in a running game.
# Can be suspended throughout the lifetime of the component. Suspensions
# will be automatically canceled when the component is disposed of or the game ends.
OnSimulate<override>()<suspends>:void =
# TODO: Place simple suspends logic to run for this component here
Print("OnSimulate")
if:
KFM:keyframed_movement_component = Entity.GetComponent[keyframed_movement_component]
Código completo
A continuación encontrarás una versión del código completo que puedes copiar y pegar para este ejemplo:
using { /Verse.org }
using { /Verse.org/Native }
using { /Verse.org/Simulation }
using { /Verse.org/SpatialMath }
using { /UnrealEngine.com/Temporary/SceneGraph }
using { /UnrealEngine.com/Temporary/SceneGraph/KeyframedMovement }
# A Verse-authored component that can be added to entities
move_cycle_component<public> := class<final_super>(component):