Editor de Gráficos de Animación

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

El Editor de Gráficos de Animación es una herramienta visual basada en nodos que empodera a los artistas técnicos y animadores para construir lógica de animación compleja directamente dentro de Roblox Studio. Al proporcionar una interfaz simplificada para crear comportamientos como árboles de mezcla, elimina la dependencia tradicional de la programación manual para el movimiento de personajes.

Este sistema funciona en conjunto con tu flujo de trabajo de animación existente:

  • Editor de Animación: Continúa utilizando el Editor de Animación como tu herramienta principal para crear clips individuales y ajustar fotogramas clave y curvas.
  • Editor de Gráficos de Animación: Usa esta herramienta para tomar esos clips y organizarlos en un árbol lógico para impulsar comportamientos de juego sofisticados.

Diseñado para mejorar la colaboración, el gráfico visual permite a los desarrolladores inspeccionar, depurar y entender rápidamente la lógica creada por los animadores. Mientras los artistas se enfocan en refinar el movimiento interactivo, los desarrolladores aún pueden acceder a los nodos del gráfico de animación programáticamente para tener control directo sobre las animaciones y estados mezclados.

Construir un gráfico


Para comenzar a construir lógica para un personaje animable, accede al editor de gráficos de animación a través de la pestaña Avatar en la cinta de Studio. Los siguientes pasos demuestran cómo inicializar un rig y construir una red de nodos básica utilizando animaciones de caminar y saludar por defecto.

Para un análisis más profundo de aplicaciones prácticas, puedes explorar el Archivo de Referencia de Gráficos de Animación, que contiene ejemplos de implementación tanto fundamentales como complejos.

Para crear tu propio gráfico de animación, similar al ejemplo básico proporcionado en la referencia, utiliza los siguientes pasos:

  1. En Studio, agrega un rig animable navegando a la pestaña Avatar y seleccionando PersonajeMi Avatar.

    Botón de personaje resaltado en la barra de herramientas de Studio.
  2. Abre el Editor de Gráficos de Animación navegando a Editor de Gráficos en la pestaña Avatar.

    Editor de Gráficos de Animación indicado en la barra de herramientas de Studio.
  3. Selecciona el rig animable en la vista 3D y selecciona Crear Gráfico.

  4. En el Editor de Gráficos, haz clic derecho y selecciona Clip.

    Lista de nodos en un menú de clic derecho
  5. En el nuevo nodo Clip, establece el ID de Animación.

    1. Selecciona el menú desplegable ID de Animación.

    2. Para enviar un ID de activo de animación específico, haz clic en Importar.

      Campo indicado en el módulo de importación de animación para agregar ID de Animación
    3. En el campo ID de Animación, agrega la animación de caminar por defecto: 507777826.

    4. Selecciona Importar.

  6. Agrega otro nodo clip repitiendo los pasos 4-5 utilizando la animación de saludar por defecto: 507770239.

    Dos nodos clip con un ID de Animación poblado
  7. En el Editor de Gráficos, haz clic derecho y selecciona Agregar.

    Agregar nodo
  8. Conecta los nodos Clip al nodo Agregar arrastrando el conector de salida superior derecho al puerto apropiado:

    1. Conecta el nodo Clip con la animación de caminar al puerto Base.
    2. Conecta el nodo Clip con la animación de saludar al puerto Adicional.
    Ambos nodos clip conectados al nodo agregar
  9. Desde el nodo Agregar, conecta el conector de salida superior derecho al puerto de salida del gráfico Pose.

    Todos los nodos conectados a un nodo de salida final
  10. OPCIONAL
    Asigna un parámetro a tu variable Speed.

    1. Haz clic y arrastra el puerto verde de Speed a un área vacía. Se muestra un nuevo nodo de parámetro.

      Haciendo clic y arrastrando el conector desde el puerto Speed del nodo Clip.
    2. En la parte superior izquierda del editor de gráficos, utiliza el panel de parámetros para modificar rápidamente los parámetros en tus nodos. También puedes acceder a esto programáticamente.

      Panel de parámetros, nodo de parámetro y nodo clip mostrando valores compartidos.
  11. Prueba la animación presionando el botón de reproducción.

    Icono del botón de reproducción para previsualizar animaciones
  12. Intenta probar varios pesos, velocidades, modos de reproducción y otras animaciones. Para más información sobre nodos individuales, consulta la Referencia de Nodos.

