Los componentes son bloques de construcción básicos que utilizan datos y lógica para construir tu 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 tu nivel dentro de parámetros específicos.
En UEFN, puedes mover objetos con código de Verse mediante funciones como TeleportTo() o MoveTo() para cambiar sus posiciones en el entorno. Sin embargo, puede ser difícil obtener un movimiento suave y continuo con estas funciones, ya que el código de Verse para estas funciones debe evaluarse en cada actualización de simulación. En lugar de mover objetos mediante la manipulación de su posición, puedes utilizar animaciones. El keyframed_movement_component puede proporcionar animaciones fluidas, ya que el objeto se mueve entre fotogramas clave definidos y lo hace sin incurrir en retrasos servidor-cliente. Piensa en un vagón de mina que se mueve suavemente por un conjunto de rieles; un componente de movimiento de fotogramas clave sería una buena solución para lograrlo.
Para agregar un componente a tu entidad, consulta Cómo trabajar con entidades y componentes. El componente aparece como keyframed_movement_component, que coincide con la clase de Verse correspondiente al componente de movimiento de fotogramas clave. Para obtener más información sobre la API de Verse para el componente, consulta el módulo de referencia de la API keyframed_movement_component.
Hacer referencia al módulo KeyframedMovement en el código te da acceso a las operaciones que puedes realizar en la entidad seleccionada. El siguiente ejemplo demuestra el uso de @editable y keyframe_movement_delta para mover la entidad.
Ejemplo
Para hacer 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 agrega un mesh_component. Selecciona la malla del cubo .
Agrega un componente KeyframedMovement.
Vuelve a hacer clic en + Componente y elige Nuevo componente de Verse.
Nómbralo
move_cycle_componenty haz clic en Crear.En Visual Studio Code, especifica el módulo
KeyframedMovemental añadirusando{ /UnrealEngine.com/Temporary/SceneGraph/KeyframedMovement }.Para que
transformfuncione, asegúrate de especificarusando { /Verse.org/SpatialMath }.En la parte superior de la clase
move_cycle_component, añade una matrizeditabledekeyframed_movement_deltadenominadaKeyframes. Al exponer una matriz dekeyframed_movement_deltaen el editor, puedes crear fotogramas clave directamente desde el panel de detalles y establecer latransformación, laduracióny laaceleraciónpara 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 Verse, los fotogramas clave aparecerán en el editor en move_cycle_component. Agrega 2 elementos de matriz haciendo clic en el ícono +.
Ahora puedes modificar Transform, Duration y Easing para cada elemento de la matriz. Cada elemento de la matriz es el equivalente de un fotograma clave.
En el primer elemento, expande transformar y define Adelante en 500. En el segundo elemento, define Left en -500. Para ambos elementos, define 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 definas es relativo al fotograma clave anterior, al igual que el primer fotograma clave es relativo a la posición de la malla en el entorno.
Observa que los valores de transformación que antes se denominaban X, Y y Z ahora son Adelante, Derecha y Arriba. A partir de ahora, cuando especifiques una función de transformar, 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 de FRU en UEFN.
Cuando guardes e inicies una sesión, deberías ver el cubo moviéndose entre los fotogramas clave que definas:
Cómo crear fotogramas clave en Verse
También puedes crear fotogramas clave con código de Verse:
Obtén el
keyframed_movement_component.Crea tu primera
Key0de fotograma clave llamando a la funciónkeyframed_movement_deltay especificando latransformación, laduracióny laaceleración. Repite el proceso para el segundo fotograma claveKey1.Define la animación. Aquí también puedes determinar el modo de reproducción. En este ejemplo, la animación será
pingpong.Reproducir la animación. Consulta el código siguiente para conocer 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, se muestra una versión que se puede copiar y pegar del código completa 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):