Integración de API

Crear y desplegar un Gráfico de Animación sigue el estándar de la pipeline de animación de Roblox. Después de seleccionar un rig en el Editor de Gráficos de Animación, se crea un nuevo activo AnimationGraphDefinition. Este activo sirve como contenedor para tus nodos, conexiones y parámetros. Una vez que tu lógica está finalizada, publicas el gráfico para recibir un ID de Activo estándar.

En tus scripts, interactúas con estos gráficos cargándolos en un Animator como lo harías con una animación tradicional. Para impulsar la lógica interna del gráfico, utiliza AnimationTrack:SetParameter() para pasar valores en tiempo real, como la velocidad de movimiento o booleanos de estado, directamente a las variables del gráfico.

local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://123456789" -- Tu ID de Gráfico Publicado
local animationTrack = animator:LoadAnimation(animation)
animationTrack:Play()
-- Actualizaciones de parámetros dinámicos a través de RunService
game:GetService("RunService").Stepped:Connect(function(_, dt)
local currentSpeed = humanoidRootPart.AssemblyLinearVelocity.Magnitude
animationTrack:SetParameter("humanoidSpeed", currentSpeed)
end)

Referencia de Nodos

Cada nodo de gráfico de animación sirve como una puerta lógica o fuente de datos que procesa datos de animación antes de que lleguen al rig del personaje. Esta sección proporciona un desglose técnico de los bloques funcionales dentro del Editor de Gráficos de Animación. Todos los nodos actualmente producen una pose de animación.

Cada sección de nodo incluye:

  • Definición – Un resumen del propósito y rol del nodo dentro del gráfico.
  • Entradas – Los flujos de datos que entran en el nodo. Múltiples entradas se representan como Input1, Input2, ..., InputN.
  • Propiedades de entrada – Configuraciones vinculadas directamente a una entrada específica (una entrada Idle asignada a una Posición de 0.5 en un nodo Blend1D).
  • Datos de Evento – Eventos emitidos o consumidos por el nodo para activar la lógica interna del gráfico o scripts de Luau externos. Este comportamiento puede cambiar a lo largo del desarrollo beta.

Reglas de eventos globales

Para todos los nodos y transiciones, las siguientes reglas se aplican por defecto:

  • Los eventos se propagan hacia arriba desde su nodo fuente a través del gráfico. Cada evento lleva un peso que representa la influencia de su fuente en la mezcla final. Si el peso llega a cero en algún momento, el evento se silencia.
  • Los nodos sin lógica de evento personalizada pasan todos los eventos sin cambios; los nodos que mezclan o seleccionan entre entradas pueden escalar el peso o bloquear eventos de entradas no primarias (ver sección de Evento por nodo).
  • Los eventos de marcador que alcanzan la parte superior del gráfico pueden ser observados a través de AnimationTrack:GetMarkerReachedSignal().

Clip

Nodo Clip

Una referencia a un activo AnimationClip. Este sirve como un nodo hoja en el gráfico, generando los datos de animación en bruto que se alimentan a otros nodos para mezcla, selección o modificación.

Entradas
  • Ninguna
Propiedades
PropiedadTipoDescripción
AnimationIdStringEl activo de animación a reproducir (por ejemplo, rbxassetid://12345).
PlayModeEnum.AnimationNodePlayMode

Define el comportamiento del clip una vez que alcanza el final de su duración.

  • Bucle (predeterminado): Reinicia automáticamente desde el principio una vez que el clip termina.
  • PingPong: Reproduce de principio a fin, luego inmediatamente reproduce en reversa de fin a principio.
  • Una vez y mantener: Reproduce una vez y mantiene la pose final al completar.
  • Una vez y reiniciar: Reproduce una vez y vuelve a la pose inicial al completar.
ReverseBooleanControla la dirección de la reproducción.
SpeedNumberUn multiplicador para la tasa de reproducción. 0.0 pausa el gráfico, 1.0 es velocidad normal, y 2.0 es el doble de velocidad.
TrimBooleanActiva o desactiva si la duración del clip debe ser truncada.
TrimStartNumberLa marca de tiempo absoluta (en segundos) donde debe comenzar la reproducción.
TrimEndNumberLa marca de tiempo absoluta (en segundos) donde debe terminar la reproducción.
Datos de Evento
  • Manejo de Eventos: Ninguno. Este es un nodo hoja sin hijos.
  • Emisión de Eventos: Lee marcadores personalizados incrustados en el clip de animación (por ejemplo, "Paso", "Golpe de Arma") y los emite como eventos nombrados en el marco preciso en que ocurren. Si el clip es truncado, solo se emiten marcadores dentro del intervalo definido [TrimStart, TrimEnd] (inclusive).

Select

Nodo Select

Selecciona entre cualquier número de entradas a través de la propiedad Selección. Cada vez que la selección actual cambia, se activa una nueva transición.

Entradas
  • Input1...InputN
Propiedades
PropiedadTipoDescripción
SelectionStringEl ID único de la entrada que se va a seleccionar, que coincide con el nombre de la conexión de entrada (por ejemplo, "Caminar").
Datos de Evento
  • Manejo de Eventos: Los eventos de la entrada actualmente seleccionada pasan sin cambios con su peso.
  • Emisión de Eventos: Pasa a través de todos los eventos de la entrada actualmente seleccionada solamente. Durante una transición, la emisión de eventos sigue las reglas de eventos globales.

PrioritySelect

Nodo Priority Select

Evalúa una lista de entradas conectadas de arriba a abajo y reproduce la primera cuya condición se evalúa como verdadera. Esto permite la selección de animación jerárquica basada en lógica específica. Cada vez que la selección actual cambia, se activa una nueva transición.

Entradas
  • Input1...InputN
    • Trigger (Boolean): Una condición lógica que debe ser verdadera para que esta entrada se active. En versiones actuales, esto está conectado a un parámetro booleano.
    • TransitionOverrideInterruptible (Enum.AnimationNodeInterruptible): Define la regla de cuándo esta animación activa puede ser interrumpida por una entrada de mayor prioridad. Anula la configuración DefaultInterruptible a nivel de nodo.
      • Siempre (predeterminado): La entrada puede ser interrumpida en cualquier momento por una condición de mayor prioridad.
      • Terminado: La animación actual debe completar su reproducción antes de que una entrada de mayor prioridad pueda tomar el control.
      • Trigger: La entrada solo es interrumpible cuando el InterruptibleTrigger está configurado como verdadero.
    • InterruptibleTrigger (Boolean): Solo disponible si TransitionOverrideInterruptible está configurado como Trigger. La entrada puede ser interrumpida cuando esta expresión específica es verdadera.
Propiedades
PropiedadTipoDescripción
DefaultInterruptibleEnum.AnimationNodeInterruptibleLa regla de interrupción base aplicada a todas las entradas. Cada entrada puede anular esto con su propia propiedad de entrada TransitionOverrideInterruptible.
Datos de Evento
  • Manejo de Eventos: Los eventos de la entrada actualmente seleccionada pasan sin cambios con su peso.
  • Emisión de Eventos: Pasa a través de todos los eventos de la entrada actualmente seleccionada solamente. Durante una transición, la emisión de eventos sigue las reglas de eventos globales.

Sequence

Nodo Sequence

Activa entradas conectadas en un orden secuencial específico basado en condiciones de espera definidas. Cada vez que la selección actual cambia, se activa una nueva transición.

Entradas
  • Input1...InputN
    • TransitionOverrideWaitFor (Enum.AnimationNodeWaitFor): Especifica la condición que debe cumplirse antes de que la secuencia avance a la siguiente entrada. Anula la configuración DefaultWaitFor a nivel de nodo.
      • Terminado (predeterminado): Avanza a la siguiente entrada cuando la entrada actual completa un ciclo. El comportamiento de avance depende de la entrada conectada:
        • Clip de reproducción única: Avanza cuando el clip termina.
        • Clip en bucle: Avanza después de que se completa un bucle completo.
        • Secuencia con bucles infinitos: Avanza después de un ciclo completo a través de todas las entradas.
        • Secuencia con bucles finitos: Avanza después de que se completan todos los bucles.
      • Trigger: Activa la siguiente entrada cuando una expresión lógica personalizada se evalúa como verdadera.
    • WaitForTrigger (Boolean): Solo disponible cuando TransitionOverrideWaitFor está configurado como Trigger.
Propiedades
PropiedadTipoDescripción
LoopCountNumberEl número de veces que se debe ciclar a través de toda la secuencia. Un valor de 0 (predeterminado) indica un bucle infinito. Una vez alcanzado el conteo, el nodo respeta la configuración de bucle o retención de la entrada final.
DefaultWaitForEnum.AnimationNodeWaitForLa condición de espera base aplicada a todas las entradas. Cada entrada puede anular esto con su propia propiedad de entrada TransitionOverrideWaitFor.
Datos de Evento
  • Manejo de Eventos: Los eventos de la entrada actualmente activa pasan sin cambios con su peso.
  • Emisión de Eventos: Pasa a través de todos los eventos de la entrada actualmente activa en la secuencia solamente. Durante una transición, la emisión de eventos sigue las reglas de eventos globales.

RandomSequence

Nodo Random Sequence

Selecciona y reproduce una de sus entradas conectadas al azar. Cuando la animación actualmente seleccionada se completa, el nodo elige aleatoriamente otra entrada para reproducir. Asigna a cada entrada un peso específico para influir en la probabilidad de ser elegida. Cada vez que la selección actual cambia, se activa una nueva transición.

Entradas
  • Input1...InputN
    • Weight (Number): Determina la probabilidad de que esta entrada sea seleccionada; pesos más altos aumentan la posibilidad de selección.
Propiedades
PropiedadTipoDescripción
PlayCountNumberEl número de entradas que el nodo reproducirá antes de detenerse. Una vez alcanzado, el nodo respeta la configuración de bucle o retención de la entrada final. El valor predeterminado es 0 para infinito.
SeedNumberUn valor utilizado para inicializar el Generador de Números Aleatorios (RNG), asegurando que la secuencia se mantenga consistente entre diferentes clientes. El valor predeterminado es -1 para una Semilla aleatoria.
Datos de Evento
  • Manejo de Eventos: Los eventos de la entrada actualmente activa pasan sin cambios con su peso.
  • Emisión de Eventos: Pasa a través de todos los eventos de la entrada actualmente activa en la secuencia solamente. Durante una transición, la emisión de eventos sigue las reglas de eventos globales.

Over

Nodo Over

Superpone la pose Over sobre la pose Base. Cuando se combina con un nodo de Máscara, las articulaciones en la pose Over que están enmascaradas revelan completamente la pose Base, creando un efecto de superposición transparente.

Entradas
  • Base: La capa de fondo o inferior, típicamente una animación de cuerpo completo como locomoción o un estado de inactividad.
  • Over: La capa del primer plano o superior que se aplicará sobre la base, como un gesto de mano o una animación de uso de herramienta.
Propiedades
PropiedadTipoDescripción
WeightNumberEl peso de mezcla utilizado para atenuar la pose Over. El valor predeterminado es 1.0 (anulación completa) y no está limitado.
Datos de Evento
  • Manejo de Eventos:
    • El nodo escucha eventos de ambas entradas Base y Over.
  • Emisión de Eventos:
    • Eventos Base: Todos los eventos de la entrada Base se pasan sin modificar.
    • Eventos Over: Los eventos de la entrada Over se escalan por la propiedad Weight.
      • Con un Weight de 0.5, los eventos Over se propagan a medio peso.
      • Con un Weight de 0, se silencian.

Add

Nodo Add

Agrega la pose Adicional a la pose Base, atenuada por un Weight específico (sin limitar).

Entradas
  • Base: La pose de animación principal.
  • Additive: La pose que se superpondrá a la base.
Propiedades
PropiedadTipoDescripción
WeightNumberDetermina la fuerza de la pose adicional aplicada a la base.
Datos de Evento
  • Manejo de Eventos: El nodo escucha eventos de ambas entradas Base y Additive.
  • Emisión de Eventos: Todos los eventos de ambas entradas Base y Additive se pasan sin modificar.

Subtract

Nodo Subtract

Convierte una animación en una pose adicional al restar una pose base relativa de la pose objetivo (AWeight×BA - \text{Weight} \times B). El Weight escala la pose B antes de la resta (sin limitar).

Entradas
  • A: La pose de animación objetivo.
  • B: La pose base relativa que se restará.
Propiedades
PropiedadTipoDescripción
WeightNumberEscala la pose B antes de que se reste de A. Con 1.0 (predeterminado), B se resta completamente; con 0.0, no ocurre ninguna resta.
Datos de Evento
  • Manejo de Eventos: El nodo escucha eventos de ambas Input A y Input B.
  • Emisión de Eventos: Todos los eventos de ambas Input A y Input B se pasan sin modificar.

Blend1D

Nodo Blend1D

Interpole linealmente entre las dos poses de animación más cercanas a la posición de entrada actual en un solo eje.

Entradas
  • Input1...InputN
    • Position (Number): La coordenada específica para cada entrada subsiguiente en el eje de mezcla.
Propiedades
PropiedadTipoDescripción
PositionNumberEl valor activo actual en el eje de mezcla utilizado para muestrear las animaciones. Si Position está fuera del rango de posiciones de entrada definidas, el nodo extrapola utilizando las dos entradas más cercanas.
PhaseSyncEnum.AnimationNodePhaseSync

Configura si el tiempo de las entradas hijas debe estar sincronizado.

  • Sincronizado (predeterminado): Sincronización normalizada. El nodo calcula una "duración virtual" basada en el promedio ponderado de las entradas activas. El paso de tiempo de cada nodo de entrada se ajusta para que todos los hijos converjan a la misma fase, manteniendo las animaciones de diferentes longitudes en sincronía.
  • No sincronizado: Mezcla estándar donde los clips avanzan independientemente a sus propias tasas de reproducción.
Datos de Evento
  • Manejo de Eventos: El nodo escucha eventos de todos los nodos hijos actualmente activos.
  • Emisión de Eventos: Solo los eventos de la entrada activa de mayor peso se propagan, escalados por su peso de mezcla. Los eventos de la entrada secundaria se silencian.

Blend2D

Nodo Blend2D

Mezcla múltiples poses de animación juntas basándose en dos parámetros de entrada dentro de un espacio de coordenadas 2D. Esto generaliza el nodo Blend1D para manejar escenarios complejos, como mezclar basándose en la dirección de movimiento y la velocidad simultáneamente.

Entradas
  • Input1...InputN
    • X (Number): La coordenada X para cada entrada subsiguiente.
    • Y (Number): La coordenada Y para cada entrada subsiguiente.
Propiedades
PropiedadTipoDescripción
InputModeEnum.AnimationNodeBlend2DInputMode

Define el sistema de coordenadas utilizado para evaluar el espacio de mezcla:

  • Cartesiano (predeterminado): Utiliza coordenadas de cuadrícula 2D estándar. X e Y representan la posición actual dentro del espacio de mezcla.
  • Polar: Utiliza valores angulares y de magnitud. X representa la dirección en radianes, mientras que Y representa la magnitud o fuerza de movimiento. La dirección tiene un peso mayor que la magnitud, por lo que las entradas en ángulos similares pero con diferentes magnitudes se mezclan más suavemente que las entradas en ángulos diferentes.
XNumberLa coordenada X actual (Cartesiana) o Dirección en radianes (Polar).
YNumberLa coordenada Y actual (Cartesiana) o Magnitud (Polar).
PhaseSyncEnum.AnimationNodePhaseSync

Configura si el tiempo de las entradas hijas debe estar sincronizado.

  • Sincronizado (predeterminado): Sincronización normalizada. El nodo calcula una "duración virtual" basada en el promedio ponderado de las entradas activas. El paso de tiempo de cada nodo de entrada se ajusta para que todos los hijos converjan a la misma fase, manteniendo las animaciones de diferentes longitudes en sincronía.
  • No sincronizado: Mezcla estándar donde los clips avanzan independientemente a sus propias tasas de reproducción.
Datos de Evento
  • Manejo de Eventos: El nodo escucha eventos de todos los nodos hijos actualmente activos.
  • Emisión de Eventos: Solo los eventos de la entrada activa de mayor peso se propagan, escalados por su peso de mezcla. Los eventos de la entrada secundaria se silencian.

Mask

Nodo Mask

Aplica una máscara predefinida a la Pose de entrada. Una máscara se define por un peso por objeto (por ejemplo, articulación) en la jerarquía del rig, permitiendo un control preciso o "difuminado" de la animación.

Entradas
  • Pose: La pose de animación que se va a enmascarar.
Propiedades
PropiedadTipoDescripción
MaskObjectValue

Un ObjectValue (creado como un hijo directo de la definición de nodo de animación Mask) que define los pesos de la máscara. Puede funcionar de una de dos maneras:

  • Directamente: El ObjectValue en sí contiene atributos que mapean los nombres de los objetos del rig a valores de peso específicos.
  • Por Referencia: El ObjectValue hace referencia a otra Instance que contiene los atributos de mapeo. Esto permite máscaras compartidas entre diferentes nodos en el gráfico.

Al crear una máscara, puedes elegir un esquema de rig (HumanoidRigDescription o Selector) para poblar la jerarquía.

  • HumanoidRigDescription: Estandariza la máscara para personajes humanoides.
  • Selector: Permite al usuario seleccionar cualquier rig específico en el espacio de trabajo para poblar la jerarquía de la máscara.
InvertBooleanCuando es verdadero, aplica valores de peso como 1 - peso. Esto permite reutilizar una máscara inversamente sin crear un nuevo activo.
Datos de Evento
  • Manejo de Eventos: El nodo escucha todos los eventos de la entrada Pose.
  • Emisión de Eventos: Todos los eventos de la entrada Pose se pasan sin modificar.

Speed

Nodo Speed

Modifica la tasa de reproducción de una pose de animación entrante.

Entradas
  • Pose: La pose de animación o subgráfico cuya velocidad de reproducción se modificará.
Propiedades
PropiedadTipoDescripción
SpeedNumberUn multiplicador aplicado al delta de tiempo (dtdt). 0.0 pausa el gráfico, 1.0 es velocidad normal, y 2.0 es el doble de velocidad.
Datos de Evento
  • Manejo de Eventos: El nodo escucha eventos de la entrada Pose.
  • Emisión de Eventos: Todos los eventos de la entrada Pose se pasan sin modificar. Ten en cuenta que, aunque la velocidad de reproducción visual cambia, el tiempo de los eventos emitidos (como marcadores) se escalará en consecuencia con la tasa de reproducción modificada.

GraphOutput

Nodo GraphOutput

Representa la pose final evaluada del gráfico. Este nodo se incluye automáticamente en todos los nuevos gráficos en el Editor de Gráficos de Animación. Su presencia asegura que el gráfico sea siempre válido y produzca consistentemente una pose de animación.

Entradas
  • Pose: Los datos de animación procesados finales que se aplicarán al rig.
Propiedades
  • Ninguna
Datos de Evento
  • Manejo de Eventos: El nodo escucha todos los eventos pasados a través de la entrada conectada final.
  • Emisión de Eventos: Este nodo sirve como el punto de salida para la pipeline de animación y no emite señales de vuelta al gráfico.

Transiciones

Varios nodos en el Gráfico de Animación (como Select, Priority Select, Sequence y Random Sequence) gestionan cómo se mezclan las animaciones al cambiar entre entradas activas. Para evitar redundancias en la referencia de nodos, estos comportamientos se definen mediante grupos de propiedades de transición estandarizadas.

Transición predeterminada

Transición Predeterminada

El comportamiento de mezcla base aplicado al nodo cada vez que cambia a una nueva entrada activa.

Anulación de transición

Propiedades de enlace específicas de entrada que superan la transición predeterminada. Estas se aplican cuando el nodo transita hacia esa entrada específica.

Replicación

Los parámetros del gráfico de animación y el estado interno del nodo se replican automáticamente. El modo de replicación se determina por Workspace.AuthorityMode en el momento en que se crea el script Animate:

Ejemplos de Scripts Animate

Para generar scripts de ejemplo que impulsen un gráfico de animación para un rig, utiliza Graph -> Create Animate script en el Editor de Gráficos de Animación. Esto produce una jerarquía de scripts colocada bajo StarterCharacterScripts (para personajes de jugadores) o directamente en el rig (para NPCs):

Animate (ModuleScript)
├── RunClient (LocalScript)
└── RunServer (Script, RunContext = Legacy)

El Animate ModuleScript contiene la lógica de carga del gráfico. Los scripts RunClient y RunServer lo invocan en el contexto apropiado. Qué scripts se incluyen depende del caso de uso:

Caso de UsoScripts IncluidosComportamiento
NPC (cualquier modo)RunServerEl servidor carga y reproduce el gráfico. El estado se replica automáticamente a todos los clientes.
Jugador + Enum.AuthorityMode.ServerRunServer + RunClientEl servidor impulsa el gráfico de manera autoritaria. El cliente propietario habilita Enum.PredictionMode para la predicción local basada en retroceso.
Jugador + Enum.AuthorityMode.AutomaticRunClientEl cliente propietario carga y reproduce el gráfico. Los parámetros se replican automáticamente al servidor y a otros clientes.

Los siguientes atributos se almacenan en el script Animate y configuran su comportamiento:

AtributoTipoDescripción
GraphNameStringNombre del activo del gráfico de animación.
CharacterNameStringNombre del rig al que se dirige el gráfico.
SourceAssetIdStringEl ID de Activo publicado del gráfico. Se utiliza en tiempo de ejecución en juegos publicados.
IsServerAuthorityBooleanSi el script fue creado con Workspace.AuthorityMode configurado en Server. Determina la estrategia de replicación.
PreviewInStudioBooleanCuando es verdadero (predeterminado), la prueba en Studio carga el gráfico no publicado localmente para que puedas iterar sin publicar. Configúralo en falso para probar el activo publicado en Studio. Ten en cuenta que esto actualmente no es compatible en Enum.AuthorityMode.Server.

Replicación de parámetros en modo automático

Cuando Workspace.AuthorityMode es Automático:

  • El cliente propietario impulsa los gráficos de personajes de jugadores; el servidor impulsa los gráficos de NPC.
  • Los parámetros establecidos a través de AnimationTrack:SetParameter() se replican automáticamente a otros pares. Múltiples llamadas a SetParameter dentro de un solo cuadro se coalescen (el último escritor gana).
  • No se necesita scripting adicional para el transporte de parámetros: el motor maneja la replicación internamente.
  • Otros clientes ven actualizaciones de parámetros con un pequeño retraso (un intervalo de envío más la latencia de red).

Autoridad del servidor

Cuando Workspace.AuthorityMode es Servidor:

  • El servidor es autoritario para todos los gráficos: ejecuta la simulación y replica el estado completo del gráfico.
  • Qué se replica: Tanto los parámetros como el estado interno del nodo, incluyendo el tiempo transcurrido, selecciones actuales, progreso de transición, conteos de bucle y semillas de RNG. Esto asegura que todos los clientes vean un comportamiento de animación idéntico.
  • Personajes de jugadores: El servidor impulsa el gráfico. El script RunClient del cliente propietario habilita automáticamente Enum.PredictionMode en el Animator, por lo que el jugador local ve una animación suave y predicha que se reconcilia con el servidor en caso de discrepancia.
  • NPCs: El servidor impulsa el gráfico exclusivamente; los clientes observan el estado replicado sin simulación local.

Impulsando parámetros

Utiliza AnimationTrack:SetParameter() desde cada script que ejecuta el gráfico:

  • NPC (cualquier modo): Llama a SetParameter desde RunServer (o cualquier Script del servidor con acceso al AnimationTrack).
  • Personaje jugador en Enum.AuthorityMode.Server: Llama a SetParameter desde tanto RunServer como RunClient. El servidor necesita parámetros para impulsar la simulación autoritaria, y el cliente propietario necesita los mismos parámetros para impulsar su predicción local.
  • Personaje jugador en Enum.AuthorityMode.Automatic: Llama a SetParameter desde RunClient (o cualquier LocalScript del cliente con acceso al AnimationTrack).

El script Animate generado incluye un bloque SetParameter comentado como punto de partida. Descoméntalo y modifícalo para impulsar parámetros desde el estado del juego (velocidad de movimiento, estado del humanoide, dirección de entrada, etc.).

©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.